
Bignum getmp(char **data,int *datalen)

{
  int iVar1;
  Bignum_conflict base_in;
  int iVar2;
  char **p_00;
  undefined *puVar3;
  char *pcStack_74;
  char *pcStack_70;
  int aiStack_6c [6];
  int iStack_54;
  char **appcStack_28 [2];
  char *p;
  int length;
  int local_c;
  
  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;
  p_00 = &p;
  getstring(data,datalen,p_00,&length);
  if (p != (char *)0x0) {
                    /* WARNING: Subroutine does not return */
    bignum_from_bytes((uchar *)p,length);
  }
  if (local_c != *(int *)PTR___stack_chk_guard_000b8ce8) {
    iVar2 = local_c;
    puVar3 = PTR___stack_chk_fail_000b8cbc;
    (*(code *)PTR___stack_chk_fail_000b8cbc)();
    iStack_54 = **(int **)(puVar3 + 0x491c4);
    appcStack_28[0] = p_00;
    getstring(&pcStack_74,(int *)appcStack_28,&pcStack_70,aiStack_6c);
    if ((((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&
        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),
        iVar1 == 0)) &&
       (base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),
       base_in != (Bignum_conflict)0x0)) {
      modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8));
                    /* WARNING: Subroutine does not return */
      freebn(base_in);
    }
    if (iStack_54 != **(int **)(puVar3 + 0x491c4)) {
      iVar2 = iStack_54;
      (**(code **)(puVar3 + 0x49198))();
                    /* WARNING: Subroutine does not return */
      ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8));
    }
    return (Bignum)0x0;
  }
  return (Bignum)0x0;
}



uint FUN_0006fa9c(void)

{
  byte bVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  undefined1 uVar12;
  uint **ppuVar13;
  uint *puVar14;
  byte *pbVar15;
  uint uVar16;
  byte *pbVar17;
  uint uVar18;
  undefined1 *puVar19;
  uint **ppuVar20;
  undefined *puVar21;
  undefined1 local_74 [4];
  int local_70;
  int local_6c;
  byte local_68 [19];
  undefined1 auStack_55 [5];
  uint *local_28 [2];
  uint local_14;
  undefined1 local_10 [4];
  int local_c;
  
  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;
  puVar19 = local_10;
  puVar14 = &local_14;
  FUN_0006f9a0();
  if (local_14 != 0) {
    local_14 = bignum_from_bytes(local_14);
  }
  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {
    return local_14;
  }
  iVar4 = local_c;
  puVar21 = PTR___stack_chk_fail_000b8cbc;
  (*(code *)PTR___stack_chk_fail_000b8cbc)();
  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);
  pbVar15 = (byte *)&local_70;
  ppuVar13 = local_28;
  local_28[0] = puVar14;
  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);
  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {
    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);
    iVar2 = (**(code **)(puVar21 + 0x491a8))();
    if (iVar2 == 0) {
      ppuVar13 = local_28;
      iVar2 = FUN_0006fa9c(local_74);
      if (iVar2 != 0) {
        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));
        freebn(iVar2);
        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));
        iVar2 = iVar4 + 7;
        if (iVar2 < 0) {
          iVar2 = iVar4 + 0xe;
        }
        iVar2 = iVar2 >> 3;
        iVar4 = bignum_byte(uVar3,iVar2 + -1);
        iVar6 = bignum_byte(uVar3,iVar2 + -2);
        uVar18 = 0;
        uVar16 = (uint)(iVar4 == 0);
        if (iVar6 != 1) {
          uVar16 = uVar18;
        }
        iVar2 = iVar2 + -3;
        if (0x23 < iVar2) {
          do {
            iVar4 = bignum_byte(uVar3,iVar2);
            iVar2 = iVar2 + -1;
            if (iVar4 != 0xff) {
              uVar16 = uVar18;
            }
          } while (iVar2 != 0x23);
        }
        iVar4 = *(int *)(puVar21 + 0x48824);
        pbVar15 = (byte *)(iVar4 + 0x1db8);
        do {
          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);
          bVar1 = *pbVar15;
          pbVar15 = pbVar15 + 1;
          if (uVar5 != bVar1) {
            uVar16 = uVar18;
          }
        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));
        pbVar17 = local_68;
        pbVar15 = pbVar17;
        SHA_Simple(puVar19,&_gp_1);
        do {
          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));
          uVar5 = bignum_byte(uVar3);
          bVar1 = *pbVar17;
          pbVar17 = pbVar17 + 1;
          if (uVar5 != bVar1) {
            uVar16 = uVar18;
          }
        } while (auStack_55 + 1 != pbVar17);
        freebn(uVar3);
        goto LAB_0006fda0;
      }
    }
  }
  uVar16 = 0;
LAB_0006fda0:
  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {
    iVar4 = auStack_55._1_4_;
    (**(code **)(puVar21 + 0x49198))();
    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;
    if ((int)uVar18 <= (int)pbVar15) {
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      iVar6 = iVar2 + -5;
      if (iVar2 != 4) {
        ppuVar20 = ppuVar13 + 1;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);
          *(undefined1 *)ppuVar20 = uVar12;
          iVar6 = iVar6 + -1;
          ppuVar20 = (uint **)((int)ppuVar20 + 1);
        } while (iVar6 != -1);
      }
      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);
      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);
      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);
      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      puVar19[3] = cVar11 + -4;
      iVar7 = iVar2 + 4;
      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      if (iVar6 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);
        iVar7 = iVar6 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);
          *puVar19 = uVar12;
          iVar7 = iVar7 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar7 != -1);
        iVar7 = iVar2 + 5 + iVar6 + -5;
      }
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);
      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      puVar19[3] = cVar11 + -4;
      iVar6 = iVar7 + 4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      if (iVar2 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);
        iVar6 = iVar2 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);
          *puVar19 = uVar12;
          iVar6 = iVar6 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar6 != -1);
        iVar6 = iVar7 + 5 + iVar2 + -5;
      }
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);
      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      puVar19[3] = cVar11 + -4;
      iVar7 = iVar6 + 4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      if (iVar2 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);
        iVar7 = iVar2 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);
          *puVar19 = uVar12;
          iVar7 = iVar7 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar7 != -1);
        iVar7 = iVar6 + 5 + iVar2 + -5;
      }
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);
      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      puVar19[3] = cVar11 + -4;
      iVar6 = iVar7 + 4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      if (iVar2 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);
        iVar6 = iVar2 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);
          *puVar19 = uVar12;
          iVar6 = iVar6 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar6 != -1);
        iVar6 = iVar7 + 5 + iVar2 + -5;
      }
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);
      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      puVar19[3] = cVar11 + -4;
      uVar18 = iVar6 + 4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      if (iVar2 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);
        iVar7 = iVar2 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);
          *puVar19 = uVar12;
          iVar7 = iVar7 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar7 != -1);
        uVar18 = iVar6 + 5 + iVar2 + -5;
      }
    }
    return uVar18;
  }
  return uVar16;
}


lui gp,0x5
addiu gp,gp,0x7f4
addu gp,gp,t9
addiu sp,sp,-0x30
sw ra,0x2c(sp)
sw gp,0x10(sp)
lw v0,-0x75a8(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
addiu a3,sp,0x20
addiu a2,sp,0x1c
lw t9,-0x7a10(gp)
addiu t9,t9,-0x660
bal 0x0006f9a0
_nop
lw gp,0x10(sp)
lw v0,0x1c(sp)
beq v0,zero,0x0006fafc
_lw a1,0x20(sp)
or a0,v0,zero
lw t9,-0x7ccc(gp)
bal 0x000545b4
_nop
lw gp,0x10(sp)
lw a0,0x24(sp)
lw v1,-0x75a8(gp)
lw v1,0x0(v1)
bne a0,v1,0x0006fb18
_lw ra,0x2c(sp)
jr ra
_addiu sp,sp,0x30
lw t9,-0x75d4(gp)
jalr t9
_nop
lui gp,0x5
addiu gp,gp,0x76c
addu gp,gp,t9
addiu sp,sp,-0x60
sw ra,0x5c(sp)
sw s6,0x58(sp)
sw s5,0x54(sp)
sw s4,0x50(sp)
sw s3,0x4c(sp)
sw s2,0x48(sp)
sw s1,0x44(sp)
sw s0,0x40(sp)
sw gp,0x10(sp)
or s0,a0,zero
sw a1,0x1c(sp)
sw a2,0x68(sp)
or s5,a3,zero
lw v0,-0x75a8(gp)
lw v0,0x0(v0)
sw v0,0x3c(sp)
addiu a3,sp,0x24
addiu a2,sp,0x20
addiu a1,sp,0x68
addiu a0,sp,0x1c
lw t9,-0x7a10(gp)
addiu t9,t9,-0x660
bal 0x0006f9a0
_nop
lw gp,0x10(sp)
lw a0,0x20(sp)
beq a0,zero,0x0006fd90
_lw v1,0x24(sp)
li v0,0x7
bne v1,v0,0x0006fd98
_li a2,0x7
lw a1,-0x7f48(gp)
addiu a1,a1,-0x7c18
lw t9,-0x75c4(gp)
jalr t9
_nop
lw gp,0x10(sp)
beq v0,zero,0x0006fbd8
_or s2,v0,zero
b 0x0006fd9c
_or s0,zero,zero
addiu a1,sp,0x68
addiu a0,sp,0x1c
lw t9,-0x7a10(gp)
addiu t9,t9,-0x564
bal 0x0006fa9c
_nop
lw gp,0x10(sp)
beq v0,zero,0x0006fdd8
_or s1,v0,zero
lw a2,0x8(s0)
lw a1,0xc(s0)
or a0,v0,zero
lw t9,-0x7a78(gp)
bal 0x00056e2c
_nop
lw gp,0x10(sp)
or s3,v0,zero
or a0,s1,zero
lw t9,-0x7bb0(gp)
bal 0x00053fcc
_nop
lw gp,0x10(sp)
lw a0,0x8(s0)
lw t9,-0x7cc8(gp)
bal 0x00054944
_nop
lw gp,0x10(sp)
addiu s1,v0,0x7
bltz s1,0x0006fd88
_nop
sra s1,s1,0x3
addiu a1,s1,-0x1
or a0,s3,zero
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
or s0,v0,zero
addiu a1,s1,-0x2
or a0,s3,zero
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
li v1,0x1
beq v0,v1,0x0006fc98
_sltiu s0,s0,0x1
or s0,s2,zero
addiu s1,s1,-0x3
slti v0,s1,0x24
bne v0,zero,0x0006fcd4
_li s6,0xff
li s4,0x23
or a1,s1,zero
or a0,s3,zero
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
xor v0,v0,s6
addiu s1,s1,-0x1
bne s1,s4,0x0006fcac
_movn s0,s2,v0
lw s4,-0x7f48(gp)
addiu s4,s4,0x1db8
addiu s6,s4,0x10
or s1,s4,zero
addiu s4,s4,0x23
subu a1,s4,s1
or a0,s3,zero
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
lbu v1,0x0(s1)
xor v0,v0,v1
addiu s1,s1,0x1
bne s1,s6,0x0006fce8
_movn s0,s2,v0
addiu s4,sp,0x28
or a2,s4,zero
lw a1,0x70(sp)
or a0,s5,zero
lw t9,-0x7a74(gp)
bal 0x0007639c
_nop
lw gp,0x10(sp)
addiu s5,sp,0x3c
or s1,s4,zero
addiu s4,s4,0x13
subu a1,s4,s1
or a0,s3,zero
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
lbu v1,0x0(s1)
xor v0,v0,v1
addiu s1,s1,0x1
bne s5,s1,0x0006fd40
_movn s0,s2,v0
or a0,s3,zero
lw t9,-0x7bb0(gp)
bal 0x00053fcc
_nop
lw gp,0x10(sp)
b 0x0006fda0
_or v0,s0,zero
b 0x0006fc50
_addiu s1,s1,0x7
b 0x0006fd9c
_or s0,zero,zero
or s0,zero,zero
or v0,s0,zero
lw a0,0x3c(sp)
lw v1,-0x75a8(gp)
lw v1,0x0(v1)
bne a0,v1,0x0006fde0
_lw ra,0x5c(sp)
lw s6,0x58(sp)
lw s5,0x54(sp)
lw s4,0x50(sp)
lw s3,0x4c(sp)
lw s2,0x48(sp)
lw s1,0x44(sp)
lw s0,0x40(sp)
jr ra
_addiu sp,sp,0x60
b 0x0006fd9c
_or s0,s2,zero
lw t9,-0x75d4(gp)
jalr t9
_nop
lui gp,0x5
addiu gp,gp,0x4a4
addu gp,gp,t9
addiu sp,sp,-0x38
sw ra,0x34(sp)
sw s6,0x30(sp)
sw s5,0x2c(sp)
sw s4,0x28(sp)
sw s3,0x24(sp)
sw s2,0x20(sp)
sw s1,0x1c(sp)
sw s0,0x18(sp)
sw gp,0x10(sp)
or s0,a0,zero
or s1,a1,zero
or s3,a2,zero
lw a0,0x8(a0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
or s2,v0,zero
lw a0,0xc(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s2,v0
lw a0,0x10(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s2,v0
lw a0,0x1c(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s2,v0
lw a0,0x14(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s2,v0
lw a0,0x18(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s2,v0
slt s3,s3,s2
beq s3,zero,0x0006fef4
_lw t9,-0x7a70(gp)
or v0,s2,zero
lw ra,0x34(sp)
lw s6,0x30(sp)
lw s5,0x2c(sp)
lw s4,0x28(sp)
lw s3,0x24(sp)
lw s2,0x20(sp)
lw s1,0x1c(sp)
lw s0,0x18(sp)
jr ra
_addiu sp,sp,0x38
lw a0,0x8(s0)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x18
sb v0,0x0(s1)
lw a0,0x8(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x10
sb v0,0x1(s1)
lw a0,0x8(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x8
sb v0,0x2(s1)
lw a0,0x8(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sb v0,0x3(s1)
lw a0,0x8(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
or s6,v0,zero
addiu s2,v0,-0x5
li v0,0x4
beq s6,v0,0x0006ffc4
_nop
addiu s5,s1,0x4
li s3,-0x1
or a1,s2,zero
lw a0,0x8(s0)
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
sb v0,0x0(s5)
addiu s2,s2,-0x1
bne s2,s3,0x0006ff9c
_addiu s5,s5,0x1
lw a0,0xc(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s1,s6
addiu v0,v0,-0x4
sra v0,v0,0x18
sb v0,0x0(s2)
lw a0,0xc(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x10
sb v0,0x1(s2)
lw a0,0xc(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x8
sb v0,0x2(s2)
lw a0,0xc(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sb v0,0x3(s2)
addiu s4,s6,0x4
lw a0,0xc(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
li v1,0x4
beq v0,v1,0x000700a4
_addiu s5,v0,-0x5
addu s3,s1,s4
or s2,s5,zero
li s4,-0x1
or a1,s2,zero
lw a0,0xc(s0)
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
sb v0,0x0(s3)
addiu s2,s2,-0x1
bne s2,s4,0x00070074
_addiu s3,s3,0x1
addiu s3,s6,0x5
addu s4,s3,s5
lw a0,0x10(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s1,s4
addiu v0,v0,-0x4
sra v0,v0,0x18
sb v0,0x0(s2)
lw a0,0x10(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x10
sb v0,0x1(s2)
lw a0,0x10(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x8
sb v0,0x2(s2)
lw a0,0x10(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sb v0,0x3(s2)
addiu s5,s4,0x4
lw a0,0x10(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
li v1,0x4
beq v0,v1,0x00070184
_addiu s6,v0,-0x5
addu s3,s1,s5
or s2,s6,zero
li s5,-0x1
or a1,s2,zero
lw a0,0x10(s0)
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
sb v0,0x0(s3)
addiu s2,s2,-0x1
bne s2,s5,0x00070154
_addiu s3,s3,0x1
addiu s3,s4,0x5
addu s5,s3,s6
lw a0,0x1c(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s1,s5
addiu v0,v0,-0x4
sra v0,v0,0x18
sb v0,0x0(s2)
lw a0,0x1c(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x10
sb v0,0x1(s2)
lw a0,0x1c(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x8
sb v0,0x2(s2)
lw a0,0x1c(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sb v0,0x3(s2)
addiu s4,s5,0x4
lw a0,0x1c(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
li v1,0x4
beq v0,v1,0x00070264
_addiu s6,v0,-0x5
addu s3,s1,s4
or s2,s6,zero
li s4,-0x1
or a1,s2,zero
lw a0,0x1c(s0)
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
sb v0,0x0(s3)
addiu s2,s2,-0x1
bne s2,s4,0x00070234
_addiu s3,s3,0x1
addiu s3,s5,0x5
addu s4,s3,s6
lw a0,0x14(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s1,s4
addiu v0,v0,-0x4
sra v0,v0,0x18
sb v0,0x0(s2)
lw a0,0x14(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x10
sb v0,0x1(s2)
lw a0,0x14(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x8
sb v0,0x2(s2)
lw a0,0x14(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sb v0,0x3(s2)
addiu s3,s4,0x4
lw a0,0x14(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
li v1,0x4
beq v0,v1,0x00070344
_addiu s6,v0,-0x5
addu s3,s1,s3
or s2,s6,zero
li s5,-0x1
or a1,s2,zero
lw a0,0x14(s0)
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
sb v0,0x0(s3)
addiu s2,s2,-0x1
bne s2,s5,0x00070314
_addiu s3,s3,0x1
addiu s3,s4,0x5
addu s3,s3,s6
lw a0,0x18(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addu s2,s1,s3
addiu v0,v0,-0x4
sra v0,v0,0x18
sb v0,0x0(s2)
lw a0,0x18(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x10
sb v0,0x1(s2)
lw a0,0x18(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sra v0,v0,0x8
sb v0,0x2(s2)
lw a0,0x18(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
addiu v0,v0,-0x4
sb v0,0x3(s2)
addiu s2,s3,0x4
lw a0,0x18(s0)
lw t9,-0x7a70(gp)
bal 0x00054a64
_nop
lw gp,0x10(sp)
li v1,0x4
beq v0,v1,0x0006fec8
_addiu s5,v0,-0x5
addu s1,s1,s2
or s2,s5,zero
li s4,-0x1
or a1,s2,zero
lw a0,0x18(s0)
lw t9,-0x7cc4(gp)
bal 0x00054ab4
_nop
lw gp,0x10(sp)
sb v0,0x0(s1)
addiu s2,s2,-0x1
bne s2,s4,0x000703f4
_addiu s1,s1,0x1
addiu s3,s3,0x5
b 0x0006fec8
_addu s2,s3,s5
(translation_unit "uint FUN_0006fa9c(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined1 uVar12;\n  uint **ppuVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  uint **ppuVar20;\n  undefined *puVar21;\n  undefined1 local_74 [4];\n  int local_70;\n  int local_6c;\n  byte local_68 [19];\n  undefined1 auStack_55 [5];\n  uint *local_28 [2];\n  uint local_14;\n  undefined1 local_10 [4];\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  puVar19 = local_10;\n  puVar14 = &local_14;\n  FUN_0006f9a0();\n  if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }\n  iVar4 = local_c;\n  puVar21 = PTR___stack_chk_fail_000b8cbc;\n  (*(code *)PTR___stack_chk_fail_000b8cbc)();\n  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);\n  pbVar15 = (byte *)&local_70;\n  ppuVar13 = local_28;\n  local_28[0] = puVar14;\n  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);\n  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }\n  uVar16 = 0;\nLAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }\n  return uVar16;\n}\n\n" (function_definition "uint FUN_0006fa9c(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined1 uVar12;\n  uint **ppuVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  uint **ppuVar20;\n  undefined *puVar21;\n  undefined1 local_74 [4];\n  int local_70;\n  int local_6c;\n  byte local_68 [19];\n  undefined1 auStack_55 [5];\n  uint *local_28 [2];\n  uint local_14;\n  undefined1 local_10 [4];\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  puVar19 = local_10;\n  puVar14 = &local_14;\n  FUN_0006f9a0();\n  if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }\n  iVar4 = local_c;\n  puVar21 = PTR___stack_chk_fail_000b8cbc;\n  (*(code *)PTR___stack_chk_fail_000b8cbc)();\n  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);\n  pbVar15 = (byte *)&local_70;\n  ppuVar13 = local_28;\n  local_28[0] = puVar14;\n  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);\n  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }\n  uVar16 = 0;\nLAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }\n  return uVar16;\n}" type_identifier (function_declarator "FUN_0006fa9c(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined1 uVar12;\n  uint **ppuVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  uint **ppuVar20;\n  undefined *puVar21;\n  undefined1 local_74 [4];\n  int local_70;\n  int local_6c;\n  byte local_68 [19];\n  undefined1 auStack_55 [5];\n  uint *local_28 [2];\n  uint local_14;\n  undefined1 local_10 [4];\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  puVar19 = local_10;\n  puVar14 = &local_14;\n  FUN_0006f9a0();\n  if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }\n  iVar4 = local_c;\n  puVar21 = PTR___stack_chk_fail_000b8cbc;\n  (*(code *)PTR___stack_chk_fail_000b8cbc)();\n  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);\n  pbVar15 = (byte *)&local_70;\n  ppuVar13 = local_28;\n  local_28[0] = puVar14;\n  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);\n  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }\n  uVar16 = 0;\nLAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }\n  return uVar16;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "uint **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint **ppuVar20;" type_identifier (pointer_declarator "**ppuVar20" * (pointer_declarator "*ppuVar20" * identifier)) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined1 local_74 [4];" type_identifier (array_declarator "local_74 [4]" identifier [ number_literal ]) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "byte local_68 [19];" type_identifier (array_declarator "local_68 [19]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_55 [5];" type_identifier (array_declarator "auStack_55 [5]" identifier [ number_literal ]) ;) (declaration "uint *local_28 [2];" type_identifier (pointer_declarator "*local_28 [2]" * (array_declarator "local_28 [2]" identifier [ number_literal ])) ;) (declaration "uint local_14;" type_identifier identifier ;) (declaration "undefined1 local_10 [4];" type_identifier (array_declarator "local_10 [4]" identifier [ number_literal ]) ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_000b8ce8;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_000b8ce8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b8ce8" * (cast_expression "(int *)PTR___stack_chk_guard_000b8ce8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar19 = local_10;" (assignment_expression "puVar19 = local_10" identifier = identifier) ;) (expression_statement "puVar14 = &local_14;" (assignment_expression "puVar14 = &local_14" identifier = (pointer_expression "&local_14" & identifier)) ;) (expression_statement "FUN_0006f9a0();" (call_expression "FUN_0006f9a0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }" if (parenthesized_expression "(local_14 != 0)" ( (binary_expression "local_14 != 0" identifier != number_literal) )) (compound_statement "{\n    local_14 = bignum_from_bytes(local_14);\n  }" { (expression_statement "local_14 = bignum_from_bytes(local_14);" (assignment_expression "local_14 = bignum_from_bytes(local_14)" identifier = (call_expression "bignum_from_bytes(local_14)" identifier (argument_list "(local_14)" ( identifier )))) ;) })) (if_statement "if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }" if (parenthesized_expression "(local_c == *(int *)PTR___stack_chk_guard_000b8ce8)" ( (binary_expression "local_c == *(int *)PTR___stack_chk_guard_000b8ce8" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000b8ce8" * (cast_expression "(int *)PTR___stack_chk_guard_000b8ce8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return local_14;\n  }" { (return_statement "return local_14;" return identifier ;) })) (expression_statement "iVar4 = local_c;" (assignment_expression "iVar4 = local_c" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_000b8cbc;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000b8cbc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b8cbc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b8cbc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b8cbc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b8cbc" * (cast_expression "(code *)PTR___stack_chk_fail_000b8cbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);" (assignment_expression "auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4)" (field_expression "auStack_55._1_4_" identifier . field_identifier) = (pointer_expression "**(int **)(puVar21 + 0x491c4)" * (pointer_expression "*(int **)(puVar21 + 0x491c4)" * (cast_expression "(int **)(puVar21 + 0x491c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x491c4)" ( (binary_expression "puVar21 + 0x491c4" identifier + number_literal) )))))) ;) (expression_statement "pbVar15 = (byte *)&local_70;" (assignment_expression "pbVar15 = (byte *)&local_70" identifier = (cast_expression "(byte *)&local_70" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_70" & identifier))) ;) (expression_statement "ppuVar13 = local_28;" (assignment_expression "ppuVar13 = local_28" identifier = identifier) ;) (expression_statement "local_28[0] = puVar14;" (assignment_expression "local_28[0] = puVar14" (subscript_expression "local_28[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);" (call_expression "FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c)" identifier (argument_list "(local_74,ppuVar13,pbVar15,&local_6c)" ( identifier , identifier , identifier , (pointer_expression "&local_6c" & identifier) ))) ;) (if_statement "if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }" if (parenthesized_expression "((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7))" ( (binary_expression "(local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)" (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) && (parenthesized_expression "(pbVar15 = (byte *)0x7, local_6c == 7)" ( (comma_expression "pbVar15 = (byte *)0x7, local_6c == 7" (assignment_expression "pbVar15 = (byte *)0x7" identifier = (cast_expression "(byte *)0x7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "local_6c == 7" identifier == number_literal)) ))) )) (compound_statement "{\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }" { (expression_statement "ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);" (assignment_expression "ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18)" identifier = (cast_expression "(uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + 0x48824) + -0x7c18)" ( (binary_expression "*(int *)(puVar21 + 0x48824) + -0x7c18" (pointer_expression "*(int *)(puVar21 + 0x48824)" * (cast_expression "(int *)(puVar21 + 0x48824)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x48824)" ( (binary_expression "puVar21 + 0x48824" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar2 = (**(code **)(puVar21 + 0x491a8))();" (assignment_expression "iVar2 = (**(code **)(puVar21 + 0x491a8))()" identifier = (call_expression "(**(code **)(puVar21 + 0x491a8))()" (parenthesized_expression "(**(code **)(puVar21 + 0x491a8))" ( (pointer_expression "**(code **)(puVar21 + 0x491a8)" * (pointer_expression "*(code **)(puVar21 + 0x491a8)" * (cast_expression "(code **)(puVar21 + 0x491a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x491a8)" ( (binary_expression "puVar21 + 0x491a8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }" { (expression_statement "ppuVar13 = local_28;" (assignment_expression "ppuVar13 = local_28" identifier = identifier) ;) (expression_statement "iVar2 = FUN_0006fa9c(local_74);" (assignment_expression "iVar2 = FUN_0006fa9c(local_74)" identifier = (call_expression "FUN_0006fa9c(local_74)" identifier (argument_list "(local_74)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }" { (expression_statement "uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));" (assignment_expression "uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8))" ( identifier , (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "freebn(iVar2);" (call_expression "freebn(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "bignum_bitcount(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar2 = iVar4 + 7;" (assignment_expression "iVar2 = iVar4 + 7" identifier = (binary_expression "iVar4 + 7" identifier + number_literal)) ;) (if_statement "if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar2 = iVar4 + 0xe;\n        }" { (expression_statement "iVar2 = iVar4 + 0xe;" (assignment_expression "iVar2 = iVar4 + 0xe" identifier = (binary_expression "iVar4 + 0xe" identifier + number_literal)) ;) })) (expression_statement "iVar2 = iVar2 >> 3;" (assignment_expression "iVar2 = iVar2 >> 3" identifier = (binary_expression "iVar2 >> 3" identifier >> number_literal)) ;) (expression_statement "iVar4 = bignum_byte(uVar3,iVar2 + -1);" (assignment_expression "iVar4 = bignum_byte(uVar3,iVar2 + -1)" identifier = (call_expression "bignum_byte(uVar3,iVar2 + -1)" identifier (argument_list "(uVar3,iVar2 + -1)" ( identifier , (binary_expression "iVar2 + -1" identifier + number_literal) )))) ;) (expression_statement "iVar6 = bignum_byte(uVar3,iVar2 + -2);" (assignment_expression "iVar6 = bignum_byte(uVar3,iVar2 + -2)" identifier = (call_expression "bignum_byte(uVar3,iVar2 + -2)" identifier (argument_list "(uVar3,iVar2 + -2)" ( identifier , (binary_expression "iVar2 + -2" identifier + number_literal) )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = (uint)(iVar4 == 0);" (assignment_expression "uVar16 = (uint)(iVar4 == 0)" identifier = (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )))) ;) (if_statement "if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }" if (parenthesized_expression "(iVar6 != 1)" ( (binary_expression "iVar6 != 1" identifier != number_literal) )) (compound_statement "{\n          uVar16 = uVar18;\n        }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" identifier = (binary_expression "iVar2 + -3" identifier + number_literal)) ;) (if_statement "if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }" if (parenthesized_expression "(0x23 < iVar2)" ( (binary_expression "0x23 < iVar2" number_literal < identifier) )) (compound_statement "{\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }" { (do_statement "do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);" do (compound_statement "{\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          }" { (expression_statement "iVar4 = bignum_byte(uVar3,iVar2);" (assignment_expression "iVar4 = bignum_byte(uVar3,iVar2)" identifier = (call_expression "bignum_byte(uVar3,iVar2)" identifier (argument_list "(uVar3,iVar2)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (if_statement "if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }" if (parenthesized_expression "(iVar4 != 0xff)" ( (binary_expression "iVar4 != 0xff" identifier != number_literal) )) (compound_statement "{\n              uVar16 = uVar18;\n            }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) }) while (parenthesized_expression "(iVar2 != 0x23)" ( (binary_expression "iVar2 != 0x23" identifier != number_literal) )) ;) })) (expression_statement "iVar4 = *(int *)(puVar21 + 0x48824);" (assignment_expression "iVar4 = *(int *)(puVar21 + 0x48824)" identifier = (pointer_expression "*(int *)(puVar21 + 0x48824)" * (cast_expression "(int *)(puVar21 + 0x48824)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x48824)" ( (binary_expression "puVar21 + 0x48824" identifier + number_literal) ))))) ;) (expression_statement "pbVar15 = (byte *)(iVar4 + 0x1db8);" (assignment_expression "pbVar15 = (byte *)(iVar4 + 0x1db8)" identifier = (cast_expression "(byte *)(iVar4 + 0x1db8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1db8)" ( (binary_expression "iVar4 + 0x1db8" identifier + number_literal) )))) ;) (do_statement "do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));" do (compound_statement "{\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        }" { (expression_statement "uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);" (assignment_expression "uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15)" identifier = (call_expression "bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15)" identifier (argument_list "(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15)" ( identifier , (binary_expression "(iVar4 + 0x1ddb) - (int)pbVar15" (parenthesized_expression "(iVar4 + 0x1ddb)" ( (binary_expression "iVar4 + 0x1ddb" identifier + number_literal) )) - (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (if_statement "if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }" if (parenthesized_expression "(uVar5 != bVar1)" ( (binary_expression "uVar5 != bVar1" identifier != identifier) )) (compound_statement "{\n            uVar16 = uVar18;\n          }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) }) while (parenthesized_expression "(pbVar15 != (byte *)(iVar4 + 0x1dc8))" ( (binary_expression "pbVar15 != (byte *)(iVar4 + 0x1dc8)" identifier != (cast_expression "(byte *)(iVar4 + 0x1dc8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1dc8)" ( (binary_expression "iVar4 + 0x1dc8" identifier + number_literal) )))) )) ;) (expression_statement "pbVar17 = local_68;" (assignment_expression "pbVar17 = local_68" identifier = identifier) ;) (expression_statement "pbVar15 = pbVar17;" (assignment_expression "pbVar15 = pbVar17" identifier = identifier) ;) (expression_statement "SHA_Simple(puVar19,&_gp_1);" (call_expression "SHA_Simple(puVar19,&_gp_1)" identifier (argument_list "(puVar19,&_gp_1)" ( identifier , (pointer_expression "&_gp_1" & identifier) ))) ;) (do_statement "do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);" do (compound_statement "{\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        }" { (expression_statement "ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));" (assignment_expression "ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17))" identifier = (cast_expression "(uint **)(local_68 + (0x13 - (int)pbVar17))" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + (0x13 - (int)pbVar17))" ( (binary_expression "local_68 + (0x13 - (int)pbVar17)" identifier + (parenthesized_expression "(0x13 - (int)pbVar17)" ( (binary_expression "0x13 - (int)pbVar17" number_literal - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "uVar5 = bignum_byte(uVar3);" (assignment_expression "uVar5 = bignum_byte(uVar3)" identifier = (call_expression "bignum_byte(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (if_statement "if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }" if (parenthesized_expression "(uVar5 != bVar1)" ( (binary_expression "uVar5 != bVar1" identifier != identifier) )) (compound_statement "{\n            uVar16 = uVar18;\n          }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) }) while (parenthesized_expression "(auStack_55 + 1 != pbVar17)" ( (binary_expression "auStack_55 + 1 != pbVar17" (binary_expression "auStack_55 + 1" identifier + number_literal) != identifier) )) ;) (expression_statement "freebn(uVar3);" (call_expression "freebn(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (goto_statement "goto LAB_0006fda0;" goto statement_identifier ;) })) })) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }" statement_identifier : (if_statement "if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }" if (parenthesized_expression "(auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4))" ( (binary_expression "auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)" (field_expression "auStack_55._1_4_" identifier . field_identifier) != (pointer_expression "**(int **)(puVar21 + 0x491c4)" * (pointer_expression "*(int **)(puVar21 + 0x491c4)" * (cast_expression "(int **)(puVar21 + 0x491c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x491c4)" ( (binary_expression "puVar21 + 0x491c4" identifier + number_literal) )))))) )) (compound_statement "{\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }" { (expression_statement "iVar4 = auStack_55._1_4_;" (assignment_expression "iVar4 = auStack_55._1_4_" identifier = (field_expression "auStack_55._1_4_" identifier . field_identifier)) ;) (expression_statement "(**(code **)(puVar21 + 0x49198))();" (call_expression "(**(code **)(puVar21 + 0x49198))()" (parenthesized_expression "(**(code **)(puVar21 + 0x49198))" ( (pointer_expression "**(code **)(puVar21 + 0x49198)" * (pointer_expression "*(code **)(puVar21 + 0x49198)" * (cast_expression "(code **)(puVar21 + 0x49198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x49198)" ( (binary_expression "puVar21 + 0x49198" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;" (assignment_expression "uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10" identifier = (binary_expression "iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10" (binary_expression "iVar2 + iVar6 + iVar7 + iVar8 + iVar9" (binary_expression "iVar2 + iVar6 + iVar7 + iVar8" (binary_expression "iVar2 + iVar6 + iVar7" (binary_expression "iVar2 + iVar6" identifier + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (if_statement "if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }" if (parenthesized_expression "((int)uVar18 <= (int)pbVar15)" ( (binary_expression "(int)uVar18 <= (int)pbVar15" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }" { (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*(char *)ppuVar13" * (cast_expression "(char *)ppuVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "*(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10)" (pointer_expression "*(char *)((int)ppuVar13 + 1)" * (cast_expression "(char *)((int)ppuVar13 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + 1)" ( (binary_expression "(int)ppuVar13 + 1" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "*(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8)" (pointer_expression "*(char *)((int)ppuVar13 + 2)" * (cast_expression "(char *)((int)ppuVar13 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + 2)" ( (binary_expression "(int)ppuVar13 + 2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char *)((int)ppuVar13 + 3) = cVar11 + -4;" (assignment_expression "*(char *)((int)ppuVar13 + 3) = cVar11 + -4" (pointer_expression "*(char *)((int)ppuVar13 + 3)" * (cast_expression "(char *)((int)ppuVar13 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + 3)" ( (binary_expression "(int)ppuVar13 + 3" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar6 = iVar2 + -5;" (assignment_expression "iVar6 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (if_statement "if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }" { (expression_statement "ppuVar20 = ppuVar13 + 1;" (assignment_expression "ppuVar20 = ppuVar13 + 1" identifier = (binary_expression "ppuVar13 + 1" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6)" identifier (argument_list "(*(undefined4 *)(iVar4 + 8),iVar6)" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*(undefined1 *)ppuVar20 = uVar12;" (assignment_expression "*(undefined1 *)ppuVar20 = uVar12" (pointer_expression "*(undefined1 *)ppuVar20" * (cast_expression "(undefined1 *)ppuVar20" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "ppuVar20 = (uint **)((int)ppuVar20 + 1);" (assignment_expression "ppuVar20 = (uint **)((int)ppuVar20 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar20 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar20 + 1)" ( (binary_expression "(int)ppuVar20 + 1" (cast_expression "(int)ppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) ;) })) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar2)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar2)" ( (binary_expression "(int)ppuVar13 + iVar2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar6 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar6 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar6 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar6 + -4) >> 0x18" (call_expression "(uint)(iVar6 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 + -4)" ( (binary_expression "iVar6 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar6 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar6 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar6 + -4) >> 0x10" (call_expression "(uint)(iVar6 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 + -4)" ( (binary_expression "iVar6 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar6 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar6 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar6 + -4) >> 8)" ( (binary_expression "(uint)(iVar6 + -4) >> 8" (call_expression "(uint)(iVar6 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 + -4)" ( (binary_expression "iVar6 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar2 + 4;" (assignment_expression "iVar7 = iVar2 + 4" identifier = (binary_expression "iVar2 + 4" identifier + number_literal)) ;) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }" if (parenthesized_expression "(iVar6 != 4)" ( (binary_expression "iVar6 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar7)" ( (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar7 = iVar6 + -5;" (assignment_expression "iVar7 = iVar6 + -5" identifier = (binary_expression "iVar6 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc),iVar7)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "iVar7 = iVar2 + 5 + iVar6 + -5;" (assignment_expression "iVar7 = iVar2 + 5 + iVar6 + -5" identifier = (binary_expression "iVar2 + 5 + iVar6 + -5" (binary_expression "iVar2 + 5 + iVar6" (binary_expression "iVar2 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar7)" ( (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar7 + 4;" (assignment_expression "iVar6 = iVar7 + 4" identifier = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar6)" ( (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar6 = iVar2 + -5;" (assignment_expression "iVar6 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10),iVar6)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) ;) (expression_statement "iVar6 = iVar7 + 5 + iVar2 + -5;" (assignment_expression "iVar6 = iVar7 + 5 + iVar2 + -5" identifier = (binary_expression "iVar7 + 5 + iVar2 + -5" (binary_expression "iVar7 + 5 + iVar2" (binary_expression "iVar7 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar6)" ( (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar6 + 4;" (assignment_expression "iVar7 = iVar6 + 4" identifier = (binary_expression "iVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar7)" ( (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar7 = iVar2 + -5;" (assignment_expression "iVar7 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c),iVar7)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "iVar7 = iVar6 + 5 + iVar2 + -5;" (assignment_expression "iVar7 = iVar6 + 5 + iVar2 + -5" identifier = (binary_expression "iVar6 + 5 + iVar2 + -5" (binary_expression "iVar6 + 5 + iVar2" (binary_expression "iVar6 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar7)" ( (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar7 + 4;" (assignment_expression "iVar6 = iVar7 + 4" identifier = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar6)" ( (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar6 = iVar2 + -5;" (assignment_expression "iVar6 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14),iVar6)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) ;) (expression_statement "iVar6 = iVar7 + 5 + iVar2 + -5;" (assignment_expression "iVar6 = iVar7 + 5 + iVar2 + -5" identifier = (binary_expression "iVar7 + 5 + iVar2 + -5" (binary_expression "iVar7 + 5 + iVar2" (binary_expression "iVar7 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar6)" ( (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "uVar18 = iVar6 + 4;" (assignment_expression "uVar18 = iVar6 + 4" identifier = (binary_expression "iVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + uVar18)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + uVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + uVar18)" ( (binary_expression "(int)ppuVar13 + uVar18" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar7 = iVar2 + -5;" (assignment_expression "iVar7 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18),iVar7)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "uVar18 = iVar6 + 5 + iVar2 + -5;" (assignment_expression "uVar18 = iVar6 + 5 + iVar2 + -5" identifier = (binary_expression "iVar6 + 5 + iVar2 + -5" (binary_expression "iVar6 + 5 + iVar2" (binary_expression "iVar6 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) })) (return_statement "return uVar18;" return identifier ;) }))) (return_statement "return uVar16;" return identifier ;) })))
(translation_unit "Bignum getmp(char **data,int *datalen)\n\n{\n  int iVar1;\n  Bignum_conflict base_in;\n  int iVar2;\n  char **p_00;\n  undefined *puVar3;\n  char *pcStack_74;\n  char *pcStack_70;\n  int aiStack_6c [6];\n  int iStack_54;\n  char **appcStack_28 [2];\n  char *p;\n  int length;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  p_00 = &p;\n  getstring(data,datalen,p_00,&length);\n  if (p != (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    bignum_from_bytes((uchar *)p,length);\n  }\n  if (local_c != *(int *)PTR___stack_chk_guard_000b8ce8) {\n    iVar2 = local_c;\n    puVar3 = PTR___stack_chk_fail_000b8cbc;\n    (*(code *)PTR___stack_chk_fail_000b8cbc)();\n    iStack_54 = **(int **)(puVar3 + 0x491c4);\n    appcStack_28[0] = p_00;\n    getstring(&pcStack_74,(int *)appcStack_28,&pcStack_70,aiStack_6c);\n    if ((((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)) &&\n       (base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0)) {\n      modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n      freebn(base_in);\n    }\n    if (iStack_54 != **(int **)(puVar3 + 0x491c4)) {\n      iVar2 = iStack_54;\n      (**(code **)(puVar3 + 0x49198))();\n                    /* WARNING: Subroutine does not return */\n      ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8));\n    }\n    return (Bignum)0x0;\n  }\n  return (Bignum)0x0;\n}\n\n" (function_definition "Bignum getmp(char **data,int *datalen)\n\n{\n  int iVar1;\n  Bignum_conflict base_in;\n  int iVar2;\n  char **p_00;\n  undefined *puVar3;\n  char *pcStack_74;\n  char *pcStack_70;\n  int aiStack_6c [6];\n  int iStack_54;\n  char **appcStack_28 [2];\n  char *p;\n  int length;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  p_00 = &p;\n  getstring(data,datalen,p_00,&length);\n  if (p != (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    bignum_from_bytes((uchar *)p,length);\n  }\n  if (local_c != *(int *)PTR___stack_chk_guard_000b8ce8) {\n    iVar2 = local_c;\n    puVar3 = PTR___stack_chk_fail_000b8cbc;\n    (*(code *)PTR___stack_chk_fail_000b8cbc)();\n    iStack_54 = **(int **)(puVar3 + 0x491c4);\n    appcStack_28[0] = p_00;\n    getstring(&pcStack_74,(int *)appcStack_28,&pcStack_70,aiStack_6c);\n    if ((((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)) &&\n       (base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0)) {\n      modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n      freebn(base_in);\n    }\n    if (iStack_54 != **(int **)(puVar3 + 0x491c4)) {\n      iVar2 = iStack_54;\n      (**(code **)(puVar3 + 0x49198))();\n                    /* WARNING: Subroutine does not return */\n      ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8));\n    }\n    return (Bignum)0x0;\n  }\n  return (Bignum)0x0;\n}" type_identifier (function_declarator "getmp(char **data,int *datalen)" identifier (parameter_list "(char **data,int *datalen)" ( (parameter_declaration "char **data" primitive_type (pointer_declarator "**data" * (pointer_declarator "*data" * identifier))) , (parameter_declaration "int *datalen" primitive_type (pointer_declarator "*datalen" * identifier)) ))) (compound_statement "{\n  int iVar1;\n  Bignum_conflict base_in;\n  int iVar2;\n  char **p_00;\n  undefined *puVar3;\n  char *pcStack_74;\n  char *pcStack_70;\n  int aiStack_6c [6];\n  int iStack_54;\n  char **appcStack_28 [2];\n  char *p;\n  int length;\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  p_00 = &p;\n  getstring(data,datalen,p_00,&length);\n  if (p != (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    bignum_from_bytes((uchar *)p,length);\n  }\n  if (local_c != *(int *)PTR___stack_chk_guard_000b8ce8) {\n    iVar2 = local_c;\n    puVar3 = PTR___stack_chk_fail_000b8cbc;\n    (*(code *)PTR___stack_chk_fail_000b8cbc)();\n    iStack_54 = **(int **)(puVar3 + 0x491c4);\n    appcStack_28[0] = p_00;\n    getstring(&pcStack_74,(int *)appcStack_28,&pcStack_70,aiStack_6c);\n    if ((((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)) &&\n       (base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0)) {\n      modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n      freebn(base_in);\n    }\n    if (iStack_54 != **(int **)(puVar3 + 0x491c4)) {\n      iVar2 = iStack_54;\n      (**(code **)(puVar3 + 0x49198))();\n                    /* WARNING: Subroutine does not return */\n      ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8));\n    }\n    return (Bignum)0x0;\n  }\n  return (Bignum)0x0;\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "Bignum_conflict base_in;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "char **p_00;" primitive_type (pointer_declarator "**p_00" * (pointer_declarator "*p_00" * identifier)) ;) (declaration "undefined *puVar3;" type_identifier (pointer_declarator "*puVar3" * identifier) ;) (declaration "char *pcStack_74;" primitive_type (pointer_declarator "*pcStack_74" * identifier) ;) (declaration "char *pcStack_70;" primitive_type (pointer_declarator "*pcStack_70" * identifier) ;) (declaration "int aiStack_6c [6];" primitive_type (array_declarator "aiStack_6c [6]" identifier [ number_literal ]) ;) (declaration "int iStack_54;" primitive_type identifier ;) (declaration "char **appcStack_28 [2];" primitive_type (pointer_declarator "**appcStack_28 [2]" * (pointer_declarator "*appcStack_28 [2]" * (array_declarator "appcStack_28 [2]" identifier [ number_literal ]))) ;) (declaration "char *p;" primitive_type (pointer_declarator "*p" * identifier) ;) (declaration "int length;" primitive_type identifier ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_000b8ce8;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_000b8ce8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b8ce8" * (cast_expression "(int *)PTR___stack_chk_guard_000b8ce8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "p_00 = &p;" (assignment_expression "p_00 = &p" identifier = (pointer_expression "&p" & identifier)) ;) (expression_statement "getstring(data,datalen,p_00,&length);" (call_expression "getstring(data,datalen,p_00,&length)" identifier (argument_list "(data,datalen,p_00,&length)" ( identifier , identifier , identifier , (pointer_expression "&length" & identifier) ))) ;) (if_statement "if (p != (char *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    bignum_from_bytes((uchar *)p,length);\n  }" if (parenthesized_expression "(p != (char *)0x0)" ( (binary_expression "p != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    bignum_from_bytes((uchar *)p,length);\n  }" { comment (expression_statement "bignum_from_bytes((uchar *)p,length);" (call_expression "bignum_from_bytes((uchar *)p,length)" identifier (argument_list "((uchar *)p,length)" ( (cast_expression "(uchar *)p" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) })) (if_statement "if (local_c != *(int *)PTR___stack_chk_guard_000b8ce8) {\n    iVar2 = local_c;\n    puVar3 = PTR___stack_chk_fail_000b8cbc;\n    (*(code *)PTR___stack_chk_fail_000b8cbc)();\n    iStack_54 = **(int **)(puVar3 + 0x491c4);\n    appcStack_28[0] = p_00;\n    getstring(&pcStack_74,(int *)appcStack_28,&pcStack_70,aiStack_6c);\n    if ((((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)) &&\n       (base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0)) {\n      modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n      freebn(base_in);\n    }\n    if (iStack_54 != **(int **)(puVar3 + 0x491c4)) {\n      iVar2 = iStack_54;\n      (**(code **)(puVar3 + 0x49198))();\n                    /* WARNING: Subroutine does not return */\n      ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8));\n    }\n    return (Bignum)0x0;\n  }" if (parenthesized_expression "(local_c != *(int *)PTR___stack_chk_guard_000b8ce8)" ( (binary_expression "local_c != *(int *)PTR___stack_chk_guard_000b8ce8" identifier != (pointer_expression "*(int *)PTR___stack_chk_guard_000b8ce8" * (cast_expression "(int *)PTR___stack_chk_guard_000b8ce8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    iVar2 = local_c;\n    puVar3 = PTR___stack_chk_fail_000b8cbc;\n    (*(code *)PTR___stack_chk_fail_000b8cbc)();\n    iStack_54 = **(int **)(puVar3 + 0x491c4);\n    appcStack_28[0] = p_00;\n    getstring(&pcStack_74,(int *)appcStack_28,&pcStack_70,aiStack_6c);\n    if ((((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)) &&\n       (base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0)) {\n      modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n      freebn(base_in);\n    }\n    if (iStack_54 != **(int **)(puVar3 + 0x491c4)) {\n      iVar2 = iStack_54;\n      (**(code **)(puVar3 + 0x49198))();\n                    /* WARNING: Subroutine does not return */\n      ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8));\n    }\n    return (Bignum)0x0;\n  }" { (expression_statement "iVar2 = local_c;" (assignment_expression "iVar2 = local_c" identifier = identifier) ;) (expression_statement "puVar3 = PTR___stack_chk_fail_000b8cbc;" (assignment_expression "puVar3 = PTR___stack_chk_fail_000b8cbc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b8cbc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b8cbc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b8cbc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b8cbc" * (cast_expression "(code *)PTR___stack_chk_fail_000b8cbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_54 = **(int **)(puVar3 + 0x491c4);" (assignment_expression "iStack_54 = **(int **)(puVar3 + 0x491c4)" identifier = (pointer_expression "**(int **)(puVar3 + 0x491c4)" * (pointer_expression "*(int **)(puVar3 + 0x491c4)" * (cast_expression "(int **)(puVar3 + 0x491c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x491c4)" ( (binary_expression "puVar3 + 0x491c4" identifier + number_literal) )))))) ;) (expression_statement "appcStack_28[0] = p_00;" (assignment_expression "appcStack_28[0] = p_00" (subscript_expression "appcStack_28[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "getstring(&pcStack_74,(int *)appcStack_28,&pcStack_70,aiStack_6c);" (call_expression "getstring(&pcStack_74,(int *)appcStack_28,&pcStack_70,aiStack_6c)" identifier (argument_list "(&pcStack_74,(int *)appcStack_28,&pcStack_70,aiStack_6c)" ( (pointer_expression "&pcStack_74" & identifier) , (cast_expression "(int *)appcStack_28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&pcStack_70" & identifier) , identifier ))) ;) (if_statement "if ((((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)) &&\n       (base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0)) {\n      modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n      freebn(base_in);\n    }" if (parenthesized_expression "((((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)) &&\n       (base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0))" ( (binary_expression "(((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)) &&\n       (base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0)" (parenthesized_expression "(((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0))" ( (binary_expression "((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)) &&\n        (iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)" (parenthesized_expression "((pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7))" ( (binary_expression "(pcStack_70 != (char *)0x0) && (aiStack_6c[0] == 7)" (parenthesized_expression "(pcStack_70 != (char *)0x0)" ( (binary_expression "pcStack_70 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(aiStack_6c[0] == 7)" ( (binary_expression "aiStack_6c[0] == 7" (subscript_expression "aiStack_6c[0]" identifier [ number_literal ]) == number_literal) ))) )) && (parenthesized_expression "(iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0)" ( (comma_expression "iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7),\n        iVar1 == 0" (assignment_expression "iVar1 = (**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7)" identifier = (call_expression "(**(code **)(puVar3 + 0x491a8))(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7)" (parenthesized_expression "(**(code **)(puVar3 + 0x491a8))" ( (pointer_expression "**(code **)(puVar3 + 0x491a8)" * (pointer_expression "*(code **)(puVar3 + 0x491a8)" * (cast_expression "(code **)(puVar3 + 0x491a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x491a8)" ( (binary_expression "puVar3 + 0x491a8" identifier + number_literal) ))))) )) (argument_list "(pcStack_70,*(int *)(puVar3 + 0x48824) + -0x7c18,7)" ( identifier , (binary_expression "*(int *)(puVar3 + 0x48824) + -0x7c18" (pointer_expression "*(int *)(puVar3 + 0x48824)" * (cast_expression "(int *)(puVar3 + 0x48824)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar3 + 0x48824)" ( (binary_expression "puVar3 + 0x48824" identifier + number_literal) )))) + number_literal) , number_literal )))) , (binary_expression "iVar1 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0)" ( (comma_expression "base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28),\n       base_in != (Bignum_conflict)0x0" (assignment_expression "base_in = (Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28)" identifier = (cast_expression "(Bignum_conflict)getmp(&pcStack_74,(int *)appcStack_28)" ( (type_descriptor "Bignum_conflict" type_identifier) ) (call_expression "getmp(&pcStack_74,(int *)appcStack_28)" identifier (argument_list "(&pcStack_74,(int *)appcStack_28)" ( (pointer_expression "&pcStack_74" & identifier) , (cast_expression "(int *)appcStack_28" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))))) , (binary_expression "base_in != (Bignum_conflict)0x0" identifier != (cast_expression "(Bignum_conflict)0x0" ( (type_descriptor "Bignum_conflict" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n      modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8));\n                    /* WARNING: Subroutine does not return */\n      freebn(base_in);\n    }" { (expression_statement "modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8));" (call_expression "modpow(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8))" identifier (argument_list "(base_in,*(Bignum_conflict *)(iVar2 + 0xc),*(Bignum_conflict *)(iVar2 + 8))" ( identifier , (pointer_expression "*(Bignum_conflict *)(iVar2 + 0xc)" * (cast_expression "(Bignum_conflict *)(iVar2 + 0xc)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 0xc)" ( (binary_expression "iVar2 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(Bignum_conflict *)(iVar2 + 8)" * (cast_expression "(Bignum_conflict *)(iVar2 + 8)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) ))) ;) comment (expression_statement "freebn(base_in);" (call_expression "freebn(base_in)" identifier (argument_list "(base_in)" ( identifier ))) ;) })) (if_statement "if (iStack_54 != **(int **)(puVar3 + 0x491c4)) {\n      iVar2 = iStack_54;\n      (**(code **)(puVar3 + 0x49198))();\n                    /* WARNING: Subroutine does not return */\n      ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8));\n    }" if (parenthesized_expression "(iStack_54 != **(int **)(puVar3 + 0x491c4))" ( (binary_expression "iStack_54 != **(int **)(puVar3 + 0x491c4)" identifier != (pointer_expression "**(int **)(puVar3 + 0x491c4)" * (pointer_expression "*(int **)(puVar3 + 0x491c4)" * (cast_expression "(int **)(puVar3 + 0x491c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x491c4)" ( (binary_expression "puVar3 + 0x491c4" identifier + number_literal) )))))) )) (compound_statement "{\n      iVar2 = iStack_54;\n      (**(code **)(puVar3 + 0x49198))();\n                    /* WARNING: Subroutine does not return */\n      ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8));\n    }" { (expression_statement "iVar2 = iStack_54;" (assignment_expression "iVar2 = iStack_54" identifier = identifier) ;) (expression_statement "(**(code **)(puVar3 + 0x49198))();" (call_expression "(**(code **)(puVar3 + 0x49198))()" (parenthesized_expression "(**(code **)(puVar3 + 0x49198))" ( (pointer_expression "**(code **)(puVar3 + 0x49198)" * (pointer_expression "*(code **)(puVar3 + 0x49198)" * (cast_expression "(code **)(puVar3 + 0x49198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar3 + 0x49198)" ( (binary_expression "puVar3 + 0x49198" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) comment (expression_statement "ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8));" (call_expression "ssh2_bignum_length(*(Bignum_conflict *)(iVar2 + 8))" identifier (argument_list "(*(Bignum_conflict *)(iVar2 + 8))" ( (pointer_expression "*(Bignum_conflict *)(iVar2 + 8)" * (cast_expression "(Bignum_conflict *)(iVar2 + 8)" ( (type_descriptor "Bignum_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + 8)" ( (binary_expression "iVar2 + 8" identifier + number_literal) )))) ))) ;) })) (return_statement "return (Bignum)0x0;" return (cast_expression "(Bignum)0x0" ( (type_descriptor "Bignum" type_identifier) ) number_literal) ;) })) (return_statement "return (Bignum)0x0;" return (cast_expression "(Bignum)0x0" ( (type_descriptor "Bignum" type_identifier) ) number_literal) ;) })))
(translation_unit "uint FUN_0006fa9c(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined1 uVar12;\n  uint **ppuVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  uint **ppuVar20;\n  undefined *puVar21;\n  undefined1 local_74 [4];\n  int local_70;\n  int local_6c;\n  byte local_68 [19];\n  undefined1 auStack_55 [5];\n  uint *local_28 [2];\n  uint local_14;\n  undefined1 local_10 [4];\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  puVar19 = local_10;\n  puVar14 = &local_14;\n  FUN_0006f9a0();\n  if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }\n  iVar4 = local_c;\n  puVar21 = PTR___stack_chk_fail_000b8cbc;\n  (*(code *)PTR___stack_chk_fail_000b8cbc)();\n  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);\n  pbVar15 = (byte *)&local_70;\n  ppuVar13 = local_28;\n  local_28[0] = puVar14;\n  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);\n  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }\n  uVar16 = 0;\nLAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }\n  return uVar16;\n}\n\n" (function_definition "uint FUN_0006fa9c(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined1 uVar12;\n  uint **ppuVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  uint **ppuVar20;\n  undefined *puVar21;\n  undefined1 local_74 [4];\n  int local_70;\n  int local_6c;\n  byte local_68 [19];\n  undefined1 auStack_55 [5];\n  uint *local_28 [2];\n  uint local_14;\n  undefined1 local_10 [4];\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  puVar19 = local_10;\n  puVar14 = &local_14;\n  FUN_0006f9a0();\n  if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }\n  iVar4 = local_c;\n  puVar21 = PTR___stack_chk_fail_000b8cbc;\n  (*(code *)PTR___stack_chk_fail_000b8cbc)();\n  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);\n  pbVar15 = (byte *)&local_70;\n  ppuVar13 = local_28;\n  local_28[0] = puVar14;\n  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);\n  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }\n  uVar16 = 0;\nLAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }\n  return uVar16;\n}" type_identifier (function_declarator "FUN_0006fa9c(void)" identifier (parameter_list "(void)" ( (parameter_declaration "void" primitive_type) ))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined1 uVar12;\n  uint **ppuVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  uint **ppuVar20;\n  undefined *puVar21;\n  undefined1 local_74 [4];\n  int local_70;\n  int local_6c;\n  byte local_68 [19];\n  undefined1 auStack_55 [5];\n  uint *local_28 [2];\n  uint local_14;\n  undefined1 local_10 [4];\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  puVar19 = local_10;\n  puVar14 = &local_14;\n  FUN_0006f9a0();\n  if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }\n  iVar4 = local_c;\n  puVar21 = PTR___stack_chk_fail_000b8cbc;\n  (*(code *)PTR___stack_chk_fail_000b8cbc)();\n  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);\n  pbVar15 = (byte *)&local_70;\n  ppuVar13 = local_28;\n  local_28[0] = puVar14;\n  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);\n  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }\n  uVar16 = 0;\nLAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }\n  return uVar16;\n}" { (declaration "byte bVar1;" type_identifier identifier ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "undefined1 uVar12;" type_identifier identifier ;) (declaration "uint **ppuVar13;" type_identifier (pointer_declarator "**ppuVar13" * (pointer_declarator "*ppuVar13" * identifier)) ;) (declaration "uint *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "byte *pbVar15;" type_identifier (pointer_declarator "*pbVar15" * identifier) ;) (declaration "uint uVar16;" type_identifier identifier ;) (declaration "byte *pbVar17;" type_identifier (pointer_declarator "*pbVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined1 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "uint **ppuVar20;" type_identifier (pointer_declarator "**ppuVar20" * (pointer_declarator "*ppuVar20" * identifier)) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined1 local_74 [4];" type_identifier (array_declarator "local_74 [4]" identifier [ number_literal ]) ;) (declaration "int local_70;" primitive_type identifier ;) (declaration "int local_6c;" primitive_type identifier ;) (declaration "byte local_68 [19];" type_identifier (array_declarator "local_68 [19]" identifier [ number_literal ]) ;) (declaration "undefined1 auStack_55 [5];" type_identifier (array_declarator "auStack_55 [5]" identifier [ number_literal ]) ;) (declaration "uint *local_28 [2];" type_identifier (pointer_declarator "*local_28 [2]" * (array_declarator "local_28 [2]" identifier [ number_literal ])) ;) (declaration "uint local_14;" type_identifier identifier ;) (declaration "undefined1 local_10 [4];" type_identifier (array_declarator "local_10 [4]" identifier [ number_literal ]) ;) (declaration "int local_c;" primitive_type identifier ;) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_000b8ce8;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_000b8ce8" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000b8ce8" * (cast_expression "(int *)PTR___stack_chk_guard_000b8ce8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "puVar19 = local_10;" (assignment_expression "puVar19 = local_10" identifier = identifier) ;) (expression_statement "puVar14 = &local_14;" (assignment_expression "puVar14 = &local_14" identifier = (pointer_expression "&local_14" & identifier)) ;) (expression_statement "FUN_0006f9a0();" (call_expression "FUN_0006f9a0()" identifier (argument_list "()" ( ))) ;) (if_statement "if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }" if (parenthesized_expression "(local_14 != 0)" ( (binary_expression "local_14 != 0" identifier != number_literal) )) (compound_statement "{\n    local_14 = bignum_from_bytes(local_14);\n  }" { (expression_statement "local_14 = bignum_from_bytes(local_14);" (assignment_expression "local_14 = bignum_from_bytes(local_14)" identifier = (call_expression "bignum_from_bytes(local_14)" identifier (argument_list "(local_14)" ( identifier )))) ;) })) (if_statement "if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }" if (parenthesized_expression "(local_c == *(int *)PTR___stack_chk_guard_000b8ce8)" ( (binary_expression "local_c == *(int *)PTR___stack_chk_guard_000b8ce8" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000b8ce8" * (cast_expression "(int *)PTR___stack_chk_guard_000b8ce8" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return local_14;\n  }" { (return_statement "return local_14;" return identifier ;) })) (expression_statement "iVar4 = local_c;" (assignment_expression "iVar4 = local_c" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_000b8cbc;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000b8cbc" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000b8cbc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b8cbc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b8cbc)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000b8cbc" * (cast_expression "(code *)PTR___stack_chk_fail_000b8cbc" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);" (assignment_expression "auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4)" (field_expression "auStack_55._1_4_" identifier . field_identifier) = (pointer_expression "**(int **)(puVar21 + 0x491c4)" * (pointer_expression "*(int **)(puVar21 + 0x491c4)" * (cast_expression "(int **)(puVar21 + 0x491c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x491c4)" ( (binary_expression "puVar21 + 0x491c4" identifier + number_literal) )))))) ;) (expression_statement "pbVar15 = (byte *)&local_70;" (assignment_expression "pbVar15 = (byte *)&local_70" identifier = (cast_expression "(byte *)&local_70" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_70" & identifier))) ;) (expression_statement "ppuVar13 = local_28;" (assignment_expression "ppuVar13 = local_28" identifier = identifier) ;) (expression_statement "local_28[0] = puVar14;" (assignment_expression "local_28[0] = puVar14" (subscript_expression "local_28[0]" identifier [ number_literal ]) = identifier) ;) (expression_statement "FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);" (call_expression "FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c)" identifier (argument_list "(local_74,ppuVar13,pbVar15,&local_6c)" ( identifier , identifier , identifier , (pointer_expression "&local_6c" & identifier) ))) ;) (if_statement "if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }" if (parenthesized_expression "((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7))" ( (binary_expression "(local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)" (parenthesized_expression "(local_70 != 0)" ( (binary_expression "local_70 != 0" identifier != number_literal) )) && (parenthesized_expression "(pbVar15 = (byte *)0x7, local_6c == 7)" ( (comma_expression "pbVar15 = (byte *)0x7, local_6c == 7" (assignment_expression "pbVar15 = (byte *)0x7" identifier = (cast_expression "(byte *)0x7" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) , (binary_expression "local_6c == 7" identifier == number_literal)) ))) )) (compound_statement "{\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }" { (expression_statement "ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);" (assignment_expression "ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18)" identifier = (cast_expression "(uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(puVar21 + 0x48824) + -0x7c18)" ( (binary_expression "*(int *)(puVar21 + 0x48824) + -0x7c18" (pointer_expression "*(int *)(puVar21 + 0x48824)" * (cast_expression "(int *)(puVar21 + 0x48824)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x48824)" ( (binary_expression "puVar21 + 0x48824" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "iVar2 = (**(code **)(puVar21 + 0x491a8))();" (assignment_expression "iVar2 = (**(code **)(puVar21 + 0x491a8))()" identifier = (call_expression "(**(code **)(puVar21 + 0x491a8))()" (parenthesized_expression "(**(code **)(puVar21 + 0x491a8))" ( (pointer_expression "**(code **)(puVar21 + 0x491a8)" * (pointer_expression "*(code **)(puVar21 + 0x491a8)" * (cast_expression "(code **)(puVar21 + 0x491a8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x491a8)" ( (binary_expression "puVar21 + 0x491a8" identifier + number_literal) ))))) )) (argument_list "()" ( )))) ;) (if_statement "if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }" if (parenthesized_expression "(iVar2 == 0)" ( (binary_expression "iVar2 == 0" identifier == number_literal) )) (compound_statement "{\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }" { (expression_statement "ppuVar13 = local_28;" (assignment_expression "ppuVar13 = local_28" identifier = identifier) ;) (expression_statement "iVar2 = FUN_0006fa9c(local_74);" (assignment_expression "iVar2 = FUN_0006fa9c(local_74)" identifier = (call_expression "FUN_0006fa9c(local_74)" identifier (argument_list "(local_74)" ( identifier )))) ;) (if_statement "if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }" if (parenthesized_expression "(iVar2 != 0)" ( (binary_expression "iVar2 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }" { (expression_statement "uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));" (assignment_expression "uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8))" ( identifier , (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "freebn(iVar2);" (call_expression "freebn(iVar2)" identifier (argument_list "(iVar2)" ( identifier ))) ;) (expression_statement "iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "bignum_bitcount(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar2 = iVar4 + 7;" (assignment_expression "iVar2 = iVar4 + 7" identifier = (binary_expression "iVar4 + 7" identifier + number_literal)) ;) (if_statement "if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }" if (parenthesized_expression "(iVar2 < 0)" ( (binary_expression "iVar2 < 0" identifier < number_literal) )) (compound_statement "{\n          iVar2 = iVar4 + 0xe;\n        }" { (expression_statement "iVar2 = iVar4 + 0xe;" (assignment_expression "iVar2 = iVar4 + 0xe" identifier = (binary_expression "iVar4 + 0xe" identifier + number_literal)) ;) })) (expression_statement "iVar2 = iVar2 >> 3;" (assignment_expression "iVar2 = iVar2 >> 3" identifier = (binary_expression "iVar2 >> 3" identifier >> number_literal)) ;) (expression_statement "iVar4 = bignum_byte(uVar3,iVar2 + -1);" (assignment_expression "iVar4 = bignum_byte(uVar3,iVar2 + -1)" identifier = (call_expression "bignum_byte(uVar3,iVar2 + -1)" identifier (argument_list "(uVar3,iVar2 + -1)" ( identifier , (binary_expression "iVar2 + -1" identifier + number_literal) )))) ;) (expression_statement "iVar6 = bignum_byte(uVar3,iVar2 + -2);" (assignment_expression "iVar6 = bignum_byte(uVar3,iVar2 + -2)" identifier = (call_expression "bignum_byte(uVar3,iVar2 + -2)" identifier (argument_list "(uVar3,iVar2 + -2)" ( identifier , (binary_expression "iVar2 + -2" identifier + number_literal) )))) ;) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar16 = (uint)(iVar4 == 0);" (assignment_expression "uVar16 = (uint)(iVar4 == 0)" identifier = (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar4 == 0)" ( (binary_expression "iVar4 == 0" identifier == number_literal) )))) ;) (if_statement "if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }" if (parenthesized_expression "(iVar6 != 1)" ( (binary_expression "iVar6 != 1" identifier != number_literal) )) (compound_statement "{\n          uVar16 = uVar18;\n        }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" identifier = (binary_expression "iVar2 + -3" identifier + number_literal)) ;) (if_statement "if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }" if (parenthesized_expression "(0x23 < iVar2)" ( (binary_expression "0x23 < iVar2" number_literal < identifier) )) (compound_statement "{\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }" { (do_statement "do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);" do (compound_statement "{\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          }" { (expression_statement "iVar4 = bignum_byte(uVar3,iVar2);" (assignment_expression "iVar4 = bignum_byte(uVar3,iVar2)" identifier = (call_expression "bignum_byte(uVar3,iVar2)" identifier (argument_list "(uVar3,iVar2)" ( identifier , identifier )))) ;) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" identifier = (binary_expression "iVar2 + -1" identifier + number_literal)) ;) (if_statement "if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }" if (parenthesized_expression "(iVar4 != 0xff)" ( (binary_expression "iVar4 != 0xff" identifier != number_literal) )) (compound_statement "{\n              uVar16 = uVar18;\n            }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) }) while (parenthesized_expression "(iVar2 != 0x23)" ( (binary_expression "iVar2 != 0x23" identifier != number_literal) )) ;) })) (expression_statement "iVar4 = *(int *)(puVar21 + 0x48824);" (assignment_expression "iVar4 = *(int *)(puVar21 + 0x48824)" identifier = (pointer_expression "*(int *)(puVar21 + 0x48824)" * (cast_expression "(int *)(puVar21 + 0x48824)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x48824)" ( (binary_expression "puVar21 + 0x48824" identifier + number_literal) ))))) ;) (expression_statement "pbVar15 = (byte *)(iVar4 + 0x1db8);" (assignment_expression "pbVar15 = (byte *)(iVar4 + 0x1db8)" identifier = (cast_expression "(byte *)(iVar4 + 0x1db8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1db8)" ( (binary_expression "iVar4 + 0x1db8" identifier + number_literal) )))) ;) (do_statement "do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));" do (compound_statement "{\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        }" { (expression_statement "uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);" (assignment_expression "uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15)" identifier = (call_expression "bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15)" identifier (argument_list "(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15)" ( identifier , (binary_expression "(iVar4 + 0x1ddb) - (int)pbVar15" (parenthesized_expression "(iVar4 + 0x1ddb)" ( (binary_expression "iVar4 + 0x1ddb" identifier + number_literal) )) - (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" identifier = (pointer_expression "*pbVar15" * identifier)) ;) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" identifier = (binary_expression "pbVar15 + 1" identifier + number_literal)) ;) (if_statement "if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }" if (parenthesized_expression "(uVar5 != bVar1)" ( (binary_expression "uVar5 != bVar1" identifier != identifier) )) (compound_statement "{\n            uVar16 = uVar18;\n          }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) }) while (parenthesized_expression "(pbVar15 != (byte *)(iVar4 + 0x1dc8))" ( (binary_expression "pbVar15 != (byte *)(iVar4 + 0x1dc8)" identifier != (cast_expression "(byte *)(iVar4 + 0x1dc8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1dc8)" ( (binary_expression "iVar4 + 0x1dc8" identifier + number_literal) )))) )) ;) (expression_statement "pbVar17 = local_68;" (assignment_expression "pbVar17 = local_68" identifier = identifier) ;) (expression_statement "pbVar15 = pbVar17;" (assignment_expression "pbVar15 = pbVar17" identifier = identifier) ;) (expression_statement "SHA_Simple(puVar19,&_gp_1);" (call_expression "SHA_Simple(puVar19,&_gp_1)" identifier (argument_list "(puVar19,&_gp_1)" ( identifier , (pointer_expression "&_gp_1" & identifier) ))) ;) (do_statement "do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);" do (compound_statement "{\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        }" { (expression_statement "ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));" (assignment_expression "ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17))" identifier = (cast_expression "(uint **)(local_68 + (0x13 - (int)pbVar17))" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(local_68 + (0x13 - (int)pbVar17))" ( (binary_expression "local_68 + (0x13 - (int)pbVar17)" identifier + (parenthesized_expression "(0x13 - (int)pbVar17)" ( (binary_expression "0x13 - (int)pbVar17" number_literal - (cast_expression "(int)pbVar17" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )))) ;) (expression_statement "uVar5 = bignum_byte(uVar3);" (assignment_expression "uVar5 = bignum_byte(uVar3)" identifier = (call_expression "bignum_byte(uVar3)" identifier (argument_list "(uVar3)" ( identifier )))) ;) (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" identifier = (pointer_expression "*pbVar17" * identifier)) ;) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" identifier = (binary_expression "pbVar17 + 1" identifier + number_literal)) ;) (if_statement "if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }" if (parenthesized_expression "(uVar5 != bVar1)" ( (binary_expression "uVar5 != bVar1" identifier != identifier) )) (compound_statement "{\n            uVar16 = uVar18;\n          }" { (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" identifier = identifier) ;) })) }) while (parenthesized_expression "(auStack_55 + 1 != pbVar17)" ( (binary_expression "auStack_55 + 1 != pbVar17" (binary_expression "auStack_55 + 1" identifier + number_literal) != identifier) )) ;) (expression_statement "freebn(uVar3);" (call_expression "freebn(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (goto_statement "goto LAB_0006fda0;" goto statement_identifier ;) })) })) })) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (labeled_statement "LAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }" statement_identifier : (if_statement "if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }" if (parenthesized_expression "(auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4))" ( (binary_expression "auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)" (field_expression "auStack_55._1_4_" identifier . field_identifier) != (pointer_expression "**(int **)(puVar21 + 0x491c4)" * (pointer_expression "*(int **)(puVar21 + 0x491c4)" * (cast_expression "(int **)(puVar21 + 0x491c4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x491c4)" ( (binary_expression "puVar21 + 0x491c4" identifier + number_literal) )))))) )) (compound_statement "{\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }" { (expression_statement "iVar4 = auStack_55._1_4_;" (assignment_expression "iVar4 = auStack_55._1_4_" identifier = (field_expression "auStack_55._1_4_" identifier . field_identifier)) ;) (expression_statement "(**(code **)(puVar21 + 0x49198))();" (call_expression "(**(code **)(puVar21 + 0x49198))()" (parenthesized_expression "(**(code **)(puVar21 + 0x49198))" ( (pointer_expression "**(code **)(puVar21 + 0x49198)" * (pointer_expression "*(code **)(puVar21 + 0x49198)" * (cast_expression "(code **)(puVar21 + 0x49198)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x49198)" ( (binary_expression "puVar21 + 0x49198" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;" (assignment_expression "uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10" identifier = (binary_expression "iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10" (binary_expression "iVar2 + iVar6 + iVar7 + iVar8 + iVar9" (binary_expression "iVar2 + iVar6 + iVar7 + iVar8" (binary_expression "iVar2 + iVar6 + iVar7" (binary_expression "iVar2 + iVar6" identifier + identifier) + identifier) + identifier) + identifier) + identifier)) ;) (if_statement "if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }" if (parenthesized_expression "((int)uVar18 <= (int)pbVar15)" ( (binary_expression "(int)uVar18 <= (int)pbVar15" (cast_expression "(int)uVar18" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)pbVar15" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }" { (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*(char *)ppuVar13" * (cast_expression "(char *)ppuVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "*(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10)" (pointer_expression "*(char *)((int)ppuVar13 + 1)" * (cast_expression "(char *)((int)ppuVar13 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + 1)" ( (binary_expression "(int)ppuVar13 + 1" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "*(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8)" (pointer_expression "*(char *)((int)ppuVar13 + 2)" * (cast_expression "(char *)((int)ppuVar13 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + 2)" ( (binary_expression "(int)ppuVar13 + 2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "*(char *)((int)ppuVar13 + 3) = cVar11 + -4;" (assignment_expression "*(char *)((int)ppuVar13 + 3) = cVar11 + -4" (pointer_expression "*(char *)((int)ppuVar13 + 3)" * (cast_expression "(char *)((int)ppuVar13 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + 3)" ( (binary_expression "(int)ppuVar13 + 3" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" identifier (argument_list "(*(undefined4 *)(iVar4 + 8))" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) )))) ;) (expression_statement "iVar6 = iVar2 + -5;" (assignment_expression "iVar6 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (if_statement "if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }" { (expression_statement "ppuVar20 = ppuVar13 + 1;" (assignment_expression "ppuVar20 = ppuVar13 + 1" identifier = (binary_expression "ppuVar13 + 1" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6)" identifier (argument_list "(*(undefined4 *)(iVar4 + 8),iVar6)" ( (pointer_expression "*(undefined4 *)(iVar4 + 8)" * (cast_expression "(undefined4 *)(iVar4 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 8)" ( (binary_expression "iVar4 + 8" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*(undefined1 *)ppuVar20 = uVar12;" (assignment_expression "*(undefined1 *)ppuVar20 = uVar12" (pointer_expression "*(undefined1 *)ppuVar20" * (cast_expression "(undefined1 *)ppuVar20" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "ppuVar20 = (uint **)((int)ppuVar20 + 1);" (assignment_expression "ppuVar20 = (uint **)((int)ppuVar20 + 1)" identifier = (cast_expression "(uint **)((int)ppuVar20 + 1)" ( (type_descriptor "uint **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppuVar20 + 1)" ( (binary_expression "(int)ppuVar20 + 1" (cast_expression "(int)ppuVar20" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) }) while (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) ;) })) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar2)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar2)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar2)" ( (binary_expression "(int)ppuVar13 + iVar2" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar6 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar6 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar6 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar6 + -4) >> 0x18" (call_expression "(uint)(iVar6 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 + -4)" ( (binary_expression "iVar6 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar6 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar6 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar6 + -4) >> 0x10" (call_expression "(uint)(iVar6 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 + -4)" ( (binary_expression "iVar6 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar6 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar6 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar6 + -4) >> 8)" ( (binary_expression "(uint)(iVar6 + -4) >> 8" (call_expression "(uint)(iVar6 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar6 + -4)" ( (binary_expression "iVar6 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar2 + 4;" (assignment_expression "iVar7 = iVar2 + 4" identifier = (binary_expression "iVar2 + 4" identifier + number_literal)) ;) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }" if (parenthesized_expression "(iVar6 != 4)" ( (binary_expression "iVar6 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar7)" ( (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar7 = iVar6 + -5;" (assignment_expression "iVar7 = iVar6 + -5" identifier = (binary_expression "iVar6 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0xc),iVar7)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" * (cast_expression "(undefined4 *)(iVar4 + 0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0xc)" ( (binary_expression "iVar4 + 0xc" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "iVar7 = iVar2 + 5 + iVar6 + -5;" (assignment_expression "iVar7 = iVar2 + 5 + iVar6 + -5" identifier = (binary_expression "iVar2 + 5 + iVar6 + -5" (binary_expression "iVar2 + 5 + iVar6" (binary_expression "iVar2 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar7)" ( (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar7 + 4;" (assignment_expression "iVar6 = iVar7 + 4" identifier = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar6)" ( (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar6 = iVar2 + -5;" (assignment_expression "iVar6 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x10),iVar6)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" * (cast_expression "(undefined4 *)(iVar4 + 0x10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x10)" ( (binary_expression "iVar4 + 0x10" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) ;) (expression_statement "iVar6 = iVar7 + 5 + iVar2 + -5;" (assignment_expression "iVar6 = iVar7 + 5 + iVar2 + -5" identifier = (binary_expression "iVar7 + 5 + iVar2 + -5" (binary_expression "iVar7 + 5 + iVar2" (binary_expression "iVar7 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar6)" ( (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar7 = iVar6 + 4;" (assignment_expression "iVar7 = iVar6 + 4" identifier = (binary_expression "iVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar7)" ( (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar7 = iVar2 + -5;" (assignment_expression "iVar7 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x1c),iVar7)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" * (cast_expression "(undefined4 *)(iVar4 + 0x1c)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x1c)" ( (binary_expression "iVar4 + 0x1c" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "iVar7 = iVar6 + 5 + iVar2 + -5;" (assignment_expression "iVar7 = iVar6 + 5 + iVar2 + -5" identifier = (binary_expression "iVar6 + 5 + iVar2 + -5" (binary_expression "iVar6 + 5 + iVar2" (binary_expression "iVar6 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar7)" ( (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "iVar6 = iVar7 + 4;" (assignment_expression "iVar6 = iVar7 + 4" identifier = (binary_expression "iVar7 + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar6)" ( (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar6 = iVar2 + -5;" (assignment_expression "iVar6 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x14),iVar6)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" * (cast_expression "(undefined4 *)(iVar4 + 0x14)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x14)" ( (binary_expression "iVar4 + 0x14" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" identifier = (binary_expression "iVar6 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar6 != -1)" ( (binary_expression "iVar6 != -1" identifier != number_literal) )) ;) (expression_statement "iVar6 = iVar7 + 5 + iVar2 + -5;" (assignment_expression "iVar6 = iVar7 + 5 + iVar2 + -5" identifier = (binary_expression "iVar7 + 5 + iVar2 + -5" (binary_expression "iVar7 + 5 + iVar2" (binary_expression "iVar7 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + iVar6)" ( (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" * identifier) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" ( (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" identifier [ number_literal ]) = (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" ( (type_descriptor "char" primitive_type) ) (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" ( (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(iVar2 + -4)" ( (binary_expression "iVar2 + -4" identifier + number_literal) ))) >> number_literal) )))) ;) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" identifier [ number_literal ]) = (binary_expression "cVar11 + -4" identifier + number_literal)) ;) (expression_statement "uVar18 = iVar6 + 4;" (assignment_expression "uVar18 = iVar6 + 4" identifier = (binary_expression "iVar6 + 4" identifier + number_literal)) ;) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier = (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18))" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) )))) ;) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }" if (parenthesized_expression "(iVar2 != 4)" ( (binary_expression "iVar2 != 4" identifier != number_literal) )) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }" { (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + uVar18)" identifier = (cast_expression "(undefined1 *)((int)ppuVar13 + uVar18)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppuVar13 + uVar18)" ( (binary_expression "(int)ppuVar13 + uVar18" (cast_expression "(int)ppuVar13" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "iVar7 = iVar2 + -5;" (assignment_expression "iVar7 = iVar2 + -5" identifier = (binary_expression "iVar2 + -5" identifier + number_literal)) ;) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);" do (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        }" { (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7)" identifier = (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7)" identifier (argument_list "(*(undefined4 *)(iVar4 + 0x18),iVar7)" ( (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" * (cast_expression "(undefined4 *)(iVar4 + 0x18)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar4 + 0x18)" ( (binary_expression "iVar4 + 0x18" identifier + number_literal) )))) , identifier )))) ;) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" * identifier) = identifier) ;) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" identifier = (binary_expression "puVar19 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) ;) (expression_statement "uVar18 = iVar6 + 5 + iVar2 + -5;" (assignment_expression "uVar18 = iVar6 + 5 + iVar2 + -5" identifier = (binary_expression "iVar6 + 5 + iVar2 + -5" (binary_expression "iVar6 + 5 + iVar2" (binary_expression "iVar6 + 5" identifier + number_literal) + identifier) + number_literal)) ;) })) })) (return_statement "return uVar18;" return identifier ;) }))) (return_statement "return uVar16;" return identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ LIT ])) ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = 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 (field_expression IDENT . field_identifier) = (pointer_expression * (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 *)) ) (pointer_expression & IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (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 ( )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT + LIT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) while (parenthesized_expression ( (binary_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 (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) ))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (parenthesized_expression ( (binary_expression LIT - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }) while (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) != IDENT) )) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (field_expression IDENT . field_identifier)) ;) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression (binary_expression (binary_expression IDENT + IDENT) + IDENT) + IDENT) + IDENT) + IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (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 *)) ) IDENT)) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 IDENT = (binary_expression (binary_expression (binary_expression IDENT + LIT) + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 IDENT = (binary_expression (binary_expression (binary_expression IDENT + LIT) + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 IDENT = (binary_expression (binary_expression (binary_expression IDENT + LIT) + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 IDENT = (binary_expression (binary_expression (binary_expression IDENT + LIT) + IDENT) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) >> LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 IDENT = (binary_expression (binary_expression (binary_expression IDENT + LIT) + IDENT) + LIT)) ;) })) })) (return_statement return IDENT ;) }))) (return_statement return IDENT ;) })))
(function_definition "uint FUN_0006fa9c(void)\n\n{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined1 uVar12;\n  uint **ppuVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  uint **ppuVar20;\n  undefined *puVar21;\n  undefined1 local_74 [4];\n  int local_70;\n  int local_6c;\n  byte local_68 [19];\n  undefined1 auStack_55 [5];\n  uint *local_28 [2];\n  uint local_14;\n  undefined1 local_10 [4];\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  puVar19 = local_10;\n  puVar14 = &local_14;\n  FUN_0006f9a0();\n  if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }\n  iVar4 = local_c;\n  puVar21 = PTR___stack_chk_fail_000b8cbc;\n  (*(code *)PTR___stack_chk_fail_000b8cbc)();\n  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);\n  pbVar15 = (byte *)&local_70;\n  ppuVar13 = local_28;\n  local_28[0] = puVar14;\n  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);\n  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }\n  uVar16 = 0;\nLAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }\n  return uVar16;\n}" (type_identifier "uint") (function_declarator "FUN_0006fa9c(void)" (identifier "FUN_0006fa9c") (parameter_list "(void)" (( "(") (parameter_declaration "void" (primitive_type "void")) () ")"))) (compound_statement "{\n  byte bVar1;\n  int iVar2;\n  undefined4 uVar3;\n  int iVar4;\n  uint uVar5;\n  int iVar6;\n  int iVar7;\n  int iVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  undefined1 uVar12;\n  uint **ppuVar13;\n  uint *puVar14;\n  byte *pbVar15;\n  uint uVar16;\n  byte *pbVar17;\n  uint uVar18;\n  undefined1 *puVar19;\n  uint **ppuVar20;\n  undefined *puVar21;\n  undefined1 local_74 [4];\n  int local_70;\n  int local_6c;\n  byte local_68 [19];\n  undefined1 auStack_55 [5];\n  uint *local_28 [2];\n  uint local_14;\n  undefined1 local_10 [4];\n  int local_c;\n  \n  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;\n  puVar19 = local_10;\n  puVar14 = &local_14;\n  FUN_0006f9a0();\n  if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }\n  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }\n  iVar4 = local_c;\n  puVar21 = PTR___stack_chk_fail_000b8cbc;\n  (*(code *)PTR___stack_chk_fail_000b8cbc)();\n  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);\n  pbVar15 = (byte *)&local_70;\n  ppuVar13 = local_28;\n  local_28[0] = puVar14;\n  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);\n  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }\n  uVar16 = 0;\nLAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }\n  return uVar16;\n}" ({ "{") (declaration "byte bVar1;" (type_identifier "byte") (identifier "bVar1") (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "undefined1 uVar12;" (type_identifier "undefined1") (identifier "uVar12") (; ";")) (declaration "uint **ppuVar13;" (type_identifier "uint") (pointer_declarator "**ppuVar13" (* "*") (pointer_declarator "*ppuVar13" (* "*") (identifier "ppuVar13"))) (; ";")) (declaration "uint *puVar14;" (type_identifier "uint") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "byte *pbVar15;" (type_identifier "byte") (pointer_declarator "*pbVar15" (* "*") (identifier "pbVar15")) (; ";")) (declaration "uint uVar16;" (type_identifier "uint") (identifier "uVar16") (; ";")) (declaration "byte *pbVar17;" (type_identifier "byte") (pointer_declarator "*pbVar17" (* "*") (identifier "pbVar17")) (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined1 *puVar19;" (type_identifier "undefined1") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "uint **ppuVar20;" (type_identifier "uint") (pointer_declarator "**ppuVar20" (* "*") (pointer_declarator "*ppuVar20" (* "*") (identifier "ppuVar20"))) (; ";")) (declaration "undefined *puVar21;" (type_identifier "undefined") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "undefined1 local_74 [4];" (type_identifier "undefined1") (array_declarator "local_74 [4]" (identifier "local_74") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_70;" (primitive_type "int") (identifier "local_70") (; ";")) (declaration "int local_6c;" (primitive_type "int") (identifier "local_6c") (; ";")) (declaration "byte local_68 [19];" (type_identifier "byte") (array_declarator "local_68 [19]" (identifier "local_68") ([ "[") (number_literal "19") (] "]")) (; ";")) (declaration "undefined1 auStack_55 [5];" (type_identifier "undefined1") (array_declarator "auStack_55 [5]" (identifier "auStack_55") ([ "[") (number_literal "5") (] "]")) (; ";")) (declaration "uint *local_28 [2];" (type_identifier "uint") (pointer_declarator "*local_28 [2]" (* "*") (array_declarator "local_28 [2]" (identifier "local_28") ([ "[") (number_literal "2") (] "]"))) (; ";")) (declaration "uint local_14;" (type_identifier "uint") (identifier "local_14") (; ";")) (declaration "undefined1 local_10 [4];" (type_identifier "undefined1") (array_declarator "local_10 [4]" (identifier "local_10") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_c;" (primitive_type "int") (identifier "local_c") (; ";")) (expression_statement "local_c = *(int *)PTR___stack_chk_guard_000b8ce8;" (assignment_expression "local_c = *(int *)PTR___stack_chk_guard_000b8ce8" (identifier "local_c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000b8ce8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b8ce8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b8ce8")))) (; ";")) (expression_statement "puVar19 = local_10;" (assignment_expression "puVar19 = local_10" (identifier "puVar19") (= "=") (identifier "local_10")) (; ";")) (expression_statement "puVar14 = &local_14;" (assignment_expression "puVar14 = &local_14" (identifier "puVar14") (= "=") (pointer_expression "&local_14" (& "&") (identifier "local_14"))) (; ";")) (expression_statement "FUN_0006f9a0();" (call_expression "FUN_0006f9a0()" (identifier "FUN_0006f9a0") (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (local_14 != 0) {\n    local_14 = bignum_from_bytes(local_14);\n  }" (if "if") (parenthesized_expression "(local_14 != 0)" (( "(") (binary_expression "local_14 != 0" (identifier "local_14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    local_14 = bignum_from_bytes(local_14);\n  }" ({ "{") (expression_statement "local_14 = bignum_from_bytes(local_14);" (assignment_expression "local_14 = bignum_from_bytes(local_14)" (identifier "local_14") (= "=") (call_expression "bignum_from_bytes(local_14)" (identifier "bignum_from_bytes") (argument_list "(local_14)" (( "(") (identifier "local_14") () ")")))) (; ";")) (} "}"))) (if_statement "if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {\n    return local_14;\n  }" (if "if") (parenthesized_expression "(local_c == *(int *)PTR___stack_chk_guard_000b8ce8)" (( "(") (binary_expression "local_c == *(int *)PTR___stack_chk_guard_000b8ce8" (identifier "local_c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000b8ce8" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000b8ce8" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000b8ce8")))) () ")")) (compound_statement "{\n    return local_14;\n  }" ({ "{") (return_statement "return local_14;" (return "return") (identifier "local_14") (; ";")) (} "}"))) (expression_statement "iVar4 = local_c;" (assignment_expression "iVar4 = local_c" (identifier "iVar4") (= "=") (identifier "local_c")) (; ";")) (expression_statement "puVar21 = PTR___stack_chk_fail_000b8cbc;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000b8cbc" (identifier "puVar21") (= "=") (identifier "PTR___stack_chk_fail_000b8cbc")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000b8cbc)();" (call_expression "(*(code *)PTR___stack_chk_fail_000b8cbc)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000b8cbc)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000b8cbc" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000b8cbc" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000b8cbc"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);" (assignment_expression "auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4)" (field_expression "auStack_55._1_4_" (identifier "auStack_55") (. ".") (field_identifier "_1_4_")) (= "=") (pointer_expression "**(int **)(puVar21 + 0x491c4)" (* "*") (pointer_expression "*(int **)(puVar21 + 0x491c4)" (* "*") (cast_expression "(int **)(puVar21 + 0x491c4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x491c4)" (( "(") (binary_expression "puVar21 + 0x491c4" (identifier "puVar21") (+ "+") (number_literal "0x491c4")) () ")")))))) (; ";")) (expression_statement "pbVar15 = (byte *)&local_70;" (assignment_expression "pbVar15 = (byte *)&local_70" (identifier "pbVar15") (= "=") (cast_expression "(byte *)&local_70" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_70" (& "&") (identifier "local_70")))) (; ";")) (expression_statement "ppuVar13 = local_28;" (assignment_expression "ppuVar13 = local_28" (identifier "ppuVar13") (= "=") (identifier "local_28")) (; ";")) (expression_statement "local_28[0] = puVar14;" (assignment_expression "local_28[0] = puVar14" (subscript_expression "local_28[0]" (identifier "local_28") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "puVar14")) (; ";")) (expression_statement "FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);" (call_expression "FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c)" (identifier "FUN_0006f9a0") (argument_list "(local_74,ppuVar13,pbVar15,&local_6c)" (( "(") (identifier "local_74") (, ",") (identifier "ppuVar13") (, ",") (identifier "pbVar15") (, ",") (pointer_expression "&local_6c" (& "&") (identifier "local_6c")) () ")"))) (; ";")) (if_statement "if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }" (if "if") (parenthesized_expression "((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7))" (( "(") (binary_expression "(local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)" (parenthesized_expression "(local_70 != 0)" (( "(") (binary_expression "local_70 != 0" (identifier "local_70") (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pbVar15 = (byte *)0x7, local_6c == 7)" (( "(") (comma_expression "pbVar15 = (byte *)0x7, local_6c == 7" (assignment_expression "pbVar15 = (byte *)0x7" (identifier "pbVar15") (= "=") (cast_expression "(byte *)0x7" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x7"))) (, ",") (binary_expression "local_6c == 7" (identifier "local_6c") (== "==") (number_literal "7"))) () ")"))) () ")")) (compound_statement "{\n    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);\n    iVar2 = (**(code **)(puVar21 + 0x491a8))();\n    if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }\n  }" ({ "{") (expression_statement "ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);" (assignment_expression "ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18)" (identifier "ppuVar13") (= "=") (cast_expression "(uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(puVar21 + 0x48824) + -0x7c18)" (( "(") (binary_expression "*(int *)(puVar21 + 0x48824) + -0x7c18" (pointer_expression "*(int *)(puVar21 + 0x48824)" (* "*") (cast_expression "(int *)(puVar21 + 0x48824)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 0x48824)" (( "(") (binary_expression "puVar21 + 0x48824" (identifier "puVar21") (+ "+") (number_literal "0x48824")) () ")")))) (+ "+") (number_literal "-0x7c18")) () ")")))) (; ";")) (expression_statement "iVar2 = (**(code **)(puVar21 + 0x491a8))();" (assignment_expression "iVar2 = (**(code **)(puVar21 + 0x491a8))()" (identifier "iVar2") (= "=") (call_expression "(**(code **)(puVar21 + 0x491a8))()" (parenthesized_expression "(**(code **)(puVar21 + 0x491a8))" (( "(") (pointer_expression "**(code **)(puVar21 + 0x491a8)" (* "*") (pointer_expression "*(code **)(puVar21 + 0x491a8)" (* "*") (cast_expression "(code **)(puVar21 + 0x491a8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x491a8)" (( "(") (binary_expression "puVar21 + 0x491a8" (identifier "puVar21") (+ "+") (number_literal "0x491a8")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")")))) (; ";")) (if_statement "if (iVar2 == 0) {\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }" (if "if") (parenthesized_expression "(iVar2 == 0)" (( "(") (binary_expression "iVar2 == 0" (identifier "iVar2") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      ppuVar13 = local_28;\n      iVar2 = FUN_0006fa9c(local_74);\n      if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }\n    }" ({ "{") (expression_statement "ppuVar13 = local_28;" (assignment_expression "ppuVar13 = local_28" (identifier "ppuVar13") (= "=") (identifier "local_28")) (; ";")) (expression_statement "iVar2 = FUN_0006fa9c(local_74);" (assignment_expression "iVar2 = FUN_0006fa9c(local_74)" (identifier "iVar2") (= "=") (call_expression "FUN_0006fa9c(local_74)" (identifier "FUN_0006fa9c") (argument_list "(local_74)" (( "(") (identifier "local_74") () ")")))) (; ";")) (if_statement "if (iVar2 != 0) {\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }" (if "if") (parenthesized_expression "(iVar2 != 0)" (( "(") (binary_expression "iVar2 != 0" (identifier "iVar2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));\n        freebn(iVar2);\n        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));\n        iVar2 = iVar4 + 7;\n        if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }\n        iVar2 = iVar2 >> 3;\n        iVar4 = bignum_byte(uVar3,iVar2 + -1);\n        iVar6 = bignum_byte(uVar3,iVar2 + -2);\n        uVar18 = 0;\n        uVar16 = (uint)(iVar4 == 0);\n        if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }\n        iVar2 = iVar2 + -3;\n        if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }\n        iVar4 = *(int *)(puVar21 + 0x48824);\n        pbVar15 = (byte *)(iVar4 + 0x1db8);\n        do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));\n        pbVar17 = local_68;\n        pbVar15 = pbVar17;\n        SHA_Simple(puVar19,&_gp_1);\n        do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);\n        freebn(uVar3);\n        goto LAB_0006fda0;\n      }" ({ "{") (expression_statement "uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));" (assignment_expression "uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8))" (identifier "uVar3") (= "=") (call_expression "modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8))" (identifier "modpow") (argument_list "(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8))" (( "(") (identifier "iVar2") (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "freebn(iVar2);" (call_expression "freebn(iVar2)" (identifier "freebn") (argument_list "(iVar2)" (( "(") (identifier "iVar2") () ")"))) (; ";")) (expression_statement "iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8))" (identifier "iVar4") (= "=") (call_expression "bignum_bitcount(*(undefined4 *)(iVar4 + 8))" (identifier "bignum_bitcount") (argument_list "(*(undefined4 *)(iVar4 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar2 = iVar4 + 7;" (assignment_expression "iVar2 = iVar4 + 7" (identifier "iVar2") (= "=") (binary_expression "iVar4 + 7" (identifier "iVar4") (+ "+") (number_literal "7"))) (; ";")) (if_statement "if (iVar2 < 0) {\n          iVar2 = iVar4 + 0xe;\n        }" (if "if") (parenthesized_expression "(iVar2 < 0)" (( "(") (binary_expression "iVar2 < 0" (identifier "iVar2") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n          iVar2 = iVar4 + 0xe;\n        }" ({ "{") (expression_statement "iVar2 = iVar4 + 0xe;" (assignment_expression "iVar2 = iVar4 + 0xe" (identifier "iVar2") (= "=") (binary_expression "iVar4 + 0xe" (identifier "iVar4") (+ "+") (number_literal "0xe"))) (; ";")) (} "}"))) (expression_statement "iVar2 = iVar2 >> 3;" (assignment_expression "iVar2 = iVar2 >> 3" (identifier "iVar2") (= "=") (binary_expression "iVar2 >> 3" (identifier "iVar2") (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "iVar4 = bignum_byte(uVar3,iVar2 + -1);" (assignment_expression "iVar4 = bignum_byte(uVar3,iVar2 + -1)" (identifier "iVar4") (= "=") (call_expression "bignum_byte(uVar3,iVar2 + -1)" (identifier "bignum_byte") (argument_list "(uVar3,iVar2 + -1)" (( "(") (identifier "uVar3") (, ",") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1")) () ")")))) (; ";")) (expression_statement "iVar6 = bignum_byte(uVar3,iVar2 + -2);" (assignment_expression "iVar6 = bignum_byte(uVar3,iVar2 + -2)" (identifier "iVar6") (= "=") (call_expression "bignum_byte(uVar3,iVar2 + -2)" (identifier "bignum_byte") (argument_list "(uVar3,iVar2 + -2)" (( "(") (identifier "uVar3") (, ",") (binary_expression "iVar2 + -2" (identifier "iVar2") (+ "+") (number_literal "-2")) () ")")))) (; ";")) (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar16 = (uint)(iVar4 == 0);" (assignment_expression "uVar16 = (uint)(iVar4 == 0)" (identifier "uVar16") (= "=") (call_expression "(uint)(iVar4 == 0)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar4 == 0)" (( "(") (binary_expression "iVar4 == 0" (identifier "iVar4") (== "==") (number_literal "0")) () ")")))) (; ";")) (if_statement "if (iVar6 != 1) {\n          uVar16 = uVar18;\n        }" (if "if") (parenthesized_expression "(iVar6 != 1)" (( "(") (binary_expression "iVar6 != 1" (identifier "iVar6") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n          uVar16 = uVar18;\n        }" ({ "{") (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" (identifier "uVar16") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (expression_statement "iVar2 = iVar2 + -3;" (assignment_expression "iVar2 = iVar2 + -3" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -3" (identifier "iVar2") (+ "+") (number_literal "-3"))) (; ";")) (if_statement "if (0x23 < iVar2) {\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }" (if "if") (parenthesized_expression "(0x23 < iVar2)" (( "(") (binary_expression "0x23 < iVar2" (number_literal "0x23") (< "<") (identifier "iVar2")) () ")")) (compound_statement "{\n          do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);\n        }" ({ "{") (do_statement "do {\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          } while (iVar2 != 0x23);" (do "do") (compound_statement "{\n            iVar4 = bignum_byte(uVar3,iVar2);\n            iVar2 = iVar2 + -1;\n            if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }\n          }" ({ "{") (expression_statement "iVar4 = bignum_byte(uVar3,iVar2);" (assignment_expression "iVar4 = bignum_byte(uVar3,iVar2)" (identifier "iVar4") (= "=") (call_expression "bignum_byte(uVar3,iVar2)" (identifier "bignum_byte") (argument_list "(uVar3,iVar2)" (( "(") (identifier "uVar3") (, ",") (identifier "iVar2") () ")")))) (; ";")) (expression_statement "iVar2 = iVar2 + -1;" (assignment_expression "iVar2 = iVar2 + -1" (identifier "iVar2") (= "=") (binary_expression "iVar2 + -1" (identifier "iVar2") (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (iVar4 != 0xff) {\n              uVar16 = uVar18;\n            }" (if "if") (parenthesized_expression "(iVar4 != 0xff)" (( "(") (binary_expression "iVar4 != 0xff" (identifier "iVar4") (!= "!=") (number_literal "0xff")) () ")")) (compound_statement "{\n              uVar16 = uVar18;\n            }" ({ "{") (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" (identifier "uVar16") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(iVar2 != 0x23)" (( "(") (binary_expression "iVar2 != 0x23" (identifier "iVar2") (!= "!=") (number_literal "0x23")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar4 = *(int *)(puVar21 + 0x48824);" (assignment_expression "iVar4 = *(int *)(puVar21 + 0x48824)" (identifier "iVar4") (= "=") (pointer_expression "*(int *)(puVar21 + 0x48824)" (* "*") (cast_expression "(int *)(puVar21 + 0x48824)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar21 + 0x48824)" (( "(") (binary_expression "puVar21 + 0x48824" (identifier "puVar21") (+ "+") (number_literal "0x48824")) () ")"))))) (; ";")) (expression_statement "pbVar15 = (byte *)(iVar4 + 0x1db8);" (assignment_expression "pbVar15 = (byte *)(iVar4 + 0x1db8)" (identifier "pbVar15") (= "=") (cast_expression "(byte *)(iVar4 + 0x1db8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1db8)" (( "(") (binary_expression "iVar4 + 0x1db8" (identifier "iVar4") (+ "+") (number_literal "0x1db8")) () ")")))) (; ";")) (do_statement "do {\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));" (do "do") (compound_statement "{\n          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);\n          bVar1 = *pbVar15;\n          pbVar15 = pbVar15 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        }" ({ "{") (expression_statement "uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);" (assignment_expression "uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15)" (identifier "uVar5") (= "=") (call_expression "bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15)" (identifier "bignum_byte") (argument_list "(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15)" (( "(") (identifier "uVar3") (, ",") (binary_expression "(iVar4 + 0x1ddb) - (int)pbVar15" (parenthesized_expression "(iVar4 + 0x1ddb)" (( "(") (binary_expression "iVar4 + 0x1ddb" (identifier "iVar4") (+ "+") (number_literal "0x1ddb")) () ")")) (- "-") (cast_expression "(int)pbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar15"))) () ")")))) (; ";")) (expression_statement "bVar1 = *pbVar15;" (assignment_expression "bVar1 = *pbVar15" (identifier "bVar1") (= "=") (pointer_expression "*pbVar15" (* "*") (identifier "pbVar15"))) (; ";")) (expression_statement "pbVar15 = pbVar15 + 1;" (assignment_expression "pbVar15 = pbVar15 + 1" (identifier "pbVar15") (= "=") (binary_expression "pbVar15 + 1" (identifier "pbVar15") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }" (if "if") (parenthesized_expression "(uVar5 != bVar1)" (( "(") (binary_expression "uVar5 != bVar1" (identifier "uVar5") (!= "!=") (identifier "bVar1")) () ")")) (compound_statement "{\n            uVar16 = uVar18;\n          }" ({ "{") (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" (identifier "uVar16") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(pbVar15 != (byte *)(iVar4 + 0x1dc8))" (( "(") (binary_expression "pbVar15 != (byte *)(iVar4 + 0x1dc8)" (identifier "pbVar15") (!= "!=") (cast_expression "(byte *)(iVar4 + 0x1dc8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1dc8)" (( "(") (binary_expression "iVar4 + 0x1dc8" (identifier "iVar4") (+ "+") (number_literal "0x1dc8")) () ")")))) () ")")) (; ";")) (expression_statement "pbVar17 = local_68;" (assignment_expression "pbVar17 = local_68" (identifier "pbVar17") (= "=") (identifier "local_68")) (; ";")) (expression_statement "pbVar15 = pbVar17;" (assignment_expression "pbVar15 = pbVar17" (identifier "pbVar15") (= "=") (identifier "pbVar17")) (; ";")) (expression_statement "SHA_Simple(puVar19,&_gp_1);" (call_expression "SHA_Simple(puVar19,&_gp_1)" (identifier "SHA_Simple") (argument_list "(puVar19,&_gp_1)" (( "(") (identifier "puVar19") (, ",") (pointer_expression "&_gp_1" (& "&") (identifier "_gp_1")) () ")"))) (; ";")) (do_statement "do {\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        } while (auStack_55 + 1 != pbVar17);" (do "do") (compound_statement "{\n          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));\n          uVar5 = bignum_byte(uVar3);\n          bVar1 = *pbVar17;\n          pbVar17 = pbVar17 + 1;\n          if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }\n        }" ({ "{") (expression_statement "ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));" (assignment_expression "ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17))" (identifier "ppuVar13") (= "=") (cast_expression "(uint **)(local_68 + (0x13 - (int)pbVar17))" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(local_68 + (0x13 - (int)pbVar17))" (( "(") (binary_expression "local_68 + (0x13 - (int)pbVar17)" (identifier "local_68") (+ "+") (parenthesized_expression "(0x13 - (int)pbVar17)" (( "(") (binary_expression "0x13 - (int)pbVar17" (number_literal "0x13") (- "-") (cast_expression "(int)pbVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar17"))) () ")"))) () ")")))) (; ";")) (expression_statement "uVar5 = bignum_byte(uVar3);" (assignment_expression "uVar5 = bignum_byte(uVar3)" (identifier "uVar5") (= "=") (call_expression "bignum_byte(uVar3)" (identifier "bignum_byte") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (expression_statement "bVar1 = *pbVar17;" (assignment_expression "bVar1 = *pbVar17" (identifier "bVar1") (= "=") (pointer_expression "*pbVar17" (* "*") (identifier "pbVar17"))) (; ";")) (expression_statement "pbVar17 = pbVar17 + 1;" (assignment_expression "pbVar17 = pbVar17 + 1" (identifier "pbVar17") (= "=") (binary_expression "pbVar17 + 1" (identifier "pbVar17") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar5 != bVar1) {\n            uVar16 = uVar18;\n          }" (if "if") (parenthesized_expression "(uVar5 != bVar1)" (( "(") (binary_expression "uVar5 != bVar1" (identifier "uVar5") (!= "!=") (identifier "bVar1")) () ")")) (compound_statement "{\n            uVar16 = uVar18;\n          }" ({ "{") (expression_statement "uVar16 = uVar18;" (assignment_expression "uVar16 = uVar18" (identifier "uVar16") (= "=") (identifier "uVar18")) (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(auStack_55 + 1 != pbVar17)" (( "(") (binary_expression "auStack_55 + 1 != pbVar17" (binary_expression "auStack_55 + 1" (identifier "auStack_55") (+ "+") (number_literal "1")) (!= "!=") (identifier "pbVar17")) () ")")) (; ";")) (expression_statement "freebn(uVar3);" (call_expression "freebn(uVar3)" (identifier "freebn") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (goto_statement "goto LAB_0006fda0;" (goto "goto") (statement_identifier "LAB_0006fda0") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_0006fda0:\n  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }" (statement_identifier "LAB_0006fda0") (: ":") (if_statement "if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }" (if "if") (parenthesized_expression "(auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4))" (( "(") (binary_expression "auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)" (field_expression "auStack_55._1_4_" (identifier "auStack_55") (. ".") (field_identifier "_1_4_")) (!= "!=") (pointer_expression "**(int **)(puVar21 + 0x491c4)" (* "*") (pointer_expression "*(int **)(puVar21 + 0x491c4)" (* "*") (cast_expression "(int **)(puVar21 + 0x491c4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x491c4)" (( "(") (binary_expression "puVar21 + 0x491c4" (identifier "puVar21") (+ "+") (number_literal "0x491c4")) () ")")))))) () ")")) (compound_statement "{\n    iVar4 = auStack_55._1_4_;\n    (**(code **)(puVar21 + 0x49198))();\n    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;\n    if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }\n    return uVar18;\n  }" ({ "{") (expression_statement "iVar4 = auStack_55._1_4_;" (assignment_expression "iVar4 = auStack_55._1_4_" (identifier "iVar4") (= "=") (field_expression "auStack_55._1_4_" (identifier "auStack_55") (. ".") (field_identifier "_1_4_"))) (; ";")) (expression_statement "(**(code **)(puVar21 + 0x49198))();" (call_expression "(**(code **)(puVar21 + 0x49198))()" (parenthesized_expression "(**(code **)(puVar21 + 0x49198))" (( "(") (pointer_expression "**(code **)(puVar21 + 0x49198)" (* "*") (pointer_expression "*(code **)(puVar21 + 0x49198)" (* "*") (cast_expression "(code **)(puVar21 + 0x49198)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x49198)" (( "(") (binary_expression "puVar21 + 0x49198" (identifier "puVar21") (+ "+") (number_literal "0x49198")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "iVar6") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "iVar7") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "iVar8") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "iVar9") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "iVar10") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;" (assignment_expression "uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10" (identifier "uVar18") (= "=") (binary_expression "iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10" (binary_expression "iVar2 + iVar6 + iVar7 + iVar8 + iVar9" (binary_expression "iVar2 + iVar6 + iVar7 + iVar8" (binary_expression "iVar2 + iVar6 + iVar7" (binary_expression "iVar2 + iVar6" (identifier "iVar2") (+ "+") (identifier "iVar6")) (+ "+") (identifier "iVar7")) (+ "+") (identifier "iVar8")) (+ "+") (identifier "iVar9")) (+ "+") (identifier "iVar10"))) (; ";")) (if_statement "if ((int)uVar18 <= (int)pbVar15) {\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }" (if "if") (parenthesized_expression "((int)uVar18 <= (int)pbVar15)" (( "(") (binary_expression "(int)uVar18 <= (int)pbVar15" (cast_expression "(int)uVar18" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar18")) (<= "<=") (cast_expression "(int)pbVar15" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar15"))) () ")")) (compound_statement "{\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));\n      iVar6 = iVar2 + -5;\n      if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);\n      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar2 + 4;\n      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));\n      if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      puVar19[3] = cVar11 + -4;\n      iVar7 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      puVar19[3] = cVar11 + -4;\n      iVar6 = iVar7 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);\n      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      puVar19[3] = cVar11 + -4;\n      uVar18 = iVar6 + 4;\n      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));\n      if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }\n    }" ({ "{") (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "*(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*(char *)ppuVar13" (* "*") (cast_expression "(char *)ppuVar13" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar13"))) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "*(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "*(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10)" (pointer_expression "*(char *)((int)ppuVar13 + 1)" (* "*") (cast_expression "(char *)((int)ppuVar13 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + 1)" (( "(") (binary_expression "(int)ppuVar13 + 1" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (number_literal "1")) () ")")))) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "*(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "*(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8)" (pointer_expression "*(char *)((int)ppuVar13 + 2)" (* "*") (cast_expression "(char *)((int)ppuVar13 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + 2)" (( "(") (binary_expression "(int)ppuVar13 + 2" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (number_literal "2")) () ")")))) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "cVar11") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "*(char *)((int)ppuVar13 + 3) = cVar11 + -4;" (assignment_expression "*(char *)((int)ppuVar13 + 3) = cVar11 + -4" (pointer_expression "*(char *)((int)ppuVar13 + 3)" (* "*") (cast_expression "(char *)((int)ppuVar13 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + 3)" (( "(") (binary_expression "(int)ppuVar13 + 3" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (number_literal "3")) () ")")))) (= "=") (binary_expression "cVar11 + -4" (identifier "cVar11") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 8))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 8))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) () ")")))) (; ";")) (expression_statement "iVar6 = iVar2 + -5;" (assignment_expression "iVar6 = iVar2 + -5" (identifier "iVar6") (= "=") (binary_expression "iVar2 + -5" (identifier "iVar2") (+ "+") (number_literal "-5"))) (; ";")) (if_statement "if (iVar2 != 4) {\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }" (if "if") (parenthesized_expression "(iVar2 != 4)" (( "(") (binary_expression "iVar2 != 4" (identifier "iVar2") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        ppuVar20 = ppuVar13 + 1;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);\n      }" ({ "{") (expression_statement "ppuVar20 = ppuVar13 + 1;" (assignment_expression "ppuVar20 = ppuVar13 + 1" (identifier "ppuVar20") (= "=") (binary_expression "ppuVar13 + 1" (identifier "ppuVar13") (+ "+") (number_literal "1"))) (; ";")) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        } while (iVar6 != -1);" (do "do") (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);\n          *(undefined1 *)ppuVar20 = uVar12;\n          iVar6 = iVar6 + -1;\n          ppuVar20 = (uint **)((int)ppuVar20 + 1);\n        }" ({ "{") (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6)" (identifier "uVar12") (= "=") (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6)" (identifier "bignum_byte") (argument_list "(*(undefined4 *)(iVar4 + 8),iVar6)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 8)" (( "(") (binary_expression "iVar4 + 8" (identifier "iVar4") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "*(undefined1 *)ppuVar20 = uVar12;" (assignment_expression "*(undefined1 *)ppuVar20 = uVar12" (pointer_expression "*(undefined1 *)ppuVar20" (* "*") (cast_expression "(undefined1 *)ppuVar20" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppuVar20"))) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "ppuVar20 = (uint **)((int)ppuVar20 + 1);" (assignment_expression "ppuVar20 = (uint **)((int)ppuVar20 + 1)" (identifier "ppuVar20") (= "=") (cast_expression "(uint **)((int)ppuVar20 + 1)" (( "(") (type_descriptor "uint **" (type_identifier "uint") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppuVar20 + 1)" (( "(") (binary_expression "(int)ppuVar20 + 1" (cast_expression "(int)ppuVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar20")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 != -1)" (( "(") (binary_expression "iVar6 != -1" (identifier "iVar6") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (} "}"))) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "iVar6") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar2)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + iVar2)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + iVar2)" (( "(") (binary_expression "(int)ppuVar13 + iVar2" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "iVar2")) () ")")))) (; ";")) (expression_statement "*puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar6 + -4) >> 0x18)" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (cast_expression "(char)((uint)(iVar6 + -4) >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar6 + -4) >> 0x18)" (( "(") (binary_expression "(uint)(iVar6 + -4) >> 0x18" (call_expression "(uint)(iVar6 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 + -4)" (( "(") (binary_expression "iVar6 + -4" (identifier "iVar6") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "iVar6") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10)" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar6 + -4) >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar6 + -4) >> 0x10)" (( "(") (binary_expression "(uint)(iVar6 + -4) >> 0x10" (call_expression "(uint)(iVar6 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 + -4)" (( "(") (binary_expression "iVar6 + -4" (identifier "iVar6") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "iVar6") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar6 + -4) >> 8)" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar6 + -4) >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar6 + -4) >> 8)" (( "(") (binary_expression "(uint)(iVar6 + -4) >> 8" (call_expression "(uint)(iVar6 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar6 + -4)" (( "(") (binary_expression "iVar6 + -4" (identifier "iVar6") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "cVar11") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "cVar11 + -4" (identifier "cVar11") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar7 = iVar2 + 4;" (assignment_expression "iVar7 = iVar2 + 4" (identifier "iVar7") (= "=") (binary_expression "iVar2 + 4" (identifier "iVar2") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));" (assignment_expression "iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "iVar6") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0xc))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar6 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }" (if "if") (parenthesized_expression "(iVar6 != 4)" (( "(") (binary_expression "iVar6 != 4" (identifier "iVar6") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar6 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar2 + 5 + iVar6 + -5;\n      }" ({ "{") (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + iVar7)" (( "(") (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "iVar7 = iVar6 + -5;" (assignment_expression "iVar7 = iVar6 + -5" (identifier "iVar7") (= "=") (binary_expression "iVar6 + -5" (identifier "iVar6") (+ "+") (number_literal "-5"))) (; ";")) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);" (do "do") (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        }" ({ "{") (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7)" (identifier "uVar12") (= "=") (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7)" (identifier "bignum_byte") (argument_list "(*(undefined4 *)(iVar4 + 0xc),iVar7)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0xc)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0xc)" (( "(") (binary_expression "iVar4 + 0xc" (identifier "iVar4") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != -1)" (( "(") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (expression_statement "iVar7 = iVar2 + 5 + iVar6 + -5;" (assignment_expression "iVar7 = iVar2 + 5 + iVar6 + -5" (identifier "iVar7") (= "=") (binary_expression "iVar2 + 5 + iVar6 + -5" (binary_expression "iVar2 + 5 + iVar6" (binary_expression "iVar2 + 5" (identifier "iVar2") (+ "+") (number_literal "5")) (+ "+") (identifier "iVar6")) (+ "+") (number_literal "-5"))) (; ";")) (} "}"))) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + iVar7)" (( "(") (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "cVar11") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "cVar11 + -4" (identifier "cVar11") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar6 = iVar7 + 4;" (assignment_expression "iVar6 = iVar7 + 4" (identifier "iVar6") (= "=") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x10))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" (if "if") (parenthesized_expression "(iVar2 != 4)" (( "(") (binary_expression "iVar2 != 4" (identifier "iVar2") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" ({ "{") (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + iVar6)" (( "(") (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (expression_statement "iVar6 = iVar2 + -5;" (assignment_expression "iVar6 = iVar2 + -5" (identifier "iVar6") (= "=") (binary_expression "iVar2 + -5" (identifier "iVar2") (+ "+") (number_literal "-5"))) (; ";")) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);" (do "do") (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        }" ({ "{") (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6)" (identifier "uVar12") (= "=") (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6)" (identifier "bignum_byte") (argument_list "(*(undefined4 *)(iVar4 + 0x10),iVar6)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x10)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x10)" (( "(") (binary_expression "iVar4 + 0x10" (identifier "iVar4") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 != -1)" (( "(") (binary_expression "iVar6 != -1" (identifier "iVar6") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (expression_statement "iVar6 = iVar7 + 5 + iVar2 + -5;" (assignment_expression "iVar6 = iVar7 + 5 + iVar2 + -5" (identifier "iVar6") (= "=") (binary_expression "iVar7 + 5 + iVar2 + -5" (binary_expression "iVar7 + 5 + iVar2" (binary_expression "iVar7 + 5" (identifier "iVar7") (+ "+") (number_literal "5")) (+ "+") (identifier "iVar2")) (+ "+") (number_literal "-5"))) (; ";")) (} "}"))) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + iVar6)" (( "(") (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "cVar11") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "cVar11 + -4" (identifier "cVar11") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar7 = iVar6 + 4;" (assignment_expression "iVar7 = iVar6 + 4" (identifier "iVar7") (= "=") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x1c))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }" (if "if") (parenthesized_expression "(iVar2 != 4)" (( "(") (binary_expression "iVar2 != 4" (identifier "iVar2") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        iVar7 = iVar6 + 5 + iVar2 + -5;\n      }" ({ "{") (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + iVar7)" (( "(") (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "iVar7 = iVar2 + -5;" (assignment_expression "iVar7 = iVar2 + -5" (identifier "iVar7") (= "=") (binary_expression "iVar2 + -5" (identifier "iVar2") (+ "+") (number_literal "-5"))) (; ";")) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);" (do "do") (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        }" ({ "{") (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7)" (identifier "uVar12") (= "=") (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7)" (identifier "bignum_byte") (argument_list "(*(undefined4 *)(iVar4 + 0x1c),iVar7)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x1c)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x1c)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x1c)" (( "(") (binary_expression "iVar4 + 0x1c" (identifier "iVar4") (+ "+") (number_literal "0x1c")) () ")")))) (, ",") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != -1)" (( "(") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (expression_statement "iVar7 = iVar6 + 5 + iVar2 + -5;" (assignment_expression "iVar7 = iVar6 + 5 + iVar2 + -5" (identifier "iVar7") (= "=") (binary_expression "iVar6 + 5 + iVar2 + -5" (binary_expression "iVar6 + 5 + iVar2" (binary_expression "iVar6 + 5" (identifier "iVar6") (+ "+") (number_literal "5")) (+ "+") (identifier "iVar2")) (+ "+") (number_literal "-5"))) (; ";")) (} "}"))) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar7)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + iVar7)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + iVar7)" (( "(") (binary_expression "(int)ppuVar13 + iVar7" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "iVar7")) () ")")))) (; ";")) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "cVar11") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "cVar11 + -4" (identifier "cVar11") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "iVar6 = iVar7 + 4;" (assignment_expression "iVar6 = iVar7 + 4" (identifier "iVar6") (= "=") (binary_expression "iVar7 + 4" (identifier "iVar7") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x14))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" (if "if") (parenthesized_expression "(iVar2 != 4)" (( "(") (binary_expression "iVar2 != 4" (identifier "iVar2") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);\n        iVar6 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);\n        iVar6 = iVar7 + 5 + iVar2 + -5;\n      }" ({ "{") (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + iVar6)" (( "(") (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (expression_statement "iVar6 = iVar2 + -5;" (assignment_expression "iVar6 = iVar2 + -5" (identifier "iVar6") (= "=") (binary_expression "iVar2 + -5" (identifier "iVar2") (+ "+") (number_literal "-5"))) (; ";")) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar6 != -1);" (do "do") (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);\n          *puVar19 = uVar12;\n          iVar6 = iVar6 + -1;\n          puVar19 = puVar19 + 1;\n        }" ({ "{") (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6)" (identifier "uVar12") (= "=") (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6)" (identifier "bignum_byte") (argument_list "(*(undefined4 *)(iVar4 + 0x14),iVar6)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x14)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x14)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x14)" (( "(") (binary_expression "iVar4 + 0x14" (identifier "iVar4") (+ "+") (number_literal "0x14")) () ")")))) (, ",") (identifier "iVar6") () ")")))) (; ";")) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar6 = iVar6 + -1;" (assignment_expression "iVar6 = iVar6 + -1" (identifier "iVar6") (= "=") (binary_expression "iVar6 + -1" (identifier "iVar6") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar6 != -1)" (( "(") (binary_expression "iVar6 != -1" (identifier "iVar6") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (expression_statement "iVar6 = iVar7 + 5 + iVar2 + -5;" (assignment_expression "iVar6 = iVar7 + 5 + iVar2 + -5" (identifier "iVar6") (= "=") (binary_expression "iVar7 + 5 + iVar2 + -5" (binary_expression "iVar7 + 5 + iVar2" (binary_expression "iVar7 + 5" (identifier "iVar7") (+ "+") (number_literal "5")) (+ "+") (identifier "iVar2")) (+ "+") (number_literal "-5"))) (; ";")) (} "}"))) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + iVar6)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + iVar6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + iVar6)" (( "(") (binary_expression "(int)ppuVar13 + iVar6" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "iVar6")) () ")")))) (; ";")) (expression_statement "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);" (assignment_expression "*puVar19 = (char)((uint)(iVar2 + -4) >> 0x18)" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x18)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x18)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x18" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x18")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);" (assignment_expression "puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10)" (subscript_expression "puVar19[1]" (identifier "puVar19") ([ "[") (number_literal "1") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 0x10)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 0x10)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 0x10" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);" (assignment_expression "puVar19[2] = (char)((uint)(iVar2 + -4) >> 8)" (subscript_expression "puVar19[2]" (identifier "puVar19") ([ "[") (number_literal "2") (] "]")) (= "=") (cast_expression "(char)((uint)(iVar2 + -4) >> 8)" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (parenthesized_expression "((uint)(iVar2 + -4) >> 8)" (( "(") (binary_expression "(uint)(iVar2 + -4) >> 8" (call_expression "(uint)(iVar2 + -4)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(iVar2 + -4)" (( "(") (binary_expression "iVar2 + -4" (identifier "iVar2") (+ "+") (number_literal "-4")) () ")"))) (>> ">>") (number_literal "8")) () ")")))) (; ";")) (expression_statement "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "cVar11") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "puVar19[3] = cVar11 + -4;" (assignment_expression "puVar19[3] = cVar11 + -4" (subscript_expression "puVar19[3]" (identifier "puVar19") ([ "[") (number_literal "3") (] "]")) (= "=") (binary_expression "cVar11 + -4" (identifier "cVar11") (+ "+") (number_literal "-4"))) (; ";")) (expression_statement "uVar18 = iVar6 + 4;" (assignment_expression "uVar18 = iVar6 + 4" (identifier "uVar18") (= "=") (binary_expression "iVar6 + 4" (identifier "iVar6") (+ "+") (number_literal "4"))) (; ";")) (expression_statement "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));" (assignment_expression "iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "iVar2") (= "=") (call_expression "ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18))" (identifier "ssh2_bignum_length") (argument_list "(*(undefined4 *)(iVar4 + 0x18))" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (if_statement "if (iVar2 != 4) {\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }" (if "if") (parenthesized_expression "(iVar2 != 4)" (( "(") (binary_expression "iVar2 != 4" (identifier "iVar2") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);\n        iVar7 = iVar2 + -5;\n        do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);\n        uVar18 = iVar6 + 5 + iVar2 + -5;\n      }" ({ "{") (expression_statement "puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);" (assignment_expression "puVar19 = (undefined1 *)((int)ppuVar13 + uVar18)" (identifier "puVar19") (= "=") (cast_expression "(undefined1 *)((int)ppuVar13 + uVar18)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppuVar13 + uVar18)" (( "(") (binary_expression "(int)ppuVar13 + uVar18" (cast_expression "(int)ppuVar13" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppuVar13")) (+ "+") (identifier "uVar18")) () ")")))) (; ";")) (expression_statement "iVar7 = iVar2 + -5;" (assignment_expression "iVar7 = iVar2 + -5" (identifier "iVar7") (= "=") (binary_expression "iVar2 + -5" (identifier "iVar2") (+ "+") (number_literal "-5"))) (; ";")) (do_statement "do {\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        } while (iVar7 != -1);" (do "do") (compound_statement "{\n          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);\n          *puVar19 = uVar12;\n          iVar7 = iVar7 + -1;\n          puVar19 = puVar19 + 1;\n        }" ({ "{") (expression_statement "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);" (assignment_expression "uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7)" (identifier "uVar12") (= "=") (call_expression "bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7)" (identifier "bignum_byte") (argument_list "(*(undefined4 *)(iVar4 + 0x18),iVar7)" (( "(") (pointer_expression "*(undefined4 *)(iVar4 + 0x18)" (* "*") (cast_expression "(undefined4 *)(iVar4 + 0x18)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar4 + 0x18)" (( "(") (binary_expression "iVar4 + 0x18" (identifier "iVar4") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "*puVar19 = uVar12;" (assignment_expression "*puVar19 = uVar12" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar12")) (; ";")) (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar19 = puVar19 + 1;" (assignment_expression "puVar19 = puVar19 + 1" (identifier "puVar19") (= "=") (binary_expression "puVar19 + 1" (identifier "puVar19") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar7 != -1)" (( "(") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) () ")")) (; ";")) (expression_statement "uVar18 = iVar6 + 5 + iVar2 + -5;" (assignment_expression "uVar18 = iVar6 + 5 + iVar2 + -5" (identifier "uVar18") (= "=") (binary_expression "iVar6 + 5 + iVar2 + -5" (binary_expression "iVar6 + 5 + iVar2" (binary_expression "iVar6 + 5" (identifier "iVar6") (+ "+") (number_literal "5")) (+ "+") (identifier "iVar2")) (+ "+") (number_literal "-5"))) (; ";")) (} "}"))) (} "}"))) (return_statement "return uVar18;" (return "return") (identifier "uVar18") (; ";")) (} "}")))) (return_statement "return uVar16;" (return "return") (identifier "uVar16") (; ";")) (} "}")))
(translation_unit (function_definition type: (type_identifier) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type)))) body: (compound_statement (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (array_declarator declarator: (identifier) size: (number_literal)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (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: (identifier) arguments: (argument_list (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (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: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (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)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier) (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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: (identifier) arguments: (argument_list (identifier) (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))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (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: (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: (identifier)))))) condition: (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)) 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: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (goto_statement label: (statement_identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (field_expression argument: (identifier) field: (field_identifier)) right: (pointer_expression argument: (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)))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (field_expression argument: (identifier) field: (field_identifier)))) (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))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)) right: (identifier)))) (if_statement condition: (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: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier))))) (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier))))) (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier))))) (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier))))) (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)))) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (identifier))))) (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: (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: (binary_expression left: (identifier) right: (number_literal)) right: (identifier)) right: (number_literal)))))))) (return_statement (identifier))))) (return_statement (identifier)))))

uint MASKED(void)

{
  byte bVar1;
  int iVar2;
  undefined4 uVar3;
  int iVar4;
  uint uVar5;
  int iVar6;
  int iVar7;
  int iVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  undefined1 uVar12;
  uint **ppuVar13;
  uint *puVar14;
  byte *pbVar15;
  uint uVar16;
  byte *pbVar17;
  uint uVar18;
  undefined1 *puVar19;
  uint **ppuVar20;
  undefined *puVar21;
  undefined1 local_74 [4];
  int local_70;
  int local_6c;
  byte local_68 [19];
  undefined1 auStack_55 [5];
  uint *local_28 [2];
  uint local_14;
  undefined1 local_10 [4];
  int local_c;
  
  local_c = *(int *)PTR___stack_chk_guard_000b8ce8;
  puVar19 = local_10;
  puVar14 = &local_14;
  FUN_0006f9a0();
  if (local_14 != 0) {
    local_14 = bignum_from_bytes(local_14);
  }
  if (local_c == *(int *)PTR___stack_chk_guard_000b8ce8) {
    return local_14;
  }
  iVar4 = local_c;
  puVar21 = PTR___stack_chk_fail_000b8cbc;
  (*(code *)PTR___stack_chk_fail_000b8cbc)();
  auStack_55._1_4_ = **(int **)(puVar21 + 0x491c4);
  pbVar15 = (byte *)&local_70;
  ppuVar13 = local_28;
  local_28[0] = puVar14;
  FUN_0006f9a0(local_74,ppuVar13,pbVar15,&local_6c);
  if ((local_70 != 0) && (pbVar15 = (byte *)0x7, local_6c == 7)) {
    ppuVar13 = (uint **)(*(int *)(puVar21 + 0x48824) + -0x7c18);
    iVar2 = (**(code **)(puVar21 + 0x491a8))();
    if (iVar2 == 0) {
      ppuVar13 = local_28;
      iVar2 = MASKED(local_74);
      if (iVar2 != 0) {
        uVar3 = modpow(iVar2,*(undefined4 *)(iVar4 + 0xc),*(undefined4 *)(iVar4 + 8));
        freebn(iVar2);
        iVar4 = bignum_bitcount(*(undefined4 *)(iVar4 + 8));
        iVar2 = iVar4 + 7;
        if (iVar2 < 0) {
          iVar2 = iVar4 + 0xe;
        }
        iVar2 = iVar2 >> 3;
        iVar4 = bignum_byte(uVar3,iVar2 + -1);
        iVar6 = bignum_byte(uVar3,iVar2 + -2);
        uVar18 = 0;
        uVar16 = (uint)(iVar4 == 0);
        if (iVar6 != 1) {
          uVar16 = uVar18;
        }
        iVar2 = iVar2 + -3;
        if (0x23 < iVar2) {
          do {
            iVar4 = bignum_byte(uVar3,iVar2);
            iVar2 = iVar2 + -1;
            if (iVar4 != 0xff) {
              uVar16 = uVar18;
            }
          } while (iVar2 != 0x23);
        }
        iVar4 = *(int *)(puVar21 + 0x48824);
        pbVar15 = (byte *)(iVar4 + 0x1db8);
        do {
          uVar5 = bignum_byte(uVar3,(iVar4 + 0x1ddb) - (int)pbVar15);
          bVar1 = *pbVar15;
          pbVar15 = pbVar15 + 1;
          if (uVar5 != bVar1) {
            uVar16 = uVar18;
          }
        } while (pbVar15 != (byte *)(iVar4 + 0x1dc8));
        pbVar17 = local_68;
        pbVar15 = pbVar17;
        SHA_Simple(puVar19,&_gp_1);
        do {
          ppuVar13 = (uint **)(local_68 + (0x13 - (int)pbVar17));
          uVar5 = bignum_byte(uVar3);
          bVar1 = *pbVar17;
          pbVar17 = pbVar17 + 1;
          if (uVar5 != bVar1) {
            uVar16 = uVar18;
          }
        } while (auStack_55 + 1 != pbVar17);
        freebn(uVar3);
        goto LAB_0006fda0;
      }
    }
  }
  uVar16 = 0;
LAB_0006fda0:
  if (auStack_55._1_4_ != **(int **)(puVar21 + 0x491c4)) {
    iVar4 = auStack_55._1_4_;
    (**(code **)(puVar21 + 0x49198))();
    iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
    iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
    iVar7 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
    iVar8 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
    iVar9 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
    iVar10 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
    uVar18 = iVar2 + iVar6 + iVar7 + iVar8 + iVar9 + iVar10;
    if ((int)uVar18 <= (int)pbVar15) {
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      *(char *)ppuVar13 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      *(char *)((int)ppuVar13 + 1) = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      *(char *)((int)ppuVar13 + 2) = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      *(char *)((int)ppuVar13 + 3) = cVar11 + -4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 8));
      iVar6 = iVar2 + -5;
      if (iVar2 != 4) {
        ppuVar20 = ppuVar13 + 1;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 8),iVar6);
          *(undefined1 *)ppuVar20 = uVar12;
          iVar6 = iVar6 + -1;
          ppuVar20 = (uint **)((int)ppuVar20 + 1);
        } while (iVar6 != -1);
      }
      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar2);
      *puVar19 = (char)((uint)(iVar6 + -4) >> 0x18);
      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      puVar19[1] = (char)((uint)(iVar6 + -4) >> 0x10);
      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      puVar19[2] = (char)((uint)(iVar6 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      puVar19[3] = cVar11 + -4;
      iVar7 = iVar2 + 4;
      iVar6 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0xc));
      if (iVar6 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);
        iVar7 = iVar6 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0xc),iVar7);
          *puVar19 = uVar12;
          iVar7 = iVar7 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar7 != -1);
        iVar7 = iVar2 + 5 + iVar6 + -5;
      }
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);
      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      puVar19[3] = cVar11 + -4;
      iVar6 = iVar7 + 4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x10));
      if (iVar2 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);
        iVar6 = iVar2 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x10),iVar6);
          *puVar19 = uVar12;
          iVar6 = iVar6 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar6 != -1);
        iVar6 = iVar7 + 5 + iVar2 + -5;
      }
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);
      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      puVar19[3] = cVar11 + -4;
      iVar7 = iVar6 + 4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x1c));
      if (iVar2 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);
        iVar7 = iVar2 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x1c),iVar7);
          *puVar19 = uVar12;
          iVar7 = iVar7 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar7 != -1);
        iVar7 = iVar6 + 5 + iVar2 + -5;
      }
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar7);
      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      puVar19[3] = cVar11 + -4;
      iVar6 = iVar7 + 4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x14));
      if (iVar2 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);
        iVar6 = iVar2 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x14),iVar6);
          *puVar19 = uVar12;
          iVar6 = iVar6 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar6 != -1);
        iVar6 = iVar7 + 5 + iVar2 + -5;
      }
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      puVar19 = (undefined1 *)((int)ppuVar13 + iVar6);
      *puVar19 = (char)((uint)(iVar2 + -4) >> 0x18);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      puVar19[1] = (char)((uint)(iVar2 + -4) >> 0x10);
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      puVar19[2] = (char)((uint)(iVar2 + -4) >> 8);
      cVar11 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      puVar19[3] = cVar11 + -4;
      uVar18 = iVar6 + 4;
      iVar2 = ssh2_bignum_length(*(undefined4 *)(iVar4 + 0x18));
      if (iVar2 != 4) {
        puVar19 = (undefined1 *)((int)ppuVar13 + uVar18);
        iVar7 = iVar2 + -5;
        do {
          uVar12 = bignum_byte(*(undefined4 *)(iVar4 + 0x18),iVar7);
          *puVar19 = uVar12;
          iVar7 = iVar7 + -1;
          puVar19 = puVar19 + 1;
        } while (iVar7 != -1);
        uVar18 = iVar6 + 5 + iVar2 + -5;
      }
    }
    return uVar18;
  }
  return uVar16;
}

