
ulong __gmpz_tdiv_ui(mpz_srcptr dividend,ulong divisor)

{
  int iVar1;
  ulong uVar2;
  
  if (divisor == 0) {
    uVar2 = (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();
    return uVar2;
  }
  iVar1 = dividend->_mp_size;
  if (iVar1 != 0) {
    if (-1 < iVar1) {
                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1);
      return uVar2;
    }
                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-iVar1,divisor);
    return uVar2;
  }
  return 0;
}



uint __gmpz_tdiv_ui(int *param_1,int *param_2,int *param_3)

{
  int iVar1;
  uint uVar2;
  undefined1 *puVar3;
  int *piVar4;
  int *piVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 *puVar8;
  int *piVar9;
  int *piVar10;
  int *in_t1;
  int iVar11;
  int *piVar12;
  int *piVar13;
  uint uVar14;
  int *piVar15;
  uint *puVar16;
  undefined4 *puVar17;
  int *unaff_s6;
  int iVar18;
  undefined *puVar19;
  code *pcVar20;
  int *piVar21;
  code *pcVar22;
  undefined1 *puVar23;
  undefined1 *puVar24;
  undefined4 uVar25;
  undefined8 uVar26;
  undefined1 auStack_80 [24];
  int *apiStack_68 [4];
  int *piStack_58;
  int *piStack_54;
  int *piStack_50;
  uint uStack_4c;
  
  if (param_2 != (int *)0x0) {
    iVar1 = param_1[1];
    if (iVar1 == 0) {
      return 0;
    }
    if (iVar1 < 0) {
                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);
      return uVar2;
    }
                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);
    return uVar2;
  }
  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;
  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();
  piVar21 = (int *)(puVar19 + 0x6fad0);
  puVar24 = auStack_80;
  puVar3 = auStack_80;
  puVar23 = auStack_80;
  puVar16 = *(uint **)(puVar19 + 0x67fd0);
  piVar13 = (int *)param_2[1];
  uStack_4c = *puVar16;
  piVar15 = (int *)param_3[1];
  piVar12 = (int *)-(int)piVar13;
  if (-1 < (int)piVar13) {
    piVar12 = piVar13;
  }
  piVar10 = piVar15;
  if ((int)piVar15 < 0) {
    piVar10 = (int *)-(int)piVar15;
  }
  iVar18 = (int)piVar12 - (int)piVar10;
  iVar1 = iVar18 + 1;
  apiStack_68[0] = piVar21;
  if (piVar15 == (int *)0x0) {
    uVar26 = (**(code **)(puVar19 + 0x68070))();
LAB_000357c8:
    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;
  }
  else {
    if (iVar1 < 1) {
      param_1[1] = 0;
      piVar21 = param_1;
      piVar12 = param_2;
      goto LAB_00035690;
    }
    if (*param_1 < iVar1) {
      apiStack_68[3] = piVar10;
      piStack_58 = piVar12;
      piStack_54 = param_3;
      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);
      piVar12 = piStack_58;
      param_3 = piStack_54;
      piVar5 = apiStack_68[3];
    }
    else {
      unaff_s6 = (int *)param_1[2];
      piVar5 = piVar10;
    }
    piVar9 = (int *)param_3[2];
    uVar26 = CONCAT44(piVar9,piVar12);
    in_t1 = (int *)param_2[2];
    piStack_50 = (int *)0x0;
    piVar10 = piVar5;
    piVar21 = apiStack_68[0];
    puVar24 = auStack_80;
    if (unaff_s6 == piVar9) {
      uVar2 = (int)piVar5 * 4;
      if (uVar2 < 0x7f01) {
        iVar7 = -(uVar2 + 7 & 0xfffffff8);
        puVar23 = auStack_80 + iVar7;
        piVar4 = (int *)((int)apiStack_68 + iVar7);
      }
      else {
        apiStack_68[2] = piVar5;
        apiStack_68[3] = piVar12;
        piStack_58 = in_t1;
        piStack_54 = piVar9;
        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);
        piVar12 = apiStack_68[3];
        piVar9 = piStack_54;
        piVar10 = apiStack_68[2];
        in_t1 = piStack_58;
      }
      piVar21 = apiStack_68[0];
      uVar26 = CONCAT44(piVar4,piVar12);
      iVar7 = (int)piVar10 + -1;
      param_3 = (int *)*piVar9;
      piVar12 = piVar4;
      puVar24 = puVar23;
      if (iVar7 == 0) goto LAB_000357c8;
      do {
        piVar9 = piVar9 + 1;
        *piVar12 = (int)param_3;
        iVar7 = iVar7 + -1;
        param_3 = (int *)*piVar9;
        piVar12 = piVar12 + 1;
      } while (iVar7 != 0);
      piVar4[(int)piVar5 + -1] = (int)param_3;
    }
  }
  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);
  piVar5 = (int *)uVar26;
  piVar12 = (int *)(((int)piVar5 + 1) * 4);
  if (unaff_s6 == in_t1) {
    if ((int *)0x7f00 < piVar12) {
      apiStack_68[2] = piVar10;
      apiStack_68[3] = piVar5;
      piStack_58 = in_t1;
      piStack_54 = piVar9;
      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);
      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);
      piVar10 = apiStack_68[2];
      in_t1 = piStack_58;
      piVar21 = apiStack_68[0];
    }
    else {
      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);
      param_2 = (int *)(puVar24 + iVar7 + 0x18);
      puVar24 = puVar24 + iVar7;
    }
    param_3 = (int *)uVar26;
    pcVar20 = (code *)piVar21[-0x1ed2];
    if (piVar13 != (int *)0x0) {
      iVar7 = (int)param_3 + -1;
      iVar11 = *in_t1;
      piVar9 = param_2;
      piVar5 = in_t1;
      if (iVar7 == 0) {
        *param_2 = iVar11;
        piVar12 = param_2;
      }
      else {
        do {
          *piVar9 = iVar11;
          iVar7 = iVar7 + -1;
          iVar11 = piVar5[1];
          piVar9 = piVar9 + 1;
          piVar5 = piVar5 + 1;
        } while (iVar7 != 0);
        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;
        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));
      }
      pcVar20 = (code *)piVar21[-0x1ed2];
    }
    *(int **)(puVar24 + 0x14) = param_2;
    *(int **)(puVar24 + 0x10) = piVar10;
    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));
  }
  else {
    if ((int *)0x7f00 < piVar12) {
      apiStack_68[2] = piVar10;
      apiStack_68[3] = piVar5;
      piStack_58 = in_t1;
      piStack_54 = piVar9;
      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);
      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);
      piVar10 = apiStack_68[2];
      param_2 = piStack_58;
      piVar21 = apiStack_68[0];
    }
    else {
      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);
      puVar3 = puVar24 + -(int)piVar12 + 0x18;
      param_2 = in_t1;
      puVar24 = puVar24 + -(int)piVar12;
    }
    param_3 = (int *)uVar26;
    pcVar20 = (code *)piVar21[-0x1ed2];
    *(undefined1 **)(puVar24 + 0x14) = puVar3;
    *(int **)(puVar24 + 0x10) = piVar10;
    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));
  }
  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {
    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;
  }
  else {
    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);
  }
  param_1[1] = iVar18;
  piVar21 = piStack_50;
  puVar3 = puVar24;
  if (piStack_50 != (int *)0x0) {
    (*(code *)apiStack_68[0][-0x1e8a])();
  }
LAB_00035690:
  if (uStack_4c != *puVar16) {
    pcVar20 = (code *)apiStack_68[0][-0x1edc];
    uVar25 = 0x358d8;
    uVar2 = (*pcVar20)();
    pcVar22 = pcVar20 + 0x6f760;
    *(int **)(puVar3 + -0x10) = param_1;
    *(code **)(puVar3 + -0x28) = pcVar22;
    *(uint **)(puVar3 + -0xc) = puVar16;
    *(int **)(puVar3 + -0x14) = piVar15;
    *(int **)(puVar3 + -0x18) = piVar13;
    *(undefined4 *)(puVar3 + -4) = uVar25;
    *(int *)(puVar3 + -8) = iVar1;
    *(int **)(puVar3 + -0x1c) = piVar12;
    iVar18 = param_2[1];
    uVar14 = (uint)param_3 >> 5;
    iVar1 = iVar18;
    if (iVar18 < 0) {
      iVar1 = -iVar18;
    }
    iVar1 = iVar1 - uVar14;
    if (iVar1 < 1) {
      iVar1 = 0;
    }
    else {
      pcVar20 = *(code **)(pcVar20 + 0x67ce0);
      if (*piVar21 < iVar1) {
        *(int **)(puVar3 + 8) = param_3;
        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);
        pcVar22 = *(code **)(puVar3 + -0x28);
        param_3 = *(int **)(puVar3 + 8);
      }
      else {
        puVar17 = (undefined4 *)piVar21[2];
      }
      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);
      if (((uint)param_3 & 0x1f) == 0) {
        uVar2 = iVar1 - 1;
        uVar25 = *puVar8;
        puVar6 = puVar17;
        if (uVar2 != 0) {
          do {
            puVar8 = puVar8 + 1;
            *puVar6 = uVar25;
            uVar2 = uVar2 - 1;
            uVar25 = *puVar8;
            puVar6 = puVar6 + 1;
          } while (uVar2 != 0);
          uVar2 = iVar1 * 4 - 4;
          puVar17 = puVar17 + iVar1 + -1;
        }
        *puVar17 = uVar25;
      }
      else {
        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);
        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);
        iVar1 = iVar1 - uVar2;
      }
    }
    if (iVar18 < 0) {
      iVar1 = -iVar1;
    }
    piVar21[1] = iVar1;
    return uVar2;
  }
  return *puVar16;
}


lui gp,0x7
addiu gp,gp,-0x4b0
addu gp,gp,t9
addiu sp,sp,-0x20
sw gp,0x10(sp)
sw ra,0x1c(sp)
beq a1,zero,0x0003555c
_lw t9,-0x7a60(gp)
lw v0,0x4(a0)
beq v0,zero,0x00035550
_lw ra,0x1c(sp)
bltz v0,0x00035538
_or a2,a1,zero
lw a0,0x8(a0)
addiu sp,sp,0x20
lw t9,-0x7b80(gp)
jr t9
_or a1,v0,zero
subu v0,zero,v0
lw a0,0x8(a0)
addiu sp,sp,0x20
lw t9,-0x7b80(gp)
jr t9
_or a1,v0,zero
or v0,zero,zero
jr ra
_addiu sp,sp,0x20
jalr t9
_nop
nop
nop
nop
(translation_unit "uint __gmpz_tdiv_ui(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  int *piVar10;\n  int *in_t1;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int *unaff_s6;\n  int iVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int *piVar21;\n  code *pcVar22;\n  undefined1 *puVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  undefined8 uVar26;\n  undefined1 auStack_80 [24];\n  int *apiStack_68 [4];\n  int *piStack_58;\n  int *piStack_54;\n  int *piStack_50;\n  uint uStack_4c;\n  \n  if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }\n  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;\n  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n  piVar21 = (int *)(puVar19 + 0x6fad0);\n  puVar24 = auStack_80;\n  puVar3 = auStack_80;\n  puVar23 = auStack_80;\n  puVar16 = *(uint **)(puVar19 + 0x67fd0);\n  piVar13 = (int *)param_2[1];\n  uStack_4c = *puVar16;\n  piVar15 = (int *)param_3[1];\n  piVar12 = (int *)-(int)piVar13;\n  if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }\n  piVar10 = piVar15;\n  if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }\n  iVar18 = (int)piVar12 - (int)piVar10;\n  iVar1 = iVar18 + 1;\n  apiStack_68[0] = piVar21;\n  if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }\n  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);\n  piVar5 = (int *)uVar26;\n  piVar12 = (int *)(((int)piVar5 + 1) * 4);\n  if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }\n  param_1[1] = iVar18;\n  piVar21 = piStack_50;\n  puVar3 = puVar24;\n  if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }\nLAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }\n  return *puVar16;\n}\n\n" (function_definition "uint __gmpz_tdiv_ui(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  int *piVar10;\n  int *in_t1;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int *unaff_s6;\n  int iVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int *piVar21;\n  code *pcVar22;\n  undefined1 *puVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  undefined8 uVar26;\n  undefined1 auStack_80 [24];\n  int *apiStack_68 [4];\n  int *piStack_58;\n  int *piStack_54;\n  int *piStack_50;\n  uint uStack_4c;\n  \n  if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }\n  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;\n  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n  piVar21 = (int *)(puVar19 + 0x6fad0);\n  puVar24 = auStack_80;\n  puVar3 = auStack_80;\n  puVar23 = auStack_80;\n  puVar16 = *(uint **)(puVar19 + 0x67fd0);\n  piVar13 = (int *)param_2[1];\n  uStack_4c = *puVar16;\n  piVar15 = (int *)param_3[1];\n  piVar12 = (int *)-(int)piVar13;\n  if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }\n  piVar10 = piVar15;\n  if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }\n  iVar18 = (int)piVar12 - (int)piVar10;\n  iVar1 = iVar18 + 1;\n  apiStack_68[0] = piVar21;\n  if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }\n  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);\n  piVar5 = (int *)uVar26;\n  piVar12 = (int *)(((int)piVar5 + 1) * 4);\n  if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }\n  param_1[1] = iVar18;\n  piVar21 = piStack_50;\n  puVar3 = puVar24;\n  if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }\nLAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }\n  return *puVar16;\n}" type_identifier (function_declarator "__gmpz_tdiv_ui(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  int *piVar10;\n  int *in_t1;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int *unaff_s6;\n  int iVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int *piVar21;\n  code *pcVar22;\n  undefined1 *puVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  undefined8 uVar26;\n  undefined1 auStack_80 [24];\n  int *apiStack_68 [4];\n  int *piStack_58;\n  int *piStack_54;\n  int *piStack_50;\n  uint uStack_4c;\n  \n  if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }\n  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;\n  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n  piVar21 = (int *)(puVar19 + 0x6fad0);\n  puVar24 = auStack_80;\n  puVar3 = auStack_80;\n  puVar23 = auStack_80;\n  puVar16 = *(uint **)(puVar19 + 0x67fd0);\n  piVar13 = (int *)param_2[1];\n  uStack_4c = *puVar16;\n  piVar15 = (int *)param_3[1];\n  piVar12 = (int *)-(int)piVar13;\n  if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }\n  piVar10 = piVar15;\n  if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }\n  iVar18 = (int)piVar12 - (int)piVar10;\n  iVar1 = iVar18 + 1;\n  apiStack_68[0] = piVar21;\n  if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }\n  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);\n  piVar5 = (int *)uVar26;\n  piVar12 = (int *)(((int)piVar5 + 1) * 4);\n  if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }\n  param_1[1] = iVar18;\n  piVar21 = piStack_50;\n  puVar3 = puVar24;\n  if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }\nLAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }\n  return *puVar16;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *in_t1;" primitive_type (pointer_declarator "*in_t1" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "undefined8 uVar26;" type_identifier identifier ;) (declaration "undefined1 auStack_80 [24];" type_identifier (array_declarator "auStack_80 [24]" identifier [ number_literal ]) ;) (declaration "int *apiStack_68 [4];" primitive_type (pointer_declarator "*apiStack_68 [4]" * (array_declarator "apiStack_68 [4]" identifier [ number_literal ])) ;) (declaration "int *piStack_58;" primitive_type (pointer_declarator "*piStack_58" * identifier) ;) (declaration "int *piStack_54;" primitive_type (pointer_declarator "*piStack_54" * identifier) ;) (declaration "int *piStack_50;" primitive_type (pointer_declarator "*piStack_50" * identifier) ;) (declaration "uint uStack_4c;" type_identifier identifier ;) (if_statement "if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }" { (expression_statement "iVar1 = param_1[1];" (assignment_expression "iVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (iVar1 < 0) {\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }" { comment comment (expression_statement "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);" (assignment_expression "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2)" identifier = (call_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2)" (parenthesized_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)" ( (pointer_expression "*(code *)PTR___gmpn_mod_1_0009d4c0" * (cast_expression "(code *)PTR___gmpn_mod_1_0009d4c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],-iVar1,param_2)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (unary_expression "-iVar1" - identifier) , identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) comment comment (expression_statement "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);" (assignment_expression "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1)" identifier = (call_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1)" (parenthesized_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)" ( (pointer_expression "*(code *)PTR___gmpn_mod_1_0009d4c0" * (cast_expression "(code *)PTR___gmpn_mod_1_0009d4c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],iVar1)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "puVar19 = PTR___gmp_divide_by_zero_0009d5e0;" (assignment_expression "puVar19 = PTR___gmp_divide_by_zero_0009d5e0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)();" (call_expression "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)()" (parenthesized_expression "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)" ( (pointer_expression "*(code *)PTR___gmp_divide_by_zero_0009d5e0" * (cast_expression "(code *)PTR___gmp_divide_by_zero_0009d5e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar21 = (int *)(puVar19 + 0x6fad0);" (assignment_expression "piVar21 = (int *)(puVar19 + 0x6fad0)" identifier = (cast_expression "(int *)(puVar19 + 0x6fad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x6fad0)" ( (binary_expression "puVar19 + 0x6fad0" identifier + number_literal) )))) ;) (expression_statement "puVar24 = auStack_80;" (assignment_expression "puVar24 = auStack_80" identifier = identifier) ;) (expression_statement "puVar3 = auStack_80;" (assignment_expression "puVar3 = auStack_80" identifier = identifier) ;) (expression_statement "puVar23 = auStack_80;" (assignment_expression "puVar23 = auStack_80" identifier = identifier) ;) (expression_statement "puVar16 = *(uint **)(puVar19 + 0x67fd0);" (assignment_expression "puVar16 = *(uint **)(puVar19 + 0x67fd0)" identifier = (pointer_expression "*(uint **)(puVar19 + 0x67fd0)" * (cast_expression "(uint **)(puVar19 + 0x67fd0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x67fd0)" ( (binary_expression "puVar19 + 0x67fd0" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = (int *)param_2[1];" (assignment_expression "piVar13 = (int *)param_2[1]" identifier = (cast_expression "(int *)param_2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "uStack_4c = *puVar16;" (assignment_expression "uStack_4c = *puVar16" identifier = (pointer_expression "*puVar16" * identifier)) ;) (expression_statement "piVar15 = (int *)param_3[1];" (assignment_expression "piVar15 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar12 = (int *)-(int)piVar13;" (assignment_expression "piVar12 = (int *)-(int)piVar13" identifier = (cast_expression "(int *)-(int)piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)piVar13" - (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }" if (parenthesized_expression "(-1 < (int)piVar13)" ( (binary_expression "-1 < (int)piVar13" number_literal < (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    piVar12 = piVar13;\n  }" { (expression_statement "piVar12 = piVar13;" (assignment_expression "piVar12 = piVar13" identifier = identifier) ;) })) (expression_statement "piVar10 = piVar15;" (assignment_expression "piVar10 = piVar15" identifier = identifier) ;) (if_statement "if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }" if (parenthesized_expression "((int)piVar15 < 0)" ( (binary_expression "(int)piVar15 < 0" (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    piVar10 = (int *)-(int)piVar15;\n  }" { (expression_statement "piVar10 = (int *)-(int)piVar15;" (assignment_expression "piVar10 = (int *)-(int)piVar15" identifier = (cast_expression "(int *)-(int)piVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)piVar15" - (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "iVar18 = (int)piVar12 - (int)piVar10;" (assignment_expression "iVar18 = (int)piVar12 - (int)piVar10" identifier = (binary_expression "(int)piVar12 - (int)piVar10" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar1 = iVar18 + 1;" (assignment_expression "iVar1 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "apiStack_68[0] = piVar21;" (assignment_expression "apiStack_68[0] = piVar21" (subscript_expression "apiStack_68[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }" if (parenthesized_expression "(piVar15 == (int *)0x0)" ( (binary_expression "piVar15 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }" { (expression_statement "uVar26 = (**(code **)(puVar19 + 0x68070))();" (assignment_expression "uVar26 = (**(code **)(puVar19 + 0x68070))()" identifier = (call_expression "(**(code **)(puVar19 + 0x68070))()" (parenthesized_expression "(**(code **)(puVar19 + 0x68070))" ( (pointer_expression "**(code **)(puVar19 + 0x68070)" * (pointer_expression "*(code **)(puVar19 + 0x68070)" * (cast_expression "(code **)(puVar19 + 0x68070)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x68070)" ( (binary_expression "puVar19 + 0x68070" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;" statement_identifier : (expression_statement "*(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;" (assignment_expression "*(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3" (pointer_expression "*(int *)((ulonglong)uVar26 >> 0x20)" * (cast_expression "(int *)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) }) (else_clause "else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }" else (compound_statement "{\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }" { (if_statement "if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (compound_statement "{\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }" { (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar21 = param_1;" (assignment_expression "piVar21 = param_1" identifier = identifier) ;) (expression_statement "piVar12 = param_2;" (assignment_expression "piVar12 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_00035690;" goto statement_identifier ;) })) (if_statement "if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }" if (parenthesized_expression "(*param_1 < iVar1)" ( (binary_expression "*param_1 < iVar1" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }" { (expression_statement "apiStack_68[3] = piVar10;" (assignment_expression "apiStack_68[3] = piVar10" (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_58 = piVar12;" (assignment_expression "piStack_58 = piVar12" identifier = identifier) ;) (expression_statement "piStack_54 = param_3;" (assignment_expression "piStack_54 = param_3" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);" (assignment_expression "unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1)" identifier = (cast_expression "(int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar19 + 0x68050))(param_1,iVar1)" (parenthesized_expression "(**(code **)(puVar19 + 0x68050))" ( (pointer_expression "**(code **)(puVar19 + 0x68050)" * (pointer_expression "*(code **)(puVar19 + 0x68050)" * (cast_expression "(code **)(puVar19 + 0x68050)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x68050)" ( (binary_expression "puVar19 + 0x68050" identifier + number_literal) ))))) )) (argument_list "(param_1,iVar1)" ( identifier , identifier ))))) ;) (expression_statement "piVar12 = piStack_58;" (assignment_expression "piVar12 = piStack_58" identifier = identifier) ;) (expression_statement "param_3 = piStack_54;" (assignment_expression "param_3 = piStack_54" identifier = identifier) ;) (expression_statement "piVar5 = apiStack_68[3];" (assignment_expression "piVar5 = apiStack_68[3]" identifier = (subscript_expression "apiStack_68[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }" else (compound_statement "{\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }" { (expression_statement "unaff_s6 = (int *)param_1[2];" (assignment_expression "unaff_s6 = (int *)param_1[2]" identifier = (cast_expression "(int *)param_1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "piVar5 = piVar10;" (assignment_expression "piVar5 = piVar10" identifier = identifier) ;) }))) (expression_statement "piVar9 = (int *)param_3[2];" (assignment_expression "piVar9 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar26 = CONCAT44(piVar9,piVar12);" (assignment_expression "uVar26 = CONCAT44(piVar9,piVar12)" identifier = (call_expression "CONCAT44(piVar9,piVar12)" identifier (argument_list "(piVar9,piVar12)" ( identifier , identifier )))) ;) (expression_statement "in_t1 = (int *)param_2[2];" (assignment_expression "in_t1 = (int *)param_2[2]" identifier = (cast_expression "(int *)param_2[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "piStack_50 = (int *)0x0;" (assignment_expression "piStack_50 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar10 = piVar5;" (assignment_expression "piVar10 = piVar5" identifier = identifier) ;) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" identifier = (subscript_expression "apiStack_68[0]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = auStack_80;" (assignment_expression "puVar24 = auStack_80" identifier = identifier) ;) (if_statement "if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }" if (parenthesized_expression "(unaff_s6 == piVar9)" ( (binary_expression "unaff_s6 == piVar9" identifier == identifier) )) (compound_statement "{\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }" { (expression_statement "uVar2 = (int)piVar5 * 4;" (assignment_expression "uVar2 = (int)piVar5 * 4" identifier = (binary_expression "(int)piVar5 * 4" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }" if (parenthesized_expression "(uVar2 < 0x7f01)" ( (binary_expression "uVar2 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }" { (expression_statement "iVar7 = -(uVar2 + 7 & 0xfffffff8);" (assignment_expression "iVar7 = -(uVar2 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar2 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar2 + 7 & 0xfffffff8)" ( (binary_expression "uVar2 + 7 & 0xfffffff8" (binary_expression "uVar2 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar23 = auStack_80 + iVar7;" (assignment_expression "puVar23 = auStack_80 + iVar7" identifier = (binary_expression "auStack_80 + iVar7" identifier + identifier)) ;) (expression_statement "piVar4 = (int *)((int)apiStack_68 + iVar7);" (assignment_expression "piVar4 = (int *)((int)apiStack_68 + iVar7)" identifier = (cast_expression "(int *)((int)apiStack_68 + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apiStack_68 + iVar7)" ( (binary_expression "(int)apiStack_68 + iVar7" (cast_expression "(int)apiStack_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }" else (compound_statement "{\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }" { (expression_statement "apiStack_68[2] = piVar5;" (assignment_expression "apiStack_68[2] = piVar5" (subscript_expression "apiStack_68[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apiStack_68[3] = piVar12;" (assignment_expression "apiStack_68[3] = piVar12" (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_58 = in_t1;" (assignment_expression "piStack_58 = in_t1" identifier = identifier) ;) (expression_statement "piStack_54 = piVar9;" (assignment_expression "piStack_54 = piVar9" identifier = identifier) ;) (expression_statement "piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);" (assignment_expression "piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2)" identifier = (cast_expression "(int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2)" (parenthesized_expression "(*(code *)apiStack_68[0][-0x1f54])" ( (pointer_expression "*(code *)apiStack_68[0][-0x1f54]" * (cast_expression "(code *)apiStack_68[0][-0x1f54]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "apiStack_68[0][-0x1f54]" (subscript_expression "apiStack_68[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(&piStack_50,uVar2)" ( (pointer_expression "&piStack_50" & identifier) , identifier ))))) ;) (expression_statement "piVar12 = apiStack_68[3];" (assignment_expression "piVar12 = apiStack_68[3]" identifier = (subscript_expression "apiStack_68[3]" identifier [ number_literal ])) ;) (expression_statement "piVar9 = piStack_54;" (assignment_expression "piVar9 = piStack_54" identifier = identifier) ;) (expression_statement "piVar10 = apiStack_68[2];" (assignment_expression "piVar10 = apiStack_68[2]" identifier = (subscript_expression "apiStack_68[2]" identifier [ number_literal ])) ;) (expression_statement "in_t1 = piStack_58;" (assignment_expression "in_t1 = piStack_58" identifier = identifier) ;) }))) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" identifier = (subscript_expression "apiStack_68[0]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = CONCAT44(piVar4,piVar12);" (assignment_expression "uVar26 = CONCAT44(piVar4,piVar12)" identifier = (call_expression "CONCAT44(piVar4,piVar12)" identifier (argument_list "(piVar4,piVar12)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = (int)piVar10 + -1;" (assignment_expression "iVar7 = (int)piVar10 + -1" identifier = (binary_expression "(int)piVar10 + -1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "param_3 = (int *)*piVar9;" (assignment_expression "param_3 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "piVar12 = piVar4;" (assignment_expression "piVar12 = piVar4" identifier = identifier) ;) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" identifier = identifier) ;) (if_statement "if (iVar7 == 0) goto LAB_000357c8;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000357c8;" goto statement_identifier ;)) (do_statement "do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);" do (compound_statement "{\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      }" { (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "*piVar12 = (int)param_3;" (assignment_expression "*piVar12 = (int)param_3" (pointer_expression "*piVar12" * identifier) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "param_3 = (int *)*piVar9;" (assignment_expression "param_3 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (expression_statement "piVar4[(int)piVar5 + -1] = (int)param_3;" (assignment_expression "piVar4[(int)piVar5 + -1] = (int)param_3" (subscript_expression "piVar4[(int)piVar5 + -1]" identifier [ (binary_expression "(int)piVar5 + -1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }))) (expression_statement "piVar9 = (int *)((ulonglong)uVar26 >> 0x20);" (assignment_expression "piVar9 = (int *)((ulonglong)uVar26 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar5 = (int *)uVar26;" (assignment_expression "piVar5 = (int *)uVar26" identifier = (cast_expression "(int *)uVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar12 = (int *)(((int)piVar5 + 1) * 4);" (assignment_expression "piVar12 = (int *)(((int)piVar5 + 1) * 4)" identifier = (cast_expression "(int *)(((int)piVar5 + 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)piVar5 + 1) * 4)" ( (binary_expression "((int)piVar5 + 1) * 4" (parenthesized_expression "((int)piVar5 + 1)" ( (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal) )))) ;) (if_statement "if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" if (parenthesized_expression "(unaff_s6 == in_t1)" ( (binary_expression "unaff_s6 == in_t1" identifier == identifier) )) (compound_statement "{\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" { (if_statement "if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }" if (parenthesized_expression "((int *)0x7f00 < piVar12)" ( (binary_expression "(int *)0x7f00 < piVar12" (cast_expression "(int *)0x7f00" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }" { (expression_statement "apiStack_68[2] = piVar10;" (assignment_expression "apiStack_68[2] = piVar10" (subscript_expression "apiStack_68[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apiStack_68[3] = piVar5;" (assignment_expression "apiStack_68[3] = piVar5" (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_58 = in_t1;" (assignment_expression "piStack_58 = in_t1" identifier = identifier) ;) (expression_statement "piStack_54 = piVar9;" (assignment_expression "piStack_54 = piVar9" identifier = identifier) ;) (expression_statement "param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);" (assignment_expression "param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" identifier = (cast_expression "(int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (parenthesized_expression "(*(code *)piVar21[-0x1f54])" ( (pointer_expression "*(code *)piVar21[-0x1f54]" * (cast_expression "(code *)piVar21[-0x1f54]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1f54]" identifier [ number_literal ]))) )) (argument_list "(&piStack_50,piVar12)" ( (pointer_expression "&piStack_50" & identifier) , identifier ))))) ;) (expression_statement "uVar26 = CONCAT44(piStack_54,apiStack_68[3]);" (assignment_expression "uVar26 = CONCAT44(piStack_54,apiStack_68[3])" identifier = (call_expression "CONCAT44(piStack_54,apiStack_68[3])" identifier (argument_list "(piStack_54,apiStack_68[3])" ( identifier , (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) )))) ;) (expression_statement "piVar10 = apiStack_68[2];" (assignment_expression "piVar10 = apiStack_68[2]" identifier = (subscript_expression "apiStack_68[2]" identifier [ number_literal ])) ;) (expression_statement "in_t1 = piStack_58;" (assignment_expression "in_t1 = piStack_58" identifier = identifier) ;) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" identifier = (subscript_expression "apiStack_68[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }" else (compound_statement "{\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }" { (expression_statement "iVar7 = -((int)piVar12 + 7U & 0xfffffff8);" (assignment_expression "iVar7 = -((int)piVar12 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)piVar12 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)piVar12 + 7U & 0xfffffff8)" ( (binary_expression "(int)piVar12 + 7U & 0xfffffff8" (binary_expression "(int)piVar12 + 7U" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "param_2 = (int *)(puVar24 + iVar7 + 0x18);" (assignment_expression "param_2 = (int *)(puVar24 + iVar7 + 0x18)" identifier = (cast_expression "(int *)(puVar24 + iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar7 + 0x18)" ( (binary_expression "puVar24 + iVar7 + 0x18" (binary_expression "puVar24 + iVar7" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar24 = puVar24 + iVar7;" (assignment_expression "puVar24 = puVar24 + iVar7" identifier = (binary_expression "puVar24 + iVar7" identifier + identifier)) ;) }))) (expression_statement "param_3 = (int *)uVar26;" (assignment_expression "param_3 = (int *)uVar26" identifier = (cast_expression "(int *)uVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar20 = (code *)piVar21[-0x1ed2];" (assignment_expression "pcVar20 = (code *)piVar21[-0x1ed2]" identifier = (cast_expression "(code *)piVar21[-0x1ed2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1ed2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }" if (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }" { (expression_statement "iVar7 = (int)param_3 + -1;" (assignment_expression "iVar7 = (int)param_3 + -1" identifier = (binary_expression "(int)param_3 + -1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "iVar11 = *in_t1;" (assignment_expression "iVar11 = *in_t1" identifier = (pointer_expression "*in_t1" * identifier)) ;) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" identifier = identifier) ;) (expression_statement "piVar5 = in_t1;" (assignment_expression "piVar5 = in_t1" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }" { (expression_statement "*param_2 = iVar11;" (assignment_expression "*param_2 = iVar11" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "piVar12 = param_2;" (assignment_expression "piVar12 = param_2" identifier = identifier) ;) }) (else_clause "else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }" else (compound_statement "{\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }" { (do_statement "do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);" do (compound_statement "{\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        }" { (expression_statement "*piVar9 = iVar11;" (assignment_expression "*piVar9 = iVar11" (pointer_expression "*piVar9" * identifier) = identifier) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "iVar11 = piVar5[1];" (assignment_expression "iVar11 = piVar5[1]" identifier = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (expression_statement "*(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;" (assignment_expression "*(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11" (pointer_expression "*(int *)((int)param_2 + (int)(piVar12 + -2))" * (cast_expression "(int *)((int)param_2 + (int)(piVar12 + -2))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)(piVar12 + -2))" ( (binary_expression "(int)param_2 + (int)(piVar12 + -2)" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(piVar12 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar12 + -2)" ( (binary_expression "piVar12 + -2" identifier + number_literal) )))) )))) = identifier) ;) (expression_statement "piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));" (assignment_expression "piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2))" identifier = (cast_expression "(int *)((int)param_2 + (int)(piVar12 + -2))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)(piVar12 + -2))" ( (binary_expression "(int)param_2 + (int)(piVar12 + -2)" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(piVar12 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar12 + -2)" ( (binary_expression "piVar12 + -2" identifier + number_literal) )))) )))) ;) }))) (expression_statement "pcVar20 = (code *)piVar21[-0x1ed2];" (assignment_expression "pcVar20 = (code *)piVar21[-0x1ed2]" identifier = (cast_expression "(code *)piVar21[-0x1ed2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1ed2]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int **)(puVar24 + 0x14) = param_2;" (assignment_expression "*(int **)(puVar24 + 0x14) = param_2" (pointer_expression "*(int **)(puVar24 + 0x14)" * (cast_expression "(int **)(puVar24 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x14)" ( (binary_expression "puVar24 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar24 + 0x10) = piVar10;" (assignment_expression "*(int **)(puVar24 + 0x10) = piVar10" (pointer_expression "*(int **)(puVar24 + 0x10)" * (cast_expression "(int **)(puVar24 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x10)" ( (binary_expression "puVar24 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));" (call_expression "(*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" ( identifier , identifier , identifier , (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) }) (else_clause "else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" else (compound_statement "{\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" { (if_statement "if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }" if (parenthesized_expression "((int *)0x7f00 < piVar12)" ( (binary_expression "(int *)0x7f00 < piVar12" (cast_expression "(int *)0x7f00" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }" { (expression_statement "apiStack_68[2] = piVar10;" (assignment_expression "apiStack_68[2] = piVar10" (subscript_expression "apiStack_68[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apiStack_68[3] = piVar5;" (assignment_expression "apiStack_68[3] = piVar5" (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_58 = in_t1;" (assignment_expression "piStack_58 = in_t1" identifier = identifier) ;) (expression_statement "piStack_54 = piVar9;" (assignment_expression "piStack_54 = piVar9" identifier = identifier) ;) (expression_statement "puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" identifier = (cast_expression "(undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (parenthesized_expression "(*(code *)piVar21[-0x1f54])" ( (pointer_expression "*(code *)piVar21[-0x1f54]" * (cast_expression "(code *)piVar21[-0x1f54]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1f54]" identifier [ number_literal ]))) )) (argument_list "(&piStack_50,piVar12)" ( (pointer_expression "&piStack_50" & identifier) , identifier ))))) ;) (expression_statement "uVar26 = CONCAT44(piStack_54,apiStack_68[3]);" (assignment_expression "uVar26 = CONCAT44(piStack_54,apiStack_68[3])" identifier = (call_expression "CONCAT44(piStack_54,apiStack_68[3])" identifier (argument_list "(piStack_54,apiStack_68[3])" ( identifier , (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) )))) ;) (expression_statement "piVar10 = apiStack_68[2];" (assignment_expression "piVar10 = apiStack_68[2]" identifier = (subscript_expression "apiStack_68[2]" identifier [ number_literal ])) ;) (expression_statement "param_2 = piStack_58;" (assignment_expression "param_2 = piStack_58" identifier = identifier) ;) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" identifier = (subscript_expression "apiStack_68[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }" else (compound_statement "{\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }" { (expression_statement "piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);" (assignment_expression "piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8)" identifier = (cast_expression "(int *)((int)piVar12 + 7U & 0xfffffff8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 7U & 0xfffffff8)" ( (binary_expression "(int)piVar12 + 7U & 0xfffffff8" (binary_expression "(int)piVar12 + 7U" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "puVar3 = puVar24 + -(int)piVar12 + 0x18;" (assignment_expression "puVar3 = puVar24 + -(int)piVar12 + 0x18" identifier = (binary_expression "puVar24 + -(int)piVar12 + 0x18" (binary_expression "puVar24 + -(int)piVar12" identifier + (unary_expression "-(int)piVar12" - (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal)) ;) (expression_statement "param_2 = in_t1;" (assignment_expression "param_2 = in_t1" identifier = identifier) ;) (expression_statement "puVar24 = puVar24 + -(int)piVar12;" (assignment_expression "puVar24 = puVar24 + -(int)piVar12" identifier = (binary_expression "puVar24 + -(int)piVar12" identifier + (unary_expression "-(int)piVar12" - (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) }))) (expression_statement "param_3 = (int *)uVar26;" (assignment_expression "param_3 = (int *)uVar26" identifier = (cast_expression "(int *)uVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar20 = (code *)piVar21[-0x1ed2];" (assignment_expression "pcVar20 = (code *)piVar21[-0x1ed2]" identifier = (cast_expression "(code *)piVar21[-0x1ed2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1ed2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 **)(puVar24 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar24 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar24 + 0x14)" * (cast_expression "(undefined1 **)(puVar24 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x14)" ( (binary_expression "puVar24 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar24 + 0x10) = piVar10;" (assignment_expression "*(int **)(puVar24 + 0x10) = piVar10" (pointer_expression "*(int **)(puVar24 + 0x10)" * (cast_expression "(int **)(puVar24 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x10)" ( (binary_expression "puVar24 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));" (call_expression "(*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" ( identifier , identifier , identifier , (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) }))) (if_statement "if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }" if (parenthesized_expression "((int)((uint)piVar13 ^ (uint)piVar15) < 0)" ( (binary_expression "(int)((uint)piVar13 ^ (uint)piVar15) < 0" (cast_expression "(int)((uint)piVar13 ^ (uint)piVar15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)piVar13 ^ (uint)piVar15)" ( (binary_expression "(uint)piVar13 ^ (uint)piVar15" (cast_expression "(uint)piVar13" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (cast_expression "(uint)piVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) < number_literal) )) (compound_statement "{\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }" { (expression_statement "iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;" (assignment_expression "iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1" identifier = (binary_expression "(uint)(unaff_s6[iVar18] == 0) - iVar1" (call_expression "(uint)(unaff_s6[iVar18] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6[iVar18] == 0)" ( (binary_expression "unaff_s6[iVar18] == 0" (subscript_expression "unaff_s6[iVar18]" identifier [ identifier ]) == number_literal) ))) - identifier)) ;) }) (else_clause "else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }" else (compound_statement "{\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }" { (expression_statement "iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);" (assignment_expression "iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0)" identifier = (binary_expression "iVar1 - (uint)(unaff_s6[iVar18] == 0)" identifier - (call_expression "(uint)(unaff_s6[iVar18] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6[iVar18] == 0)" ( (binary_expression "unaff_s6[iVar18] == 0" (subscript_expression "unaff_s6[iVar18]" identifier [ identifier ]) == number_literal) ))))) ;) }))) (expression_statement "param_1[1] = iVar18;" (assignment_expression "param_1[1] = iVar18" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar21 = piStack_50;" (assignment_expression "piVar21 = piStack_50" identifier = identifier) ;) (expression_statement "puVar3 = puVar24;" (assignment_expression "puVar3 = puVar24" identifier = identifier) ;) (if_statement "if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }" if (parenthesized_expression "(piStack_50 != (int *)0x0)" ( (binary_expression "piStack_50 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }" { (expression_statement "(*(code *)apiStack_68[0][-0x1e8a])();" (call_expression "(*(code *)apiStack_68[0][-0x1e8a])()" (parenthesized_expression "(*(code *)apiStack_68[0][-0x1e8a])" ( (pointer_expression "*(code *)apiStack_68[0][-0x1e8a]" * (cast_expression "(code *)apiStack_68[0][-0x1e8a]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "apiStack_68[0][-0x1e8a]" (subscript_expression "apiStack_68[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }" statement_identifier : (if_statement "if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }" if (parenthesized_expression "(uStack_4c != *puVar16)" ( (binary_expression "uStack_4c != *puVar16" identifier != (pointer_expression "*puVar16" * identifier)) )) (compound_statement "{\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }" { (expression_statement "pcVar20 = (code *)apiStack_68[0][-0x1edc];" (assignment_expression "pcVar20 = (code *)apiStack_68[0][-0x1edc]" identifier = (cast_expression "(code *)apiStack_68[0][-0x1edc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "apiStack_68[0][-0x1edc]" (subscript_expression "apiStack_68[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "uVar25 = 0x358d8;" (assignment_expression "uVar25 = 0x358d8" identifier = number_literal) ;) (expression_statement "uVar2 = (*pcVar20)();" (assignment_expression "uVar2 = (*pcVar20)()" identifier = (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar22 = pcVar20 + 0x6f760;" (assignment_expression "pcVar22 = pcVar20 + 0x6f760" identifier = (binary_expression "pcVar20 + 0x6f760" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar3 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar3 + -0x10) = param_1" (pointer_expression "*(int **)(puVar3 + -0x10)" * (cast_expression "(int **)(puVar3 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x10)" ( (binary_expression "puVar3 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar3 + -0x28) = pcVar22;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar22" (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar3 + -0xc) = puVar16;" (assignment_expression "*(uint **)(puVar3 + -0xc) = puVar16" (pointer_expression "*(uint **)(puVar3 + -0xc)" * (cast_expression "(uint **)(puVar3 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0xc)" ( (binary_expression "puVar3 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar3 + -0x14) = piVar15;" (assignment_expression "*(int **)(puVar3 + -0x14) = piVar15" (pointer_expression "*(int **)(puVar3 + -0x14)" * (cast_expression "(int **)(puVar3 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x14)" ( (binary_expression "puVar3 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar3 + -0x18) = piVar13;" (assignment_expression "*(int **)(puVar3 + -0x18) = piVar13" (pointer_expression "*(int **)(puVar3 + -0x18)" * (cast_expression "(int **)(puVar3 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x18)" ( (binary_expression "puVar3 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + -4) = uVar25;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar25" (pointer_expression "*(undefined4 *)(puVar3 + -4)" * (cast_expression "(undefined4 *)(puVar3 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -4)" ( (binary_expression "puVar3 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar3 + -8) = iVar1;" (assignment_expression "*(int *)(puVar3 + -8) = iVar1" (pointer_expression "*(int *)(puVar3 + -8)" * (cast_expression "(int *)(puVar3 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -8)" ( (binary_expression "puVar3 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar3 + -0x1c) = piVar12;" (assignment_expression "*(int **)(puVar3 + -0x1c) = piVar12" (pointer_expression "*(int **)(puVar3 + -0x1c)" * (cast_expression "(int **)(puVar3 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x1c)" ( (binary_expression "puVar3 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar18 = param_2[1];" (assignment_expression "iVar18 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = (uint)param_3 >> 5;" (assignment_expression "uVar14 = (uint)param_3 >> 5" identifier = (binary_expression "(uint)param_3 >> 5" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "iVar1 = iVar18;" (assignment_expression "iVar1 = iVar18" identifier = identifier) ;) (if_statement "if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }" if (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar1 = -iVar18;\n    }" { (expression_statement "iVar1 = -iVar18;" (assignment_expression "iVar1 = -iVar18" identifier = (unary_expression "-iVar18" - identifier)) ;) })) (expression_statement "iVar1 = iVar1 - uVar14;" (assignment_expression "iVar1 = iVar1 - uVar14" identifier = (binary_expression "iVar1 - uVar14" identifier - identifier)) ;) (if_statement "if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar1 = 0;\n    }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }" else (compound_statement "{\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }" { (expression_statement "pcVar20 = *(code **)(pcVar20 + 0x67ce0);" (assignment_expression "pcVar20 = *(code **)(pcVar20 + 0x67ce0)" identifier = (pointer_expression "*(code **)(pcVar20 + 0x67ce0)" * (cast_expression "(code **)(pcVar20 + 0x67ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x67ce0)" ( (binary_expression "pcVar20 + 0x67ce0" identifier + number_literal) ))))) ;) (if_statement "if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }" if (parenthesized_expression "(*piVar21 < iVar1)" ( (binary_expression "*piVar21 < iVar1" (pointer_expression "*piVar21" * identifier) < identifier) )) (compound_statement "{\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }" { (expression_statement "*(int **)(puVar3 + 8) = param_3;" (assignment_expression "*(int **)(puVar3 + 8) = param_3" (pointer_expression "*(int **)(puVar3 + 8)" * (cast_expression "(int **)(puVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);" (assignment_expression "puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1)" identifier = (cast_expression "(undefined4 *)(*pcVar20)(piVar21,iVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar20)(piVar21,iVar1)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(piVar21,iVar1)" ( identifier , identifier ))))) ;) (expression_statement "pcVar22 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar22 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) (expression_statement "param_3 = *(int **)(puVar3 + 8);" (assignment_expression "param_3 = *(int **)(puVar3 + 8)" identifier = (pointer_expression "*(int **)(puVar3 + 8)" * (cast_expression "(int **)(puVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }" else (compound_statement "{\n        puVar17 = (undefined4 *)piVar21[2];\n      }" { (expression_statement "puVar17 = (undefined4 *)piVar21[2];" (assignment_expression "puVar17 = (undefined4 *)piVar21[2]" identifier = (cast_expression "(undefined4 *)piVar21[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);" (assignment_expression "puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4)" identifier = (cast_expression "(undefined4 *)(param_2[2] + uVar14 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + uVar14 * 4)" ( (binary_expression "param_2[2] + uVar14 * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (binary_expression "uVar14 * 4" identifier * number_literal)) )))) ;) (if_statement "if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }" if (parenthesized_expression "(((uint)param_3 & 0x1f) == 0)" ( (binary_expression "((uint)param_3 & 0x1f) == 0" (parenthesized_expression "((uint)param_3 & 0x1f)" ( (binary_expression "(uint)param_3 & 0x1f" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }" { (expression_statement "uVar2 = iVar1 - 1;" (assignment_expression "uVar2 = iVar1 - 1" identifier = (binary_expression "iVar1 - 1" identifier - number_literal)) ;) (expression_statement "uVar25 = *puVar8;" (assignment_expression "uVar25 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" identifier = identifier) ;) (if_statement "if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }" { (do_statement "do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);" do (compound_statement "{\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          }" { (expression_statement "puVar8 = puVar8 + 1;" (assignment_expression "puVar8 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (expression_statement "*puVar6 = uVar25;" (assignment_expression "*puVar6 = uVar25" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "uVar25 = *puVar8;" (assignment_expression "uVar25 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "uVar2 = iVar1 * 4 - 4;" (assignment_expression "uVar2 = iVar1 * 4 - 4" identifier = (binary_expression "iVar1 * 4 - 4" (binary_expression "iVar1 * 4" identifier * number_literal) - number_literal)) ;) (expression_statement "puVar17 = puVar17 + iVar1 + -1;" (assignment_expression "puVar17 = puVar17 + iVar1 + -1" identifier = (binary_expression "puVar17 + iVar1 + -1" (binary_expression "puVar17 + iVar1" identifier + identifier) + number_literal)) ;) })) (expression_statement "*puVar17 = uVar25;" (assignment_expression "*puVar17 = uVar25" (pointer_expression "*puVar17" * identifier) = identifier) ;) }) (else_clause "else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }" else (compound_statement "{\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }" { (expression_statement "(**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);" (call_expression "(**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1)" (parenthesized_expression "(**(code **)(pcVar22 + -0x7ae0))" ( (pointer_expression "**(code **)(pcVar22 + -0x7ae0)" * (pointer_expression "*(code **)(pcVar22 + -0x7ae0)" * (cast_expression "(code **)(pcVar22 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + -0x7ae0)" ( (binary_expression "pcVar22 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar8,iVar1)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = (uint)(puVar17[iVar1 + -1] == 0);" (assignment_expression "uVar2 = (uint)(puVar17[iVar1 + -1] == 0)" identifier = (call_expression "(uint)(puVar17[iVar1 + -1] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar17[iVar1 + -1] == 0)" ( (binary_expression "puVar17[iVar1 + -1] == 0" (subscript_expression "puVar17[iVar1 + -1]" identifier [ (binary_expression "iVar1 + -1" identifier + number_literal) ]) == number_literal) )))) ;) (expression_statement "iVar1 = iVar1 - uVar2;" (assignment_expression "iVar1 = iVar1 - uVar2" identifier = (binary_expression "iVar1 - uVar2" identifier - identifier)) ;) }))) }))) (if_statement "if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }" if (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar1 = -iVar1;\n    }" { (expression_statement "iVar1 = -iVar1;" (assignment_expression "iVar1 = -iVar1" identifier = (unary_expression "-iVar1" - identifier)) ;) })) (expression_statement "piVar21[1] = iVar1;" (assignment_expression "piVar21[1] = iVar1" (subscript_expression "piVar21[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return uVar2;" return identifier ;) }))) (return_statement "return *puVar16;" return (pointer_expression "*puVar16" * identifier) ;) })))
(translation_unit "ulong __gmpz_tdiv_ui(mpz_srcptr dividend,ulong divisor)\n\n{\n  int iVar1;\n  ulong uVar2;\n  \n  if (divisor == 0) {\n    uVar2 = (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n    return uVar2;\n  }\n  iVar1 = dividend->_mp_size;\n  if (iVar1 != 0) {\n    if (-1 < iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-iVar1,divisor);\n    return uVar2;\n  }\n  return 0;\n}\n\n" (function_definition "ulong __gmpz_tdiv_ui(mpz_srcptr dividend,ulong divisor)\n\n{\n  int iVar1;\n  ulong uVar2;\n  \n  if (divisor == 0) {\n    uVar2 = (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n    return uVar2;\n  }\n  iVar1 = dividend->_mp_size;\n  if (iVar1 != 0) {\n    if (-1 < iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-iVar1,divisor);\n    return uVar2;\n  }\n  return 0;\n}" type_identifier (function_declarator "__gmpz_tdiv_ui(mpz_srcptr dividend,ulong divisor)" identifier (parameter_list "(mpz_srcptr dividend,ulong divisor)" ( (parameter_declaration "mpz_srcptr dividend" type_identifier identifier) , (parameter_declaration "ulong divisor" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  ulong uVar2;\n  \n  if (divisor == 0) {\n    uVar2 = (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n    return uVar2;\n  }\n  iVar1 = dividend->_mp_size;\n  if (iVar1 != 0) {\n    if (-1 < iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-iVar1,divisor);\n    return uVar2;\n  }\n  return 0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "ulong uVar2;" type_identifier identifier ;) (if_statement "if (divisor == 0) {\n    uVar2 = (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n    return uVar2;\n  }" if (parenthesized_expression "(divisor == 0)" ( (binary_expression "divisor == 0" identifier == number_literal) )) (compound_statement "{\n    uVar2 = (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n    return uVar2;\n  }" { (expression_statement "uVar2 = (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();" (assignment_expression "uVar2 = (*(code *)PTR___gmp_divide_by_zero_0009d5e0)()" identifier = (call_expression "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)()" (parenthesized_expression "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)" ( (pointer_expression "*(code *)PTR___gmp_divide_by_zero_0009d5e0" * (cast_expression "(code *)PTR___gmp_divide_by_zero_0009d5e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "iVar1 = dividend->_mp_size;" (assignment_expression "iVar1 = dividend->_mp_size" identifier = (field_expression "dividend->_mp_size" identifier -> field_identifier)) ;) (if_statement "if (iVar1 != 0) {\n    if (-1 < iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-iVar1,divisor);\n    return uVar2;\n  }" if (parenthesized_expression "(iVar1 != 0)" ( (binary_expression "iVar1 != 0" identifier != number_literal) )) (compound_statement "{\n    if (-1 < iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1);\n      return uVar2;\n    }\n                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-iVar1,divisor);\n    return uVar2;\n  }" { (if_statement "if (-1 < iVar1) {\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1);\n      return uVar2;\n    }" if (parenthesized_expression "(-1 < iVar1)" ( (binary_expression "-1 < iVar1" number_literal < identifier) )) (compound_statement "{\n                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1);\n      return uVar2;\n    }" { comment comment (expression_statement "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1);" (assignment_expression "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1)" identifier = (call_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,iVar1)" (parenthesized_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)" ( (pointer_expression "*(code *)PTR___gmpn_mod_1_0009d4c0" * (cast_expression "(code *)PTR___gmpn_mod_1_0009d4c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dividend->_mp_d,iVar1)" ( (field_expression "dividend->_mp_d" identifier -> field_identifier) , identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) comment comment (expression_statement "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-iVar1,divisor);" (assignment_expression "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-iVar1,divisor)" identifier = (call_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-iVar1,divisor)" (parenthesized_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)" ( (pointer_expression "*(code *)PTR___gmpn_mod_1_0009d4c0" * (cast_expression "(code *)PTR___gmpn_mod_1_0009d4c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(dividend->_mp_d,-iVar1,divisor)" ( (field_expression "dividend->_mp_d" identifier -> field_identifier) , (unary_expression "-iVar1" - identifier) , identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "uint __gmpz_tdiv_ui(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  int *piVar10;\n  int *in_t1;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int *unaff_s6;\n  int iVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int *piVar21;\n  code *pcVar22;\n  undefined1 *puVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  undefined8 uVar26;\n  undefined1 auStack_80 [24];\n  int *apiStack_68 [4];\n  int *piStack_58;\n  int *piStack_54;\n  int *piStack_50;\n  uint uStack_4c;\n  \n  if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    \n                    \n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }\n  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;\n  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n  piVar21 = (int *)(puVar19 + 0x6fad0);\n  puVar24 = auStack_80;\n  puVar3 = auStack_80;\n  puVar23 = auStack_80;\n  puVar16 = *(uint **)(puVar19 + 0x67fd0);\n  piVar13 = (int *)param_2[1];\n  uStack_4c = *puVar16;\n  piVar15 = (int *)param_3[1];\n  piVar12 = (int *)-(int)piVar13;\n  if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }\n  piVar10 = piVar15;\n  if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }\n  iVar18 = (int)piVar12 - (int)piVar10;\n  iVar1 = iVar18 + 1;\n  apiStack_68[0] = piVar21;\n  if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }\n  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);\n  piVar5 = (int *)uVar26;\n  piVar12 = (int *)(((int)piVar5 + 1) * 4);\n  if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }\n  param_1[1] = iVar18;\n  piVar21 = piStack_50;\n  puVar3 = puVar24;\n  if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }\nLAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }\n  return *puVar16;\n}\n\n" (function_definition "uint __gmpz_tdiv_ui(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  int *piVar10;\n  int *in_t1;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int *unaff_s6;\n  int iVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int *piVar21;\n  code *pcVar22;\n  undefined1 *puVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  undefined8 uVar26;\n  undefined1 auStack_80 [24];\n  int *apiStack_68 [4];\n  int *piStack_58;\n  int *piStack_54;\n  int *piStack_50;\n  uint uStack_4c;\n  \n  if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    \n                    \n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }\n  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;\n  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n  piVar21 = (int *)(puVar19 + 0x6fad0);\n  puVar24 = auStack_80;\n  puVar3 = auStack_80;\n  puVar23 = auStack_80;\n  puVar16 = *(uint **)(puVar19 + 0x67fd0);\n  piVar13 = (int *)param_2[1];\n  uStack_4c = *puVar16;\n  piVar15 = (int *)param_3[1];\n  piVar12 = (int *)-(int)piVar13;\n  if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }\n  piVar10 = piVar15;\n  if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }\n  iVar18 = (int)piVar12 - (int)piVar10;\n  iVar1 = iVar18 + 1;\n  apiStack_68[0] = piVar21;\n  if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }\n  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);\n  piVar5 = (int *)uVar26;\n  piVar12 = (int *)(((int)piVar5 + 1) * 4);\n  if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }\n  param_1[1] = iVar18;\n  piVar21 = piStack_50;\n  puVar3 = puVar24;\n  if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }\nLAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }\n  return *puVar16;\n}" type_identifier (function_declarator "__gmpz_tdiv_ui(int *param_1,int *param_2,int *param_3)" identifier (parameter_list "(int *param_1,int *param_2,int *param_3)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "int *param_2" primitive_type (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  int *piVar10;\n  int *in_t1;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int *unaff_s6;\n  int iVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int *piVar21;\n  code *pcVar22;\n  undefined1 *puVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  undefined8 uVar26;\n  undefined1 auStack_80 [24];\n  int *apiStack_68 [4];\n  int *piStack_58;\n  int *piStack_54;\n  int *piStack_50;\n  uint uStack_4c;\n  \n  if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    \n                    \n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }\n  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;\n  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n  piVar21 = (int *)(puVar19 + 0x6fad0);\n  puVar24 = auStack_80;\n  puVar3 = auStack_80;\n  puVar23 = auStack_80;\n  puVar16 = *(uint **)(puVar19 + 0x67fd0);\n  piVar13 = (int *)param_2[1];\n  uStack_4c = *puVar16;\n  piVar15 = (int *)param_3[1];\n  piVar12 = (int *)-(int)piVar13;\n  if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }\n  piVar10 = piVar15;\n  if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }\n  iVar18 = (int)piVar12 - (int)piVar10;\n  iVar1 = iVar18 + 1;\n  apiStack_68[0] = piVar21;\n  if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }\n  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);\n  piVar5 = (int *)uVar26;\n  piVar12 = (int *)(((int)piVar5 + 1) * 4);\n  if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }\n  param_1[1] = iVar18;\n  piVar21 = piStack_50;\n  puVar3 = puVar24;\n  if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }\nLAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }\n  return *puVar16;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined1 *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "int *piVar4;" primitive_type (pointer_declarator "*piVar4" * identifier) ;) (declaration "int *piVar5;" primitive_type (pointer_declarator "*piVar5" * identifier) ;) (declaration "undefined4 *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "undefined4 *puVar8;" type_identifier (pointer_declarator "*puVar8" * identifier) ;) (declaration "int *piVar9;" primitive_type (pointer_declarator "*piVar9" * identifier) ;) (declaration "int *piVar10;" primitive_type (pointer_declarator "*piVar10" * identifier) ;) (declaration "int *in_t1;" primitive_type (pointer_declarator "*in_t1" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "int *piVar12;" primitive_type (pointer_declarator "*piVar12" * identifier) ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "int *piVar15;" primitive_type (pointer_declarator "*piVar15" * identifier) ;) (declaration "uint *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "undefined4 *puVar17;" type_identifier (pointer_declarator "*puVar17" * identifier) ;) (declaration "int *unaff_s6;" primitive_type (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "int *piVar21;" primitive_type (pointer_declarator "*piVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "undefined1 *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "undefined1 *puVar24;" type_identifier (pointer_declarator "*puVar24" * identifier) ;) (declaration "undefined4 uVar25;" type_identifier identifier ;) (declaration "undefined8 uVar26;" type_identifier identifier ;) (declaration "undefined1 auStack_80 [24];" type_identifier (array_declarator "auStack_80 [24]" identifier [ number_literal ]) ;) (declaration "int *apiStack_68 [4];" primitive_type (pointer_declarator "*apiStack_68 [4]" * (array_declarator "apiStack_68 [4]" identifier [ number_literal ])) ;) (declaration "int *piStack_58;" primitive_type (pointer_declarator "*piStack_58" * identifier) ;) (declaration "int *piStack_54;" primitive_type (pointer_declarator "*piStack_54" * identifier) ;) (declaration "int *piStack_50;" primitive_type (pointer_declarator "*piStack_50" * identifier) ;) (declaration "uint uStack_4c;" type_identifier identifier ;) (if_statement "if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    \n                    \n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }" if (parenthesized_expression "(param_2 != (int *)0x0)" ( (binary_expression "param_2 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    \n                    \n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }" { (expression_statement "iVar1 = param_1[1];" (assignment_expression "iVar1 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar1 == 0)" ( (binary_expression "iVar1 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }" if (parenthesized_expression "(iVar1 < 0)" ( (binary_expression "iVar1 < 0" identifier < number_literal) )) (compound_statement "{\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }" { (expression_statement "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);" (assignment_expression "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2)" identifier = (call_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2)" (parenthesized_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)" ( (pointer_expression "*(code *)PTR___gmpn_mod_1_0009d4c0" * (cast_expression "(code *)PTR___gmpn_mod_1_0009d4c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],-iVar1,param_2)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , (unary_expression "-iVar1" - identifier) , identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);" (assignment_expression "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1)" identifier = (call_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1)" (parenthesized_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)" ( (pointer_expression "*(code *)PTR___gmpn_mod_1_0009d4c0" * (cast_expression "(code *)PTR___gmpn_mod_1_0009d4c0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(param_1[2],iVar1)" ( (subscript_expression "param_1[2]" identifier [ number_literal ]) , identifier )))) ;) (return_statement "return uVar2;" return identifier ;) })) (expression_statement "puVar19 = PTR___gmp_divide_by_zero_0009d5e0;" (assignment_expression "puVar19 = PTR___gmp_divide_by_zero_0009d5e0" identifier = identifier) ;) (expression_statement "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)();" (call_expression "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)()" (parenthesized_expression "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)" ( (pointer_expression "*(code *)PTR___gmp_divide_by_zero_0009d5e0" * (cast_expression "(code *)PTR___gmp_divide_by_zero_0009d5e0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "piVar21 = (int *)(puVar19 + 0x6fad0);" (assignment_expression "piVar21 = (int *)(puVar19 + 0x6fad0)" identifier = (cast_expression "(int *)(puVar19 + 0x6fad0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x6fad0)" ( (binary_expression "puVar19 + 0x6fad0" identifier + number_literal) )))) ;) (expression_statement "puVar24 = auStack_80;" (assignment_expression "puVar24 = auStack_80" identifier = identifier) ;) (expression_statement "puVar3 = auStack_80;" (assignment_expression "puVar3 = auStack_80" identifier = identifier) ;) (expression_statement "puVar23 = auStack_80;" (assignment_expression "puVar23 = auStack_80" identifier = identifier) ;) (expression_statement "puVar16 = *(uint **)(puVar19 + 0x67fd0);" (assignment_expression "puVar16 = *(uint **)(puVar19 + 0x67fd0)" identifier = (pointer_expression "*(uint **)(puVar19 + 0x67fd0)" * (cast_expression "(uint **)(puVar19 + 0x67fd0)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x67fd0)" ( (binary_expression "puVar19 + 0x67fd0" identifier + number_literal) ))))) ;) (expression_statement "piVar13 = (int *)param_2[1];" (assignment_expression "piVar13 = (int *)param_2[1]" identifier = (cast_expression "(int *)param_2[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[1]" identifier [ number_literal ]))) ;) (expression_statement "uStack_4c = *puVar16;" (assignment_expression "uStack_4c = *puVar16" identifier = (pointer_expression "*puVar16" * identifier)) ;) (expression_statement "piVar15 = (int *)param_3[1];" (assignment_expression "piVar15 = (int *)param_3[1]" identifier = (cast_expression "(int *)param_3[1]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[1]" identifier [ number_literal ]))) ;) (expression_statement "piVar12 = (int *)-(int)piVar13;" (assignment_expression "piVar12 = (int *)-(int)piVar13" identifier = (cast_expression "(int *)-(int)piVar13" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)piVar13" - (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) (if_statement "if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }" if (parenthesized_expression "(-1 < (int)piVar13)" ( (binary_expression "-1 < (int)piVar13" number_literal < (cast_expression "(int)piVar13" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    piVar12 = piVar13;\n  }" { (expression_statement "piVar12 = piVar13;" (assignment_expression "piVar12 = piVar13" identifier = identifier) ;) })) (expression_statement "piVar10 = piVar15;" (assignment_expression "piVar10 = piVar15" identifier = identifier) ;) (if_statement "if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }" if (parenthesized_expression "((int)piVar15 < 0)" ( (binary_expression "(int)piVar15 < 0" (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    piVar10 = (int *)-(int)piVar15;\n  }" { (expression_statement "piVar10 = (int *)-(int)piVar15;" (assignment_expression "piVar10 = (int *)-(int)piVar15" identifier = (cast_expression "(int *)-(int)piVar15" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)piVar15" - (cast_expression "(int)piVar15" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (expression_statement "iVar18 = (int)piVar12 - (int)piVar10;" (assignment_expression "iVar18 = (int)piVar12 - (int)piVar10" identifier = (binary_expression "(int)piVar12 - (int)piVar10" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "iVar1 = iVar18 + 1;" (assignment_expression "iVar1 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) (expression_statement "apiStack_68[0] = piVar21;" (assignment_expression "apiStack_68[0] = piVar21" (subscript_expression "apiStack_68[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }" if (parenthesized_expression "(piVar15 == (int *)0x0)" ( (binary_expression "piVar15 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }" { (expression_statement "uVar26 = (**(code **)(puVar19 + 0x68070))();" (assignment_expression "uVar26 = (**(code **)(puVar19 + 0x68070))()" identifier = (call_expression "(**(code **)(puVar19 + 0x68070))()" (parenthesized_expression "(**(code **)(puVar19 + 0x68070))" ( (pointer_expression "**(code **)(puVar19 + 0x68070)" * (pointer_expression "*(code **)(puVar19 + 0x68070)" * (cast_expression "(code **)(puVar19 + 0x68070)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x68070)" ( (binary_expression "puVar19 + 0x68070" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (labeled_statement "LAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;" statement_identifier : (expression_statement "*(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;" (assignment_expression "*(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3" (pointer_expression "*(int *)((ulonglong)uVar26 >> 0x20)" * (cast_expression "(int *)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) }) (else_clause "else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }" else (compound_statement "{\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }" { (if_statement "if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (compound_statement "{\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }" { (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "piVar21 = param_1;" (assignment_expression "piVar21 = param_1" identifier = identifier) ;) (expression_statement "piVar12 = param_2;" (assignment_expression "piVar12 = param_2" identifier = identifier) ;) (goto_statement "goto LAB_00035690;" goto statement_identifier ;) })) (if_statement "if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }" if (parenthesized_expression "(*param_1 < iVar1)" ( (binary_expression "*param_1 < iVar1" (pointer_expression "*param_1" * identifier) < identifier) )) (compound_statement "{\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }" { (expression_statement "apiStack_68[3] = piVar10;" (assignment_expression "apiStack_68[3] = piVar10" (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_58 = piVar12;" (assignment_expression "piStack_58 = piVar12" identifier = identifier) ;) (expression_statement "piStack_54 = param_3;" (assignment_expression "piStack_54 = param_3" identifier = identifier) ;) (expression_statement "unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);" (assignment_expression "unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1)" identifier = (cast_expression "(int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(puVar19 + 0x68050))(param_1,iVar1)" (parenthesized_expression "(**(code **)(puVar19 + 0x68050))" ( (pointer_expression "**(code **)(puVar19 + 0x68050)" * (pointer_expression "*(code **)(puVar19 + 0x68050)" * (cast_expression "(code **)(puVar19 + 0x68050)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x68050)" ( (binary_expression "puVar19 + 0x68050" identifier + number_literal) ))))) )) (argument_list "(param_1,iVar1)" ( identifier , identifier ))))) ;) (expression_statement "piVar12 = piStack_58;" (assignment_expression "piVar12 = piStack_58" identifier = identifier) ;) (expression_statement "param_3 = piStack_54;" (assignment_expression "param_3 = piStack_54" identifier = identifier) ;) (expression_statement "piVar5 = apiStack_68[3];" (assignment_expression "piVar5 = apiStack_68[3]" identifier = (subscript_expression "apiStack_68[3]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }" else (compound_statement "{\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }" { (expression_statement "unaff_s6 = (int *)param_1[2];" (assignment_expression "unaff_s6 = (int *)param_1[2]" identifier = (cast_expression "(int *)param_1[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_1[2]" identifier [ number_literal ]))) ;) (expression_statement "piVar5 = piVar10;" (assignment_expression "piVar5 = piVar10" identifier = identifier) ;) }))) (expression_statement "piVar9 = (int *)param_3[2];" (assignment_expression "piVar9 = (int *)param_3[2]" identifier = (cast_expression "(int *)param_3[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_3[2]" identifier [ number_literal ]))) ;) (expression_statement "uVar26 = CONCAT44(piVar9,piVar12);" (assignment_expression "uVar26 = CONCAT44(piVar9,piVar12)" identifier = (call_expression "CONCAT44(piVar9,piVar12)" identifier (argument_list "(piVar9,piVar12)" ( identifier , identifier )))) ;) (expression_statement "in_t1 = (int *)param_2[2];" (assignment_expression "in_t1 = (int *)param_2[2]" identifier = (cast_expression "(int *)param_2[2]" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (subscript_expression "param_2[2]" identifier [ number_literal ]))) ;) (expression_statement "piStack_50 = (int *)0x0;" (assignment_expression "piStack_50 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "piVar10 = piVar5;" (assignment_expression "piVar10 = piVar5" identifier = identifier) ;) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" identifier = (subscript_expression "apiStack_68[0]" identifier [ number_literal ])) ;) (expression_statement "puVar24 = auStack_80;" (assignment_expression "puVar24 = auStack_80" identifier = identifier) ;) (if_statement "if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }" if (parenthesized_expression "(unaff_s6 == piVar9)" ( (binary_expression "unaff_s6 == piVar9" identifier == identifier) )) (compound_statement "{\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }" { (expression_statement "uVar2 = (int)piVar5 * 4;" (assignment_expression "uVar2 = (int)piVar5 * 4" identifier = (binary_expression "(int)piVar5 * 4" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) * number_literal)) ;) (if_statement "if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }" if (parenthesized_expression "(uVar2 < 0x7f01)" ( (binary_expression "uVar2 < 0x7f01" identifier < number_literal) )) (compound_statement "{\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }" { (expression_statement "iVar7 = -(uVar2 + 7 & 0xfffffff8);" (assignment_expression "iVar7 = -(uVar2 + 7 & 0xfffffff8)" identifier = (unary_expression "-(uVar2 + 7 & 0xfffffff8)" - (parenthesized_expression "(uVar2 + 7 & 0xfffffff8)" ( (binary_expression "uVar2 + 7 & 0xfffffff8" (binary_expression "uVar2 + 7" identifier + number_literal) & number_literal) )))) ;) (expression_statement "puVar23 = auStack_80 + iVar7;" (assignment_expression "puVar23 = auStack_80 + iVar7" identifier = (binary_expression "auStack_80 + iVar7" identifier + identifier)) ;) (expression_statement "piVar4 = (int *)((int)apiStack_68 + iVar7);" (assignment_expression "piVar4 = (int *)((int)apiStack_68 + iVar7)" identifier = (cast_expression "(int *)((int)apiStack_68 + iVar7)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)apiStack_68 + iVar7)" ( (binary_expression "(int)apiStack_68 + iVar7" (cast_expression "(int)apiStack_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) }) (else_clause "else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }" else (compound_statement "{\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }" { (expression_statement "apiStack_68[2] = piVar5;" (assignment_expression "apiStack_68[2] = piVar5" (subscript_expression "apiStack_68[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apiStack_68[3] = piVar12;" (assignment_expression "apiStack_68[3] = piVar12" (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_58 = in_t1;" (assignment_expression "piStack_58 = in_t1" identifier = identifier) ;) (expression_statement "piStack_54 = piVar9;" (assignment_expression "piStack_54 = piVar9" identifier = identifier) ;) (expression_statement "piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);" (assignment_expression "piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2)" identifier = (cast_expression "(int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2)" (parenthesized_expression "(*(code *)apiStack_68[0][-0x1f54])" ( (pointer_expression "*(code *)apiStack_68[0][-0x1f54]" * (cast_expression "(code *)apiStack_68[0][-0x1f54]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "apiStack_68[0][-0x1f54]" (subscript_expression "apiStack_68[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "(&piStack_50,uVar2)" ( (pointer_expression "&piStack_50" & identifier) , identifier ))))) ;) (expression_statement "piVar12 = apiStack_68[3];" (assignment_expression "piVar12 = apiStack_68[3]" identifier = (subscript_expression "apiStack_68[3]" identifier [ number_literal ])) ;) (expression_statement "piVar9 = piStack_54;" (assignment_expression "piVar9 = piStack_54" identifier = identifier) ;) (expression_statement "piVar10 = apiStack_68[2];" (assignment_expression "piVar10 = apiStack_68[2]" identifier = (subscript_expression "apiStack_68[2]" identifier [ number_literal ])) ;) (expression_statement "in_t1 = piStack_58;" (assignment_expression "in_t1 = piStack_58" identifier = identifier) ;) }))) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" identifier = (subscript_expression "apiStack_68[0]" identifier [ number_literal ])) ;) (expression_statement "uVar26 = CONCAT44(piVar4,piVar12);" (assignment_expression "uVar26 = CONCAT44(piVar4,piVar12)" identifier = (call_expression "CONCAT44(piVar4,piVar12)" identifier (argument_list "(piVar4,piVar12)" ( identifier , identifier )))) ;) (expression_statement "iVar7 = (int)piVar10 + -1;" (assignment_expression "iVar7 = (int)piVar10 + -1" identifier = (binary_expression "(int)piVar10 + -1" (cast_expression "(int)piVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "param_3 = (int *)*piVar9;" (assignment_expression "param_3 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "piVar12 = piVar4;" (assignment_expression "piVar12 = piVar4" identifier = identifier) ;) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" identifier = identifier) ;) (if_statement "if (iVar7 == 0) goto LAB_000357c8;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_000357c8;" goto statement_identifier ;)) (do_statement "do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);" do (compound_statement "{\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      }" { (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "*piVar12 = (int)param_3;" (assignment_expression "*piVar12 = (int)param_3" (pointer_expression "*piVar12" * identifier) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "param_3 = (int *)*piVar9;" (assignment_expression "param_3 = (int *)*piVar9" identifier = (cast_expression "(int *)*piVar9" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar9" * identifier))) ;) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" identifier = (binary_expression "piVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (expression_statement "piVar4[(int)piVar5 + -1] = (int)param_3;" (assignment_expression "piVar4[(int)piVar5 + -1] = (int)param_3" (subscript_expression "piVar4[(int)piVar5 + -1]" identifier [ (binary_expression "(int)piVar5 + -1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ]) = (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier)) ;) })) }))) (expression_statement "piVar9 = (int *)((ulonglong)uVar26 >> 0x20);" (assignment_expression "piVar9 = (int *)((ulonglong)uVar26 >> 0x20)" identifier = (cast_expression "(int *)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) )))) ;) (expression_statement "piVar5 = (int *)uVar26;" (assignment_expression "piVar5 = (int *)uVar26" identifier = (cast_expression "(int *)uVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "piVar12 = (int *)(((int)piVar5 + 1) * 4);" (assignment_expression "piVar12 = (int *)(((int)piVar5 + 1) * 4)" identifier = (cast_expression "(int *)(((int)piVar5 + 1) * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(((int)piVar5 + 1) * 4)" ( (binary_expression "((int)piVar5 + 1) * 4" (parenthesized_expression "((int)piVar5 + 1)" ( (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) * number_literal) )))) ;) (if_statement "if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" if (parenthesized_expression "(unaff_s6 == in_t1)" ( (binary_expression "unaff_s6 == in_t1" identifier == identifier) )) (compound_statement "{\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" { (if_statement "if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }" if (parenthesized_expression "((int *)0x7f00 < piVar12)" ( (binary_expression "(int *)0x7f00 < piVar12" (cast_expression "(int *)0x7f00" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }" { (expression_statement "apiStack_68[2] = piVar10;" (assignment_expression "apiStack_68[2] = piVar10" (subscript_expression "apiStack_68[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apiStack_68[3] = piVar5;" (assignment_expression "apiStack_68[3] = piVar5" (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_58 = in_t1;" (assignment_expression "piStack_58 = in_t1" identifier = identifier) ;) (expression_statement "piStack_54 = piVar9;" (assignment_expression "piStack_54 = piVar9" identifier = identifier) ;) (expression_statement "param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);" (assignment_expression "param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" identifier = (cast_expression "(int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (parenthesized_expression "(*(code *)piVar21[-0x1f54])" ( (pointer_expression "*(code *)piVar21[-0x1f54]" * (cast_expression "(code *)piVar21[-0x1f54]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1f54]" identifier [ number_literal ]))) )) (argument_list "(&piStack_50,piVar12)" ( (pointer_expression "&piStack_50" & identifier) , identifier ))))) ;) (expression_statement "uVar26 = CONCAT44(piStack_54,apiStack_68[3]);" (assignment_expression "uVar26 = CONCAT44(piStack_54,apiStack_68[3])" identifier = (call_expression "CONCAT44(piStack_54,apiStack_68[3])" identifier (argument_list "(piStack_54,apiStack_68[3])" ( identifier , (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) )))) ;) (expression_statement "piVar10 = apiStack_68[2];" (assignment_expression "piVar10 = apiStack_68[2]" identifier = (subscript_expression "apiStack_68[2]" identifier [ number_literal ])) ;) (expression_statement "in_t1 = piStack_58;" (assignment_expression "in_t1 = piStack_58" identifier = identifier) ;) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" identifier = (subscript_expression "apiStack_68[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }" else (compound_statement "{\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }" { (expression_statement "iVar7 = -((int)piVar12 + 7U & 0xfffffff8);" (assignment_expression "iVar7 = -((int)piVar12 + 7U & 0xfffffff8)" identifier = (unary_expression "-((int)piVar12 + 7U & 0xfffffff8)" - (parenthesized_expression "((int)piVar12 + 7U & 0xfffffff8)" ( (binary_expression "(int)piVar12 + 7U & 0xfffffff8" (binary_expression "(int)piVar12 + 7U" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "param_2 = (int *)(puVar24 + iVar7 + 0x18);" (assignment_expression "param_2 = (int *)(puVar24 + iVar7 + 0x18)" identifier = (cast_expression "(int *)(puVar24 + iVar7 + 0x18)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar24 + iVar7 + 0x18)" ( (binary_expression "puVar24 + iVar7 + 0x18" (binary_expression "puVar24 + iVar7" identifier + identifier) + number_literal) )))) ;) (expression_statement "puVar24 = puVar24 + iVar7;" (assignment_expression "puVar24 = puVar24 + iVar7" identifier = (binary_expression "puVar24 + iVar7" identifier + identifier)) ;) }))) (expression_statement "param_3 = (int *)uVar26;" (assignment_expression "param_3 = (int *)uVar26" identifier = (cast_expression "(int *)uVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar20 = (code *)piVar21[-0x1ed2];" (assignment_expression "pcVar20 = (code *)piVar21[-0x1ed2]" identifier = (cast_expression "(code *)piVar21[-0x1ed2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1ed2]" identifier [ number_literal ]))) ;) (if_statement "if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }" if (parenthesized_expression "(piVar13 != (int *)0x0)" ( (binary_expression "piVar13 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }" { (expression_statement "iVar7 = (int)param_3 + -1;" (assignment_expression "iVar7 = (int)param_3 + -1" identifier = (binary_expression "(int)param_3 + -1" (cast_expression "(int)param_3" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "iVar11 = *in_t1;" (assignment_expression "iVar11 = *in_t1" identifier = (pointer_expression "*in_t1" * identifier)) ;) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" identifier = identifier) ;) (expression_statement "piVar5 = in_t1;" (assignment_expression "piVar5 = in_t1" identifier = identifier) ;) (if_statement "if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }" { (expression_statement "*param_2 = iVar11;" (assignment_expression "*param_2 = iVar11" (pointer_expression "*param_2" * identifier) = identifier) ;) (expression_statement "piVar12 = param_2;" (assignment_expression "piVar12 = param_2" identifier = identifier) ;) }) (else_clause "else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }" else (compound_statement "{\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }" { (do_statement "do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);" do (compound_statement "{\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        }" { (expression_statement "*piVar9 = iVar11;" (assignment_expression "*piVar9 = iVar11" (pointer_expression "*piVar9" * identifier) = identifier) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "iVar11 = piVar5[1];" (assignment_expression "iVar11 = piVar5[1]" identifier = (subscript_expression "piVar5[1]" identifier [ number_literal ])) ;) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" identifier = (binary_expression "piVar9 + 1" identifier + number_literal)) ;) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" identifier = (binary_expression "piVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) ;) (expression_statement "*(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;" (assignment_expression "*(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11" (pointer_expression "*(int *)((int)param_2 + (int)(piVar12 + -2))" * (cast_expression "(int *)((int)param_2 + (int)(piVar12 + -2))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)(piVar12 + -2))" ( (binary_expression "(int)param_2 + (int)(piVar12 + -2)" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(piVar12 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar12 + -2)" ( (binary_expression "piVar12 + -2" identifier + number_literal) )))) )))) = identifier) ;) (expression_statement "piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));" (assignment_expression "piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2))" identifier = (cast_expression "(int *)((int)param_2 + (int)(piVar12 + -2))" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_2 + (int)(piVar12 + -2))" ( (binary_expression "(int)param_2 + (int)(piVar12 + -2)" (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)(piVar12 + -2)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(piVar12 + -2)" ( (binary_expression "piVar12 + -2" identifier + number_literal) )))) )))) ;) }))) (expression_statement "pcVar20 = (code *)piVar21[-0x1ed2];" (assignment_expression "pcVar20 = (code *)piVar21[-0x1ed2]" identifier = (cast_expression "(code *)piVar21[-0x1ed2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1ed2]" identifier [ number_literal ]))) ;) })) (expression_statement "*(int **)(puVar24 + 0x14) = param_2;" (assignment_expression "*(int **)(puVar24 + 0x14) = param_2" (pointer_expression "*(int **)(puVar24 + 0x14)" * (cast_expression "(int **)(puVar24 + 0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x14)" ( (binary_expression "puVar24 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar24 + 0x10) = piVar10;" (assignment_expression "*(int **)(puVar24 + 0x10) = piVar10" (pointer_expression "*(int **)(puVar24 + 0x10)" * (cast_expression "(int **)(puVar24 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x10)" ( (binary_expression "puVar24 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));" (call_expression "(*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" ( identifier , identifier , identifier , (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) }) (else_clause "else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" else (compound_statement "{\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" { (if_statement "if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }" if (parenthesized_expression "((int *)0x7f00 < piVar12)" ( (binary_expression "(int *)0x7f00 < piVar12" (cast_expression "(int *)0x7f00" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (compound_statement "{\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }" { (expression_statement "apiStack_68[2] = piVar10;" (assignment_expression "apiStack_68[2] = piVar10" (subscript_expression "apiStack_68[2]" identifier [ number_literal ]) = identifier) ;) (expression_statement "apiStack_68[3] = piVar5;" (assignment_expression "apiStack_68[3] = piVar5" (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piStack_58 = in_t1;" (assignment_expression "piStack_58 = in_t1" identifier = identifier) ;) (expression_statement "piStack_54 = piVar9;" (assignment_expression "piStack_54 = piVar9" identifier = identifier) ;) (expression_statement "puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" identifier = (cast_expression "(undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (parenthesized_expression "(*(code *)piVar21[-0x1f54])" ( (pointer_expression "*(code *)piVar21[-0x1f54]" * (cast_expression "(code *)piVar21[-0x1f54]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1f54]" identifier [ number_literal ]))) )) (argument_list "(&piStack_50,piVar12)" ( (pointer_expression "&piStack_50" & identifier) , identifier ))))) ;) (expression_statement "uVar26 = CONCAT44(piStack_54,apiStack_68[3]);" (assignment_expression "uVar26 = CONCAT44(piStack_54,apiStack_68[3])" identifier = (call_expression "CONCAT44(piStack_54,apiStack_68[3])" identifier (argument_list "(piStack_54,apiStack_68[3])" ( identifier , (subscript_expression "apiStack_68[3]" identifier [ number_literal ]) )))) ;) (expression_statement "piVar10 = apiStack_68[2];" (assignment_expression "piVar10 = apiStack_68[2]" identifier = (subscript_expression "apiStack_68[2]" identifier [ number_literal ])) ;) (expression_statement "param_2 = piStack_58;" (assignment_expression "param_2 = piStack_58" identifier = identifier) ;) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" identifier = (subscript_expression "apiStack_68[0]" identifier [ number_literal ])) ;) }) (else_clause "else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }" else (compound_statement "{\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }" { (expression_statement "piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);" (assignment_expression "piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8)" identifier = (cast_expression "(int *)((int)piVar12 + 7U & 0xfffffff8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)piVar12 + 7U & 0xfffffff8)" ( (binary_expression "(int)piVar12 + 7U & 0xfffffff8" (binary_expression "(int)piVar12 + 7U" (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) & number_literal) )))) ;) (expression_statement "puVar3 = puVar24 + -(int)piVar12 + 0x18;" (assignment_expression "puVar3 = puVar24 + -(int)piVar12 + 0x18" identifier = (binary_expression "puVar24 + -(int)piVar12 + 0x18" (binary_expression "puVar24 + -(int)piVar12" identifier + (unary_expression "-(int)piVar12" - (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier))) + number_literal)) ;) (expression_statement "param_2 = in_t1;" (assignment_expression "param_2 = in_t1" identifier = identifier) ;) (expression_statement "puVar24 = puVar24 + -(int)piVar12;" (assignment_expression "puVar24 = puVar24 + -(int)piVar12" identifier = (binary_expression "puVar24 + -(int)piVar12" identifier + (unary_expression "-(int)piVar12" - (cast_expression "(int)piVar12" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) }))) (expression_statement "param_3 = (int *)uVar26;" (assignment_expression "param_3 = (int *)uVar26" identifier = (cast_expression "(int *)uVar26" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar20 = (code *)piVar21[-0x1ed2];" (assignment_expression "pcVar20 = (code *)piVar21[-0x1ed2]" identifier = (cast_expression "(code *)piVar21[-0x1ed2]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[-0x1ed2]" identifier [ number_literal ]))) ;) (expression_statement "*(undefined1 **)(puVar24 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar24 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar24 + 0x14)" * (cast_expression "(undefined1 **)(puVar24 + 0x14)" ( (type_descriptor "undefined1 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x14)" ( (binary_expression "puVar24 + 0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar24 + 0x10) = piVar10;" (assignment_expression "*(int **)(puVar24 + 0x10) = piVar10" (pointer_expression "*(int **)(puVar24 + 0x10)" * (cast_expression "(int **)(puVar24 + 0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar24 + 0x10)" ( (binary_expression "puVar24 + 0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "(*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));" (call_expression "(*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" ( identifier , identifier , identifier , (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" ( (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" ( (type_descriptor "ulonglong" type_identifier) ) identifier) >> number_literal) ))) ))) ;) }))) (if_statement "if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }" if (parenthesized_expression "((int)((uint)piVar13 ^ (uint)piVar15) < 0)" ( (binary_expression "(int)((uint)piVar13 ^ (uint)piVar15) < 0" (cast_expression "(int)((uint)piVar13 ^ (uint)piVar15)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((uint)piVar13 ^ (uint)piVar15)" ( (binary_expression "(uint)piVar13 ^ (uint)piVar15" (cast_expression "(uint)piVar13" ( (type_descriptor "uint" type_identifier) ) identifier) ^ (cast_expression "(uint)piVar15" ( (type_descriptor "uint" type_identifier) ) identifier)) ))) < number_literal) )) (compound_statement "{\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }" { (expression_statement "iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;" (assignment_expression "iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1" identifier = (binary_expression "(uint)(unaff_s6[iVar18] == 0) - iVar1" (call_expression "(uint)(unaff_s6[iVar18] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6[iVar18] == 0)" ( (binary_expression "unaff_s6[iVar18] == 0" (subscript_expression "unaff_s6[iVar18]" identifier [ identifier ]) == number_literal) ))) - identifier)) ;) }) (else_clause "else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }" else (compound_statement "{\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }" { (expression_statement "iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);" (assignment_expression "iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0)" identifier = (binary_expression "iVar1 - (uint)(unaff_s6[iVar18] == 0)" identifier - (call_expression "(uint)(unaff_s6[iVar18] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(unaff_s6[iVar18] == 0)" ( (binary_expression "unaff_s6[iVar18] == 0" (subscript_expression "unaff_s6[iVar18]" identifier [ identifier ]) == number_literal) ))))) ;) }))) (expression_statement "param_1[1] = iVar18;" (assignment_expression "param_1[1] = iVar18" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "piVar21 = piStack_50;" (assignment_expression "piVar21 = piStack_50" identifier = identifier) ;) (expression_statement "puVar3 = puVar24;" (assignment_expression "puVar3 = puVar24" identifier = identifier) ;) (if_statement "if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }" if (parenthesized_expression "(piStack_50 != (int *)0x0)" ( (binary_expression "piStack_50 != (int *)0x0" identifier != (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }" { (expression_statement "(*(code *)apiStack_68[0][-0x1e8a])();" (call_expression "(*(code *)apiStack_68[0][-0x1e8a])()" (parenthesized_expression "(*(code *)apiStack_68[0][-0x1e8a])" ( (pointer_expression "*(code *)apiStack_68[0][-0x1e8a]" * (cast_expression "(code *)apiStack_68[0][-0x1e8a]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "apiStack_68[0][-0x1e8a]" (subscript_expression "apiStack_68[0]" identifier [ number_literal ]) [ number_literal ]))) )) (argument_list "()" ( ))) ;) })) (labeled_statement "LAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }" statement_identifier : (if_statement "if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }" if (parenthesized_expression "(uStack_4c != *puVar16)" ( (binary_expression "uStack_4c != *puVar16" identifier != (pointer_expression "*puVar16" * identifier)) )) (compound_statement "{\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }" { (expression_statement "pcVar20 = (code *)apiStack_68[0][-0x1edc];" (assignment_expression "pcVar20 = (code *)apiStack_68[0][-0x1edc]" identifier = (cast_expression "(code *)apiStack_68[0][-0x1edc]" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "apiStack_68[0][-0x1edc]" (subscript_expression "apiStack_68[0]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "uVar25 = 0x358d8;" (assignment_expression "uVar25 = 0x358d8" identifier = number_literal) ;) (expression_statement "uVar2 = (*pcVar20)();" (assignment_expression "uVar2 = (*pcVar20)()" identifier = (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( )))) ;) (expression_statement "pcVar22 = pcVar20 + 0x6f760;" (assignment_expression "pcVar22 = pcVar20 + 0x6f760" identifier = (binary_expression "pcVar20 + 0x6f760" identifier + number_literal)) ;) (expression_statement "*(int **)(puVar3 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar3 + -0x10) = param_1" (pointer_expression "*(int **)(puVar3 + -0x10)" * (cast_expression "(int **)(puVar3 + -0x10)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x10)" ( (binary_expression "puVar3 + -0x10" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(code **)(puVar3 + -0x28) = pcVar22;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar22" (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(uint **)(puVar3 + -0xc) = puVar16;" (assignment_expression "*(uint **)(puVar3 + -0xc) = puVar16" (pointer_expression "*(uint **)(puVar3 + -0xc)" * (cast_expression "(uint **)(puVar3 + -0xc)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0xc)" ( (binary_expression "puVar3 + -0xc" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar3 + -0x14) = piVar15;" (assignment_expression "*(int **)(puVar3 + -0x14) = piVar15" (pointer_expression "*(int **)(puVar3 + -0x14)" * (cast_expression "(int **)(puVar3 + -0x14)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x14)" ( (binary_expression "puVar3 + -0x14" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar3 + -0x18) = piVar13;" (assignment_expression "*(int **)(puVar3 + -0x18) = piVar13" (pointer_expression "*(int **)(puVar3 + -0x18)" * (cast_expression "(int **)(puVar3 + -0x18)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x18)" ( (binary_expression "puVar3 + -0x18" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar3 + -4) = uVar25;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar25" (pointer_expression "*(undefined4 *)(puVar3 + -4)" * (cast_expression "(undefined4 *)(puVar3 + -4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -4)" ( (binary_expression "puVar3 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int *)(puVar3 + -8) = iVar1;" (assignment_expression "*(int *)(puVar3 + -8) = iVar1" (pointer_expression "*(int *)(puVar3 + -8)" * (cast_expression "(int *)(puVar3 + -8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + -8)" ( (binary_expression "puVar3 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(int **)(puVar3 + -0x1c) = piVar12;" (assignment_expression "*(int **)(puVar3 + -0x1c) = piVar12" (pointer_expression "*(int **)(puVar3 + -0x1c)" * (cast_expression "(int **)(puVar3 + -0x1c)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x1c)" ( (binary_expression "puVar3 + -0x1c" identifier + number_literal) )))) = identifier) ;) (expression_statement "iVar18 = param_2[1];" (assignment_expression "iVar18 = param_2[1]" identifier = (subscript_expression "param_2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar14 = (uint)param_3 >> 5;" (assignment_expression "uVar14 = (uint)param_3 >> 5" identifier = (binary_expression "(uint)param_3 >> 5" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) >> number_literal)) ;) (expression_statement "iVar1 = iVar18;" (assignment_expression "iVar1 = iVar18" identifier = identifier) ;) (if_statement "if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }" if (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar1 = -iVar18;\n    }" { (expression_statement "iVar1 = -iVar18;" (assignment_expression "iVar1 = -iVar18" identifier = (unary_expression "-iVar18" - identifier)) ;) })) (expression_statement "iVar1 = iVar1 - uVar14;" (assignment_expression "iVar1 = iVar1 - uVar14" identifier = (binary_expression "iVar1 - uVar14" identifier - identifier)) ;) (if_statement "if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }" if (parenthesized_expression "(iVar1 < 1)" ( (binary_expression "iVar1 < 1" identifier < number_literal) )) (compound_statement "{\n      iVar1 = 0;\n    }" { (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }" else (compound_statement "{\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }" { (expression_statement "pcVar20 = *(code **)(pcVar20 + 0x67ce0);" (assignment_expression "pcVar20 = *(code **)(pcVar20 + 0x67ce0)" identifier = (pointer_expression "*(code **)(pcVar20 + 0x67ce0)" * (cast_expression "(code **)(pcVar20 + 0x67ce0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x67ce0)" ( (binary_expression "pcVar20 + 0x67ce0" identifier + number_literal) ))))) ;) (if_statement "if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }" if (parenthesized_expression "(*piVar21 < iVar1)" ( (binary_expression "*piVar21 < iVar1" (pointer_expression "*piVar21" * identifier) < identifier) )) (compound_statement "{\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }" { (expression_statement "*(int **)(puVar3 + 8) = param_3;" (assignment_expression "*(int **)(puVar3 + 8) = param_3" (pointer_expression "*(int **)(puVar3 + 8)" * (cast_expression "(int **)(puVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);" (assignment_expression "puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1)" identifier = (cast_expression "(undefined4 *)(*pcVar20)(piVar21,iVar1)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(*pcVar20)(piVar21,iVar1)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(piVar21,iVar1)" ( identifier , identifier ))))) ;) (expression_statement "pcVar22 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar22 = *(code **)(puVar3 + -0x28)" identifier = (pointer_expression "*(code **)(puVar3 + -0x28)" * (cast_expression "(code **)(puVar3 + -0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + -0x28)" ( (binary_expression "puVar3 + -0x28" identifier + number_literal) ))))) ;) (expression_statement "param_3 = *(int **)(puVar3 + 8);" (assignment_expression "param_3 = *(int **)(puVar3 + 8)" identifier = (pointer_expression "*(int **)(puVar3 + 8)" * (cast_expression "(int **)(puVar3 + 8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 8)" ( (binary_expression "puVar3 + 8" identifier + number_literal) ))))) ;) }) (else_clause "else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }" else (compound_statement "{\n        puVar17 = (undefined4 *)piVar21[2];\n      }" { (expression_statement "puVar17 = (undefined4 *)piVar21[2];" (assignment_expression "puVar17 = (undefined4 *)piVar21[2]" identifier = (cast_expression "(undefined4 *)piVar21[2]" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (subscript_expression "piVar21[2]" identifier [ number_literal ]))) ;) }))) (expression_statement "puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);" (assignment_expression "puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4)" identifier = (cast_expression "(undefined4 *)(param_2[2] + uVar14 * 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2[2] + uVar14 * 4)" ( (binary_expression "param_2[2] + uVar14 * 4" (subscript_expression "param_2[2]" identifier [ number_literal ]) + (binary_expression "uVar14 * 4" identifier * number_literal)) )))) ;) (if_statement "if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }" if (parenthesized_expression "(((uint)param_3 & 0x1f) == 0)" ( (binary_expression "((uint)param_3 & 0x1f) == 0" (parenthesized_expression "((uint)param_3 & 0x1f)" ( (binary_expression "(uint)param_3 & 0x1f" (cast_expression "(uint)param_3" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }" { (expression_statement "uVar2 = iVar1 - 1;" (assignment_expression "uVar2 = iVar1 - 1" identifier = (binary_expression "iVar1 - 1" identifier - number_literal)) ;) (expression_statement "uVar25 = *puVar8;" (assignment_expression "uVar25 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" identifier = identifier) ;) (if_statement "if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }" if (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) (compound_statement "{\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }" { (do_statement "do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);" do (compound_statement "{\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          }" { (expression_statement "puVar8 = puVar8 + 1;" (assignment_expression "puVar8 = puVar8 + 1" identifier = (binary_expression "puVar8 + 1" identifier + number_literal)) ;) (expression_statement "*puVar6 = uVar25;" (assignment_expression "*puVar6 = uVar25" (pointer_expression "*puVar6" * identifier) = identifier) ;) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" identifier = (binary_expression "uVar2 - 1" identifier - number_literal)) ;) (expression_statement "uVar25 = *puVar8;" (assignment_expression "uVar25 = *puVar8" identifier = (pointer_expression "*puVar8" * identifier)) ;) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" identifier = (binary_expression "puVar6 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar2 != 0)" ( (binary_expression "uVar2 != 0" identifier != number_literal) )) ;) (expression_statement "uVar2 = iVar1 * 4 - 4;" (assignment_expression "uVar2 = iVar1 * 4 - 4" identifier = (binary_expression "iVar1 * 4 - 4" (binary_expression "iVar1 * 4" identifier * number_literal) - number_literal)) ;) (expression_statement "puVar17 = puVar17 + iVar1 + -1;" (assignment_expression "puVar17 = puVar17 + iVar1 + -1" identifier = (binary_expression "puVar17 + iVar1 + -1" (binary_expression "puVar17 + iVar1" identifier + identifier) + number_literal)) ;) })) (expression_statement "*puVar17 = uVar25;" (assignment_expression "*puVar17 = uVar25" (pointer_expression "*puVar17" * identifier) = identifier) ;) }) (else_clause "else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }" else (compound_statement "{\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }" { (expression_statement "(**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);" (call_expression "(**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1)" (parenthesized_expression "(**(code **)(pcVar22 + -0x7ae0))" ( (pointer_expression "**(code **)(pcVar22 + -0x7ae0)" * (pointer_expression "*(code **)(pcVar22 + -0x7ae0)" * (cast_expression "(code **)(pcVar22 + -0x7ae0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + -0x7ae0)" ( (binary_expression "pcVar22 + -0x7ae0" identifier + number_literal) ))))) )) (argument_list "(puVar17,puVar8,iVar1)" ( identifier , identifier , identifier ))) ;) (expression_statement "uVar2 = (uint)(puVar17[iVar1 + -1] == 0);" (assignment_expression "uVar2 = (uint)(puVar17[iVar1 + -1] == 0)" identifier = (call_expression "(uint)(puVar17[iVar1 + -1] == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(puVar17[iVar1 + -1] == 0)" ( (binary_expression "puVar17[iVar1 + -1] == 0" (subscript_expression "puVar17[iVar1 + -1]" identifier [ (binary_expression "iVar1 + -1" identifier + number_literal) ]) == number_literal) )))) ;) (expression_statement "iVar1 = iVar1 - uVar2;" (assignment_expression "iVar1 = iVar1 - uVar2" identifier = (binary_expression "iVar1 - uVar2" identifier - identifier)) ;) }))) }))) (if_statement "if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }" if (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) )) (compound_statement "{\n      iVar1 = -iVar1;\n    }" { (expression_statement "iVar1 = -iVar1;" (assignment_expression "iVar1 = -iVar1" identifier = (unary_expression "-iVar1" - identifier)) ;) })) (expression_statement "piVar21[1] = iVar1;" (assignment_expression "piVar21[1] = iVar1" (subscript_expression "piVar21[1]" identifier [ number_literal ]) = identifier) ;) (return_statement "return uVar2;" return identifier ;) }))) (return_statement "return *puVar16;" return (pointer_expression "*puVar16" * identifier) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 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 (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , (unary_expression - IDENT) , IDENT )))) ;) (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (return_statement return IDENT ;) })) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) 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)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) * 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 *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( (pointer_expression & IDENT) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) & LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT))) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (unary_expression - (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , IDENT , (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT) ))) ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) ^ (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ IDENT ]) == LIT) ))) - IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ IDENT ]) == LIT) ))))) ;) }))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) )) (argument_list ( ))) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + (binary_expression IDENT * LIT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT * LIT) - LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (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 , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT + LIT) ]) == LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }))) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (return_statement return IDENT ;) }))) (return_statement return (pointer_expression * IDENT) ;) })))
(function_definition "uint __gmpz_tdiv_ui(int *param_1,int *param_2,int *param_3)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  int *piVar10;\n  int *in_t1;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int *unaff_s6;\n  int iVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int *piVar21;\n  code *pcVar22;\n  undefined1 *puVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  undefined8 uVar26;\n  undefined1 auStack_80 [24];\n  int *apiStack_68 [4];\n  int *piStack_58;\n  int *piStack_54;\n  int *piStack_50;\n  uint uStack_4c;\n  \n  if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    \n                    \n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }\n  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;\n  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n  piVar21 = (int *)(puVar19 + 0x6fad0);\n  puVar24 = auStack_80;\n  puVar3 = auStack_80;\n  puVar23 = auStack_80;\n  puVar16 = *(uint **)(puVar19 + 0x67fd0);\n  piVar13 = (int *)param_2[1];\n  uStack_4c = *puVar16;\n  piVar15 = (int *)param_3[1];\n  piVar12 = (int *)-(int)piVar13;\n  if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }\n  piVar10 = piVar15;\n  if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }\n  iVar18 = (int)piVar12 - (int)piVar10;\n  iVar1 = iVar18 + 1;\n  apiStack_68[0] = piVar21;\n  if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }\n  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);\n  piVar5 = (int *)uVar26;\n  piVar12 = (int *)(((int)piVar5 + 1) * 4);\n  if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }\n  param_1[1] = iVar18;\n  piVar21 = piStack_50;\n  puVar3 = puVar24;\n  if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }\nLAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }\n  return *puVar16;\n}" (type_identifier "uint") (function_declarator "__gmpz_tdiv_ui(int *param_1,int *param_2,int *param_3)" (identifier "__gmpz_tdiv_ui") (parameter_list "(int *param_1,int *param_2,int *param_3)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "int *param_2" (primitive_type "int") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "int *param_3" (primitive_type "int") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined1 *puVar3;\n  int *piVar4;\n  int *piVar5;\n  undefined4 *puVar6;\n  int iVar7;\n  undefined4 *puVar8;\n  int *piVar9;\n  int *piVar10;\n  int *in_t1;\n  int iVar11;\n  int *piVar12;\n  int *piVar13;\n  uint uVar14;\n  int *piVar15;\n  uint *puVar16;\n  undefined4 *puVar17;\n  int *unaff_s6;\n  int iVar18;\n  undefined *puVar19;\n  code *pcVar20;\n  int *piVar21;\n  code *pcVar22;\n  undefined1 *puVar23;\n  undefined1 *puVar24;\n  undefined4 uVar25;\n  undefined8 uVar26;\n  undefined1 auStack_80 [24];\n  int *apiStack_68 [4];\n  int *piStack_58;\n  int *piStack_54;\n  int *piStack_50;\n  uint uStack_4c;\n  \n  if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    \n                    \n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }\n  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;\n  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();\n  piVar21 = (int *)(puVar19 + 0x6fad0);\n  puVar24 = auStack_80;\n  puVar3 = auStack_80;\n  puVar23 = auStack_80;\n  puVar16 = *(uint **)(puVar19 + 0x67fd0);\n  piVar13 = (int *)param_2[1];\n  uStack_4c = *puVar16;\n  piVar15 = (int *)param_3[1];\n  piVar12 = (int *)-(int)piVar13;\n  if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }\n  piVar10 = piVar15;\n  if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }\n  iVar18 = (int)piVar12 - (int)piVar10;\n  iVar1 = iVar18 + 1;\n  apiStack_68[0] = piVar21;\n  if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }\n  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);\n  piVar5 = (int *)uVar26;\n  piVar12 = (int *)(((int)piVar5 + 1) * 4);\n  if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }\n  param_1[1] = iVar18;\n  piVar21 = piStack_50;\n  puVar3 = puVar24;\n  if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }\nLAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }\n  return *puVar16;\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined1 *puVar3;" (type_identifier "undefined1") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int *piVar4;" (primitive_type "int") (pointer_declarator "*piVar4" (* "*") (identifier "piVar4")) (; ";")) (declaration "int *piVar5;" (primitive_type "int") (pointer_declarator "*piVar5" (* "*") (identifier "piVar5")) (; ";")) (declaration "undefined4 *puVar6;" (type_identifier "undefined4") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "undefined4 *puVar8;" (type_identifier "undefined4") (pointer_declarator "*puVar8" (* "*") (identifier "puVar8")) (; ";")) (declaration "int *piVar9;" (primitive_type "int") (pointer_declarator "*piVar9" (* "*") (identifier "piVar9")) (; ";")) (declaration "int *piVar10;" (primitive_type "int") (pointer_declarator "*piVar10" (* "*") (identifier "piVar10")) (; ";")) (declaration "int *in_t1;" (primitive_type "int") (pointer_declarator "*in_t1" (* "*") (identifier "in_t1")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "int *piVar12;" (primitive_type "int") (pointer_declarator "*piVar12" (* "*") (identifier "piVar12")) (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "int *piVar15;" (primitive_type "int") (pointer_declarator "*piVar15" (* "*") (identifier "piVar15")) (; ";")) (declaration "uint *puVar16;" (type_identifier "uint") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "undefined4 *puVar17;" (type_identifier "undefined4") (pointer_declarator "*puVar17" (* "*") (identifier "puVar17")) (; ";")) (declaration "int *unaff_s6;" (primitive_type "int") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "code *pcVar20;" (type_identifier "code") (pointer_declarator "*pcVar20" (* "*") (identifier "pcVar20")) (; ";")) (declaration "int *piVar21;" (primitive_type "int") (pointer_declarator "*piVar21" (* "*") (identifier "piVar21")) (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "undefined1 *puVar23;" (type_identifier "undefined1") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "undefined1 *puVar24;" (type_identifier "undefined1") (pointer_declarator "*puVar24" (* "*") (identifier "puVar24")) (; ";")) (declaration "undefined4 uVar25;" (type_identifier "undefined4") (identifier "uVar25") (; ";")) (declaration "undefined8 uVar26;" (type_identifier "undefined8") (identifier "uVar26") (; ";")) (declaration "undefined1 auStack_80 [24];" (type_identifier "undefined1") (array_declarator "auStack_80 [24]" (identifier "auStack_80") ([ "[") (number_literal "24") (] "]")) (; ";")) (declaration "int *apiStack_68 [4];" (primitive_type "int") (pointer_declarator "*apiStack_68 [4]" (* "*") (array_declarator "apiStack_68 [4]" (identifier "apiStack_68") ([ "[") (number_literal "4") (] "]"))) (; ";")) (declaration "int *piStack_58;" (primitive_type "int") (pointer_declarator "*piStack_58" (* "*") (identifier "piStack_58")) (; ";")) (declaration "int *piStack_54;" (primitive_type "int") (pointer_declarator "*piStack_54" (* "*") (identifier "piStack_54")) (; ";")) (declaration "int *piStack_50;" (primitive_type "int") (pointer_declarator "*piStack_50" (* "*") (identifier "piStack_50")) (; ";")) (declaration "uint uStack_4c;" (type_identifier "uint") (identifier "uStack_4c") (; ";")) (if_statement "if (param_2 != (int *)0x0) {\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    \n                    \n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(param_2 != (int *)0x0)" (( "(") (binary_expression "param_2 != (int *)0x0" (identifier "param_2") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    iVar1 = param_1[1];\n    if (iVar1 == 0) {\n      return 0;\n    }\n    if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }\n                    \n                    \n    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);\n    return uVar2;\n  }" ({ "{") (expression_statement "iVar1 = param_1[1];" (assignment_expression "iVar1 = param_1[1]" (identifier "iVar1") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar1 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar1 == 0)" (( "(") (binary_expression "iVar1 == 0" (identifier "iVar1") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (iVar1 < 0) {\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }" (if "if") (parenthesized_expression "(iVar1 < 0)" (( "(") (binary_expression "iVar1 < 0" (identifier "iVar1") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n                    \n                    \n      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);\n      return uVar2;\n    }" ({ "{") (expression_statement "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);" (assignment_expression "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2)" (parenthesized_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mod_1_0009d4c0" (* "*") (cast_expression "(code *)PTR___gmpn_mod_1_0009d4c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mod_1_0009d4c0"))) () ")")) (argument_list "(param_1[2],-iVar1,param_2)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (unary_expression "-iVar1" (- "-") (identifier "iVar1")) (, ",") (identifier "param_2") () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);" (assignment_expression "uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1)" (identifier "uVar2") (= "=") (call_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1)" (parenthesized_expression "(*(code *)PTR___gmpn_mod_1_0009d4c0)" (( "(") (pointer_expression "*(code *)PTR___gmpn_mod_1_0009d4c0" (* "*") (cast_expression "(code *)PTR___gmpn_mod_1_0009d4c0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmpn_mod_1_0009d4c0"))) () ")")) (argument_list "(param_1[2],iVar1)" (( "(") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")) (, ",") (identifier "iVar1") () ")")))) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}"))) (expression_statement "puVar19 = PTR___gmp_divide_by_zero_0009d5e0;" (assignment_expression "puVar19 = PTR___gmp_divide_by_zero_0009d5e0" (identifier "puVar19") (= "=") (identifier "PTR___gmp_divide_by_zero_0009d5e0")) (; ";")) (expression_statement "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)();" (call_expression "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)()" (parenthesized_expression "(*(code *)PTR___gmp_divide_by_zero_0009d5e0)" (( "(") (pointer_expression "*(code *)PTR___gmp_divide_by_zero_0009d5e0" (* "*") (cast_expression "(code *)PTR___gmp_divide_by_zero_0009d5e0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___gmp_divide_by_zero_0009d5e0"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "piVar21 = (int *)(puVar19 + 0x6fad0);" (assignment_expression "piVar21 = (int *)(puVar19 + 0x6fad0)" (identifier "piVar21") (= "=") (cast_expression "(int *)(puVar19 + 0x6fad0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x6fad0)" (( "(") (binary_expression "puVar19 + 0x6fad0" (identifier "puVar19") (+ "+") (number_literal "0x6fad0")) () ")")))) (; ";")) (expression_statement "puVar24 = auStack_80;" (assignment_expression "puVar24 = auStack_80" (identifier "puVar24") (= "=") (identifier "auStack_80")) (; ";")) (expression_statement "puVar3 = auStack_80;" (assignment_expression "puVar3 = auStack_80" (identifier "puVar3") (= "=") (identifier "auStack_80")) (; ";")) (expression_statement "puVar23 = auStack_80;" (assignment_expression "puVar23 = auStack_80" (identifier "puVar23") (= "=") (identifier "auStack_80")) (; ";")) (expression_statement "puVar16 = *(uint **)(puVar19 + 0x67fd0);" (assignment_expression "puVar16 = *(uint **)(puVar19 + 0x67fd0)" (identifier "puVar16") (= "=") (pointer_expression "*(uint **)(puVar19 + 0x67fd0)" (* "*") (cast_expression "(uint **)(puVar19 + 0x67fd0)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x67fd0)" (( "(") (binary_expression "puVar19 + 0x67fd0" (identifier "puVar19") (+ "+") (number_literal "0x67fd0")) () ")"))))) (; ";")) (expression_statement "piVar13 = (int *)param_2[1];" (assignment_expression "piVar13 = (int *)param_2[1]" (identifier "piVar13") (= "=") (cast_expression "(int *)param_2[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "uStack_4c = *puVar16;" (assignment_expression "uStack_4c = *puVar16" (identifier "uStack_4c") (= "=") (pointer_expression "*puVar16" (* "*") (identifier "puVar16"))) (; ";")) (expression_statement "piVar15 = (int *)param_3[1];" (assignment_expression "piVar15 = (int *)param_3[1]" (identifier "piVar15") (= "=") (cast_expression "(int *)param_3[1]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[1]" (identifier "param_3") ([ "[") (number_literal "1") (] "]")))) (; ";")) (expression_statement "piVar12 = (int *)-(int)piVar13;" (assignment_expression "piVar12 = (int *)-(int)piVar13" (identifier "piVar12") (= "=") (cast_expression "(int *)-(int)piVar13" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)piVar13" (- "-") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))))) (; ";")) (if_statement "if (-1 < (int)piVar13) {\n    piVar12 = piVar13;\n  }" (if "if") (parenthesized_expression "(-1 < (int)piVar13)" (( "(") (binary_expression "-1 < (int)piVar13" (number_literal "-1") (< "<") (cast_expression "(int)piVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar13"))) () ")")) (compound_statement "{\n    piVar12 = piVar13;\n  }" ({ "{") (expression_statement "piVar12 = piVar13;" (assignment_expression "piVar12 = piVar13" (identifier "piVar12") (= "=") (identifier "piVar13")) (; ";")) (} "}"))) (expression_statement "piVar10 = piVar15;" (assignment_expression "piVar10 = piVar15" (identifier "piVar10") (= "=") (identifier "piVar15")) (; ";")) (if_statement "if ((int)piVar15 < 0) {\n    piVar10 = (int *)-(int)piVar15;\n  }" (if "if") (parenthesized_expression "((int)piVar15 < 0)" (( "(") (binary_expression "(int)piVar15 < 0" (cast_expression "(int)piVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar15")) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    piVar10 = (int *)-(int)piVar15;\n  }" ({ "{") (expression_statement "piVar10 = (int *)-(int)piVar15;" (assignment_expression "piVar10 = (int *)-(int)piVar15" (identifier "piVar10") (= "=") (cast_expression "(int *)-(int)piVar15" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (unary_expression "-(int)piVar15" (- "-") (cast_expression "(int)piVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar15"))))) (; ";")) (} "}"))) (expression_statement "iVar18 = (int)piVar12 - (int)piVar10;" (assignment_expression "iVar18 = (int)piVar12 - (int)piVar10" (identifier "iVar18") (= "=") (binary_expression "(int)piVar12 - (int)piVar10" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (- "-") (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")))) (; ";")) (expression_statement "iVar1 = iVar18 + 1;" (assignment_expression "iVar1 = iVar18 + 1" (identifier "iVar1") (= "=") (binary_expression "iVar18 + 1" (identifier "iVar18") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "apiStack_68[0] = piVar21;" (assignment_expression "apiStack_68[0] = piVar21" (subscript_expression "apiStack_68[0]" (identifier "apiStack_68") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "piVar21")) (; ";")) (if_statement "if (piVar15 == (int *)0x0) {\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }\n  else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }" (if "if") (parenthesized_expression "(piVar15 == (int *)0x0)" (( "(") (binary_expression "piVar15 == (int *)0x0" (identifier "piVar15") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    uVar26 = (**(code **)(puVar19 + 0x68070))();\nLAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;\n  }" ({ "{") (expression_statement "uVar26 = (**(code **)(puVar19 + 0x68070))();" (assignment_expression "uVar26 = (**(code **)(puVar19 + 0x68070))()" (identifier "uVar26") (= "=") (call_expression "(**(code **)(puVar19 + 0x68070))()" (parenthesized_expression "(**(code **)(puVar19 + 0x68070))" (( "(") (pointer_expression "**(code **)(puVar19 + 0x68070)" (* "*") (pointer_expression "*(code **)(puVar19 + 0x68070)" (* "*") (cast_expression "(code **)(puVar19 + 0x68070)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x68070)" (( "(") (binary_expression "puVar19 + 0x68070" (identifier "puVar19") (+ "+") (number_literal "0x68070")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (labeled_statement "LAB_000357c8:\n    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;" (statement_identifier "LAB_000357c8") (: ":") (expression_statement "*(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;" (assignment_expression "*(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3" (pointer_expression "*(int *)((ulonglong)uVar26 >> 0x20)" (* "*") (cast_expression "(int *)((ulonglong)uVar26 >> 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")")))) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";"))) (} "}")) (else_clause "else {\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }" (else "else") (compound_statement "{\n    if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }\n    if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }\n    piVar9 = (int *)param_3[2];\n    uVar26 = CONCAT44(piVar9,piVar12);\n    in_t1 = (int *)param_2[2];\n    piStack_50 = (int *)0x0;\n    piVar10 = piVar5;\n    piVar21 = apiStack_68[0];\n    puVar24 = auStack_80;\n    if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }\n  }" ({ "{") (if_statement "if (iVar1 < 1) {\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }" (if "if") (parenthesized_expression "(iVar1 < 1)" (( "(") (binary_expression "iVar1 < 1" (identifier "iVar1") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      param_1[1] = 0;\n      piVar21 = param_1;\n      piVar12 = param_2;\n      goto LAB_00035690;\n    }" ({ "{") (expression_statement "param_1[1] = 0;" (assignment_expression "param_1[1] = 0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "piVar21 = param_1;" (assignment_expression "piVar21 = param_1" (identifier "piVar21") (= "=") (identifier "param_1")) (; ";")) (expression_statement "piVar12 = param_2;" (assignment_expression "piVar12 = param_2" (identifier "piVar12") (= "=") (identifier "param_2")) (; ";")) (goto_statement "goto LAB_00035690;" (goto "goto") (statement_identifier "LAB_00035690") (; ";")) (} "}"))) (if_statement "if (*param_1 < iVar1) {\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }\n    else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }" (if "if") (parenthesized_expression "(*param_1 < iVar1)" (( "(") (binary_expression "*param_1 < iVar1" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n      apiStack_68[3] = piVar10;\n      piStack_58 = piVar12;\n      piStack_54 = param_3;\n      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);\n      piVar12 = piStack_58;\n      param_3 = piStack_54;\n      piVar5 = apiStack_68[3];\n    }" ({ "{") (expression_statement "apiStack_68[3] = piVar10;" (assignment_expression "apiStack_68[3] = piVar10" (subscript_expression "apiStack_68[3]" (identifier "apiStack_68") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "piStack_58 = piVar12;" (assignment_expression "piStack_58 = piVar12" (identifier "piStack_58") (= "=") (identifier "piVar12")) (; ";")) (expression_statement "piStack_54 = param_3;" (assignment_expression "piStack_54 = param_3" (identifier "piStack_54") (= "=") (identifier "param_3")) (; ";")) (expression_statement "unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);" (assignment_expression "unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1)" (identifier "unaff_s6") (= "=") (cast_expression "(int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(**(code **)(puVar19 + 0x68050))(param_1,iVar1)" (parenthesized_expression "(**(code **)(puVar19 + 0x68050))" (( "(") (pointer_expression "**(code **)(puVar19 + 0x68050)" (* "*") (pointer_expression "*(code **)(puVar19 + 0x68050)" (* "*") (cast_expression "(code **)(puVar19 + 0x68050)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x68050)" (( "(") (binary_expression "puVar19 + 0x68050" (identifier "puVar19") (+ "+") (number_literal "0x68050")) () ")"))))) () ")")) (argument_list "(param_1,iVar1)" (( "(") (identifier "param_1") (, ",") (identifier "iVar1") () ")"))))) (; ";")) (expression_statement "piVar12 = piStack_58;" (assignment_expression "piVar12 = piStack_58" (identifier "piVar12") (= "=") (identifier "piStack_58")) (; ";")) (expression_statement "param_3 = piStack_54;" (assignment_expression "param_3 = piStack_54" (identifier "param_3") (= "=") (identifier "piStack_54")) (; ";")) (expression_statement "piVar5 = apiStack_68[3];" (assignment_expression "piVar5 = apiStack_68[3]" (identifier "piVar5") (= "=") (subscript_expression "apiStack_68[3]" (identifier "apiStack_68") ([ "[") (number_literal "3") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }" (else "else") (compound_statement "{\n      unaff_s6 = (int *)param_1[2];\n      piVar5 = piVar10;\n    }" ({ "{") (expression_statement "unaff_s6 = (int *)param_1[2];" (assignment_expression "unaff_s6 = (int *)param_1[2]" (identifier "unaff_s6") (= "=") (cast_expression "(int *)param_1[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[2]" (identifier "param_1") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "piVar5 = piVar10;" (assignment_expression "piVar5 = piVar10" (identifier "piVar5") (= "=") (identifier "piVar10")) (; ";")) (} "}")))) (expression_statement "piVar9 = (int *)param_3[2];" (assignment_expression "piVar9 = (int *)param_3[2]" (identifier "piVar9") (= "=") (cast_expression "(int *)param_3[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_3[2]" (identifier "param_3") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "uVar26 = CONCAT44(piVar9,piVar12);" (assignment_expression "uVar26 = CONCAT44(piVar9,piVar12)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(piVar9,piVar12)" (identifier "CONCAT44") (argument_list "(piVar9,piVar12)" (( "(") (identifier "piVar9") (, ",") (identifier "piVar12") () ")")))) (; ";")) (expression_statement "in_t1 = (int *)param_2[2];" (assignment_expression "in_t1 = (int *)param_2[2]" (identifier "in_t1") (= "=") (cast_expression "(int *)param_2[2]" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")))) (; ";")) (expression_statement "piStack_50 = (int *)0x0;" (assignment_expression "piStack_50 = (int *)0x0" (identifier "piStack_50") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "piVar10 = piVar5;" (assignment_expression "piVar10 = piVar5" (identifier "piVar10") (= "=") (identifier "piVar5")) (; ";")) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" (identifier "piVar21") (= "=") (subscript_expression "apiStack_68[0]" (identifier "apiStack_68") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "puVar24 = auStack_80;" (assignment_expression "puVar24 = auStack_80" (identifier "puVar24") (= "=") (identifier "auStack_80")) (; ";")) (if_statement "if (unaff_s6 == piVar9) {\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }" (if "if") (parenthesized_expression "(unaff_s6 == piVar9)" (( "(") (binary_expression "unaff_s6 == piVar9" (identifier "unaff_s6") (== "==") (identifier "piVar9")) () ")")) (compound_statement "{\n      uVar2 = (int)piVar5 * 4;\n      if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }\n      piVar21 = apiStack_68[0];\n      uVar26 = CONCAT44(piVar4,piVar12);\n      iVar7 = (int)piVar10 + -1;\n      param_3 = (int *)*piVar9;\n      piVar12 = piVar4;\n      puVar24 = puVar23;\n      if (iVar7 == 0) goto LAB_000357c8;\n      do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);\n      piVar4[(int)piVar5 + -1] = (int)param_3;\n    }" ({ "{") (expression_statement "uVar2 = (int)piVar5 * 4;" (assignment_expression "uVar2 = (int)piVar5 * 4" (identifier "uVar2") (= "=") (binary_expression "(int)piVar5 * 4" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (* "*") (number_literal "4"))) (; ";")) (if_statement "if (uVar2 < 0x7f01) {\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }\n      else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }" (if "if") (parenthesized_expression "(uVar2 < 0x7f01)" (( "(") (binary_expression "uVar2 < 0x7f01" (identifier "uVar2") (< "<") (number_literal "0x7f01")) () ")")) (compound_statement "{\n        iVar7 = -(uVar2 + 7 & 0xfffffff8);\n        puVar23 = auStack_80 + iVar7;\n        piVar4 = (int *)((int)apiStack_68 + iVar7);\n      }" ({ "{") (expression_statement "iVar7 = -(uVar2 + 7 & 0xfffffff8);" (assignment_expression "iVar7 = -(uVar2 + 7 & 0xfffffff8)" (identifier "iVar7") (= "=") (unary_expression "-(uVar2 + 7 & 0xfffffff8)" (- "-") (parenthesized_expression "(uVar2 + 7 & 0xfffffff8)" (( "(") (binary_expression "uVar2 + 7 & 0xfffffff8" (binary_expression "uVar2 + 7" (identifier "uVar2") (+ "+") (number_literal "7")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar23 = auStack_80 + iVar7;" (assignment_expression "puVar23 = auStack_80 + iVar7" (identifier "puVar23") (= "=") (binary_expression "auStack_80 + iVar7" (identifier "auStack_80") (+ "+") (identifier "iVar7"))) (; ";")) (expression_statement "piVar4 = (int *)((int)apiStack_68 + iVar7);" (assignment_expression "piVar4 = (int *)((int)apiStack_68 + iVar7)" (identifier "piVar4") (= "=") (cast_expression "(int *)((int)apiStack_68 + iVar7)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)apiStack_68 + iVar7)" (( "(") (binary_expression "(int)apiStack_68 + iVar7" (cast_expression "(int)apiStack_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "apiStack_68")) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }" (else "else") (compound_statement "{\n        apiStack_68[2] = piVar5;\n        apiStack_68[3] = piVar12;\n        piStack_58 = in_t1;\n        piStack_54 = piVar9;\n        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);\n        piVar12 = apiStack_68[3];\n        piVar9 = piStack_54;\n        piVar10 = apiStack_68[2];\n        in_t1 = piStack_58;\n      }" ({ "{") (expression_statement "apiStack_68[2] = piVar5;" (assignment_expression "apiStack_68[2] = piVar5" (subscript_expression "apiStack_68[2]" (identifier "apiStack_68") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "piVar5")) (; ";")) (expression_statement "apiStack_68[3] = piVar12;" (assignment_expression "apiStack_68[3] = piVar12" (subscript_expression "apiStack_68[3]" (identifier "apiStack_68") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "piStack_58 = in_t1;" (assignment_expression "piStack_58 = in_t1" (identifier "piStack_58") (= "=") (identifier "in_t1")) (; ";")) (expression_statement "piStack_54 = piVar9;" (assignment_expression "piStack_54 = piVar9" (identifier "piStack_54") (= "=") (identifier "piVar9")) (; ";")) (expression_statement "piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);" (assignment_expression "piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2)" (identifier "piVar4") (= "=") (cast_expression "(int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2)" (parenthesized_expression "(*(code *)apiStack_68[0][-0x1f54])" (( "(") (pointer_expression "*(code *)apiStack_68[0][-0x1f54]" (* "*") (cast_expression "(code *)apiStack_68[0][-0x1f54]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "apiStack_68[0][-0x1f54]" (subscript_expression "apiStack_68[0]" (identifier "apiStack_68") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1f54") (] "]")))) () ")")) (argument_list "(&piStack_50,uVar2)" (( "(") (pointer_expression "&piStack_50" (& "&") (identifier "piStack_50")) (, ",") (identifier "uVar2") () ")"))))) (; ";")) (expression_statement "piVar12 = apiStack_68[3];" (assignment_expression "piVar12 = apiStack_68[3]" (identifier "piVar12") (= "=") (subscript_expression "apiStack_68[3]" (identifier "apiStack_68") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "piVar9 = piStack_54;" (assignment_expression "piVar9 = piStack_54" (identifier "piVar9") (= "=") (identifier "piStack_54")) (; ";")) (expression_statement "piVar10 = apiStack_68[2];" (assignment_expression "piVar10 = apiStack_68[2]" (identifier "piVar10") (= "=") (subscript_expression "apiStack_68[2]" (identifier "apiStack_68") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "in_t1 = piStack_58;" (assignment_expression "in_t1 = piStack_58" (identifier "in_t1") (= "=") (identifier "piStack_58")) (; ";")) (} "}")))) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" (identifier "piVar21") (= "=") (subscript_expression "apiStack_68[0]" (identifier "apiStack_68") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "uVar26 = CONCAT44(piVar4,piVar12);" (assignment_expression "uVar26 = CONCAT44(piVar4,piVar12)" (identifier "uVar26") (= "=") (call_expression "CONCAT44(piVar4,piVar12)" (identifier "CONCAT44") (argument_list "(piVar4,piVar12)" (( "(") (identifier "piVar4") (, ",") (identifier "piVar12") () ")")))) (; ";")) (expression_statement "iVar7 = (int)piVar10 + -1;" (assignment_expression "iVar7 = (int)piVar10 + -1" (identifier "iVar7") (= "=") (binary_expression "(int)piVar10 + -1" (cast_expression "(int)piVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar10")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_3 = (int *)*piVar9;" (assignment_expression "param_3 = (int *)*piVar9" (identifier "param_3") (= "=") (cast_expression "(int *)*piVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (expression_statement "piVar12 = piVar4;" (assignment_expression "piVar12 = piVar4" (identifier "piVar12") (= "=") (identifier "piVar4")) (; ";")) (expression_statement "puVar24 = puVar23;" (assignment_expression "puVar24 = puVar23" (identifier "puVar24") (= "=") (identifier "puVar23")) (; ";")) (if_statement "if (iVar7 == 0) goto LAB_000357c8;" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_000357c8;" (goto "goto") (statement_identifier "LAB_000357c8") (; ";"))) (do_statement "do {\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      } while (iVar7 != 0);" (do "do") (compound_statement "{\n        piVar9 = piVar9 + 1;\n        *piVar12 = (int)param_3;\n        iVar7 = iVar7 + -1;\n        param_3 = (int *)*piVar9;\n        piVar12 = piVar12 + 1;\n      }" ({ "{") (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*piVar12 = (int)param_3;" (assignment_expression "*piVar12 = (int)param_3" (pointer_expression "*piVar12" (* "*") (identifier "piVar12")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "param_3 = (int *)*piVar9;" (assignment_expression "param_3 = (int *)*piVar9" (identifier "param_3") (= "=") (cast_expression "(int *)*piVar9" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*piVar9" (* "*") (identifier "piVar9")))) (; ";")) (expression_statement "piVar12 = piVar12 + 1;" (assignment_expression "piVar12 = piVar12 + 1" (identifier "piVar12") (= "=") (binary_expression "piVar12 + 1" (identifier "piVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "piVar4[(int)piVar5 + -1] = (int)param_3;" (assignment_expression "piVar4[(int)piVar5 + -1] = (int)param_3" (subscript_expression "piVar4[(int)piVar5 + -1]" (identifier "piVar4") ([ "[") (binary_expression "(int)piVar5 + -1" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "-1")) (] "]")) (= "=") (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3"))) (; ";")) (} "}"))) (} "}")))) (expression_statement "piVar9 = (int *)((ulonglong)uVar26 >> 0x20);" (assignment_expression "piVar9 = (int *)((ulonglong)uVar26 >> 0x20)" (identifier "piVar9") (= "=") (cast_expression "(int *)((ulonglong)uVar26 >> 0x20)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "piVar5 = (int *)uVar26;" (assignment_expression "piVar5 = (int *)uVar26" (identifier "piVar5") (= "=") (cast_expression "(int *)uVar26" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";")) (expression_statement "piVar12 = (int *)(((int)piVar5 + 1) * 4);" (assignment_expression "piVar12 = (int *)(((int)piVar5 + 1) * 4)" (identifier "piVar12") (= "=") (cast_expression "(int *)(((int)piVar5 + 1) * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(((int)piVar5 + 1) * 4)" (( "(") (binary_expression "((int)piVar5 + 1) * 4" (parenthesized_expression "((int)piVar5 + 1)" (( "(") (binary_expression "(int)piVar5 + 1" (cast_expression "(int)piVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar5")) (+ "+") (number_literal "1")) () ")")) (* "*") (number_literal "4")) () ")")))) (; ";")) (if_statement "if (unaff_s6 == in_t1) {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }\n  else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" (if "if") (parenthesized_expression "(unaff_s6 == in_t1)" (( "(") (binary_expression "unaff_s6 == in_t1" (identifier "unaff_s6") (== "==") (identifier "in_t1")) () ")")) (compound_statement "{\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }\n    *(int **)(puVar24 + 0x14) = param_2;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" ({ "{") (if_statement "if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }" (if "if") (parenthesized_expression "((int *)0x7f00 < piVar12)" (( "(") (binary_expression "(int *)0x7f00 < piVar12" (cast_expression "(int *)0x7f00" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7f00")) (< "<") (identifier "piVar12")) () ")")) (compound_statement "{\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      in_t1 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }" ({ "{") (expression_statement "apiStack_68[2] = piVar10;" (assignment_expression "apiStack_68[2] = piVar10" (subscript_expression "apiStack_68[2]" (identifier "apiStack_68") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "apiStack_68[3] = piVar5;" (assignment_expression "apiStack_68[3] = piVar5" (subscript_expression "apiStack_68[3]" (identifier "apiStack_68") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar5")) (; ";")) (expression_statement "piStack_58 = in_t1;" (assignment_expression "piStack_58 = in_t1" (identifier "piStack_58") (= "=") (identifier "in_t1")) (; ";")) (expression_statement "piStack_54 = piVar9;" (assignment_expression "piStack_54 = piVar9" (identifier "piStack_54") (= "=") (identifier "piVar9")) (; ";")) (expression_statement "param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);" (assignment_expression "param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (identifier "param_2") (= "=") (cast_expression "(int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (parenthesized_expression "(*(code *)piVar21[-0x1f54])" (( "(") (pointer_expression "*(code *)piVar21[-0x1f54]" (* "*") (cast_expression "(code *)piVar21[-0x1f54]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[-0x1f54]" (identifier "piVar21") ([ "[") (number_literal "-0x1f54") (] "]")))) () ")")) (argument_list "(&piStack_50,piVar12)" (( "(") (pointer_expression "&piStack_50" (& "&") (identifier "piStack_50")) (, ",") (identifier "piVar12") () ")"))))) (; ";")) (expression_statement "uVar26 = CONCAT44(piStack_54,apiStack_68[3]);" (assignment_expression "uVar26 = CONCAT44(piStack_54,apiStack_68[3])" (identifier "uVar26") (= "=") (call_expression "CONCAT44(piStack_54,apiStack_68[3])" (identifier "CONCAT44") (argument_list "(piStack_54,apiStack_68[3])" (( "(") (identifier "piStack_54") (, ",") (subscript_expression "apiStack_68[3]" (identifier "apiStack_68") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (expression_statement "piVar10 = apiStack_68[2];" (assignment_expression "piVar10 = apiStack_68[2]" (identifier "piVar10") (= "=") (subscript_expression "apiStack_68[2]" (identifier "apiStack_68") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "in_t1 = piStack_58;" (assignment_expression "in_t1 = piStack_58" (identifier "in_t1") (= "=") (identifier "piStack_58")) (; ";")) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" (identifier "piVar21") (= "=") (subscript_expression "apiStack_68[0]" (identifier "apiStack_68") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }" (else "else") (compound_statement "{\n      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);\n      param_2 = (int *)(puVar24 + iVar7 + 0x18);\n      puVar24 = puVar24 + iVar7;\n    }" ({ "{") (expression_statement "iVar7 = -((int)piVar12 + 7U & 0xfffffff8);" (assignment_expression "iVar7 = -((int)piVar12 + 7U & 0xfffffff8)" (identifier "iVar7") (= "=") (unary_expression "-((int)piVar12 + 7U & 0xfffffff8)" (- "-") (parenthesized_expression "((int)piVar12 + 7U & 0xfffffff8)" (( "(") (binary_expression "(int)piVar12 + 7U & 0xfffffff8" (binary_expression "(int)piVar12 + 7U" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "param_2 = (int *)(puVar24 + iVar7 + 0x18);" (assignment_expression "param_2 = (int *)(puVar24 + iVar7 + 0x18)" (identifier "param_2") (= "=") (cast_expression "(int *)(puVar24 + iVar7 + 0x18)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar24 + iVar7 + 0x18)" (( "(") (binary_expression "puVar24 + iVar7 + 0x18" (binary_expression "puVar24 + iVar7" (identifier "puVar24") (+ "+") (identifier "iVar7")) (+ "+") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "puVar24 = puVar24 + iVar7;" (assignment_expression "puVar24 = puVar24 + iVar7" (identifier "puVar24") (= "=") (binary_expression "puVar24 + iVar7" (identifier "puVar24") (+ "+") (identifier "iVar7"))) (; ";")) (} "}")))) (expression_statement "param_3 = (int *)uVar26;" (assignment_expression "param_3 = (int *)uVar26" (identifier "param_3") (= "=") (cast_expression "(int *)uVar26" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";")) (expression_statement "pcVar20 = (code *)piVar21[-0x1ed2];" (assignment_expression "pcVar20 = (code *)piVar21[-0x1ed2]" (identifier "pcVar20") (= "=") (cast_expression "(code *)piVar21[-0x1ed2]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[-0x1ed2]" (identifier "piVar21") ([ "[") (number_literal "-0x1ed2") (] "]")))) (; ";")) (if_statement "if (piVar13 != (int *)0x0) {\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }" (if "if") (parenthesized_expression "(piVar13 != (int *)0x0)" (( "(") (binary_expression "piVar13 != (int *)0x0" (identifier "piVar13") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar7 = (int)param_3 + -1;\n      iVar11 = *in_t1;\n      piVar9 = param_2;\n      piVar5 = in_t1;\n      if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }\n      pcVar20 = (code *)piVar21[-0x1ed2];\n    }" ({ "{") (expression_statement "iVar7 = (int)param_3 + -1;" (assignment_expression "iVar7 = (int)param_3 + -1" (identifier "iVar7") (= "=") (binary_expression "(int)param_3 + -1" (cast_expression "(int)param_3" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_3")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar11 = *in_t1;" (assignment_expression "iVar11 = *in_t1" (identifier "iVar11") (= "=") (pointer_expression "*in_t1" (* "*") (identifier "in_t1"))) (; ";")) (expression_statement "piVar9 = param_2;" (assignment_expression "piVar9 = param_2" (identifier "piVar9") (= "=") (identifier "param_2")) (; ";")) (expression_statement "piVar5 = in_t1;" (assignment_expression "piVar5 = in_t1" (identifier "piVar5") (= "=") (identifier "in_t1")) (; ";")) (if_statement "if (iVar7 == 0) {\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }\n      else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        *param_2 = iVar11;\n        piVar12 = param_2;\n      }" ({ "{") (expression_statement "*param_2 = iVar11;" (assignment_expression "*param_2 = iVar11" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "piVar12 = param_2;" (assignment_expression "piVar12 = param_2" (identifier "piVar12") (= "=") (identifier "param_2")) (; ";")) (} "}")) (else_clause "else {\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }" (else "else") (compound_statement "{\n        do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);\n        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;\n        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));\n      }" ({ "{") (do_statement "do {\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        } while (iVar7 != 0);" (do "do") (compound_statement "{\n          *piVar9 = iVar11;\n          iVar7 = iVar7 + -1;\n          iVar11 = piVar5[1];\n          piVar9 = piVar9 + 1;\n          piVar5 = piVar5 + 1;\n        }" ({ "{") (expression_statement "*piVar9 = iVar11;" (assignment_expression "*piVar9 = iVar11" (pointer_expression "*piVar9" (* "*") (identifier "piVar9")) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "iVar11 = piVar5[1];" (assignment_expression "iVar11 = piVar5[1]" (identifier "iVar11") (= "=") (subscript_expression "piVar5[1]" (identifier "piVar5") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "piVar9 = piVar9 + 1;" (assignment_expression "piVar9 = piVar9 + 1" (identifier "piVar9") (= "=") (binary_expression "piVar9 + 1" (identifier "piVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "piVar5 = piVar5 + 1;" (assignment_expression "piVar5 = piVar5 + 1" (identifier "piVar5") (= "=") (binary_expression "piVar5 + 1" (identifier "piVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "*(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;" (assignment_expression "*(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11" (pointer_expression "*(int *)((int)param_2 + (int)(piVar12 + -2))" (* "*") (cast_expression "(int *)((int)param_2 + (int)(piVar12 + -2))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + (int)(piVar12 + -2))" (( "(") (binary_expression "(int)param_2 + (int)(piVar12 + -2)" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (cast_expression "(int)(piVar12 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar12 + -2)" (( "(") (binary_expression "piVar12 + -2" (identifier "piVar12") (+ "+") (number_literal "-2")) () ")")))) () ")")))) (= "=") (identifier "iVar11")) (; ";")) (expression_statement "piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));" (assignment_expression "piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2))" (identifier "piVar12") (= "=") (cast_expression "(int *)((int)param_2 + (int)(piVar12 + -2))" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_2 + (int)(piVar12 + -2))" (( "(") (binary_expression "(int)param_2 + (int)(piVar12 + -2)" (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2")) (+ "+") (cast_expression "(int)(piVar12 + -2)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(piVar12 + -2)" (( "(") (binary_expression "piVar12 + -2" (identifier "piVar12") (+ "+") (number_literal "-2")) () ")")))) () ")")))) (; ";")) (} "}")))) (expression_statement "pcVar20 = (code *)piVar21[-0x1ed2];" (assignment_expression "pcVar20 = (code *)piVar21[-0x1ed2]" (identifier "pcVar20") (= "=") (cast_expression "(code *)piVar21[-0x1ed2]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[-0x1ed2]" (identifier "piVar21") ([ "[") (number_literal "-0x1ed2") (] "]")))) (; ";")) (} "}"))) (expression_statement "*(int **)(puVar24 + 0x14) = param_2;" (assignment_expression "*(int **)(puVar24 + 0x14) = param_2" (pointer_expression "*(int **)(puVar24 + 0x14)" (* "*") (cast_expression "(int **)(puVar24 + 0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x14)" (( "(") (binary_expression "puVar24 + 0x14" (identifier "puVar24") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "param_2")) (; ";")) (expression_statement "*(int **)(puVar24 + 0x10) = piVar10;" (assignment_expression "*(int **)(puVar24 + 0x10) = piVar10" (pointer_expression "*(int **)(puVar24 + 0x10)" (* "*") (cast_expression "(int **)(puVar24 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x10)" (( "(") (binary_expression "puVar24 + 0x10" (identifier "puVar24") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "(*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));" (call_expression "(*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" (( "(") (identifier "in_t1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")"))) () ")"))) (; ";")) (} "}")) (else_clause "else {\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" (else "else") (compound_statement "{\n    if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }\n    param_3 = (int *)uVar26;\n    pcVar20 = (code *)piVar21[-0x1ed2];\n    *(undefined1 **)(puVar24 + 0x14) = puVar3;\n    *(int **)(puVar24 + 0x10) = piVar10;\n    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));\n  }" ({ "{") (if_statement "if ((int *)0x7f00 < piVar12) {\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }\n    else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }" (if "if") (parenthesized_expression "((int *)0x7f00 < piVar12)" (( "(") (binary_expression "(int *)0x7f00 < piVar12" (cast_expression "(int *)0x7f00" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7f00")) (< "<") (identifier "piVar12")) () ")")) (compound_statement "{\n      apiStack_68[2] = piVar10;\n      apiStack_68[3] = piVar5;\n      piStack_58 = in_t1;\n      piStack_54 = piVar9;\n      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);\n      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);\n      piVar10 = apiStack_68[2];\n      param_2 = piStack_58;\n      piVar21 = apiStack_68[0];\n    }" ({ "{") (expression_statement "apiStack_68[2] = piVar10;" (assignment_expression "apiStack_68[2] = piVar10" (subscript_expression "apiStack_68[2]" (identifier "apiStack_68") ([ "[") (number_literal "2") (] "]")) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "apiStack_68[3] = piVar5;" (assignment_expression "apiStack_68[3] = piVar5" (subscript_expression "apiStack_68[3]" (identifier "apiStack_68") ([ "[") (number_literal "3") (] "]")) (= "=") (identifier "piVar5")) (; ";")) (expression_statement "piStack_58 = in_t1;" (assignment_expression "piStack_58 = in_t1" (identifier "piStack_58") (= "=") (identifier "in_t1")) (; ";")) (expression_statement "piStack_54 = piVar9;" (assignment_expression "piStack_54 = piVar9" (identifier "piStack_54") (= "=") (identifier "piVar9")) (; ";")) (expression_statement "puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);" (assignment_expression "puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (identifier "puVar3") (= "=") (cast_expression "(undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12)" (parenthesized_expression "(*(code *)piVar21[-0x1f54])" (( "(") (pointer_expression "*(code *)piVar21[-0x1f54]" (* "*") (cast_expression "(code *)piVar21[-0x1f54]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[-0x1f54]" (identifier "piVar21") ([ "[") (number_literal "-0x1f54") (] "]")))) () ")")) (argument_list "(&piStack_50,piVar12)" (( "(") (pointer_expression "&piStack_50" (& "&") (identifier "piStack_50")) (, ",") (identifier "piVar12") () ")"))))) (; ";")) (expression_statement "uVar26 = CONCAT44(piStack_54,apiStack_68[3]);" (assignment_expression "uVar26 = CONCAT44(piStack_54,apiStack_68[3])" (identifier "uVar26") (= "=") (call_expression "CONCAT44(piStack_54,apiStack_68[3])" (identifier "CONCAT44") (argument_list "(piStack_54,apiStack_68[3])" (( "(") (identifier "piStack_54") (, ",") (subscript_expression "apiStack_68[3]" (identifier "apiStack_68") ([ "[") (number_literal "3") (] "]")) () ")")))) (; ";")) (expression_statement "piVar10 = apiStack_68[2];" (assignment_expression "piVar10 = apiStack_68[2]" (identifier "piVar10") (= "=") (subscript_expression "apiStack_68[2]" (identifier "apiStack_68") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "param_2 = piStack_58;" (assignment_expression "param_2 = piStack_58" (identifier "param_2") (= "=") (identifier "piStack_58")) (; ";")) (expression_statement "piVar21 = apiStack_68[0];" (assignment_expression "piVar21 = apiStack_68[0]" (identifier "piVar21") (= "=") (subscript_expression "apiStack_68[0]" (identifier "apiStack_68") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}")) (else_clause "else {\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }" (else "else") (compound_statement "{\n      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);\n      puVar3 = puVar24 + -(int)piVar12 + 0x18;\n      param_2 = in_t1;\n      puVar24 = puVar24 + -(int)piVar12;\n    }" ({ "{") (expression_statement "piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);" (assignment_expression "piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8)" (identifier "piVar12") (= "=") (cast_expression "(int *)((int)piVar12 + 7U & 0xfffffff8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)piVar12 + 7U & 0xfffffff8)" (( "(") (binary_expression "(int)piVar12 + 7U & 0xfffffff8" (binary_expression "(int)piVar12 + 7U" (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")) (+ "+") (number_literal "7U")) (& "&") (number_literal "0xfffffff8")) () ")")))) (; ";")) (expression_statement "puVar3 = puVar24 + -(int)piVar12 + 0x18;" (assignment_expression "puVar3 = puVar24 + -(int)piVar12 + 0x18" (identifier "puVar3") (= "=") (binary_expression "puVar24 + -(int)piVar12 + 0x18" (binary_expression "puVar24 + -(int)piVar12" (identifier "puVar24") (+ "+") (unary_expression "-(int)piVar12" (- "-") (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12")))) (+ "+") (number_literal "0x18"))) (; ";")) (expression_statement "param_2 = in_t1;" (assignment_expression "param_2 = in_t1" (identifier "param_2") (= "=") (identifier "in_t1")) (; ";")) (expression_statement "puVar24 = puVar24 + -(int)piVar12;" (assignment_expression "puVar24 = puVar24 + -(int)piVar12" (identifier "puVar24") (= "=") (binary_expression "puVar24 + -(int)piVar12" (identifier "puVar24") (+ "+") (unary_expression "-(int)piVar12" (- "-") (cast_expression "(int)piVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "piVar12"))))) (; ";")) (} "}")))) (expression_statement "param_3 = (int *)uVar26;" (assignment_expression "param_3 = (int *)uVar26" (identifier "param_3") (= "=") (cast_expression "(int *)uVar26" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar26"))) (; ";")) (expression_statement "pcVar20 = (code *)piVar21[-0x1ed2];" (assignment_expression "pcVar20 = (code *)piVar21[-0x1ed2]" (identifier "pcVar20") (= "=") (cast_expression "(code *)piVar21[-0x1ed2]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[-0x1ed2]" (identifier "piVar21") ([ "[") (number_literal "-0x1ed2") (] "]")))) (; ";")) (expression_statement "*(undefined1 **)(puVar24 + 0x14) = puVar3;" (assignment_expression "*(undefined1 **)(puVar24 + 0x14) = puVar3" (pointer_expression "*(undefined1 **)(puVar24 + 0x14)" (* "*") (cast_expression "(undefined1 **)(puVar24 + 0x14)" (( "(") (type_descriptor "undefined1 **" (type_identifier "undefined1") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x14)" (( "(") (binary_expression "puVar24 + 0x14" (identifier "puVar24") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (identifier "puVar3")) (; ";")) (expression_statement "*(int **)(puVar24 + 0x10) = piVar10;" (assignment_expression "*(int **)(puVar24 + 0x10) = piVar10" (pointer_expression "*(int **)(puVar24 + 0x10)" (* "*") (cast_expression "(int **)(puVar24 + 0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar24 + 0x10)" (( "(") (binary_expression "puVar24 + 0x10" (identifier "puVar24") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (identifier "piVar10")) (; ";")) (expression_statement "(*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));" (call_expression "(*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20))" (( "(") (identifier "unaff_s6") (, ",") (identifier "param_2") (, ",") (identifier "param_3") (, ",") (cast_expression "(int)((ulonglong)uVar26 >> 0x20)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((ulonglong)uVar26 >> 0x20)" (( "(") (binary_expression "(ulonglong)uVar26 >> 0x20" (cast_expression "(ulonglong)uVar26" (( "(") (type_descriptor "ulonglong" (type_identifier "ulonglong")) () ")") (identifier "uVar26")) (>> ">>") (number_literal "0x20")) () ")"))) () ")"))) (; ";")) (} "}")))) (if_statement "if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }\n  else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }" (if "if") (parenthesized_expression "((int)((uint)piVar13 ^ (uint)piVar15) < 0)" (( "(") (binary_expression "(int)((uint)piVar13 ^ (uint)piVar15) < 0" (cast_expression "(int)((uint)piVar13 ^ (uint)piVar15)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((uint)piVar13 ^ (uint)piVar15)" (( "(") (binary_expression "(uint)piVar13 ^ (uint)piVar15" (cast_expression "(uint)piVar13" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar13")) (^ "^") (cast_expression "(uint)piVar15" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "piVar15"))) () ")"))) (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;\n  }" ({ "{") (expression_statement "iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;" (assignment_expression "iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1" (identifier "iVar18") (= "=") (binary_expression "(uint)(unaff_s6[iVar18] == 0) - iVar1" (call_expression "(uint)(unaff_s6[iVar18] == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(unaff_s6[iVar18] == 0)" (( "(") (binary_expression "unaff_s6[iVar18] == 0" (subscript_expression "unaff_s6[iVar18]" (identifier "unaff_s6") ([ "[") (identifier "iVar18") (] "]")) (== "==") (number_literal "0")) () ")"))) (- "-") (identifier "iVar1"))) (; ";")) (} "}")) (else_clause "else {\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }" (else "else") (compound_statement "{\n    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);\n  }" ({ "{") (expression_statement "iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);" (assignment_expression "iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0)" (identifier "iVar18") (= "=") (binary_expression "iVar1 - (uint)(unaff_s6[iVar18] == 0)" (identifier "iVar1") (- "-") (call_expression "(uint)(unaff_s6[iVar18] == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(unaff_s6[iVar18] == 0)" (( "(") (binary_expression "unaff_s6[iVar18] == 0" (subscript_expression "unaff_s6[iVar18]" (identifier "unaff_s6") ([ "[") (identifier "iVar18") (] "]")) (== "==") (number_literal "0")) () ")"))))) (; ";")) (} "}")))) (expression_statement "param_1[1] = iVar18;" (assignment_expression "param_1[1] = iVar18" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar18")) (; ";")) (expression_statement "piVar21 = piStack_50;" (assignment_expression "piVar21 = piStack_50" (identifier "piVar21") (= "=") (identifier "piStack_50")) (; ";")) (expression_statement "puVar3 = puVar24;" (assignment_expression "puVar3 = puVar24" (identifier "puVar3") (= "=") (identifier "puVar24")) (; ";")) (if_statement "if (piStack_50 != (int *)0x0) {\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }" (if "if") (parenthesized_expression "(piStack_50 != (int *)0x0)" (( "(") (binary_expression "piStack_50 != (int *)0x0" (identifier "piStack_50") (!= "!=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    (*(code *)apiStack_68[0][-0x1e8a])();\n  }" ({ "{") (expression_statement "(*(code *)apiStack_68[0][-0x1e8a])();" (call_expression "(*(code *)apiStack_68[0][-0x1e8a])()" (parenthesized_expression "(*(code *)apiStack_68[0][-0x1e8a])" (( "(") (pointer_expression "*(code *)apiStack_68[0][-0x1e8a]" (* "*") (cast_expression "(code *)apiStack_68[0][-0x1e8a]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "apiStack_68[0][-0x1e8a]" (subscript_expression "apiStack_68[0]" (identifier "apiStack_68") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1e8a") (] "]")))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00035690:\n  if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }" (statement_identifier "LAB_00035690") (: ":") (if_statement "if (uStack_4c != *puVar16) {\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }" (if "if") (parenthesized_expression "(uStack_4c != *puVar16)" (( "(") (binary_expression "uStack_4c != *puVar16" (identifier "uStack_4c") (!= "!=") (pointer_expression "*puVar16" (* "*") (identifier "puVar16"))) () ")")) (compound_statement "{\n    pcVar20 = (code *)apiStack_68[0][-0x1edc];\n    uVar25 = 0x358d8;\n    uVar2 = (*pcVar20)();\n    pcVar22 = pcVar20 + 0x6f760;\n    *(int **)(puVar3 + -0x10) = param_1;\n    *(code **)(puVar3 + -0x28) = pcVar22;\n    *(uint **)(puVar3 + -0xc) = puVar16;\n    *(int **)(puVar3 + -0x14) = piVar15;\n    *(int **)(puVar3 + -0x18) = piVar13;\n    *(undefined4 *)(puVar3 + -4) = uVar25;\n    *(int *)(puVar3 + -8) = iVar1;\n    *(int **)(puVar3 + -0x1c) = piVar12;\n    iVar18 = param_2[1];\n    uVar14 = (uint)param_3 >> 5;\n    iVar1 = iVar18;\n    if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }\n    iVar1 = iVar1 - uVar14;\n    if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }\n    if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }\n    piVar21[1] = iVar1;\n    return uVar2;\n  }" ({ "{") (expression_statement "pcVar20 = (code *)apiStack_68[0][-0x1edc];" (assignment_expression "pcVar20 = (code *)apiStack_68[0][-0x1edc]" (identifier "pcVar20") (= "=") (cast_expression "(code *)apiStack_68[0][-0x1edc]" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "apiStack_68[0][-0x1edc]" (subscript_expression "apiStack_68[0]" (identifier "apiStack_68") ([ "[") (number_literal "0") (] "]")) ([ "[") (number_literal "-0x1edc") (] "]")))) (; ";")) (expression_statement "uVar25 = 0x358d8;" (assignment_expression "uVar25 = 0x358d8" (identifier "uVar25") (= "=") (number_literal "0x358d8")) (; ";")) (expression_statement "uVar2 = (*pcVar20)();" (assignment_expression "uVar2 = (*pcVar20)()" (identifier "uVar2") (= "=") (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "pcVar22 = pcVar20 + 0x6f760;" (assignment_expression "pcVar22 = pcVar20 + 0x6f760" (identifier "pcVar22") (= "=") (binary_expression "pcVar20 + 0x6f760" (identifier "pcVar20") (+ "+") (number_literal "0x6f760"))) (; ";")) (expression_statement "*(int **)(puVar3 + -0x10) = param_1;" (assignment_expression "*(int **)(puVar3 + -0x10) = param_1" (pointer_expression "*(int **)(puVar3 + -0x10)" (* "*") (cast_expression "(int **)(puVar3 + -0x10)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x10)" (( "(") (binary_expression "puVar3 + -0x10" (identifier "puVar3") (+ "+") (number_literal "-0x10")) () ")")))) (= "=") (identifier "param_1")) (; ";")) (expression_statement "*(code **)(puVar3 + -0x28) = pcVar22;" (assignment_expression "*(code **)(puVar3 + -0x28) = pcVar22" (pointer_expression "*(code **)(puVar3 + -0x28)" (* "*") (cast_expression "(code **)(puVar3 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x28)" (( "(") (binary_expression "puVar3 + -0x28" (identifier "puVar3") (+ "+") (number_literal "-0x28")) () ")")))) (= "=") (identifier "pcVar22")) (; ";")) (expression_statement "*(uint **)(puVar3 + -0xc) = puVar16;" (assignment_expression "*(uint **)(puVar3 + -0xc) = puVar16" (pointer_expression "*(uint **)(puVar3 + -0xc)" (* "*") (cast_expression "(uint **)(puVar3 + -0xc)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0xc)" (( "(") (binary_expression "puVar3 + -0xc" (identifier "puVar3") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (identifier "puVar16")) (; ";")) (expression_statement "*(int **)(puVar3 + -0x14) = piVar15;" (assignment_expression "*(int **)(puVar3 + -0x14) = piVar15" (pointer_expression "*(int **)(puVar3 + -0x14)" (* "*") (cast_expression "(int **)(puVar3 + -0x14)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x14)" (( "(") (binary_expression "puVar3 + -0x14" (identifier "puVar3") (+ "+") (number_literal "-0x14")) () ")")))) (= "=") (identifier "piVar15")) (; ";")) (expression_statement "*(int **)(puVar3 + -0x18) = piVar13;" (assignment_expression "*(int **)(puVar3 + -0x18) = piVar13" (pointer_expression "*(int **)(puVar3 + -0x18)" (* "*") (cast_expression "(int **)(puVar3 + -0x18)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x18)" (( "(") (binary_expression "puVar3 + -0x18" (identifier "puVar3") (+ "+") (number_literal "-0x18")) () ")")))) (= "=") (identifier "piVar13")) (; ";")) (expression_statement "*(undefined4 *)(puVar3 + -4) = uVar25;" (assignment_expression "*(undefined4 *)(puVar3 + -4) = uVar25" (pointer_expression "*(undefined4 *)(puVar3 + -4)" (* "*") (cast_expression "(undefined4 *)(puVar3 + -4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -4)" (( "(") (binary_expression "puVar3 + -4" (identifier "puVar3") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "uVar25")) (; ";")) (expression_statement "*(int *)(puVar3 + -8) = iVar1;" (assignment_expression "*(int *)(puVar3 + -8) = iVar1" (pointer_expression "*(int *)(puVar3 + -8)" (* "*") (cast_expression "(int *)(puVar3 + -8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar3 + -8)" (( "(") (binary_expression "puVar3 + -8" (identifier "puVar3") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "iVar1")) (; ";")) (expression_statement "*(int **)(puVar3 + -0x1c) = piVar12;" (assignment_expression "*(int **)(puVar3 + -0x1c) = piVar12" (pointer_expression "*(int **)(puVar3 + -0x1c)" (* "*") (cast_expression "(int **)(puVar3 + -0x1c)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x1c)" (( "(") (binary_expression "puVar3 + -0x1c" (identifier "puVar3") (+ "+") (number_literal "-0x1c")) () ")")))) (= "=") (identifier "piVar12")) (; ";")) (expression_statement "iVar18 = param_2[1];" (assignment_expression "iVar18 = param_2[1]" (identifier "iVar18") (= "=") (subscript_expression "param_2[1]" (identifier "param_2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar14 = (uint)param_3 >> 5;" (assignment_expression "uVar14 = (uint)param_3 >> 5" (identifier "uVar14") (= "=") (binary_expression "(uint)param_3 >> 5" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (>> ">>") (number_literal "5"))) (; ";")) (expression_statement "iVar1 = iVar18;" (assignment_expression "iVar1 = iVar18" (identifier "iVar1") (= "=") (identifier "iVar18")) (; ";")) (if_statement "if (iVar18 < 0) {\n      iVar1 = -iVar18;\n    }" (if "if") (parenthesized_expression "(iVar18 < 0)" (( "(") (binary_expression "iVar18 < 0" (identifier "iVar18") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = -iVar18;\n    }" ({ "{") (expression_statement "iVar1 = -iVar18;" (assignment_expression "iVar1 = -iVar18" (identifier "iVar1") (= "=") (unary_expression "-iVar18" (- "-") (identifier "iVar18"))) (; ";")) (} "}"))) (expression_statement "iVar1 = iVar1 - uVar14;" (assignment_expression "iVar1 = iVar1 - uVar14" (identifier "iVar1") (= "=") (binary_expression "iVar1 - uVar14" (identifier "iVar1") (- "-") (identifier "uVar14"))) (; ";")) (if_statement "if (iVar1 < 1) {\n      iVar1 = 0;\n    }\n    else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }" (if "if") (parenthesized_expression "(iVar1 < 1)" (( "(") (binary_expression "iVar1 < 1" (identifier "iVar1") (< "<") (number_literal "1")) () ")")) (compound_statement "{\n      iVar1 = 0;\n    }" ({ "{") (expression_statement "iVar1 = 0;" (assignment_expression "iVar1 = 0" (identifier "iVar1") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }" (else "else") (compound_statement "{\n      pcVar20 = *(code **)(pcVar20 + 0x67ce0);\n      if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }\n      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);\n      if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }\n    }" ({ "{") (expression_statement "pcVar20 = *(code **)(pcVar20 + 0x67ce0);" (assignment_expression "pcVar20 = *(code **)(pcVar20 + 0x67ce0)" (identifier "pcVar20") (= "=") (pointer_expression "*(code **)(pcVar20 + 0x67ce0)" (* "*") (cast_expression "(code **)(pcVar20 + 0x67ce0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar20 + 0x67ce0)" (( "(") (binary_expression "pcVar20 + 0x67ce0" (identifier "pcVar20") (+ "+") (number_literal "0x67ce0")) () ")"))))) (; ";")) (if_statement "if (*piVar21 < iVar1) {\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }\n      else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }" (if "if") (parenthesized_expression "(*piVar21 < iVar1)" (( "(") (binary_expression "*piVar21 < iVar1" (pointer_expression "*piVar21" (* "*") (identifier "piVar21")) (< "<") (identifier "iVar1")) () ")")) (compound_statement "{\n        *(int **)(puVar3 + 8) = param_3;\n        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);\n        pcVar22 = *(code **)(puVar3 + -0x28);\n        param_3 = *(int **)(puVar3 + 8);\n      }" ({ "{") (expression_statement "*(int **)(puVar3 + 8) = param_3;" (assignment_expression "*(int **)(puVar3 + 8) = param_3" (pointer_expression "*(int **)(puVar3 + 8)" (* "*") (cast_expression "(int **)(puVar3 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 8)" (( "(") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);" (assignment_expression "puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1)" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)(*pcVar20)(piVar21,iVar1)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "(*pcVar20)(piVar21,iVar1)" (parenthesized_expression "(*pcVar20)" (( "(") (pointer_expression "*pcVar20" (* "*") (identifier "pcVar20")) () ")")) (argument_list "(piVar21,iVar1)" (( "(") (identifier "piVar21") (, ",") (identifier "iVar1") () ")"))))) (; ";")) (expression_statement "pcVar22 = *(code **)(puVar3 + -0x28);" (assignment_expression "pcVar22 = *(code **)(puVar3 + -0x28)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(puVar3 + -0x28)" (* "*") (cast_expression "(code **)(puVar3 + -0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + -0x28)" (( "(") (binary_expression "puVar3 + -0x28" (identifier "puVar3") (+ "+") (number_literal "-0x28")) () ")"))))) (; ";")) (expression_statement "param_3 = *(int **)(puVar3 + 8);" (assignment_expression "param_3 = *(int **)(puVar3 + 8)" (identifier "param_3") (= "=") (pointer_expression "*(int **)(puVar3 + 8)" (* "*") (cast_expression "(int **)(puVar3 + 8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar3 + 8)" (( "(") (binary_expression "puVar3 + 8" (identifier "puVar3") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (} "}")) (else_clause "else {\n        puVar17 = (undefined4 *)piVar21[2];\n      }" (else "else") (compound_statement "{\n        puVar17 = (undefined4 *)piVar21[2];\n      }" ({ "{") (expression_statement "puVar17 = (undefined4 *)piVar21[2];" (assignment_expression "puVar17 = (undefined4 *)piVar21[2]" (identifier "puVar17") (= "=") (cast_expression "(undefined4 *)piVar21[2]" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "piVar21[2]" (identifier "piVar21") ([ "[") (number_literal "2") (] "]")))) (; ";")) (} "}")))) (expression_statement "puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);" (assignment_expression "puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4)" (identifier "puVar8") (= "=") (cast_expression "(undefined4 *)(param_2[2] + uVar14 * 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2[2] + uVar14 * 4)" (( "(") (binary_expression "param_2[2] + uVar14 * 4" (subscript_expression "param_2[2]" (identifier "param_2") ([ "[") (number_literal "2") (] "]")) (+ "+") (binary_expression "uVar14 * 4" (identifier "uVar14") (* "*") (number_literal "4"))) () ")")))) (; ";")) (if_statement "if (((uint)param_3 & 0x1f) == 0) {\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }\n      else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }" (if "if") (parenthesized_expression "(((uint)param_3 & 0x1f) == 0)" (( "(") (binary_expression "((uint)param_3 & 0x1f) == 0" (parenthesized_expression "((uint)param_3 & 0x1f)" (( "(") (binary_expression "(uint)param_3 & 0x1f" (cast_expression "(uint)param_3" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "param_3")) (& "&") (number_literal "0x1f")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar2 = iVar1 - 1;\n        uVar25 = *puVar8;\n        puVar6 = puVar17;\n        if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }\n        *puVar17 = uVar25;\n      }" ({ "{") (expression_statement "uVar2 = iVar1 - 1;" (assignment_expression "uVar2 = iVar1 - 1" (identifier "uVar2") (= "=") (binary_expression "iVar1 - 1" (identifier "iVar1") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar25 = *puVar8;" (assignment_expression "uVar25 = *puVar8" (identifier "uVar25") (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar6 = puVar17;" (assignment_expression "puVar6 = puVar17" (identifier "puVar6") (= "=") (identifier "puVar17")) (; ";")) (if_statement "if (uVar2 != 0) {\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }" (if "if") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);\n          uVar2 = iVar1 * 4 - 4;\n          puVar17 = puVar17 + iVar1 + -1;\n        }" ({ "{") (do_statement "do {\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          } while (uVar2 != 0);" (do "do") (compound_statement "{\n            puVar8 = puVar8 + 1;\n            *puVar6 = uVar25;\n            uVar2 = uVar2 - 1;\n            uVar25 = *puVar8;\n            puVar6 = puVar6 + 1;\n          }" ({ "{") (expression_statement "puVar8 = puVar8 + 1;" (assignment_expression "puVar8 = puVar8 + 1" (identifier "puVar8") (= "=") (binary_expression "puVar8 + 1" (identifier "puVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*puVar6 = uVar25;" (assignment_expression "*puVar6 = uVar25" (pointer_expression "*puVar6" (* "*") (identifier "puVar6")) (= "=") (identifier "uVar25")) (; ";")) (expression_statement "uVar2 = uVar2 - 1;" (assignment_expression "uVar2 = uVar2 - 1" (identifier "uVar2") (= "=") (binary_expression "uVar2 - 1" (identifier "uVar2") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar25 = *puVar8;" (assignment_expression "uVar25 = *puVar8" (identifier "uVar25") (= "=") (pointer_expression "*puVar8" (* "*") (identifier "puVar8"))) (; ";")) (expression_statement "puVar6 = puVar6 + 1;" (assignment_expression "puVar6 = puVar6 + 1" (identifier "puVar6") (= "=") (binary_expression "puVar6 + 1" (identifier "puVar6") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar2 != 0)" (( "(") (binary_expression "uVar2 != 0" (identifier "uVar2") (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "uVar2 = iVar1 * 4 - 4;" (assignment_expression "uVar2 = iVar1 * 4 - 4" (identifier "uVar2") (= "=") (binary_expression "iVar1 * 4 - 4" (binary_expression "iVar1 * 4" (identifier "iVar1") (* "*") (number_literal "4")) (- "-") (number_literal "4"))) (; ";")) (expression_statement "puVar17 = puVar17 + iVar1 + -1;" (assignment_expression "puVar17 = puVar17 + iVar1 + -1" (identifier "puVar17") (= "=") (binary_expression "puVar17 + iVar1 + -1" (binary_expression "puVar17 + iVar1" (identifier "puVar17") (+ "+") (identifier "iVar1")) (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (expression_statement "*puVar17 = uVar25;" (assignment_expression "*puVar17 = uVar25" (pointer_expression "*puVar17" (* "*") (identifier "puVar17")) (= "=") (identifier "uVar25")) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }" (else "else") (compound_statement "{\n        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);\n        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);\n        iVar1 = iVar1 - uVar2;\n      }" ({ "{") (expression_statement "(**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);" (call_expression "(**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1)" (parenthesized_expression "(**(code **)(pcVar22 + -0x7ae0))" (( "(") (pointer_expression "**(code **)(pcVar22 + -0x7ae0)" (* "*") (pointer_expression "*(code **)(pcVar22 + -0x7ae0)" (* "*") (cast_expression "(code **)(pcVar22 + -0x7ae0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar22 + -0x7ae0)" (( "(") (binary_expression "pcVar22 + -0x7ae0" (identifier "pcVar22") (+ "+") (number_literal "-0x7ae0")) () ")"))))) () ")")) (argument_list "(puVar17,puVar8,iVar1)" (( "(") (identifier "puVar17") (, ",") (identifier "puVar8") (, ",") (identifier "iVar1") () ")"))) (; ";")) (expression_statement "uVar2 = (uint)(puVar17[iVar1 + -1] == 0);" (assignment_expression "uVar2 = (uint)(puVar17[iVar1 + -1] == 0)" (identifier "uVar2") (= "=") (call_expression "(uint)(puVar17[iVar1 + -1] == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(puVar17[iVar1 + -1] == 0)" (( "(") (binary_expression "puVar17[iVar1 + -1] == 0" (subscript_expression "puVar17[iVar1 + -1]" (identifier "puVar17") ([ "[") (binary_expression "iVar1 + -1" (identifier "iVar1") (+ "+") (number_literal "-1")) (] "]")) (== "==") (number_literal "0")) () ")")))) (; ";")) (expression_statement "iVar1 = iVar1 - uVar2;" (assignment_expression "iVar1 = iVar1 - uVar2" (identifier "iVar1") (= "=") (binary_expression "iVar1 - uVar2" (identifier "iVar1") (- "-") (identifier "uVar2"))) (; ";")) (} "}")))) (} "}")))) (if_statement "if (iVar18 < 0) {\n      iVar1 = -iVar1;\n    }" (if "if") (parenthesized_expression "(iVar18 < 0)" (( "(") (binary_expression "iVar18 < 0" (identifier "iVar18") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n      iVar1 = -iVar1;\n    }" ({ "{") (expression_statement "iVar1 = -iVar1;" (assignment_expression "iVar1 = -iVar1" (identifier "iVar1") (= "=") (unary_expression "-iVar1" (- "-") (identifier "iVar1"))) (; ";")) (} "}"))) (expression_statement "piVar21[1] = iVar1;" (assignment_expression "piVar21[1] = iVar1" (subscript_expression "piVar21[1]" (identifier "piVar21") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar1")) (; ";")) (return_statement "return uVar2;" (return "return") (identifier "uVar2") (; ";")) (} "}")))) (return_statement "return *puVar16;" (return "return") (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (} "}")))

type_1 function_1(type_2 dividend,type_1 var_1)

{
  int var_2;
  type_1 uVar2;
  
  if (var_1 == 0) {
    uVar2 = (*(type_3 *)PTR___gmp_divide_by_zero_0009d5e0)();
    return uVar2;
  }
  var_2 = dividend->_mp_size;
  if (var_2 != 0) {
    if (-1 < var_2) {
                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      uVar2 = (*(type_3 *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,var_2);
      return uVar2;
    }
                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (*(type_3 *)PTR___gmpn_mod_1_0009d4c0)(dividend->_mp_d,-var_2,var_1);
    return uVar2;
  }
  return 0;
}


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

uint MASKED(int *param_1,int *param_2,int *param_3)

{
  int iVar1;
  uint uVar2;
  undefined1 *puVar3;
  int *piVar4;
  int *piVar5;
  undefined4 *puVar6;
  int iVar7;
  undefined4 *puVar8;
  int *piVar9;
  int *piVar10;
  int *in_t1;
  int iVar11;
  int *piVar12;
  int *piVar13;
  uint uVar14;
  int *piVar15;
  uint *puVar16;
  undefined4 *puVar17;
  int *unaff_s6;
  int iVar18;
  undefined *puVar19;
  code *pcVar20;
  int *piVar21;
  code *pcVar22;
  undefined1 *puVar23;
  undefined1 *puVar24;
  undefined4 uVar25;
  undefined8 uVar26;
  undefined1 auStack_80 [24];
  int *apiStack_68 [4];
  int *piStack_58;
  int *piStack_54;
  int *piStack_50;
  uint uStack_4c;
  
  if (param_2 != (int *)0x0) {
    iVar1 = param_1[1];
    if (iVar1 == 0) {
      return 0;
    }
    if (iVar1 < 0) {
                    /* WARNING: Could not recover jumptable at 0x00035548. Too many branches */
                    /* WARNING: Treating indirect jump as call */
      uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],-iVar1,param_2);
      return uVar2;
    }
                    /* WARNING: Could not recover jumptable at 0x00035530. Too many branches */
                    /* WARNING: Treating indirect jump as call */
    uVar2 = (*(code *)PTR___gmpn_mod_1_0009d4c0)(param_1[2],iVar1);
    return uVar2;
  }
  puVar19 = PTR___gmp_divide_by_zero_0009d5e0;
  (*(code *)PTR___gmp_divide_by_zero_0009d5e0)();
  piVar21 = (int *)(puVar19 + 0x6fad0);
  puVar24 = auStack_80;
  puVar3 = auStack_80;
  puVar23 = auStack_80;
  puVar16 = *(uint **)(puVar19 + 0x67fd0);
  piVar13 = (int *)param_2[1];
  uStack_4c = *puVar16;
  piVar15 = (int *)param_3[1];
  piVar12 = (int *)-(int)piVar13;
  if (-1 < (int)piVar13) {
    piVar12 = piVar13;
  }
  piVar10 = piVar15;
  if ((int)piVar15 < 0) {
    piVar10 = (int *)-(int)piVar15;
  }
  iVar18 = (int)piVar12 - (int)piVar10;
  iVar1 = iVar18 + 1;
  apiStack_68[0] = piVar21;
  if (piVar15 == (int *)0x0) {
    uVar26 = (**(code **)(puVar19 + 0x68070))();
LAB_000357c8:
    *(int *)((ulonglong)uVar26 >> 0x20) = (int)param_3;
  }
  else {
    if (iVar1 < 1) {
      param_1[1] = 0;
      piVar21 = param_1;
      piVar12 = param_2;
      goto LAB_00035690;
    }
    if (*param_1 < iVar1) {
      apiStack_68[3] = piVar10;
      piStack_58 = piVar12;
      piStack_54 = param_3;
      unaff_s6 = (int *)(**(code **)(puVar19 + 0x68050))(param_1,iVar1);
      piVar12 = piStack_58;
      param_3 = piStack_54;
      piVar5 = apiStack_68[3];
    }
    else {
      unaff_s6 = (int *)param_1[2];
      piVar5 = piVar10;
    }
    piVar9 = (int *)param_3[2];
    uVar26 = CONCAT44(piVar9,piVar12);
    in_t1 = (int *)param_2[2];
    piStack_50 = (int *)0x0;
    piVar10 = piVar5;
    piVar21 = apiStack_68[0];
    puVar24 = auStack_80;
    if (unaff_s6 == piVar9) {
      uVar2 = (int)piVar5 * 4;
      if (uVar2 < 0x7f01) {
        iVar7 = -(uVar2 + 7 & 0xfffffff8);
        puVar23 = auStack_80 + iVar7;
        piVar4 = (int *)((int)apiStack_68 + iVar7);
      }
      else {
        apiStack_68[2] = piVar5;
        apiStack_68[3] = piVar12;
        piStack_58 = in_t1;
        piStack_54 = piVar9;
        piVar4 = (int *)(*(code *)apiStack_68[0][-0x1f54])(&piStack_50,uVar2);
        piVar12 = apiStack_68[3];
        piVar9 = piStack_54;
        piVar10 = apiStack_68[2];
        in_t1 = piStack_58;
      }
      piVar21 = apiStack_68[0];
      uVar26 = CONCAT44(piVar4,piVar12);
      iVar7 = (int)piVar10 + -1;
      param_3 = (int *)*piVar9;
      piVar12 = piVar4;
      puVar24 = puVar23;
      if (iVar7 == 0) goto LAB_000357c8;
      do {
        piVar9 = piVar9 + 1;
        *piVar12 = (int)param_3;
        iVar7 = iVar7 + -1;
        param_3 = (int *)*piVar9;
        piVar12 = piVar12 + 1;
      } while (iVar7 != 0);
      piVar4[(int)piVar5 + -1] = (int)param_3;
    }
  }
  piVar9 = (int *)((ulonglong)uVar26 >> 0x20);
  piVar5 = (int *)uVar26;
  piVar12 = (int *)(((int)piVar5 + 1) * 4);
  if (unaff_s6 == in_t1) {
    if ((int *)0x7f00 < piVar12) {
      apiStack_68[2] = piVar10;
      apiStack_68[3] = piVar5;
      piStack_58 = in_t1;
      piStack_54 = piVar9;
      param_2 = (int *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);
      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);
      piVar10 = apiStack_68[2];
      in_t1 = piStack_58;
      piVar21 = apiStack_68[0];
    }
    else {
      iVar7 = -((int)piVar12 + 7U & 0xfffffff8);
      param_2 = (int *)(puVar24 + iVar7 + 0x18);
      puVar24 = puVar24 + iVar7;
    }
    param_3 = (int *)uVar26;
    pcVar20 = (code *)piVar21[-0x1ed2];
    if (piVar13 != (int *)0x0) {
      iVar7 = (int)param_3 + -1;
      iVar11 = *in_t1;
      piVar9 = param_2;
      piVar5 = in_t1;
      if (iVar7 == 0) {
        *param_2 = iVar11;
        piVar12 = param_2;
      }
      else {
        do {
          *piVar9 = iVar11;
          iVar7 = iVar7 + -1;
          iVar11 = piVar5[1];
          piVar9 = piVar9 + 1;
          piVar5 = piVar5 + 1;
        } while (iVar7 != 0);
        *(int *)((int)param_2 + (int)(piVar12 + -2)) = iVar11;
        piVar12 = (int *)((int)param_2 + (int)(piVar12 + -2));
      }
      pcVar20 = (code *)piVar21[-0x1ed2];
    }
    *(int **)(puVar24 + 0x14) = param_2;
    *(int **)(puVar24 + 0x10) = piVar10;
    (*pcVar20)(in_t1,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));
  }
  else {
    if ((int *)0x7f00 < piVar12) {
      apiStack_68[2] = piVar10;
      apiStack_68[3] = piVar5;
      piStack_58 = in_t1;
      piStack_54 = piVar9;
      puVar3 = (undefined1 *)(*(code *)piVar21[-0x1f54])(&piStack_50,piVar12);
      uVar26 = CONCAT44(piStack_54,apiStack_68[3]);
      piVar10 = apiStack_68[2];
      param_2 = piStack_58;
      piVar21 = apiStack_68[0];
    }
    else {
      piVar12 = (int *)((int)piVar12 + 7U & 0xfffffff8);
      puVar3 = puVar24 + -(int)piVar12 + 0x18;
      param_2 = in_t1;
      puVar24 = puVar24 + -(int)piVar12;
    }
    param_3 = (int *)uVar26;
    pcVar20 = (code *)piVar21[-0x1ed2];
    *(undefined1 **)(puVar24 + 0x14) = puVar3;
    *(int **)(puVar24 + 0x10) = piVar10;
    (*pcVar20)(unaff_s6,param_2,param_3,(int)((ulonglong)uVar26 >> 0x20));
  }
  if ((int)((uint)piVar13 ^ (uint)piVar15) < 0) {
    iVar18 = (uint)(unaff_s6[iVar18] == 0) - iVar1;
  }
  else {
    iVar18 = iVar1 - (uint)(unaff_s6[iVar18] == 0);
  }
  param_1[1] = iVar18;
  piVar21 = piStack_50;
  puVar3 = puVar24;
  if (piStack_50 != (int *)0x0) {
    (*(code *)apiStack_68[0][-0x1e8a])();
  }
LAB_00035690:
  if (uStack_4c != *puVar16) {
    pcVar20 = (code *)apiStack_68[0][-0x1edc];
    uVar25 = 0x358d8;
    uVar2 = (*pcVar20)();
    pcVar22 = pcVar20 + 0x6f760;
    *(int **)(puVar3 + -0x10) = param_1;
    *(code **)(puVar3 + -0x28) = pcVar22;
    *(uint **)(puVar3 + -0xc) = puVar16;
    *(int **)(puVar3 + -0x14) = piVar15;
    *(int **)(puVar3 + -0x18) = piVar13;
    *(undefined4 *)(puVar3 + -4) = uVar25;
    *(int *)(puVar3 + -8) = iVar1;
    *(int **)(puVar3 + -0x1c) = piVar12;
    iVar18 = param_2[1];
    uVar14 = (uint)param_3 >> 5;
    iVar1 = iVar18;
    if (iVar18 < 0) {
      iVar1 = -iVar18;
    }
    iVar1 = iVar1 - uVar14;
    if (iVar1 < 1) {
      iVar1 = 0;
    }
    else {
      pcVar20 = *(code **)(pcVar20 + 0x67ce0);
      if (*piVar21 < iVar1) {
        *(int **)(puVar3 + 8) = param_3;
        puVar17 = (undefined4 *)(*pcVar20)(piVar21,iVar1);
        pcVar22 = *(code **)(puVar3 + -0x28);
        param_3 = *(int **)(puVar3 + 8);
      }
      else {
        puVar17 = (undefined4 *)piVar21[2];
      }
      puVar8 = (undefined4 *)(param_2[2] + uVar14 * 4);
      if (((uint)param_3 & 0x1f) == 0) {
        uVar2 = iVar1 - 1;
        uVar25 = *puVar8;
        puVar6 = puVar17;
        if (uVar2 != 0) {
          do {
            puVar8 = puVar8 + 1;
            *puVar6 = uVar25;
            uVar2 = uVar2 - 1;
            uVar25 = *puVar8;
            puVar6 = puVar6 + 1;
          } while (uVar2 != 0);
          uVar2 = iVar1 * 4 - 4;
          puVar17 = puVar17 + iVar1 + -1;
        }
        *puVar17 = uVar25;
      }
      else {
        (**(code **)(pcVar22 + -0x7ae0))(puVar17,puVar8,iVar1);
        uVar2 = (uint)(puVar17[iVar1 + -1] == 0);
        iVar1 = iVar1 - uVar2;
      }
    }
    if (iVar18 < 0) {
      iVar1 = -iVar1;
    }
    piVar21[1] = iVar1;
    return uVar2;
  }
  return *puVar16;
}

