
int dsa_generate_pqg(prng_state *prng,int wprng,int group_size,int modulus_size,dsa_key *key)

{
  ulong uVar1;
  long lVar2;
  void *pvVar3;
  void *pvVar4;
  void *pvVar5;
  ulong uVar6;
  undefined *puVar7;
  int iVar8;
  int iVar9;
  ulong uVar10;
  void *__ptr;
  uchar *in;
  ulong uVar11;
  size_t sVar12;
  size_t __size;
  size_t __size_00;
  uchar *out;
  long in_FS_OFFSET;
  int local_1cc;
  undefined4 local_1c8;
  int local_1c4;
  ulong local_150;
  int res;
  ulong i;
  void *t2L1;
  void *t2N1;
  void *t2q;
  void *t2seedlen;
  void *U;
  void *W;
  void *X;
  void *c;
  void *h;
  void *e;
  void *seedinc;
  uchar digest [128];
  
  lVar2 = *(long *)(in_FS_OFFSET + 0x28);
  if (key == (dsa_key *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);
  }
  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);
  }
  iVar8 = ltc_init_multi(&key->p,&key->g,&key->q,&key->x,&key->y,0);
  if (iVar8 != 0) goto LAB_00179c52;
  if ((group_size - 1U < 0x1ff) && (group_size < modulus_size)) {
    __size = (size_t)group_size;
    local_1c4 = 0x28;
    uVar11 = (long)modulus_size * 8;
    uVar1 = __size * 8;
    if (0x400 < uVar11) {
      local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40;
    }
    pvVar3 = key->g;
    pvVar4 = key->q;
    pvVar5 = key->p;
    if (uVar1 < 0xa1) {
      local_1c8 = 0x28;
LAB_00179d0a:
      local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);
    }
    else {
      if (uVar1 < 0xe1) {
        local_1c8 = 0x38;
        goto LAB_00179d0a;
      }
      if (uVar1 < 0x101) {
        local_1c8 = 0x40;
        goto LAB_00179d0a;
      }
      if (uVar1 < 0x181) {
        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);
        local_1c8 = 0x40;
      }
      else {
        if (0x200 < uVar1) goto LAB_0017a0d8;
        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);
        local_1c8 = 0x40;
      }
    }
    iVar8 = hash_is_valid(local_1cc);
    if (iVar8 == 0) {
      uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);
      uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8);
      __size_00 = uVar6 * uVar10;
      __ptr = malloc(__size_00);
      if (__ptr != (void *)0x0) {
        in = (uchar *)malloc(__size);
        if (in != (uchar *)0x0) {
          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);
          if (iVar8 == 0) {
            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);
            if (((iVar8 == 0) &&
                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0
                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),
                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {
              uVar10 = uVar10 - 1;
              while( true ) {
                do {
                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);
                  if (__size != sVar12) {
                    iVar8 = 9;
                    goto LAB_0017a050;
                  }
                  i = uVar6;
                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);
                  if (((iVar8 != 0) ||
                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0
                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),
                             iVar8 != 0 ||
                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),
                             iVar8 != 0)))) goto LAB_0017a050;
                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);
                  if ((iVar8 < 1) ||
                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),
                     (uVar11 & 1) == 0)) {
                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);
                  }
                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);
                  if (iVar8 != 0) goto LAB_0017a050;
                } while (res != 1);
                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);
                if ((iVar8 != 0) ||
                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0
                   )) break;
                local_150 = 0;
                do {
                  uVar11 = 0;
                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);
                  do {
                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);
                    if ((iVar8 != 0) ||
                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))
                    goto LAB_0017a050;
                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);
                    if (__size < i) {
                      iVar8 = 0x10;
                      goto LAB_0017a050;
                    }
                    zeromem(in,__size);
                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));
                    if ((iVar8 != 0) ||
                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))
                    goto LAB_0017a050;
                    uVar11 = uVar11 + 1;
                    out = out + -uVar6;
                  } while (uVar11 <= uVar10);
                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);
                  if (((((iVar8 != 0) ||
                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))
                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))
                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0
                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),
                             iVar8 != 0)))) ||
                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0
                     )) goto LAB_0017a050;
                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);
                  if (iVar8 != -1) {
                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);
                    if (iVar8 != 0) goto LAB_0017a050;
                    if (res == 1) {
                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);
                      if ((iVar8 != 0) ||
                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),
                         iVar8 != 0)) goto LAB_0017a050;
                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);
                      i = (ulong)iVar8;
                      goto LAB_0017a52f;
                    }
                  }
                  local_150 = local_150 + 1;
                } while (local_150 < (ulong)((long)modulus_size << 5));
              }
            }
LAB_0017a050:
            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);
          }
          free(in);
          free(__ptr);
          if (iVar8 == 0) {
            key->qord = group_size;
            goto LAB_00179c52;
          }
          goto LAB_0017a0de;
        }
        free(__ptr);
      }
      iVar8 = 0xd;
    }
  }
  else {
LAB_0017a0d8:
    iVar8 = 0x10;
  }
LAB_0017a0de:
  dsa_free(key);
LAB_00179c52:
  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar8;
LAB_0017a52f:
  iVar8 = rand_bn_bits(h,(int)i,prng,wprng);
  if (iVar8 != 0) goto LAB_0017a050;
  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(h,pvVar5);
  if (((iVar8 == -1) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1)) &&
     ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||
      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||
       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0))))))
  goto LAB_0017a050;
  goto LAB_0017a52f;
}



int dsa_generate_pqg(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)

{
  ulong uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  ulong uVar5;
  undefined *puVar6;
  int iVar7;
  int iVar8;
  ulong uVar9;
  void *__ptr;
  void *__ptr_00;
  ulong uVar10;
  size_t sVar11;
  size_t __size;
  size_t __size_00;
  void *pvVar12;
  long in_FS_OFFSET;
  int local_1cc;
  undefined4 local_1c8;
  int local_1c4;
  ulong local_150;
  int local_12c;
  ulong local_128;
  undefined8 local_120;
  undefined8 local_118;
  undefined8 local_110;
  undefined8 local_108;
  undefined8 local_100;
  undefined8 local_f8;
  undefined8 local_f0;
  undefined8 local_e8;
  undefined8 local_e0;
  undefined8 local_d8;
  undefined8 local_d0;
  undefined1 local_c8 [136];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_5 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);
  }
  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);
  }
  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);
  if (iVar7 != 0) goto LAB_00179c52;
  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {
    __size = (size_t)param_3;
    local_1c4 = 0x28;
    uVar10 = (long)param_4 * 8;
    uVar1 = __size * 8;
    if (0x400 < uVar10) {
      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;
    }
    uVar2 = *(undefined8 *)(param_5 + 8);
    uVar3 = *(undefined8 *)(param_5 + 0x10);
    uVar4 = *(undefined8 *)(param_5 + 0x18);
    if (uVar1 < 0xa1) {
      local_1c8 = 0x28;
LAB_00179d0a:
      local_1cc = register_hash(PTR_sha256_desc_001ddf70);
    }
    else {
      if (uVar1 < 0xe1) {
        local_1c8 = 0x38;
        goto LAB_00179d0a;
      }
      if (uVar1 < 0x101) {
        local_1c8 = 0x40;
        goto LAB_00179d0a;
      }
      if (uVar1 < 0x181) {
        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);
        local_1c8 = 0x40;
      }
      else {
        if (0x200 < uVar1) goto LAB_0017a0d8;
        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);
        local_1c8 = 0x40;
      }
    }
    iVar7 = hash_is_valid(local_1cc);
    if (iVar7 == 0) {
      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);
      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);
      __size_00 = uVar5 * uVar9;
      __ptr = malloc(__size_00);
      if (__ptr != (void *)0x0) {
        __ptr_00 = malloc(__size);
        if (__ptr_00 != (void *)0x0) {
          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,
                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);
          if (iVar7 == 0) {
            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);
            if (((iVar7 == 0) &&
                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),
                iVar7 == 0)) &&
               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),
               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {
              uVar9 = uVar9 - 1;
              while( true ) {
                do {
                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))
                                     (__ptr_00,__size,param_1);
                  if (__size != sVar11) {
                    iVar7 = 9;
                    goto LAB_0017a050;
                  }
                  local_128 = uVar5;
                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);
                  if (((iVar7 != 0) ||
                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),
                      iVar7 != 0)) ||
                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                         (local_100,local_118,0,local_100), iVar7 != 0 ||
                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),
                      iVar7 != 0)))) goto LAB_0017a050;
                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);
                  if ((iVar7 < 1) ||
                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0
                     )) {
                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);
                  }
                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);
                  if (iVar7 != 0) goto LAB_0017a050;
                } while (local_12c != 1);
                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);
                if ((iVar7 != 0) ||
                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),
                   iVar7 != 0)) break;
                local_150 = 0;
                do {
                  uVar10 = 0;
                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);
                  do {
                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);
                    if ((iVar7 != 0) ||
                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                          (local_d0,local_108,0,local_d0), iVar7 != 0))
                    goto LAB_0017a050;
                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);
                    if (__size < local_128) {
                      iVar7 = 0x10;
                      goto LAB_0017a050;
                    }
                    zeromem(__ptr_00,__size);
                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))
                                      (local_d0,(__size - local_128) + (long)__ptr_00);
                    if ((iVar7 != 0) ||
                       (local_128 = uVar5,
                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0
                       )) goto LAB_0017a050;
                    uVar10 = uVar10 + 1;
                    pvVar12 = (void *)((long)pvVar12 - uVar5);
                  } while (uVar10 <= uVar9);
                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);
                  if (((((iVar7 != 0) ||
                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||
                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))
                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||
                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||
                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),
                       iVar7 != 0)))) ||
                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),
                     iVar7 != 0)) goto LAB_0017a050;
                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);
                  if (iVar7 != -1) {
                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);
                    if (iVar7 != 0) goto LAB_0017a050;
                    if (local_12c == 1) {
                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);
                      if ((iVar7 != 0) ||
                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))
                      goto LAB_0017a050;
                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);
                      local_128 = (ulong)iVar7;
                      goto LAB_0017a52f;
                    }
                  }
                  local_150 = local_150 + 1;
                } while (local_150 < (ulong)((long)param_4 << 5));
              }
            }
LAB_0017a050:
            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,
                             local_e8,local_e0,local_d8,local_d0,0);
          }
          free(__ptr_00);
          free(__ptr);
          if (iVar7 == 0) {
            *(int *)(param_5 + 4) = param_3;
            goto LAB_00179c52;
          }
          goto LAB_0017a0de;
        }
        free(__ptr);
      }
      iVar7 = 0xd;
    }
  }
  else {
LAB_0017a0d8:
    iVar7 = 0x10;
  }
LAB_0017a0de:
  dsa_free(param_5);
LAB_00179c52:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar7;
LAB_0017a52f:
  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);
  if (iVar7 != 0) goto LAB_0017a050;
  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);
  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))
     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||
         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),
          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))
     ) goto LAB_0017a050;
  goto LAB_0017a52f;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x1a8
MOV dword ptr [RSP + 0x8],ESI
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x198],RAX
XOR EAX,EAX
TEST R8,R8
JZ 0x0017a47f
MOV RAX,qword ptr [0x001ddec0]
CMP qword ptr [RAX],0x0
JZ 0x0017a462
LEA RSI,[R8 + 0x8]
MOV RBP,RDI
MOV EBX,EDX
MOV R12D,ECX
LEA RDX,[R8 + 0x10]
LEA RCX,[R8 + 0x20]
MOV R14,R8
XOR R9D,R9D
LEA RDI,[R8 + 0x18]
XOR EAX,EAX
LEA R8,[R8 + 0x28]
CALL 0x001135b0
MOV R15D,EAX
TEST EAX,EAX
JZ 0x00179c80
MOV RBX,qword ptr [RSP + 0x198]
XOR RBX,qword ptr FS:[0x28]
MOV EAX,R15D
JNZ 0x0017a47a
ADD RSP,0x1a8
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
LEA EDX,[RBX + -0x1]
CMP EDX,0x1fe
JA 0x0017a0d8
CMP EBX,R12D
JGE 0x0017a0d8
MOVSXD RCX,R12D
MOVSXD RSI,EBX
MOV dword ptr [RSP + 0x14],0x28
LEA R12,[RCX*0x8]
MOV qword ptr [RSP + 0x18],RSI
LEA R13,[RSI*0x8]
MOV qword ptr [RSP + 0x30],RCX
CMP R12,0x400
JA 0x0017a100
MOV R8,qword ptr [R14 + 0x8]
MOV R9,qword ptr [R14 + 0x10]
MOV R10,qword ptr [R14 + 0x18]
MOV qword ptr [RSP + 0x48],R8
MOV qword ptr [RSP + 0x28],R9
MOV qword ptr [RSP + 0x40],R10
CMP R13,0xa0
JBE 0x0017a0f0
CMP R13,0xe0
JA 0x0017a120
MOV dword ptr [RSP + 0x10],0x38
MOV RDI,qword ptr [0x001ddf70]
CALL 0x00114c20
MOV dword ptr [RSP + 0xc],EAX
MOV EDI,dword ptr [RSP + 0xc]
CALL 0x00113bd0
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a0de
MOVSXD R11,dword ptr [RSP + 0xc]
XOR EDX,EDX
LEA R15,[R11 + R11*0x2]
LEA RAX,[R11 + R15*0x4]
SHL RAX,0x4
ADD RAX,qword ptr [0x001dde98]
MOV RDI,qword ptr [RAX + 0x10]
LEA RSI,[RDI*0x8]
MOV qword ptr [RSP + 0x50],RDI
LEA RAX,[R12 + RSI*0x1 + -0x1]
DIV RSI
IMUL RDI,RAX
MOV qword ptr [RSP + 0x58],RAX
MOV qword ptr [RSP + 0x60],RDI
CALL 0x001141b0
MOV qword ptr [RSP + 0x20],RAX
TEST RAX,RAX
JZ 0x0017a18a
MOV RDI,qword ptr [RSP + 0x18]
CALL 0x001141b0
MOV qword ptr [RSP + 0x38],RAX
TEST RAX,RAX
JZ 0x0017a180
LEA RCX,[RSP + 0xd0]
LEA RDX,[RSP + 0xc8]
XOR EAX,EAX
LEA RSI,[RSP + 0xc0]
LEA RDI,[RSP + 0xb8]
PUSH 0x0
LEA R8,[RSP + 0x110]
PUSH R8
LEA R9,[RSP + 0x110]
PUSH R9
LEA R10,[RSP + 0x110]
PUSH R10
LEA R11,[RSP + 0x110]
PUSH R11
LEA R15,[RSP + 0x110]
PUSH R15
LEA R9,[RSP + 0x110]
LEA R8,[RSP + 0x108]
CALL 0x001135b0
ADD RSP,0x30
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a0b0
LEA ESI,[R12 + -0x1]
MOV R12,qword ptr [0x001ddec0]
MOV RDI,qword ptr [RSP + 0xb8]
CALL qword ptr [R12 + 0x78]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a050
LEA ESI,[R13 + -0x1]
MOV R13,qword ptr [0x001ddec0]
MOV RDI,qword ptr [RSP + 0xc0]
CALL qword ptr [R13 + 0x78]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a050
MOV RAX,qword ptr [0x001ddec0]
LEA ESI,[RBX*0x8]
MOV RDI,qword ptr [RSP + 0xd0]
CALL qword ptr [RAX + 0x78]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a050
MOV RSI,qword ptr [RSP + 0x50]
MOV RCX,qword ptr [RSP + 0x58]
LEA R10,[RSP + 0xb0]
MOV dword ptr [RSP + 0x58],EBX
MOV RDI,qword ptr [RSP + 0x30]
MOVSXD R8,dword ptr [RSP + 0x8]
MOV qword ptr [RSP + 0x50],R10
LEA R13,[RSP + 0x110]
SUB RCX,0x1
MOV RDX,RSI
MOV qword ptr [RSP + 0x30],RBP
MOV R15,qword ptr [RSP + 0x38]
SHL RDI,0x5
IMUL RDX,RCX
ADD RDX,qword ptr [RSP + 0x20]
MOV qword ptr [RSP + 0x70],RCX
LEA R12,[R8 + R8*0x4]
MOV qword ptr [RSP + 0x78],RDI
MOV RBP,qword ptr [RSP + 0x18]
MOV qword ptr [RSP + 0x80],RDX
SHL R12,0x4
ADD R12,qword ptr [0x001ddf90]
MOV qword ptr [RSP + 0x68],R14
MOV R14,R12
MOV R12,RSI
LEA RBX,[RSP + 0xac]
MOV qword ptr [RSP + 0x18],RBX
MOV RBX,qword ptr [RSP + 0x28]
JMP 0x0017a01f
MOV R8,qword ptr [RSP + 0x50]
MOV EDI,dword ptr [RSP + 0xc]
MOV RCX,R13
MOV RDX,RBP
MOV RSI,R15
MOV qword ptr [RSP + 0xb0],R12
CALL 0x00113310
TEST EAX,EAX
JNZ 0x0017a198
MOV RAX,qword ptr [0x001ddec0]
MOV RDX,R12
MOV RSI,R13
MOV RDI,qword ptr [RSP + 0xd8]
CALL qword ptr [RAX + 0xa0]
TEST EAX,EAX
JNZ 0x0017a198
MOV RDI,qword ptr [RSP + 0xd8]
MOV RAX,qword ptr [0x001ddec0]
XOR EDX,EDX
MOV RSI,qword ptr [RSP + 0xc0]
MOV RCX,RDI
CALL qword ptr [RAX + 0xe0]
TEST EAX,EAX
JNZ 0x0017a198
MOV RAX,qword ptr [0x001ddec0]
MOV RDX,RBX
MOV RSI,qword ptr [RSP + 0xd8]
MOV RDI,qword ptr [RSP + 0xc0]
CALL qword ptr [RAX + 0xa8]
TEST EAX,EAX
JNZ 0x0017a198
MOV RAX,qword ptr [0x001ddec0]
MOV RDI,RBX
CALL qword ptr [RAX + 0x50]
TEST EAX,EAX
JLE 0x00179fd8
MOV RAX,qword ptr [0x001ddec0]
XOR ESI,ESI
MOV RDI,RBX
CALL qword ptr [RAX + 0x48]
TEST AL,0x1
JNZ 0x00179ff0
MOV RAX,qword ptr [0x001ddec0]
MOV RDX,RBX
MOV ESI,0x1
MOV RDI,RBX
CALL qword ptr [RAX + 0xb0]
MOV RAX,qword ptr [0x001ddec0]
MOV RDX,qword ptr [RSP + 0x18]
MOV RDI,RBX
MOV ESI,dword ptr [RSP + 0x10]
CALL qword ptr [RAX + 0x148]
TEST EAX,EAX
JNZ 0x0017a198
CMP dword ptr [RSP + 0xac],0x1
JZ 0x0017a1a9
MOV RDX,qword ptr [RSP + 0x30]
MOV RSI,RBP
MOV RDI,R15
CALL qword ptr [R14 + 0x28]
CMP RBP,RAX
JZ 0x00179f18
MOV EBX,dword ptr [RSP + 0x58]
MOV R14,qword ptr [RSP + 0x68]
MOV R15D,0x9
NOP word ptr CS:[RAX + RAX*0x1]
PUSH 0x0
XOR EAX,EAX
PUSH qword ptr [RSP + 0x110]
PUSH qword ptr [RSP + 0x110]
PUSH qword ptr [RSP + 0x110]
PUSH qword ptr [RSP + 0x110]
PUSH qword ptr [RSP + 0x110]
MOV R9,qword ptr [RSP + 0x110]
MOV R8,qword ptr [RSP + 0x108]
MOV RCX,qword ptr [RSP + 0x100]
MOV RDX,qword ptr [RSP + 0xf8]
MOV RSI,qword ptr [RSP + 0xf0]
MOV RDI,qword ptr [RSP + 0xe8]
CALL 0x00113330
ADD RSP,0x30
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x00113130
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x00113130
TEST R15D,R15D
JNZ 0x0017a0de
MOV dword ptr [R14 + 0x4],EBX
JMP 0x00179c52
MOV R15D,0x10
MOV RDI,R14
CALL 0x00113cd0
JMP 0x00179c52
MOV dword ptr [RSP + 0x10],0x28
JMP 0x00179d0a
CMP R12,0x801
SBB EDI,EDI
AND EDI,0xfffffff8
ADD EDI,0x40
MOV dword ptr [RSP + 0x14],EDI
JMP 0x00179ccd
CMP R13,0x100
JBE 0x0017a60e
CMP R13,0x180
JBE 0x0017a160
CMP R13,0x200
JA 0x0017a0d8
MOV RDI,qword ptr [0x001ddfa0]
CALL 0x00114c20
MOV dword ptr [RSP + 0x10],0x40
MOV dword ptr [RSP + 0xc],EAX
JMP 0x00179d1a
MOV RDI,qword ptr [0x001ddfa8]
CALL 0x00114c20
MOV dword ptr [RSP + 0x10],0x40
MOV dword ptr [RSP + 0xc],EAX
JMP 0x00179d1a
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x00113130
MOV R15D,0xd
JMP 0x0017a0de
MOV R15D,EAX
MOV EBX,dword ptr [RSP + 0x58]
MOV R14,qword ptr [RSP + 0x68]
JMP 0x0017a050
MOV RBX,qword ptr [0x001ddec0]
MOV RDX,RBP
MOV RSI,R15
MOV RDI,qword ptr [RSP + 0x108]
CALL qword ptr [RBX + 0xa0]
TEST EAX,EAX
JNZ 0x0017a198
MOV RDI,qword ptr [RSP + 0x28]
MOV RAX,qword ptr [0x001ddec0]
MOV RDX,qword ptr [RSP + 0xc8]
MOV RSI,RDI
CALL qword ptr [RAX + 0xa8]
TEST EAX,EAX
JNZ 0x0017a198
MOV qword ptr [RSP + 0x88],0x0
MOV qword ptr [RSP + 0x98],R13
MOV qword ptr [RSP + 0x90],R14
MOV R14,qword ptr [RSP + 0x50]
MOV R13,qword ptr [RSP + 0x80]
XOR EBX,EBX
NOP dword ptr [RAX]
MOV RDI,qword ptr [RSP + 0x108]
MOV RAX,qword ptr [0x001ddec0]
MOV ESI,0x1
MOV RDX,RDI
CALL qword ptr [RAX + 0xb0]
TEST EAX,EAX
JNZ 0x0017a198
MOV RDI,qword ptr [RSP + 0x108]
MOV RAX,qword ptr [0x001ddec0]
XOR EDX,EDX
MOV RSI,qword ptr [RSP + 0xd0]
MOV RCX,RDI
CALL qword ptr [RAX + 0xe0]
TEST EAX,EAX
JNZ 0x0017a198
MOV RAX,qword ptr [0x001ddec0]
MOV RDI,qword ptr [RSP + 0x108]
CALL qword ptr [RAX + 0x90]
MOV qword ptr [RSP + 0xb0],RAX
CMP RBP,RAX
JC 0x0017a497
MOV RSI,RBP
MOV RDI,R15
CALL 0x00114e00
MOV RAX,qword ptr [0x001ddec0]
MOV RSI,RBP
SUB RSI,qword ptr [RSP + 0xb0]
ADD RSI,R15
MOV RDI,qword ptr [RSP + 0x108]
CALL qword ptr [RAX + 0x98]
TEST EAX,EAX
JNZ 0x0017a198
MOV EDI,dword ptr [RSP + 0xc]
MOV R8,R14
MOV RCX,R13
MOV RDX,RBP
MOV RSI,R15
MOV qword ptr [RSP + 0xb0],R12
CALL 0x00113310
TEST EAX,EAX
JNZ 0x0017a198
ADD RBX,0x1
SUB R13,R12
CMP qword ptr [RSP + 0x70],RBX
JNC 0x0017a218
MOV R13,qword ptr [0x001ddec0]
MOV RDX,qword ptr [RSP + 0x60]
MOV RSI,qword ptr [RSP + 0x20]
MOV RDI,qword ptr [RSP + 0xe0]
CALL qword ptr [R13 + 0xa0]
TEST EAX,EAX
JNZ 0x0017a198
MOV RDI,qword ptr [RSP + 0xe0]
MOV RBX,qword ptr [0x001ddec0]
XOR EDX,EDX
MOV RSI,qword ptr [RSP + 0xb8]
MOV RCX,RDI
CALL qword ptr [RBX + 0xe0]
TEST EAX,EAX
JNZ 0x0017a198
MOV RAX,qword ptr [0x001ddec0]
MOV RDX,qword ptr [RSP + 0xe8]
MOV RSI,qword ptr [RSP + 0xb8]
MOV RDI,qword ptr [RSP + 0xe0]
CALL qword ptr [RAX + 0xa8]
TEST EAX,EAX
JNZ 0x0017a198
MOV R13,qword ptr [0x001ddec0]
XOR EDX,EDX
MOV RCX,qword ptr [RSP + 0xf0]
MOV RSI,qword ptr [RSP + 0xc8]
MOV RDI,qword ptr [RSP + 0xe8]
CALL qword ptr [R13 + 0xe0]
TEST EAX,EAX
JNZ 0x0017a198
MOV RBX,qword ptr [RSP + 0x40]
MOV RAX,qword ptr [0x001ddec0]
MOV ESI,0x1
MOV RDI,qword ptr [RSP + 0xf0]
MOV RDX,RBX
CALL qword ptr [RAX + 0xc0]
TEST EAX,EAX
JNZ 0x0017a198
MOV R13,qword ptr [0x001ddec0]
MOV RDX,RBX
MOV RSI,RBX
MOV RDI,qword ptr [RSP + 0xe8]
CALL qword ptr [R13 + 0xb8]
TEST EAX,EAX
JNZ 0x0017a198
MOV RDI,RBX
MOV RBX,qword ptr [0x001ddec0]
MOV RSI,qword ptr [RSP + 0xb8]
CALL qword ptr [RBX + 0x58]
ADD EAX,0x1
JZ 0x0017a43e
MOV RAX,qword ptr [0x001ddec0]
MOV RDX,qword ptr [RSP + 0x18]
MOV ESI,dword ptr [RSP + 0x14]
MOV RDI,qword ptr [RSP + 0x40]
CALL qword ptr [RAX + 0x148]
TEST EAX,EAX
JNZ 0x0017a198
CMP dword ptr [RSP + 0xac],0x1
JZ 0x0017a4ab
MOV R11,qword ptr [RSP + 0x88]
ADD R11,0x1
CMP qword ptr [RSP + 0x78],R11
JBE 0x0017a61b
MOV qword ptr [RSP + 0x88],R11
JMP 0x0017a20a
MOV EDX,0xdb
LEA RSI,[0x1c5eef]
LEA RDI,[0x1c5d9d]
CALL 0x00114270
CALL 0x00113880
MOV EDX,0xda
LEA RSI,[0x1c5eef]
LEA RDI,[0x1c5e5d]
CALL 0x00114270
MOV EBX,dword ptr [RSP + 0x58]
MOV R14,qword ptr [RSP + 0x68]
MOV R15D,0x10
JMP 0x0017a050
MOV R12,qword ptr [0x001ddec0]
MOV RBP,qword ptr [RSP + 0x30]
MOV ESI,0x1
MOV EBX,dword ptr [RSP + 0x58]
MOV R14,qword ptr [RSP + 0x68]
MOV RDX,qword ptr [RSP + 0x100]
MOV RDI,qword ptr [RSP + 0x40]
CALL qword ptr [R12 + 0xc0]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a050
MOV RDI,qword ptr [RSP + 0x100]
MOV RAX,qword ptr [0x001ddec0]
MOV RCX,qword ptr [RSP + 0xf0]
MOV RSI,qword ptr [RSP + 0x28]
MOV RDX,RDI
CALL qword ptr [RAX + 0xe0]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a050
MOV R13,qword ptr [0x001ddec0]
MOV RDI,qword ptr [RSP + 0x40]
CALL qword ptr [R13 + 0x68]
CDQE
MOV qword ptr [RSP + 0xb0],RAX
MOV ECX,dword ptr [RSP + 0x8]
MOV ESI,dword ptr [RSP + 0xb0]
MOV RDX,RBP
MOV RDI,qword ptr [RSP + 0xf8]
CALL 0x00113790
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a050
MOV R12,qword ptr [0x001ddec0]
MOV RSI,qword ptr [RSP + 0x40]
MOV RDI,qword ptr [RSP + 0xf8]
CALL qword ptr [R12 + 0x58]
CMP EAX,-0x1
JNZ 0x0017a52f
MOV R15,qword ptr [0x001ddec0]
MOV ESI,0x2
MOV RDI,qword ptr [RSP + 0xf8]
CALL qword ptr [R15 + 0x60]
SUB EAX,0x1
JNZ 0x0017a52f
MOV RDI,qword ptr [RSP + 0xf8]
MOV RAX,qword ptr [0x001ddec0]
MOV ESI,0x1
MOV RDX,RDI
CALL qword ptr [RAX + 0xc0]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a050
MOV R13,qword ptr [RSP + 0x48]
MOV R12,qword ptr [0x001ddec0]
MOV RDX,qword ptr [RSP + 0x40]
MOV RSI,qword ptr [RSP + 0x100]
MOV RCX,R13
MOV RDI,qword ptr [RSP + 0xf8]
CALL qword ptr [R12 + 0x140]
MOV R15D,EAX
TEST EAX,EAX
JNZ 0x0017a050
MOV RAX,qword ptr [0x001ddec0]
MOV ESI,0x1
MOV RDI,R13
CALL qword ptr [RAX + 0x60]
TEST EAX,EAX
JZ 0x0017a52f
JMP 0x0017a050
MOV dword ptr [RSP + 0x10],0x40
JMP 0x00179d0a
MOV R14,qword ptr [RSP + 0x90]
MOV R13,qword ptr [RSP + 0x98]
JMP 0x00179efa
(translation_unit "int dsa_generate_pqg(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)\n\n{\n  ulong uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  ulong uVar9;\n  void *__ptr;\n  void *__ptr_00;\n  ulong uVar10;\n  size_t sVar11;\n  size_t __size;\n  size_t __size_00;\n  void *pvVar12;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int local_12c;\n  ulong local_128;\n  undefined8 local_120;\n  undefined8 local_118;\n  undefined8 local_110;\n  undefined8 local_108;\n  undefined8 local_100;\n  undefined8 local_f8;\n  undefined8 local_f0;\n  undefined8 local_e8;\n  undefined8 local_e0;\n  undefined8 local_d8;\n  undefined8 local_d0;\n  undefined1 local_c8 [136];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);\n  if (iVar7 != 0) goto LAB_00179c52;\n  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(param_5);\nLAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar7;\nLAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);\n  if (iVar7 != 0) goto LAB_0017a050;\n  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);\n  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;\n  goto LAB_0017a52f;\n}\n\n" (function_definition "int dsa_generate_pqg(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)\n\n{\n  ulong uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  ulong uVar9;\n  void *__ptr;\n  void *__ptr_00;\n  ulong uVar10;\n  size_t sVar11;\n  size_t __size;\n  size_t __size_00;\n  void *pvVar12;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int local_12c;\n  ulong local_128;\n  undefined8 local_120;\n  undefined8 local_118;\n  undefined8 local_110;\n  undefined8 local_108;\n  undefined8 local_100;\n  undefined8 local_f8;\n  undefined8 local_f0;\n  undefined8 local_e8;\n  undefined8 local_e0;\n  undefined8 local_d8;\n  undefined8 local_d0;\n  undefined1 local_c8 [136];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);\n  if (iVar7 != 0) goto LAB_00179c52;\n  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(param_5);\nLAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar7;\nLAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);\n  if (iVar7 != 0) goto LAB_0017a050;\n  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);\n  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;\n  goto LAB_0017a52f;\n}" primitive_type (function_declarator "dsa_generate_pqg(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)" identifier (parameter_list "(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  ulong uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  ulong uVar9;\n  void *__ptr;\n  void *__ptr_00;\n  ulong uVar10;\n  size_t sVar11;\n  size_t __size;\n  size_t __size_00;\n  void *pvVar12;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int local_12c;\n  ulong local_128;\n  undefined8 local_120;\n  undefined8 local_118;\n  undefined8 local_110;\n  undefined8 local_108;\n  undefined8 local_100;\n  undefined8 local_f8;\n  undefined8 local_f0;\n  undefined8 local_e8;\n  undefined8 local_e0;\n  undefined8 local_d8;\n  undefined8 local_d0;\n  undefined1 local_c8 [136];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);\n  if (iVar7 != 0) goto LAB_00179c52;\n  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(param_5);\nLAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar7;\nLAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);\n  if (iVar7 != 0) goto LAB_0017a050;\n  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);\n  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;\n  goto LAB_0017a52f;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "size_t __size;" primitive_type identifier ;) (declaration "size_t __size_00;" primitive_type identifier ;) (declaration "void *pvVar12;" primitive_type (pointer_declarator "*pvVar12" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_1cc;" primitive_type identifier ;) (declaration "undefined4 local_1c8;" type_identifier identifier ;) (declaration "int local_1c4;" primitive_type identifier ;) (declaration "ulong local_150;" type_identifier identifier ;) (declaration "int local_12c;" primitive_type identifier ;) (declaration "ulong local_128;" type_identifier identifier ;) (declaration "undefined8 local_120;" type_identifier identifier ;) (declaration "undefined8 local_118;" type_identifier identifier ;) (declaration "undefined8 local_110;" type_identifier identifier ;) (declaration "undefined8 local_108;" type_identifier identifier ;) (declaration "undefined8 local_100;" type_identifier identifier ;) (declaration "undefined8 local_f8;" type_identifier identifier ;) (declaration "undefined8 local_f0;" type_identifier identifier ;) (declaration "undefined8 local_e8;" type_identifier identifier ;) (declaration "undefined8 local_e0;" type_identifier identifier ;) (declaration "undefined8 local_d8;" type_identifier identifier ;) (declaration "undefined8 local_d0;" type_identifier identifier ;) (declaration "undefined1 local_c8 [136];" type_identifier (array_declarator "local_c8 [136]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_5 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }" { comment (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_generate_pqg.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }" if (parenthesized_expression "(*(long *)PTR_ltc_mp_001ddec0 == 0)" ( (binary_expression "*(long *)PTR_ltc_mp_001ddec0 == 0" (pointer_expression "*(long *)PTR_ltc_mp_001ddec0" * (cast_expression "(long *)PTR_ltc_mp_001ddec0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }" { comment (expression_statement "crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);" (call_expression "crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb)" identifier (argument_list "("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb)" ( (string_literal ""ltc_mp.name != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_generate_pqg.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);" (assignment_expression "iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0)" identifier = (call_expression "ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0)" identifier (argument_list "(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0)" ( (binary_expression "param_5 + 0x18" identifier + number_literal) , (binary_expression "param_5 + 8" identifier + number_literal) , (binary_expression "param_5 + 0x10" identifier + number_literal) , (binary_expression "param_5 + 0x20" identifier + number_literal) , (binary_expression "param_5 + 0x28" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar7 != 0) goto LAB_00179c52;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00179c52;" goto statement_identifier ;)) (if_statement "if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }" if (parenthesized_expression "((param_3 - 1U < 0x1ff) && (param_3 < param_4))" ( (binary_expression "(param_3 - 1U < 0x1ff) && (param_3 < param_4)" (parenthesized_expression "(param_3 - 1U < 0x1ff)" ( (binary_expression "param_3 - 1U < 0x1ff" (binary_expression "param_3 - 1U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(param_3 < param_4)" ( (binary_expression "param_3 < param_4" identifier < identifier) ))) )) (compound_statement "{\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }" { (expression_statement "__size = (size_t)param_3;" (assignment_expression "__size = (size_t)param_3" identifier = (cast_expression "(size_t)param_3" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "local_1c4 = 0x28;" (assignment_expression "local_1c4 = 0x28" identifier = number_literal) ;) (expression_statement "uVar10 = (long)param_4 * 8;" (assignment_expression "uVar10 = (long)param_4 * 8" identifier = (binary_expression "(long)param_4 * 8" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ;) (expression_statement "uVar1 = __size * 8;" (assignment_expression "uVar1 = __size * 8" identifier = (binary_expression "__size * 8" identifier * number_literal)) ;) (if_statement "if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }" if (parenthesized_expression "(0x400 < uVar10)" ( (binary_expression "0x400 < uVar10" number_literal < identifier) )) (compound_statement "{\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }" { (expression_statement "local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;" (assignment_expression "local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40" identifier = (binary_expression "(-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40" (parenthesized_expression "(-(uint)(uVar10 < 0x801) & 0xfffffff8)" ( (binary_expression "-(uint)(uVar10 < 0x801) & 0xfffffff8" (unary_expression "-(uint)(uVar10 < 0x801)" - (call_expression "(uint)(uVar10 < 0x801)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < 0x801)" ( (binary_expression "uVar10 < 0x801" identifier < number_literal) )))) & number_literal) )) + number_literal)) ;) })) (expression_statement "uVar2 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar2 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined8 *)(param_5 + 0x10);" (assignment_expression "uVar3 = *(undefined8 *)(param_5 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 0x10)" * (cast_expression "(undefined8 *)(param_5 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_5 + 0x18);" (assignment_expression "uVar4 = *(undefined8 *)(param_5 + 0x18)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 0x18)" * (cast_expression "(undefined8 *)(param_5 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x18)" ( (binary_expression "param_5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" if (parenthesized_expression "(uVar1 < 0xa1)" ( (binary_expression "uVar1 < 0xa1" identifier < number_literal) )) (compound_statement "{\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }" { (expression_statement "local_1c8 = 0x28;" (assignment_expression "local_1c8 = 0x28" identifier = number_literal) ;) (labeled_statement "LAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);" statement_identifier : (expression_statement "local_1cc = register_hash(PTR_sha256_desc_001ddf70);" (assignment_expression "local_1cc = register_hash(PTR_sha256_desc_001ddf70)" identifier = (call_expression "register_hash(PTR_sha256_desc_001ddf70)" identifier (argument_list "(PTR_sha256_desc_001ddf70)" ( identifier )))) ;)) }) (else_clause "else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" else (compound_statement "{\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" { (if_statement "if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }" if (parenthesized_expression "(uVar1 < 0xe1)" ( (binary_expression "uVar1 < 0xe1" identifier < number_literal) )) (compound_statement "{\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }" { (expression_statement "local_1c8 = 0x38;" (assignment_expression "local_1c8 = 0x38" identifier = number_literal) ;) (goto_statement "goto LAB_00179d0a;" goto statement_identifier ;) })) (if_statement "if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }" if (parenthesized_expression "(uVar1 < 0x101)" ( (binary_expression "uVar1 < 0x101" identifier < number_literal) )) (compound_statement "{\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }" { (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" identifier = number_literal) ;) (goto_statement "goto LAB_00179d0a;" goto statement_identifier ;) })) (if_statement "if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" if (parenthesized_expression "(uVar1 < 0x181)" ( (binary_expression "uVar1 < 0x181" identifier < number_literal) )) (compound_statement "{\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }" { (expression_statement "local_1cc = register_hash(PTR_sha384_desc_001ddfa8);" (assignment_expression "local_1cc = register_hash(PTR_sha384_desc_001ddfa8)" identifier = (call_expression "register_hash(PTR_sha384_desc_001ddfa8)" identifier (argument_list "(PTR_sha384_desc_001ddfa8)" ( identifier )))) ;) (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" identifier = number_literal) ;) }) (else_clause "else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" else (compound_statement "{\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" { (if_statement "if (0x200 < uVar1) goto LAB_0017a0d8;" if (parenthesized_expression "(0x200 < uVar1)" ( (binary_expression "0x200 < uVar1" number_literal < identifier) )) (goto_statement "goto LAB_0017a0d8;" goto statement_identifier ;)) (expression_statement "local_1cc = register_hash(PTR_sha512_desc_001ddfa0);" (assignment_expression "local_1cc = register_hash(PTR_sha512_desc_001ddfa0)" identifier = (call_expression "register_hash(PTR_sha512_desc_001ddfa0)" identifier (argument_list "(PTR_sha512_desc_001ddfa0)" ( identifier )))) ;) (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" identifier = number_literal) ;) }))) }))) (expression_statement "iVar7 = hash_is_valid(local_1cc);" (assignment_expression "iVar7 = hash_is_valid(local_1cc)" identifier = (call_expression "hash_is_valid(local_1cc)" identifier (argument_list "(local_1cc)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }" { (expression_statement "uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);" (assignment_expression "uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" identifier = (pointer_expression "*(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" * (cast_expression "(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" ( (binary_expression "PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0" identifier + (binary_expression "(long)local_1cc * 0xd0" (cast_expression "(long)local_1cc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);" (assignment_expression "uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8)" identifier = (binary_expression "((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8)" (parenthesized_expression "((uVar10 - 1) + uVar5 * 8)" ( (binary_expression "(uVar10 - 1) + uVar5 * 8" (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )) + (binary_expression "uVar5 * 8" identifier * number_literal)) )) / (parenthesized_expression "(uVar5 * 8)" ( (binary_expression "uVar5 * 8" identifier * number_literal) )))) ;) (expression_statement "__size_00 = uVar5 * uVar9;" (assignment_expression "__size_00 = uVar5 * uVar9" identifier = (binary_expression "uVar5 * uVar9" identifier * identifier)) ;) (expression_statement "__ptr = malloc(__size_00);" (assignment_expression "__ptr = malloc(__size_00)" identifier = (call_expression "malloc(__size_00)" identifier (argument_list "(__size_00)" ( identifier )))) ;) (if_statement "if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }" { (expression_statement "__ptr_00 = malloc(__size);" (assignment_expression "__ptr_00 = malloc(__size)" identifier = (call_expression "malloc(__size)" identifier (argument_list "(__size)" ( identifier )))) ;) (if_statement "if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }" if (parenthesized_expression "(__ptr_00 != (void *)0x0)" ( (binary_expression "__ptr_00 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }" { (expression_statement "iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);" (assignment_expression "iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0)" identifier = (call_expression "ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0)" identifier (argument_list "(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0)" ( (pointer_expression "&local_120" & identifier) , (pointer_expression "&local_118" & identifier) , (pointer_expression "&local_110" & identifier) , (pointer_expression "&local_108" & identifier) , (pointer_expression "&local_100" & identifier) , (pointer_expression "&local_f8" & identifier) , (pointer_expression "&local_f0" & identifier) , (pointer_expression "&local_e8" & identifier) , (pointer_expression "&local_e0" & identifier) , (pointer_expression "&local_d8" & identifier) , (pointer_expression "&local_d0" & identifier) , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }" { (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" identifier + number_literal) ))))) )) (argument_list "(local_120,(int)uVar10 + -1)" ( identifier , (binary_expression "(int)uVar10 + -1" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }" if (parenthesized_expression "(((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0))" ( (binary_expression "((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)" (parenthesized_expression "((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0))" ( (binary_expression "(iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" identifier + number_literal) ))))) )) (argument_list "(local_118,(int)uVar1 + -1)" ( identifier , (binary_expression "(int)uVar1 + -1" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" identifier + number_literal) ))))) )) (argument_list "(local_108,param_3 * 8)" ( identifier , (binary_expression "param_3 * 8" identifier * number_literal) )))) , (comma_expression "puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0" (assignment_expression "puVar6 = PTR_prng_descriptor_001ddf90" identifier = identifier) , (binary_expression "iVar7 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }" { (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (while_statement "while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }" { (do_statement "do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);" do (compound_statement "{\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                }" { (expression_statement "sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);" (assignment_expression "sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1)" identifier = (call_expression "(**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1)" (parenthesized_expression "(**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))" ( (pointer_expression "**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28)" * (pointer_expression "*(code **)(puVar6 + (long)param_2 * 0x50 + 0x28)" * (cast_expression "(code **)(puVar6 + (long)param_2 * 0x50 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + (long)param_2 * 0x50 + 0x28)" ( (binary_expression "puVar6 + (long)param_2 * 0x50 + 0x28" (binary_expression "puVar6 + (long)param_2 * 0x50" identifier + (binary_expression "(long)param_2 * 0x50" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) )) (argument_list "(__ptr_00,__size,param_1)" ( identifier , identifier , identifier )))) ;) (if_statement "if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }" if (parenthesized_expression "(__size != sVar11)" ( (binary_expression "__size != sVar11" identifier != identifier) )) (compound_statement "{\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }" { (expression_statement "iVar7 = 9;" (assignment_expression "iVar7 = 9" identifier = number_literal) ;) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;) })) (expression_statement "local_128 = uVar5;" (assignment_expression "local_128 = uVar5" identifier = identifier) ;) (expression_statement "iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);" (assignment_expression "iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128)" identifier = (call_expression "hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128)" identifier (argument_list "(local_1cc,__ptr_00,__size,local_c8,&local_128)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_128" & identifier) )))) ;) (if_statement "if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;" if (parenthesized_expression "(((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0))))" ( (binary_expression "((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))" (parenthesized_expression "((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(local_100,local_c8,uVar5)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))" ( (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0))" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_100,local_118,0,local_100)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" identifier + number_literal) ))))) )) (argument_list "(local_118,local_100,uVar3)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) )))) )) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x50))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x50)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x50)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x50)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x50" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }" if (parenthesized_expression "((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     ))" ( (binary_expression "(iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )" (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) || (parenthesized_expression "(uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )" ( (comma_expression "uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0" (assignment_expression "uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x48))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x48)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x48)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x48)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x48" identifier + number_literal) ))))) )) (argument_list "(uVar3,0)" ( identifier , number_literal )))) , (binary_expression "(uVar10 & 1) == 0" (parenthesized_expression "(uVar10 & 1)" ( (binary_expression "uVar10 & 1" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }" { (expression_statement "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);" (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(uVar3,1,uVar3)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x148)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x148" identifier + number_literal) ))))) )) (argument_list "(uVar3,local_1c8,&local_12c)" ( identifier , identifier , (pointer_expression "&local_12c" & identifier) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0017a050;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) }) while (parenthesized_expression "(local_12c != 1)" ( (binary_expression "local_12c != 1" identifier != number_literal) )) ;) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(local_d0,__ptr_00,__size)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;" if (parenthesized_expression "((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" identifier + number_literal) ))))) )) (argument_list "(uVar3,uVar3,local_110)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_150 = 0;" (assignment_expression "local_150 = 0" identifier = number_literal) ;) (do_statement "do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));" do (compound_statement "{\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);" (assignment_expression "pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr)" identifier = (cast_expression "(void *)(uVar5 * uVar9 + (long)__ptr)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 * uVar9 + (long)__ptr)" ( (binary_expression "uVar5 * uVar9 + (long)__ptr" (binary_expression "uVar5 * uVar9" identifier * identifier) + (cast_expression "(long)__ptr" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (do_statement "do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);" do (compound_statement "{\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  }" { (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(local_d0,1,local_d0)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;" if (parenthesized_expression "((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_d0,local_108,0,local_d0)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);" (assignment_expression "local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x90))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x90)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x90)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x90)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x90" identifier + number_literal) ))))) )) (argument_list "(local_d0)" ( identifier )))) ;) (if_statement "if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }" if (parenthesized_expression "(__size < local_128)" ( (binary_expression "__size < local_128" identifier < identifier) )) (compound_statement "{\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }" { (expression_statement "iVar7 = 0x10;" (assignment_expression "iVar7 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;) })) (expression_statement "zeromem(__ptr_00,__size);" (call_expression "zeromem(__ptr_00,__size)" identifier (argument_list "(__ptr_00,__size)" ( identifier , identifier ))) ;) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x98))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x98)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x98)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x98)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x98" identifier + number_literal) ))))) )) (argument_list "(local_d0,(__size - local_128) + (long)__ptr_00)" ( identifier , (binary_expression "(__size - local_128) + (long)__ptr_00" (parenthesized_expression "(__size - local_128)" ( (binary_expression "__size - local_128" identifier - identifier) )) + (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;" if (parenthesized_expression "((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       ))" ( (binary_expression "(iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )" ( (comma_expression "local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0" (assignment_expression "local_128 = uVar5" identifier = identifier) , (comma_expression "iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0" (assignment_expression "iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128)" identifier = (call_expression "hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128)" identifier (argument_list "(local_1cc,__ptr_00,__size,pvVar12,&local_128)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_128" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "pvVar12 = (void *)((long)pvVar12 - uVar5);" (assignment_expression "pvVar12 = (void *)((long)pvVar12 - uVar5)" identifier = (cast_expression "(void *)((long)pvVar12 - uVar5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar12 - uVar5)" ( (binary_expression "(long)pvVar12 - uVar5" (cast_expression "(long)pvVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) )))) ;) }) while (parenthesized_expression "(uVar10 <= uVar9)" ( (binary_expression "uVar10 <= uVar9" identifier <= identifier) )) ;) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(local_f8,__ptr,__size_00)" ( identifier , identifier , identifier )))) ;) (if_statement "if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;" if (parenthesized_expression "(((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0))" ( (binary_expression "((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)" (parenthesized_expression "((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0))))" ( (binary_expression "(((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))" (parenthesized_expression "(((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0))" ( (binary_expression "((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)" (parenthesized_expression "((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_f8,local_120,0,local_f8)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" identifier + number_literal) ))))) )) (argument_list "(local_f8,local_120,local_f0)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))" ( (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0))" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_f0,local_110,0,local_e8)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(local_e8,1,uVar4)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) )))) )) ))) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xb8" identifier + number_literal) ))))) )) (argument_list "(local_f0,uVar4,uVar4)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(uVar4,local_120)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }" if (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) (compound_statement "{\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }" { (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x148)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x148" identifier + number_literal) ))))) )) (argument_list "(uVar4,local_1c4,&local_12c)" ( identifier , identifier , (pointer_expression "&local_12c" & identifier) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0017a050;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (if_statement "if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }" if (parenthesized_expression "(local_12c == 1)" ( (binary_expression "local_12c == 1" identifier == number_literal) )) (compound_statement "{\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }" { (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(uVar4,1,local_d8)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;" if (parenthesized_expression "((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_d8,uVar3,local_d8,local_e8)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x68))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x68)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x68)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x68)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x68" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "local_128 = (ulong)iVar7;" (assignment_expression "local_128 = (ulong)iVar7" identifier = (cast_expression "(ulong)iVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0017a52f;" goto statement_identifier ;) })) })) (expression_statement "local_150 = local_150 + 1;" (assignment_expression "local_150 = local_150 + 1" identifier = (binary_expression "local_150 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_150 < (ulong)((long)param_4 << 5))" ( (binary_expression "local_150 < (ulong)((long)param_4 << 5)" identifier < (call_expression "(ulong)((long)param_4 << 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)param_4 << 5)" ( (binary_expression "(long)param_4 << 5" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal) )))) )) ;) })) })) (labeled_statement "LAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);" statement_identifier : (expression_statement "ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);" (call_expression "ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0)" identifier (argument_list "(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , number_literal ))) ;)) })) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }" { (expression_statement "*(int *)(param_5 + 4) = param_3;" (assignment_expression "*(int *)(param_5 + 4) = param_3" (pointer_expression "*(int *)(param_5 + 4)" * (cast_expression "(int *)(param_5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00179c52;" goto statement_identifier ;) })) (goto_statement "goto LAB_0017a0de;" goto statement_identifier ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (expression_statement "iVar7 = 0xd;" (assignment_expression "iVar7 = 0xd" identifier = number_literal) ;) })) }) (else_clause "else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }" else (compound_statement "{\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }" { (labeled_statement "LAB_0017a0d8:\n    iVar7 = 0x10;" statement_identifier : (expression_statement "iVar7 = 0x10;" (assignment_expression "iVar7 = 0x10" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0017a0de:\n  dsa_free(param_5);" statement_identifier : (expression_statement "dsa_free(param_5);" (call_expression "dsa_free(param_5)" identifier (argument_list "(param_5)" ( identifier ))) ;)) (labeled_statement "LAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar7;" return identifier ;) (labeled_statement "LAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);" statement_identifier : (expression_statement "iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);" (assignment_expression "iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2)" identifier = (call_expression "rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2)" identifier (argument_list "(local_e0,local_128 & 0xffffffff,param_1,param_2)" ( identifier , (binary_expression "local_128 & 0xffffffff" identifier & number_literal) , identifier , identifier )))) ;)) (if_statement "if (iVar7 != 0) goto LAB_0017a050;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(local_e0,uVar4)" ( identifier , identifier )))) ;) (if_statement "if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;" if (parenthesized_expression "(((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     )" ( (binary_expression "((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))" (parenthesized_expression "((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))" ( (binary_expression "(iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1)" (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(local_e0,2)" ( identifier , number_literal )))) , (binary_expression "iVar7 == 1" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))" ( (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0))))" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(local_e0,1,local_e0)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))" ( (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0))" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" identifier + number_literal) ))))) )) (argument_list "(local_e0,local_d8,uVar4,uVar2)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(uVar2,1)" ( identifier , number_literal )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) )))) )) )))) )) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (goto_statement "goto LAB_0017a52f;" goto statement_identifier ;) })))
(translation_unit "int dsa_generate_pqg(prng_state *prng,int wprng,int group_size,int modulus_size,dsa_key *key)\n\n{\n  ulong uVar1;\n  long lVar2;\n  void *pvVar3;\n  void *pvVar4;\n  void *pvVar5;\n  ulong uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  ulong uVar10;\n  void *__ptr;\n  uchar *in;\n  ulong uVar11;\n  size_t sVar12;\n  size_t __size;\n  size_t __size_00;\n  uchar *out;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int res;\n  ulong i;\n  void *t2L1;\n  void *t2N1;\n  void *t2q;\n  void *t2seedlen;\n  void *U;\n  void *W;\n  void *X;\n  void *c;\n  void *h;\n  void *e;\n  void *seedinc;\n  uchar digest [128];\n  \n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar8 = ltc_init_multi(&key->p,&key->g,&key->q,&key->x,&key->y,0);\n  if (iVar8 != 0) goto LAB_00179c52;\n  if ((group_size - 1U < 0x1ff) && (group_size < modulus_size)) {\n    __size = (size_t)group_size;\n    local_1c4 = 0x28;\n    uVar11 = (long)modulus_size * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar11) {\n      local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    pvVar3 = key->g;\n    pvVar4 = key->q;\n    pvVar5 = key->p;\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar8 = hash_is_valid(local_1cc);\n    if (iVar8 == 0) {\n      uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8);\n      __size_00 = uVar6 * uVar10;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        in = (uchar *)malloc(__size);\n        if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar8 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar8 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(key);\nLAB_00179c52:\n  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar8;\nLAB_0017a52f:\n  iVar8 = rand_bn_bits(h,(int)i,prng,wprng);\n  if (iVar8 != 0) goto LAB_0017a050;\n  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(h,pvVar5);\n  if (((iVar8 == -1) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1)) &&\n     ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0))))))\n  goto LAB_0017a050;\n  goto LAB_0017a52f;\n}\n\n" (function_definition "int dsa_generate_pqg(prng_state *prng,int wprng,int group_size,int modulus_size,dsa_key *key)\n\n{\n  ulong uVar1;\n  long lVar2;\n  void *pvVar3;\n  void *pvVar4;\n  void *pvVar5;\n  ulong uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  ulong uVar10;\n  void *__ptr;\n  uchar *in;\n  ulong uVar11;\n  size_t sVar12;\n  size_t __size;\n  size_t __size_00;\n  uchar *out;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int res;\n  ulong i;\n  void *t2L1;\n  void *t2N1;\n  void *t2q;\n  void *t2seedlen;\n  void *U;\n  void *W;\n  void *X;\n  void *c;\n  void *h;\n  void *e;\n  void *seedinc;\n  uchar digest [128];\n  \n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar8 = ltc_init_multi(&key->p,&key->g,&key->q,&key->x,&key->y,0);\n  if (iVar8 != 0) goto LAB_00179c52;\n  if ((group_size - 1U < 0x1ff) && (group_size < modulus_size)) {\n    __size = (size_t)group_size;\n    local_1c4 = 0x28;\n    uVar11 = (long)modulus_size * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar11) {\n      local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    pvVar3 = key->g;\n    pvVar4 = key->q;\n    pvVar5 = key->p;\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar8 = hash_is_valid(local_1cc);\n    if (iVar8 == 0) {\n      uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8);\n      __size_00 = uVar6 * uVar10;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        in = (uchar *)malloc(__size);\n        if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar8 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar8 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(key);\nLAB_00179c52:\n  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar8;\nLAB_0017a52f:\n  iVar8 = rand_bn_bits(h,(int)i,prng,wprng);\n  if (iVar8 != 0) goto LAB_0017a050;\n  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(h,pvVar5);\n  if (((iVar8 == -1) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1)) &&\n     ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0))))))\n  goto LAB_0017a050;\n  goto LAB_0017a52f;\n}" primitive_type (function_declarator "dsa_generate_pqg(prng_state *prng,int wprng,int group_size,int modulus_size,dsa_key *key)" identifier (parameter_list "(prng_state *prng,int wprng,int group_size,int modulus_size,dsa_key *key)" ( (parameter_declaration "prng_state *prng" type_identifier (pointer_declarator "*prng" * identifier)) , (parameter_declaration "int wprng" primitive_type identifier) , (parameter_declaration "int group_size" primitive_type identifier) , (parameter_declaration "int modulus_size" primitive_type identifier) , (parameter_declaration "dsa_key *key" type_identifier (pointer_declarator "*key" * identifier)) ))) (compound_statement "{\n  ulong uVar1;\n  long lVar2;\n  void *pvVar3;\n  void *pvVar4;\n  void *pvVar5;\n  ulong uVar6;\n  undefined *puVar7;\n  int iVar8;\n  int iVar9;\n  ulong uVar10;\n  void *__ptr;\n  uchar *in;\n  ulong uVar11;\n  size_t sVar12;\n  size_t __size;\n  size_t __size_00;\n  uchar *out;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int res;\n  ulong i;\n  void *t2L1;\n  void *t2N1;\n  void *t2q;\n  void *t2seedlen;\n  void *U;\n  void *W;\n  void *X;\n  void *c;\n  void *h;\n  void *e;\n  void *seedinc;\n  uchar digest [128];\n  \n  lVar2 = *(long *)(in_FS_OFFSET + 0x28);\n  if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar8 = ltc_init_multi(&key->p,&key->g,&key->q,&key->x,&key->y,0);\n  if (iVar8 != 0) goto LAB_00179c52;\n  if ((group_size - 1U < 0x1ff) && (group_size < modulus_size)) {\n    __size = (size_t)group_size;\n    local_1c4 = 0x28;\n    uVar11 = (long)modulus_size * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar11) {\n      local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    pvVar3 = key->g;\n    pvVar4 = key->q;\n    pvVar5 = key->p;\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar8 = hash_is_valid(local_1cc);\n    if (iVar8 == 0) {\n      uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8);\n      __size_00 = uVar6 * uVar10;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        in = (uchar *)malloc(__size);\n        if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar8 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar8 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(key);\nLAB_00179c52:\n  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }\n  return iVar8;\nLAB_0017a52f:\n  iVar8 = rand_bn_bits(h,(int)i,prng,wprng);\n  if (iVar8 != 0) goto LAB_0017a050;\n  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(h,pvVar5);\n  if (((iVar8 == -1) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1)) &&\n     ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0))))))\n  goto LAB_0017a050;\n  goto LAB_0017a52f;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "long lVar2;" (sized_type_specifier "long" long) identifier ;) (declaration "void *pvVar3;" primitive_type (pointer_declarator "*pvVar3" * identifier) ;) (declaration "void *pvVar4;" primitive_type (pointer_declarator "*pvVar4" * identifier) ;) (declaration "void *pvVar5;" primitive_type (pointer_declarator "*pvVar5" * identifier) ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "undefined *puVar7;" type_identifier (pointer_declarator "*puVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "uchar *in;" type_identifier (pointer_declarator "*in" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "size_t sVar12;" primitive_type identifier ;) (declaration "size_t __size;" primitive_type identifier ;) (declaration "size_t __size_00;" primitive_type identifier ;) (declaration "uchar *out;" type_identifier (pointer_declarator "*out" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_1cc;" primitive_type identifier ;) (declaration "undefined4 local_1c8;" type_identifier identifier ;) (declaration "int local_1c4;" primitive_type identifier ;) (declaration "ulong local_150;" type_identifier identifier ;) (declaration "int res;" primitive_type identifier ;) (declaration "ulong i;" type_identifier identifier ;) (declaration "void *t2L1;" primitive_type (pointer_declarator "*t2L1" * identifier) ;) (declaration "void *t2N1;" primitive_type (pointer_declarator "*t2N1" * identifier) ;) (declaration "void *t2q;" primitive_type (pointer_declarator "*t2q" * identifier) ;) (declaration "void *t2seedlen;" primitive_type (pointer_declarator "*t2seedlen" * identifier) ;) (declaration "void *U;" primitive_type (pointer_declarator "*U" * identifier) ;) (declaration "void *W;" primitive_type (pointer_declarator "*W" * identifier) ;) (declaration "void *X;" primitive_type (pointer_declarator "*X" * identifier) ;) (declaration "void *c;" primitive_type (pointer_declarator "*c" * identifier) ;) (declaration "void *h;" primitive_type (pointer_declarator "*h" * identifier) ;) (declaration "void *e;" primitive_type (pointer_declarator "*e" * identifier) ;) (declaration "void *seedinc;" primitive_type (pointer_declarator "*seedinc" * identifier) ;) (declaration "uchar digest [128];" type_identifier (array_declarator "digest [128]" identifier [ number_literal ]) ;) (expression_statement "lVar2 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "lVar2 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }" if (parenthesized_expression "(key == (dsa_key *)0x0)" ( (binary_expression "key == (dsa_key *)0x0" identifier == (cast_expression "(dsa_key *)0x0" ( (type_descriptor "dsa_key *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }" { comment (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_generate_pqg.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }" if (parenthesized_expression "(*(long *)PTR_ltc_mp_001ddec0 == 0)" ( (binary_expression "*(long *)PTR_ltc_mp_001ddec0 == 0" (pointer_expression "*(long *)PTR_ltc_mp_001ddec0" * (cast_expression "(long *)PTR_ltc_mp_001ddec0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }" { comment (expression_statement "crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);" (call_expression "crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb)" identifier (argument_list "("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb)" ( (string_literal ""ltc_mp.name != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_generate_pqg.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar8 = ltc_init_multi(&key->p,&key->g,&key->q,&key->x,&key->y,0);" (assignment_expression "iVar8 = ltc_init_multi(&key->p,&key->g,&key->q,&key->x,&key->y,0)" identifier = (call_expression "ltc_init_multi(&key->p,&key->g,&key->q,&key->x,&key->y,0)" identifier (argument_list "(&key->p,&key->g,&key->q,&key->x,&key->y,0)" ( (pointer_expression "&key->p" & (field_expression "key->p" identifier -> field_identifier)) , (pointer_expression "&key->g" & (field_expression "key->g" identifier -> field_identifier)) , (pointer_expression "&key->q" & (field_expression "key->q" identifier -> field_identifier)) , (pointer_expression "&key->x" & (field_expression "key->x" identifier -> field_identifier)) , (pointer_expression "&key->y" & (field_expression "key->y" identifier -> field_identifier)) , number_literal )))) ;) (if_statement "if (iVar8 != 0) goto LAB_00179c52;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00179c52;" goto statement_identifier ;)) (if_statement "if ((group_size - 1U < 0x1ff) && (group_size < modulus_size)) {\n    __size = (size_t)group_size;\n    local_1c4 = 0x28;\n    uVar11 = (long)modulus_size * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar11) {\n      local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    pvVar3 = key->g;\n    pvVar4 = key->q;\n    pvVar5 = key->p;\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar8 = hash_is_valid(local_1cc);\n    if (iVar8 == 0) {\n      uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8);\n      __size_00 = uVar6 * uVar10;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        in = (uchar *)malloc(__size);\n        if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar8 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar8 = 0x10;\n  }" if (parenthesized_expression "((group_size - 1U < 0x1ff) && (group_size < modulus_size))" ( (binary_expression "(group_size - 1U < 0x1ff) && (group_size < modulus_size)" (parenthesized_expression "(group_size - 1U < 0x1ff)" ( (binary_expression "group_size - 1U < 0x1ff" (binary_expression "group_size - 1U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(group_size < modulus_size)" ( (binary_expression "group_size < modulus_size" identifier < identifier) ))) )) (compound_statement "{\n    __size = (size_t)group_size;\n    local_1c4 = 0x28;\n    uVar11 = (long)modulus_size * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar11) {\n      local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    pvVar3 = key->g;\n    pvVar4 = key->q;\n    pvVar5 = key->p;\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar8 = hash_is_valid(local_1cc);\n    if (iVar8 == 0) {\n      uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8);\n      __size_00 = uVar6 * uVar10;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        in = (uchar *)malloc(__size);\n        if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar8 = 0xd;\n    }\n  }" { (expression_statement "__size = (size_t)group_size;" (assignment_expression "__size = (size_t)group_size" identifier = (cast_expression "(size_t)group_size" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "local_1c4 = 0x28;" (assignment_expression "local_1c4 = 0x28" identifier = number_literal) ;) (expression_statement "uVar11 = (long)modulus_size * 8;" (assignment_expression "uVar11 = (long)modulus_size * 8" identifier = (binary_expression "(long)modulus_size * 8" (cast_expression "(long)modulus_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ;) (expression_statement "uVar1 = __size * 8;" (assignment_expression "uVar1 = __size * 8" identifier = (binary_expression "__size * 8" identifier * number_literal)) ;) (if_statement "if (0x400 < uVar11) {\n      local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40;\n    }" if (parenthesized_expression "(0x400 < uVar11)" ( (binary_expression "0x400 < uVar11" number_literal < identifier) )) (compound_statement "{\n      local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40;\n    }" { (expression_statement "local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40;" (assignment_expression "local_1c4 = (-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40" identifier = (binary_expression "(-(uint)(uVar11 < 0x801) & 0xfffffff8) + 0x40" (parenthesized_expression "(-(uint)(uVar11 < 0x801) & 0xfffffff8)" ( (binary_expression "-(uint)(uVar11 < 0x801) & 0xfffffff8" (unary_expression "-(uint)(uVar11 < 0x801)" - (call_expression "(uint)(uVar11 < 0x801)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar11 < 0x801)" ( (binary_expression "uVar11 < 0x801" identifier < number_literal) )))) & number_literal) )) + number_literal)) ;) })) (expression_statement "pvVar3 = key->g;" (assignment_expression "pvVar3 = key->g" identifier = (field_expression "key->g" identifier -> field_identifier)) ;) (expression_statement "pvVar4 = key->q;" (assignment_expression "pvVar4 = key->q" identifier = (field_expression "key->q" identifier -> field_identifier)) ;) (expression_statement "pvVar5 = key->p;" (assignment_expression "pvVar5 = key->p" identifier = (field_expression "key->p" identifier -> field_identifier)) ;) (if_statement "if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" if (parenthesized_expression "(uVar1 < 0xa1)" ( (binary_expression "uVar1 < 0xa1" identifier < number_literal) )) (compound_statement "{\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);\n    }" { (expression_statement "local_1c8 = 0x28;" (assignment_expression "local_1c8 = 0x28" identifier = number_literal) ;) (labeled_statement "LAB_00179d0a:\n      local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);" statement_identifier : (expression_statement "local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70);" (assignment_expression "local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70)" identifier = (call_expression "register_hash((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70)" identifier (argument_list "((ltc_hash_descriptor *)PTR_sha256_desc_001ddf70)" ( (cast_expression "(ltc_hash_descriptor *)PTR_sha256_desc_001ddf70" ( (type_descriptor "ltc_hash_descriptor *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) }) (else_clause "else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" else (compound_statement "{\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" { (if_statement "if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }" if (parenthesized_expression "(uVar1 < 0xe1)" ( (binary_expression "uVar1 < 0xe1" identifier < number_literal) )) (compound_statement "{\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }" { (expression_statement "local_1c8 = 0x38;" (assignment_expression "local_1c8 = 0x38" identifier = number_literal) ;) (goto_statement "goto LAB_00179d0a;" goto statement_identifier ;) })) (if_statement "if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }" if (parenthesized_expression "(uVar1 < 0x101)" ( (binary_expression "uVar1 < 0x101" identifier < number_literal) )) (compound_statement "{\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }" { (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" identifier = number_literal) ;) (goto_statement "goto LAB_00179d0a;" goto statement_identifier ;) })) (if_statement "if (uVar1 < 0x181) {\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" if (parenthesized_expression "(uVar1 < 0x181)" ( (binary_expression "uVar1 < 0x181" identifier < number_literal) )) (compound_statement "{\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }" { (expression_statement "local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8);" (assignment_expression "local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8)" identifier = (call_expression "register_hash((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8)" identifier (argument_list "((ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8)" ( (cast_expression "(ltc_hash_descriptor *)PTR_sha384_desc_001ddfa8" ( (type_descriptor "ltc_hash_descriptor *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" identifier = number_literal) ;) }) (else_clause "else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" else (compound_statement "{\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" { (if_statement "if (0x200 < uVar1) goto LAB_0017a0d8;" if (parenthesized_expression "(0x200 < uVar1)" ( (binary_expression "0x200 < uVar1" number_literal < identifier) )) (goto_statement "goto LAB_0017a0d8;" goto statement_identifier ;)) (expression_statement "local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0);" (assignment_expression "local_1cc = register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0)" identifier = (call_expression "register_hash((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0)" identifier (argument_list "((ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0)" ( (cast_expression "(ltc_hash_descriptor *)PTR_sha512_desc_001ddfa0" ( (type_descriptor "ltc_hash_descriptor *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" identifier = number_literal) ;) }))) }))) (expression_statement "iVar8 = hash_is_valid(local_1cc);" (assignment_expression "iVar8 = hash_is_valid(local_1cc)" identifier = (call_expression "hash_is_valid(local_1cc)" identifier (argument_list "(local_1cc)" ( identifier )))) ;) (if_statement "if (iVar8 == 0) {\n      uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8);\n      __size_00 = uVar6 * uVar10;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        in = (uchar *)malloc(__size);\n        if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar8 = 0xd;\n    }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8);\n      __size_00 = uVar6 * uVar10;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        in = (uchar *)malloc(__size);\n        if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar8 = 0xd;\n    }" { (expression_statement "uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);" (assignment_expression "uVar6 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" identifier = (pointer_expression "*(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" * (cast_expression "(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" ( (binary_expression "PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0" identifier + (binary_expression "(long)local_1cc * 0xd0" (cast_expression "(long)local_1cc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8);" (assignment_expression "uVar10 = ((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8)" identifier = (binary_expression "((uVar11 - 1) + uVar6 * 8) / (uVar6 * 8)" (parenthesized_expression "((uVar11 - 1) + uVar6 * 8)" ( (binary_expression "(uVar11 - 1) + uVar6 * 8" (parenthesized_expression "(uVar11 - 1)" ( (binary_expression "uVar11 - 1" identifier - number_literal) )) + (binary_expression "uVar6 * 8" identifier * number_literal)) )) / (parenthesized_expression "(uVar6 * 8)" ( (binary_expression "uVar6 * 8" identifier * number_literal) )))) ;) (expression_statement "__size_00 = uVar6 * uVar10;" (assignment_expression "__size_00 = uVar6 * uVar10" identifier = (binary_expression "uVar6 * uVar10" identifier * identifier)) ;) (expression_statement "__ptr = malloc(__size_00);" (assignment_expression "__ptr = malloc(__size_00)" identifier = (call_expression "malloc(__size_00)" identifier (argument_list "(__size_00)" ( identifier )))) ;) (if_statement "if (__ptr != (void *)0x0) {\n        in = (uchar *)malloc(__size);\n        if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        in = (uchar *)malloc(__size);\n        if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }" { (expression_statement "in = (uchar *)malloc(__size);" (assignment_expression "in = (uchar *)malloc(__size)" identifier = (cast_expression "(uchar *)malloc(__size)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(__size)" identifier (argument_list "(__size)" ( identifier ))))) ;) (if_statement "if (in != (uchar *)0x0) {\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }" if (parenthesized_expression "(in != (uchar *)0x0)" ( (binary_expression "in != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);\n          if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }\n          free(in);\n          free(__ptr);\n          if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }" { (expression_statement "iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);" (assignment_expression "iVar8 = ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0)" identifier = (call_expression "ltc_init_multi(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0)" identifier (argument_list "(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0)" ( (pointer_expression "&t2L1" & identifier) , (pointer_expression "&t2N1" & identifier) , (pointer_expression "&t2q" & identifier) , (pointer_expression "&t2seedlen" & identifier) , (pointer_expression "&U" & identifier) , (pointer_expression "&W" & identifier) , (pointer_expression "&X" & identifier) , (pointer_expression "&c" & identifier) , (pointer_expression "&h" & identifier) , (pointer_expression "&e" & identifier) , (pointer_expression "&seedinc" & identifier) , number_literal )))) ;) (if_statement "if (iVar8 == 0) {\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);\n            if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);\n          }" { (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2L1,(int)uVar11 + -1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" identifier + number_literal) ))))) )) (argument_list "(t2L1,(int)uVar11 + -1)" ( identifier , (binary_expression "(int)uVar11 + -1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)) {\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }" if (parenthesized_expression "(((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0))" ( (binary_expression "((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)" (parenthesized_expression "((iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                ))" ( (binary_expression "(iVar8 == 0) &&\n                (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )" (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0\n                )" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1), iVar8 == 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2N1,(int)uVar1 + -1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" identifier + number_literal) ))))) )) (argument_list "(t2N1,(int)uVar1 + -1)" ( identifier , (binary_expression "(int)uVar1 + -1" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "iVar8 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8),\n                      puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(t2seedlen,group_size * 8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" identifier + number_literal) ))))) )) (argument_list "(t2seedlen,group_size * 8)" ( identifier , (binary_expression "group_size * 8" identifier * number_literal) )))) , (comma_expression "puVar7 = PTR_prng_descriptor_001ddf90, iVar8 == 0" (assignment_expression "puVar7 = PTR_prng_descriptor_001ddf90" identifier = identifier) , (binary_expression "iVar8 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n              uVar10 = uVar10 - 1;\n              while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }\n            }" { (expression_statement "uVar10 = uVar10 - 1;" (assignment_expression "uVar10 = uVar10 - 1" identifier = (binary_expression "uVar10 - 1" identifier - number_literal)) ;) (while_statement "while( true ) {\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);\n                iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);\n                if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;\n                local_150 = 0;\n                do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));\n              }" { (do_statement "do {\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                } while (res != 1);" do (compound_statement "{\n                  sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);\n                  if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }\n                  i = uVar6;\n                  iVar8 = hash_memory(local_1cc,in,__size,digest,&i);\n                  if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);\n                  if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);\n                  if (iVar8 != 0) goto LAB_0017a050;\n                }" { (expression_statement "sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng);" (assignment_expression "sVar12 = (**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng)" identifier = (call_expression "(**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))(in,__size,prng)" (parenthesized_expression "(**(code **)(puVar7 + (long)wprng * 0x50 + 0x28))" ( (pointer_expression "**(code **)(puVar7 + (long)wprng * 0x50 + 0x28)" * (pointer_expression "*(code **)(puVar7 + (long)wprng * 0x50 + 0x28)" * (cast_expression "(code **)(puVar7 + (long)wprng * 0x50 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar7 + (long)wprng * 0x50 + 0x28)" ( (binary_expression "puVar7 + (long)wprng * 0x50 + 0x28" (binary_expression "puVar7 + (long)wprng * 0x50" identifier + (binary_expression "(long)wprng * 0x50" (cast_expression "(long)wprng" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) )) (argument_list "(in,__size,prng)" ( identifier , identifier , identifier )))) ;) (if_statement "if (__size != sVar12) {\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }" if (parenthesized_expression "(__size != sVar12)" ( (binary_expression "__size != sVar12" identifier != identifier) )) (compound_statement "{\n                    iVar8 = 9;\n                    goto LAB_0017a050;\n                  }" { (expression_statement "iVar8 = 9;" (assignment_expression "iVar8 = 9" identifier = number_literal) ;) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;) })) (expression_statement "i = uVar6;" (assignment_expression "i = uVar6" identifier = identifier) ;) (expression_statement "iVar8 = hash_memory(local_1cc,in,__size,digest,&i);" (assignment_expression "iVar8 = hash_memory(local_1cc,in,__size,digest,&i)" identifier = (call_expression "hash_memory(local_1cc,in,__size,digest,&i)" identifier (argument_list "(local_1cc,in,__size,digest,&i)" ( identifier , identifier , identifier , identifier , (pointer_expression "&i" & identifier) )))) ;) (if_statement "if (((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))) goto LAB_0017a050;" if (parenthesized_expression "(((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0))))" ( (binary_expression "((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )) || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))" (parenthesized_expression "((iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      ))" ( (binary_expression "(iVar8 != 0) ||\n                      (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0\n                      )" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6), iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(U,digest,uVar6)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(U,digest,uVar6)" ( identifier , identifier , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)))" ( (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0))" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U),\n                             iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(U,t2N1,0,U)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(U,t2N1,0,U)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar8 != 0 ||\n                             (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)" (binary_expression "iVar8 != 0" identifier != number_literal) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4),\n                             iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(t2N1,U,pvVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" identifier + number_literal) ))))) )) (argument_list "(t2N1,U,pvVar4)" ( identifier , identifier , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) )))) )) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(pvVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x50))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x50)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x50)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x50)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x50" identifier + number_literal) ))))) )) (argument_list "(pvVar4)" ( identifier )))) ;) (if_statement "if ((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }" if (parenthesized_expression "((iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0))" ( (binary_expression "(iVar8 < 1) ||\n                     (uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)" (parenthesized_expression "(iVar8 < 1)" ( (binary_expression "iVar8 < 1" identifier < number_literal) )) || (parenthesized_expression "(uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0)" ( (comma_expression "uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0),\n                     (uVar11 & 1) == 0" (assignment_expression "uVar11 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(pvVar4,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x48))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x48)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x48)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x48)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x48" identifier + number_literal) ))))) )) (argument_list "(pvVar4,0)" ( identifier , number_literal )))) , (binary_expression "(uVar11 & 1) == 0" (parenthesized_expression "(uVar11 & 1)" ( (binary_expression "uVar11 & 1" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);\n                  }" { (expression_statement "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4);" (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(pvVar4,1,pvVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(pvVar4,1,pvVar4)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar4,local_1c8,&res)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x148)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x148" identifier + number_literal) ))))) )) (argument_list "(pvVar4,local_1c8,&res)" ( identifier , identifier , (pointer_expression "&res" & identifier) )))) ;) (if_statement "if (iVar8 != 0) goto LAB_0017a050;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) }) while (parenthesized_expression "(res != 1)" ( (binary_expression "res != 1" identifier != number_literal) )) ;) (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(seedinc,in,__size)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(seedinc,in,__size)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )) break;" if (parenthesized_expression "((iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   ))" ( (binary_expression "(iVar8 != 0) ||\n                   (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0\n                   )" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q), iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(pvVar4,pvVar4,t2q)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" identifier + number_literal) ))))) )) (argument_list "(pvVar4,pvVar4,t2q)" ( identifier , identifier , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_150 = 0;" (assignment_expression "local_150 = 0" identifier = number_literal) ;) (do_statement "do {\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)modulus_size << 5));" do (compound_statement "{\n                  uVar11 = 0;\n                  out = (uchar *)(uVar6 * uVar10 + (long)__ptr);\n                  do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);\n                  if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;\n                  iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);\n                  if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                }" { (expression_statement "uVar11 = 0;" (assignment_expression "uVar11 = 0" identifier = number_literal) ;) (expression_statement "out = (uchar *)(uVar6 * uVar10 + (long)__ptr);" (assignment_expression "out = (uchar *)(uVar6 * uVar10 + (long)__ptr)" identifier = (cast_expression "(uchar *)(uVar6 * uVar10 + (long)__ptr)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar6 * uVar10 + (long)__ptr)" ( (binary_expression "uVar6 * uVar10 + (long)__ptr" (binary_expression "uVar6 * uVar10" identifier * identifier) + (cast_expression "(long)__ptr" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (do_statement "do {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  } while (uVar11 <= uVar10);" do (compound_statement "{\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);\n                    if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;\n                    i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);\n                    if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(in,__size);\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));\n                    if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;\n                    uVar11 = uVar11 + 1;\n                    out = out + -uVar6;\n                  }" { (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(seedinc,1,seedinc)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(seedinc,1,seedinc)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))\n                    goto LAB_0017a050;" if (parenthesized_expression "((iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0))" ( (binary_expression "(iVar8 != 0) ||\n                       (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc), iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (seedinc,t2seedlen,0,seedinc)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(seedinc,t2seedlen,0,seedinc)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc);" (assignment_expression "i = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(seedinc)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x90))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x90)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x90)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x90)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x90" identifier + number_literal) ))))) )) (argument_list "(seedinc)" ( identifier )))) ;) (if_statement "if (__size < i) {\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }" if (parenthesized_expression "(__size < i)" ( (binary_expression "__size < i" identifier < identifier) )) (compound_statement "{\n                      iVar8 = 0x10;\n                      goto LAB_0017a050;\n                    }" { (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;) })) (expression_statement "zeromem(in,__size);" (call_expression "zeromem(in,__size)" identifier (argument_list "(in,__size)" ( identifier , identifier ))) ;) (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i));" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i))" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x98))(seedinc,in + (__size - i))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x98))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x98)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x98)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x98)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x98" identifier + number_literal) ))))) )) (argument_list "(seedinc,in + (__size - i))" ( identifier , (binary_expression "in + (__size - i)" identifier + (parenthesized_expression "(__size - i)" ( (binary_expression "__size - i" identifier - identifier) ))) )))) ;) (if_statement "if ((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))\n                    goto LAB_0017a050;" if (parenthesized_expression "((iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0))" ( (binary_expression "(iVar8 != 0) ||\n                       (i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "(i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0)" ( (comma_expression "i = uVar6, iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0" (assignment_expression "i = uVar6" identifier = identifier) , (comma_expression "iVar8 = hash_memory(local_1cc,in,__size,out,&i), iVar8 != 0" (assignment_expression "iVar8 = hash_memory(local_1cc,in,__size,out,&i)" identifier = (call_expression "hash_memory(local_1cc,in,__size,out,&i)" identifier (argument_list "(local_1cc,in,__size,out,&i)" ( identifier , identifier , identifier , identifier , (pointer_expression "&i" & identifier) )))) , (binary_expression "iVar8 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "uVar11 = uVar11 + 1;" (assignment_expression "uVar11 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "out = out + -uVar6;" (assignment_expression "out = out + -uVar6" identifier = (binary_expression "out + -uVar6" identifier + (unary_expression "-uVar6" - identifier))) ;) }) while (parenthesized_expression "(uVar11 <= uVar10)" ( (binary_expression "uVar11 <= uVar10" identifier <= identifier) )) ;) (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(W,__ptr,__size_00)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(W,__ptr,__size_00)" ( identifier , identifier , identifier )))) ;) (if_statement "if (((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )) goto LAB_0017a050;" if (parenthesized_expression "(((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     ))" ( (binary_expression "((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))) ||\n                     (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )" (parenthesized_expression "((((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0))))" ( (binary_expression "(((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))\n                      || ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))" (parenthesized_expression "(((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0))" ( (binary_expression "((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))\n                       || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0)" (parenthesized_expression "((iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0))" ( (binary_expression "(iVar8 != 0) ||\n                        (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W), iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(W,t2L1,0,W)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(W,t2L1,0,W)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X), iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(W,t2L1,X)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" identifier + number_literal) ))))) )) (argument_list "(W,t2L1,X)" ( identifier , identifier , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)))" ( (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0))" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c), iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(X,t2q,0,c)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(X,t2q,0,c)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar8 != 0\n                          || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)" (binary_expression "iVar8 != 0" identifier != number_literal) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5),\n                             iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(c,1,pvVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(c,1,pvVar5)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) )))) )) ))) )) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0\n                     )" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5), iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(X,pvVar5,pvVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xb8" identifier + number_literal) ))))) )) (argument_list "(X,pvVar5,pvVar5)" ( identifier , identifier , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(pvVar5,t2L1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(pvVar5,t2L1)" ( identifier , identifier )))) ;) (if_statement "if (iVar8 != -1) {\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }" if (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) (compound_statement "{\n                    iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);\n                    if (iVar8 != 0) goto LAB_0017a050;\n                    if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }\n                  }" { (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(pvVar5,local_1c4,&res)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x148)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x148" identifier + number_literal) ))))) )) (argument_list "(pvVar5,local_1c4,&res)" ( identifier , identifier , (pointer_expression "&res" & identifier) )))) ;) (if_statement "if (iVar8 != 0) goto LAB_0017a050;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (if_statement "if (res == 1) {\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }" if (parenthesized_expression "(res == 1)" ( (binary_expression "res == 1" identifier == number_literal) )) (compound_statement "{\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);\n                      if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;\n                      iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);\n                      i = (ulong)iVar8;\n                      goto LAB_0017a52f;\n                    }" { (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(pvVar5,1,e)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(pvVar5,1,e)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)) goto LAB_0017a050;" if (parenthesized_expression "((iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0))" ( (binary_expression "(iVar8 != 0) ||\n                         (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)" (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c),\n                         iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))(e,pvVar4,e,c)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(e,pvVar4,e,c)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(pvVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x68))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x68)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x68)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x68)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x68" identifier + number_literal) ))))) )) (argument_list "(pvVar5)" ( identifier )))) ;) (expression_statement "i = (ulong)iVar8;" (assignment_expression "i = (ulong)iVar8" identifier = (cast_expression "(ulong)iVar8" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0017a52f;" goto statement_identifier ;) })) })) (expression_statement "local_150 = local_150 + 1;" (assignment_expression "local_150 = local_150 + 1" identifier = (binary_expression "local_150 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_150 < (ulong)((long)modulus_size << 5))" ( (binary_expression "local_150 < (ulong)((long)modulus_size << 5)" identifier < (call_expression "(ulong)((long)modulus_size << 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)modulus_size << 5)" ( (binary_expression "(long)modulus_size << 5" (cast_expression "(long)modulus_size" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal) )))) )) ;) })) })) (labeled_statement "LAB_0017a050:\n            ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);" statement_identifier : (expression_statement "ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);" (call_expression "ltc_deinit_multi(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0)" identifier (argument_list "(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , number_literal ))) ;)) })) (expression_statement "free(in);" (call_expression "free(in)" identifier (argument_list "(in)" ( identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (iVar8 == 0) {\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n            key->qord = group_size;\n            goto LAB_00179c52;\n          }" { (expression_statement "key->qord = group_size;" (assignment_expression "key->qord = group_size" (field_expression "key->qord" identifier -> field_identifier) = identifier) ;) (goto_statement "goto LAB_00179c52;" goto statement_identifier ;) })) (goto_statement "goto LAB_0017a0de;" goto statement_identifier ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (expression_statement "iVar8 = 0xd;" (assignment_expression "iVar8 = 0xd" identifier = number_literal) ;) })) }) (else_clause "else {\nLAB_0017a0d8:\n    iVar8 = 0x10;\n  }" else (compound_statement "{\nLAB_0017a0d8:\n    iVar8 = 0x10;\n  }" { (labeled_statement "LAB_0017a0d8:\n    iVar8 = 0x10;" statement_identifier : (expression_statement "iVar8 = 0x10;" (assignment_expression "iVar8 = 0x10" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0017a0de:\n  dsa_free(key);" statement_identifier : (expression_statement "dsa_free(key);" (call_expression "dsa_free(key)" identifier (argument_list "(key)" ( identifier ))) ;)) (labeled_statement "LAB_00179c52:\n  if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (lVar2 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" if (parenthesized_expression "(lVar2 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "lVar2 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    __stack_chk_fail();\n  }" { comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar8;" return identifier ;) (labeled_statement "LAB_0017a52f:\n  iVar8 = rand_bn_bits(h,(int)i,prng,wprng);" statement_identifier : (expression_statement "iVar8 = rand_bn_bits(h,(int)i,prng,wprng);" (assignment_expression "iVar8 = rand_bn_bits(h,(int)i,prng,wprng)" identifier = (call_expression "rand_bn_bits(h,(int)i,prng,wprng)" identifier (argument_list "(h,(int)i,prng,wprng)" ( identifier , (cast_expression "(int)i" ( (type_descriptor "int" primitive_type) ) identifier) , identifier , identifier )))) ;)) (if_statement "if (iVar8 != 0) goto LAB_0017a050;" if (parenthesized_expression "(iVar8 != 0)" ( (binary_expression "iVar8 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(h,pvVar5);" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(h,pvVar5)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(h,pvVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(h,pvVar5)" ( identifier , identifier )))) ;) (if_statement "if (((iVar8 == -1) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1)) &&\n     ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0))))))\n  goto LAB_0017a050;" if (parenthesized_expression "(((iVar8 == -1) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1)) &&\n     ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0))))))" ( (binary_expression "((iVar8 == -1) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1)) &&\n     ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0)))))" (parenthesized_expression "((iVar8 == -1) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1))" ( (binary_expression "(iVar8 == -1) && (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1)" (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) && (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2), iVar8 == 1" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(h,2)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(h,2)" ( identifier , number_literal )))) , (binary_expression "iVar8 == 1" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0)))))" ( (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0))))" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h), iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0)))" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(h,1,h)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(h,1,h)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar8 != 0 ||\n      ((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0)))" (binary_expression "iVar8 != 0" identifier != number_literal) || (parenthesized_expression "((iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0)))" ( (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0))" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3), iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0)" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(h,e,pvVar5,pvVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" identifier + number_literal) ))))) )) (argument_list "(h,e,pvVar5,pvVar3)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar8 != 0 ||\n       (iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0)" (binary_expression "iVar8 != 0" identifier != number_literal) || (parenthesized_expression "(iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0)" ( (comma_expression "iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1), iVar9 != 0" (assignment_expression "iVar9 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(pvVar3,1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(pvVar3,1)" ( identifier , number_literal )))) , (binary_expression "iVar9 != 0" identifier != number_literal)) )))) )) )))) )) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (goto_statement "goto LAB_0017a52f;" goto statement_identifier ;) })))
(translation_unit "int dsa_generate_pqg(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)\n\n{\n  ulong uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  ulong uVar9;\n  void *__ptr;\n  void *__ptr_00;\n  ulong uVar10;\n  size_t sVar11;\n  size_t __size;\n  size_t __size_00;\n  void *pvVar12;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int local_12c;\n  ulong local_128;\n  undefined8 local_120;\n  undefined8 local_118;\n  undefined8 local_110;\n  undefined8 local_108;\n  undefined8 local_100;\n  undefined8 local_f8;\n  undefined8 local_f0;\n  undefined8 local_e8;\n  undefined8 local_e0;\n  undefined8 local_d8;\n  undefined8 local_d0;\n  undefined1 local_c8 [136];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    \n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);\n  if (iVar7 != 0) goto LAB_00179c52;\n  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(param_5);\nLAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\nLAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);\n  if (iVar7 != 0) goto LAB_0017a050;\n  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);\n  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;\n  goto LAB_0017a52f;\n}\n\n" (function_definition "int dsa_generate_pqg(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)\n\n{\n  ulong uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  ulong uVar9;\n  void *__ptr;\n  void *__ptr_00;\n  ulong uVar10;\n  size_t sVar11;\n  size_t __size;\n  size_t __size_00;\n  void *pvVar12;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int local_12c;\n  ulong local_128;\n  undefined8 local_120;\n  undefined8 local_118;\n  undefined8 local_110;\n  undefined8 local_108;\n  undefined8 local_100;\n  undefined8 local_f8;\n  undefined8 local_f0;\n  undefined8 local_e8;\n  undefined8 local_e0;\n  undefined8 local_d8;\n  undefined8 local_d0;\n  undefined1 local_c8 [136];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    \n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);\n  if (iVar7 != 0) goto LAB_00179c52;\n  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(param_5);\nLAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\nLAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);\n  if (iVar7 != 0) goto LAB_0017a050;\n  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);\n  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;\n  goto LAB_0017a52f;\n}" primitive_type (function_declarator "dsa_generate_pqg(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)" identifier (parameter_list "(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)" ( (parameter_declaration "undefined8 param_1" type_identifier identifier) , (parameter_declaration "int param_2" primitive_type identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "long param_5" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  ulong uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  ulong uVar9;\n  void *__ptr;\n  void *__ptr_00;\n  ulong uVar10;\n  size_t sVar11;\n  size_t __size;\n  size_t __size_00;\n  void *pvVar12;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int local_12c;\n  ulong local_128;\n  undefined8 local_120;\n  undefined8 local_118;\n  undefined8 local_110;\n  undefined8 local_108;\n  undefined8 local_100;\n  undefined8 local_f8;\n  undefined8 local_f0;\n  undefined8 local_e8;\n  undefined8 local_e0;\n  undefined8 local_d8;\n  undefined8 local_d0;\n  undefined1 local_c8 [136];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    \n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);\n  if (iVar7 != 0) goto LAB_00179c52;\n  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(param_5);\nLAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\nLAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);\n  if (iVar7 != 0) goto LAB_0017a050;\n  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);\n  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;\n  goto LAB_0017a52f;\n}" { (declaration "ulong uVar1;" type_identifier identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "undefined8 uVar3;" type_identifier identifier ;) (declaration "undefined8 uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "undefined *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "void *__ptr_00;" primitive_type (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "size_t sVar11;" primitive_type identifier ;) (declaration "size_t __size;" primitive_type identifier ;) (declaration "size_t __size_00;" primitive_type identifier ;) (declaration "void *pvVar12;" primitive_type (pointer_declarator "*pvVar12" * identifier) ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_1cc;" primitive_type identifier ;) (declaration "undefined4 local_1c8;" type_identifier identifier ;) (declaration "int local_1c4;" primitive_type identifier ;) (declaration "ulong local_150;" type_identifier identifier ;) (declaration "int local_12c;" primitive_type identifier ;) (declaration "ulong local_128;" type_identifier identifier ;) (declaration "undefined8 local_120;" type_identifier identifier ;) (declaration "undefined8 local_118;" type_identifier identifier ;) (declaration "undefined8 local_110;" type_identifier identifier ;) (declaration "undefined8 local_108;" type_identifier identifier ;) (declaration "undefined8 local_100;" type_identifier identifier ;) (declaration "undefined8 local_f8;" type_identifier identifier ;) (declaration "undefined8 local_f0;" type_identifier identifier ;) (declaration "undefined8 local_e8;" type_identifier identifier ;) (declaration "undefined8 local_e0;" type_identifier identifier ;) (declaration "undefined8 local_d8;" type_identifier identifier ;) (declaration "undefined8 local_d0;" type_identifier identifier ;) (declaration "undefined1 local_c8 [136];" type_identifier (array_declarator "local_c8 [136]" identifier [ number_literal ]) ;) (declaration "long local_40;" (sized_type_specifier "long" long) identifier ;) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" identifier = (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) ;) (if_statement "if (param_5 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }" if (parenthesized_expression "(param_5 == 0)" ( (binary_expression "param_5 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }" { (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_generate_pqg.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    \n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }" if (parenthesized_expression "(*(long *)PTR_ltc_mp_001ddec0 == 0)" ( (binary_expression "*(long *)PTR_ltc_mp_001ddec0 == 0" (pointer_expression "*(long *)PTR_ltc_mp_001ddec0" * (cast_expression "(long *)PTR_ltc_mp_001ddec0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) identifier)) == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }" { (expression_statement "crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);" (call_expression "crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb)" identifier (argument_list "("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb)" ( (string_literal ""ltc_mp.name != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_generate_pqg.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);" (assignment_expression "iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0)" identifier = (call_expression "ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0)" identifier (argument_list "(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0)" ( (binary_expression "param_5 + 0x18" identifier + number_literal) , (binary_expression "param_5 + 8" identifier + number_literal) , (binary_expression "param_5 + 0x10" identifier + number_literal) , (binary_expression "param_5 + 0x20" identifier + number_literal) , (binary_expression "param_5 + 0x28" identifier + number_literal) , number_literal )))) ;) (if_statement "if (iVar7 != 0) goto LAB_00179c52;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00179c52;" goto statement_identifier ;)) (if_statement "if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }" if (parenthesized_expression "((param_3 - 1U < 0x1ff) && (param_3 < param_4))" ( (binary_expression "(param_3 - 1U < 0x1ff) && (param_3 < param_4)" (parenthesized_expression "(param_3 - 1U < 0x1ff)" ( (binary_expression "param_3 - 1U < 0x1ff" (binary_expression "param_3 - 1U" identifier - number_literal) < number_literal) )) && (parenthesized_expression "(param_3 < param_4)" ( (binary_expression "param_3 < param_4" identifier < identifier) ))) )) (compound_statement "{\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }" { (expression_statement "__size = (size_t)param_3;" (assignment_expression "__size = (size_t)param_3" identifier = (cast_expression "(size_t)param_3" ( (type_descriptor "size_t" primitive_type) ) identifier)) ;) (expression_statement "local_1c4 = 0x28;" (assignment_expression "local_1c4 = 0x28" identifier = number_literal) ;) (expression_statement "uVar10 = (long)param_4 * 8;" (assignment_expression "uVar10 = (long)param_4 * 8" identifier = (binary_expression "(long)param_4 * 8" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ;) (expression_statement "uVar1 = __size * 8;" (assignment_expression "uVar1 = __size * 8" identifier = (binary_expression "__size * 8" identifier * number_literal)) ;) (if_statement "if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }" if (parenthesized_expression "(0x400 < uVar10)" ( (binary_expression "0x400 < uVar10" number_literal < identifier) )) (compound_statement "{\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }" { (expression_statement "local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;" (assignment_expression "local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40" identifier = (binary_expression "(-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40" (parenthesized_expression "(-(uint)(uVar10 < 0x801) & 0xfffffff8)" ( (binary_expression "-(uint)(uVar10 < 0x801) & 0xfffffff8" (unary_expression "-(uint)(uVar10 < 0x801)" - (call_expression "(uint)(uVar10 < 0x801)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(uVar10 < 0x801)" ( (binary_expression "uVar10 < 0x801" identifier < number_literal) )))) & number_literal) )) + number_literal)) ;) })) (expression_statement "uVar2 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar2 = *(undefined8 *)(param_5 + 8)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 8)" * (cast_expression "(undefined8 *)(param_5 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 8)" ( (binary_expression "param_5 + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = *(undefined8 *)(param_5 + 0x10);" (assignment_expression "uVar3 = *(undefined8 *)(param_5 + 0x10)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 0x10)" * (cast_expression "(undefined8 *)(param_5 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x10)" ( (binary_expression "param_5 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar4 = *(undefined8 *)(param_5 + 0x18);" (assignment_expression "uVar4 = *(undefined8 *)(param_5 + 0x18)" identifier = (pointer_expression "*(undefined8 *)(param_5 + 0x18)" * (cast_expression "(undefined8 *)(param_5 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 0x18)" ( (binary_expression "param_5 + 0x18" identifier + number_literal) ))))) ;) (if_statement "if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" if (parenthesized_expression "(uVar1 < 0xa1)" ( (binary_expression "uVar1 < 0xa1" identifier < number_literal) )) (compound_statement "{\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }" { (expression_statement "local_1c8 = 0x28;" (assignment_expression "local_1c8 = 0x28" identifier = number_literal) ;) (labeled_statement "LAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);" statement_identifier : (expression_statement "local_1cc = register_hash(PTR_sha256_desc_001ddf70);" (assignment_expression "local_1cc = register_hash(PTR_sha256_desc_001ddf70)" identifier = (call_expression "register_hash(PTR_sha256_desc_001ddf70)" identifier (argument_list "(PTR_sha256_desc_001ddf70)" ( identifier )))) ;)) }) (else_clause "else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" else (compound_statement "{\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" { (if_statement "if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }" if (parenthesized_expression "(uVar1 < 0xe1)" ( (binary_expression "uVar1 < 0xe1" identifier < number_literal) )) (compound_statement "{\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }" { (expression_statement "local_1c8 = 0x38;" (assignment_expression "local_1c8 = 0x38" identifier = number_literal) ;) (goto_statement "goto LAB_00179d0a;" goto statement_identifier ;) })) (if_statement "if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }" if (parenthesized_expression "(uVar1 < 0x101)" ( (binary_expression "uVar1 < 0x101" identifier < number_literal) )) (compound_statement "{\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }" { (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" identifier = number_literal) ;) (goto_statement "goto LAB_00179d0a;" goto statement_identifier ;) })) (if_statement "if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" if (parenthesized_expression "(uVar1 < 0x181)" ( (binary_expression "uVar1 < 0x181" identifier < number_literal) )) (compound_statement "{\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }" { (expression_statement "local_1cc = register_hash(PTR_sha384_desc_001ddfa8);" (assignment_expression "local_1cc = register_hash(PTR_sha384_desc_001ddfa8)" identifier = (call_expression "register_hash(PTR_sha384_desc_001ddfa8)" identifier (argument_list "(PTR_sha384_desc_001ddfa8)" ( identifier )))) ;) (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" identifier = number_literal) ;) }) (else_clause "else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" else (compound_statement "{\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" { (if_statement "if (0x200 < uVar1) goto LAB_0017a0d8;" if (parenthesized_expression "(0x200 < uVar1)" ( (binary_expression "0x200 < uVar1" number_literal < identifier) )) (goto_statement "goto LAB_0017a0d8;" goto statement_identifier ;)) (expression_statement "local_1cc = register_hash(PTR_sha512_desc_001ddfa0);" (assignment_expression "local_1cc = register_hash(PTR_sha512_desc_001ddfa0)" identifier = (call_expression "register_hash(PTR_sha512_desc_001ddfa0)" identifier (argument_list "(PTR_sha512_desc_001ddfa0)" ( identifier )))) ;) (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" identifier = number_literal) ;) }))) }))) (expression_statement "iVar7 = hash_is_valid(local_1cc);" (assignment_expression "iVar7 = hash_is_valid(local_1cc)" identifier = (call_expression "hash_is_valid(local_1cc)" identifier (argument_list "(local_1cc)" ( identifier )))) ;) (if_statement "if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }" { (expression_statement "uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);" (assignment_expression "uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" identifier = (pointer_expression "*(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" * (cast_expression "(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" ( (binary_expression "PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0" identifier + (binary_expression "(long)local_1cc * 0xd0" (cast_expression "(long)local_1cc" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) ;) (expression_statement "uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);" (assignment_expression "uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8)" identifier = (binary_expression "((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8)" (parenthesized_expression "((uVar10 - 1) + uVar5 * 8)" ( (binary_expression "(uVar10 - 1) + uVar5 * 8" (parenthesized_expression "(uVar10 - 1)" ( (binary_expression "uVar10 - 1" identifier - number_literal) )) + (binary_expression "uVar5 * 8" identifier * number_literal)) )) / (parenthesized_expression "(uVar5 * 8)" ( (binary_expression "uVar5 * 8" identifier * number_literal) )))) ;) (expression_statement "__size_00 = uVar5 * uVar9;" (assignment_expression "__size_00 = uVar5 * uVar9" identifier = (binary_expression "uVar5 * uVar9" identifier * identifier)) ;) (expression_statement "__ptr = malloc(__size_00);" (assignment_expression "__ptr = malloc(__size_00)" identifier = (call_expression "malloc(__size_00)" identifier (argument_list "(__size_00)" ( identifier )))) ;) (if_statement "if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }" if (parenthesized_expression "(__ptr != (void *)0x0)" ( (binary_expression "__ptr != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }" { (expression_statement "__ptr_00 = malloc(__size);" (assignment_expression "__ptr_00 = malloc(__size)" identifier = (call_expression "malloc(__size)" identifier (argument_list "(__size)" ( identifier )))) ;) (if_statement "if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }" if (parenthesized_expression "(__ptr_00 != (void *)0x0)" ( (binary_expression "__ptr_00 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }" { (expression_statement "iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);" (assignment_expression "iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0)" identifier = (call_expression "ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0)" identifier (argument_list "(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0)" ( (pointer_expression "&local_120" & identifier) , (pointer_expression "&local_118" & identifier) , (pointer_expression "&local_110" & identifier) , (pointer_expression "&local_108" & identifier) , (pointer_expression "&local_100" & identifier) , (pointer_expression "&local_f8" & identifier) , (pointer_expression "&local_f0" & identifier) , (pointer_expression "&local_e8" & identifier) , (pointer_expression "&local_e0" & identifier) , (pointer_expression "&local_d8" & identifier) , (pointer_expression "&local_d0" & identifier) , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }" { (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" identifier + number_literal) ))))) )) (argument_list "(local_120,(int)uVar10 + -1)" ( identifier , (binary_expression "(int)uVar10 + -1" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (if_statement "if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }" if (parenthesized_expression "(((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0))" ( (binary_expression "((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)" (parenthesized_expression "((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0))" ( (binary_expression "(iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" identifier + number_literal) ))))) )) (argument_list "(local_118,(int)uVar1 + -1)" ( identifier , (binary_expression "(int)uVar1 + -1" (cast_expression "(int)uVar1" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" identifier + number_literal) ))))) )) (argument_list "(local_108,param_3 * 8)" ( identifier , (binary_expression "param_3 * 8" identifier * number_literal) )))) , (comma_expression "puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0" (assignment_expression "puVar6 = PTR_prng_descriptor_001ddf90" identifier = identifier) , (binary_expression "iVar7 == 0" identifier == number_literal))) ))) )) (compound_statement "{\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }" { (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" identifier = (binary_expression "uVar9 - 1" identifier - number_literal)) ;) (while_statement "while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }" { (do_statement "do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);" do (compound_statement "{\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                }" { (expression_statement "sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);" (assignment_expression "sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1)" identifier = (call_expression "(**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1)" (parenthesized_expression "(**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))" ( (pointer_expression "**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28)" * (pointer_expression "*(code **)(puVar6 + (long)param_2 * 0x50 + 0x28)" * (cast_expression "(code **)(puVar6 + (long)param_2 * 0x50 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar6 + (long)param_2 * 0x50 + 0x28)" ( (binary_expression "puVar6 + (long)param_2 * 0x50 + 0x28" (binary_expression "puVar6 + (long)param_2 * 0x50" identifier + (binary_expression "(long)param_2 * 0x50" (cast_expression "(long)param_2" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) ))))) )) (argument_list "(__ptr_00,__size,param_1)" ( identifier , identifier , identifier )))) ;) (if_statement "if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }" if (parenthesized_expression "(__size != sVar11)" ( (binary_expression "__size != sVar11" identifier != identifier) )) (compound_statement "{\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }" { (expression_statement "iVar7 = 9;" (assignment_expression "iVar7 = 9" identifier = number_literal) ;) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;) })) (expression_statement "local_128 = uVar5;" (assignment_expression "local_128 = uVar5" identifier = identifier) ;) (expression_statement "iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);" (assignment_expression "iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128)" identifier = (call_expression "hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128)" identifier (argument_list "(local_1cc,__ptr_00,__size,local_c8,&local_128)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_128" & identifier) )))) ;) (if_statement "if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;" if (parenthesized_expression "(((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0))))" ( (binary_expression "((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))" (parenthesized_expression "((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(local_100,local_c8,uVar5)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))" ( (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0))" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_100,local_118,0,local_100)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" identifier + number_literal) ))))) )) (argument_list "(local_118,local_100,uVar3)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) )))) )) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x50))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x50)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x50)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x50)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x50)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x50" identifier + number_literal) ))))) )) (argument_list "(uVar3)" ( identifier )))) ;) (if_statement "if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }" if (parenthesized_expression "((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     ))" ( (binary_expression "(iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )" (parenthesized_expression "(iVar7 < 1)" ( (binary_expression "iVar7 < 1" identifier < number_literal) )) || (parenthesized_expression "(uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )" ( (comma_expression "uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0" (assignment_expression "uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x48))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x48)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x48)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x48)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x48)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x48" identifier + number_literal) ))))) )) (argument_list "(uVar3,0)" ( identifier , number_literal )))) , (binary_expression "(uVar10 & 1) == 0" (parenthesized_expression "(uVar10 & 1)" ( (binary_expression "uVar10 & 1" identifier & number_literal) )) == number_literal)) ))) )) (compound_statement "{\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }" { (expression_statement "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);" (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(uVar3,1,uVar3)" ( identifier , number_literal , identifier ))) ;) })) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x148)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x148" identifier + number_literal) ))))) )) (argument_list "(uVar3,local_1c8,&local_12c)" ( identifier , identifier , (pointer_expression "&local_12c" & identifier) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0017a050;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) }) while (parenthesized_expression "(local_12c != 1)" ( (binary_expression "local_12c != 1" identifier != number_literal) )) ;) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(local_d0,__ptr_00,__size)" ( identifier , identifier , identifier )))) ;) (if_statement "if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;" if (parenthesized_expression "((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" identifier + number_literal) ))))) )) (argument_list "(uVar3,uVar3,local_110)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (break_statement "break;" break ;)) (expression_statement "local_150 = 0;" (assignment_expression "local_150 = 0" identifier = number_literal) ;) (do_statement "do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));" do (compound_statement "{\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                }" { (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);" (assignment_expression "pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr)" identifier = (cast_expression "(void *)(uVar5 * uVar9 + (long)__ptr)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar5 * uVar9 + (long)__ptr)" ( (binary_expression "uVar5 * uVar9 + (long)__ptr" (binary_expression "uVar5 * uVar9" identifier * identifier) + (cast_expression "(long)__ptr" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (do_statement "do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);" do (compound_statement "{\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  }" { (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xb0" identifier + number_literal) ))))) )) (argument_list "(local_d0,1,local_d0)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;" if (parenthesized_expression "((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_d0,local_108,0,local_d0)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);" (assignment_expression "local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x90))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x90)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x90)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x90)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x90" identifier + number_literal) ))))) )) (argument_list "(local_d0)" ( identifier )))) ;) (if_statement "if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }" if (parenthesized_expression "(__size < local_128)" ( (binary_expression "__size < local_128" identifier < identifier) )) (compound_statement "{\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }" { (expression_statement "iVar7 = 0x10;" (assignment_expression "iVar7 = 0x10" identifier = number_literal) ;) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;) })) (expression_statement "zeromem(__ptr_00,__size);" (call_expression "zeromem(__ptr_00,__size)" identifier (argument_list "(__ptr_00,__size)" ( identifier , identifier ))) ;) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x98))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x98)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x98)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x98)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x98)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x98" identifier + number_literal) ))))) )) (argument_list "(local_d0,(__size - local_128) + (long)__ptr_00)" ( identifier , (binary_expression "(__size - local_128) + (long)__ptr_00" (parenthesized_expression "(__size - local_128)" ( (binary_expression "__size - local_128" identifier - identifier) )) + (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (if_statement "if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;" if (parenthesized_expression "((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       ))" ( (binary_expression "(iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )" ( (comma_expression "local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0" (assignment_expression "local_128 = uVar5" identifier = identifier) , (comma_expression "iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0" (assignment_expression "iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128)" identifier = (call_expression "hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128)" identifier (argument_list "(local_1cc,__ptr_00,__size,pvVar12,&local_128)" ( identifier , identifier , identifier , identifier , (pointer_expression "&local_128" & identifier) )))) , (binary_expression "iVar7 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" identifier = (binary_expression "uVar10 + 1" identifier + number_literal)) ;) (expression_statement "pvVar12 = (void *)((long)pvVar12 - uVar5);" (assignment_expression "pvVar12 = (void *)((long)pvVar12 - uVar5)" identifier = (cast_expression "(void *)((long)pvVar12 - uVar5)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar12 - uVar5)" ( (binary_expression "(long)pvVar12 - uVar5" (cast_expression "(long)pvVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - identifier) )))) ;) }) while (parenthesized_expression "(uVar10 <= uVar9)" ( (binary_expression "uVar10 <= uVar9" identifier <= identifier) )) ;) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" identifier + number_literal) ))))) )) (argument_list "(local_f8,__ptr,__size_00)" ( identifier , identifier , identifier )))) ;) (if_statement "if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;" if (parenthesized_expression "(((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0))" ( (binary_expression "((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)" (parenthesized_expression "((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0))))" ( (binary_expression "(((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))" (parenthesized_expression "(((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0))" ( (binary_expression "((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)" (parenthesized_expression "((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_f8,local_120,0,local_f8)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" identifier + number_literal) ))))) )) (argument_list "(local_f8,local_120,local_f0)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) || (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))" ( (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0))" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_f0,local_110,0,local_e8)" ( identifier , identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(local_e8,1,uVar4)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) )))) )) ))) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb8)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xb8" identifier + number_literal) ))))) )) (argument_list "(local_f0,uVar4,uVar4)" ( identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(uVar4,local_120)" ( identifier , identifier )))) ;) (if_statement "if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }" if (parenthesized_expression "(iVar7 != -1)" ( (binary_expression "iVar7 != -1" identifier != number_literal) )) (compound_statement "{\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }" { (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x148)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x148)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x148)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x148" identifier + number_literal) ))))) )) (argument_list "(uVar4,local_1c4,&local_12c)" ( identifier , identifier , (pointer_expression "&local_12c" & identifier) )))) ;) (if_statement "if (iVar7 != 0) goto LAB_0017a050;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (if_statement "if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }" if (parenthesized_expression "(local_12c == 1)" ( (binary_expression "local_12c == 1" identifier == number_literal) )) (compound_statement "{\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }" { (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(uVar4,1,local_d8)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;" if (parenthesized_expression "((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))" ( (binary_expression "(iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" identifier + number_literal) ))))) )) (argument_list "(local_d8,uVar3,local_d8,local_e8)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x68))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x68)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x68)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x68)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x68)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x68" identifier + number_literal) ))))) )) (argument_list "(uVar4)" ( identifier )))) ;) (expression_statement "local_128 = (ulong)iVar7;" (assignment_expression "local_128 = (ulong)iVar7" identifier = (cast_expression "(ulong)iVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto LAB_0017a52f;" goto statement_identifier ;) })) })) (expression_statement "local_150 = local_150 + 1;" (assignment_expression "local_150 = local_150 + 1" identifier = (binary_expression "local_150 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(local_150 < (ulong)((long)param_4 << 5))" ( (binary_expression "local_150 < (ulong)((long)param_4 << 5)" identifier < (call_expression "(ulong)((long)param_4 << 5)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((long)param_4 << 5)" ( (binary_expression "(long)param_4 << 5" (cast_expression "(long)param_4" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) << number_literal) )))) )) ;) })) })) (labeled_statement "LAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);" statement_identifier : (expression_statement "ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);" (call_expression "ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0)" identifier (argument_list "(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier , number_literal ))) ;)) })) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }" { (expression_statement "*(int *)(param_5 + 4) = param_3;" (assignment_expression "*(int *)(param_5 + 4) = param_3" (pointer_expression "*(int *)(param_5 + 4)" * (cast_expression "(int *)(param_5 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_5 + 4)" ( (binary_expression "param_5 + 4" identifier + number_literal) )))) = identifier) ;) (goto_statement "goto LAB_00179c52;" goto statement_identifier ;) })) (goto_statement "goto LAB_0017a0de;" goto statement_identifier ;) })) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (expression_statement "iVar7 = 0xd;" (assignment_expression "iVar7 = 0xd" identifier = number_literal) ;) })) }) (else_clause "else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }" else (compound_statement "{\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }" { (labeled_statement "LAB_0017a0d8:\n    iVar7 = 0x10;" statement_identifier : (expression_statement "iVar7 = 0x10;" (assignment_expression "iVar7 = 0x10" identifier = number_literal) ;)) }))) (labeled_statement "LAB_0017a0de:\n  dsa_free(param_5);" statement_identifier : (expression_statement "dsa_free(param_5);" (call_expression "dsa_free(param_5)" identifier (argument_list "(param_5)" ( identifier ))) ;)) (labeled_statement "LAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" statement_identifier : (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" if (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" identifier != (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" * (cast_expression "(long *)(in_FS_OFFSET + 0x28)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_FS_OFFSET + 0x28)" ( (binary_expression "in_FS_OFFSET + 0x28" identifier + number_literal) ))))) )) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" { (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) }))) (return_statement "return iVar7;" return identifier ;) (labeled_statement "LAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);" statement_identifier : (expression_statement "iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);" (assignment_expression "iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2)" identifier = (call_expression "rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2)" identifier (argument_list "(local_e0,local_128 & 0xffffffff,param_1,param_2)" ( identifier , (binary_expression "local_128 & 0xffffffff" identifier & number_literal) , identifier , identifier )))) ;)) (if_statement "if (iVar7 != 0) goto LAB_0017a050;" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" identifier + number_literal) ))))) )) (argument_list "(local_e0,uVar4)" ( identifier , identifier )))) ;) (if_statement "if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;" if (parenthesized_expression "(((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     )" ( (binary_expression "((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))" (parenthesized_expression "((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))" ( (binary_expression "(iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1)" (parenthesized_expression "(iVar7 == -1)" ( (binary_expression "iVar7 == -1" identifier == number_literal) )) && (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1)" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(local_e0,2)" ( identifier , number_literal )))) , (binary_expression "iVar7 == 1" identifier == number_literal)) ))) )) && (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))" ( (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0))))" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" identifier + number_literal) ))))) )) (argument_list "(local_e0,1,local_e0)" ( identifier , number_literal , identifier )))) , (binary_expression "iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))" ( (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0))" ( (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" identifier + number_literal) ))))) )) (argument_list "(local_e0,local_d8,uVar4,uVar2)" ( identifier , identifier , identifier , identifier )))) , (binary_expression "iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)" (binary_expression "iVar7 != 0" identifier != number_literal) || (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)" ( (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" * (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" ( (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" identifier + number_literal) ))))) )) (argument_list "(uVar2,1)" ( identifier , number_literal )))) , (binary_expression "iVar8 != 0" identifier != number_literal)) )))) )) )))) )) ))) )) (goto_statement "goto LAB_0017a050;" goto statement_identifier ;)) (goto_statement "goto LAB_0017a52f;" goto statement_identifier ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration (sized_type_specifier long) IDENT ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) IDENT)) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (string_literal " string_content ") , (string_literal " string_content ") , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) && (parenthesized_expression ( (binary_expression IDENT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression - (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT < LIT) )))) & LIT) )) + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) + (binary_expression IDENT * LIT)) )) / (parenthesized_expression ( (binary_expression IDENT * LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (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 ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (comma_expression (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 ( IDENT , (binary_expression IDENT * LIT) )))) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT == LIT))) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) + LIT) ))))) )) (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , LIT , IDENT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) )))) )) ))) )) (goto_statement goto statement_identifier ;)) (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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (comma_expression (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 ( IDENT , LIT )))) , (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ))) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT ))) ;) })) (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 ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != 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 ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT * IDENT) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (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 ( IDENT , (binary_expression (parenthesized_expression ( (binary_expression IDENT - IDENT) )) + (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , (pointer_expression & IDENT) )))) , (binary_expression IDENT != LIT))) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (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 (sized_type_specifier long)) ) IDENT) - IDENT) )))) ;) }) while (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) ;) (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 ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , LIT , IDENT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (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 ( IDENT , LIT , IDENT )))) , (binary_expression IDENT != LIT)) )))) )) ))) )) || (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (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 ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , IDENT , IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (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 ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) << LIT) )))) )) ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , LIT ))) ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) }))) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) }))) (return_statement return IDENT ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) , IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (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 ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (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 ( IDENT , LIT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (comma_expression (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 ( IDENT , LIT , IDENT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (parenthesized_expression ( (comma_expression (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 ( IDENT , IDENT , IDENT , IDENT )))) , (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (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 ( IDENT , LIT )))) , (binary_expression IDENT != LIT)) )))) )) )))) )) ))) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })))
(function_definition "int dsa_generate_pqg(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)\n\n{\n  ulong uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  ulong uVar9;\n  void *__ptr;\n  void *__ptr_00;\n  ulong uVar10;\n  size_t sVar11;\n  size_t __size;\n  size_t __size_00;\n  void *pvVar12;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int local_12c;\n  ulong local_128;\n  undefined8 local_120;\n  undefined8 local_118;\n  undefined8 local_110;\n  undefined8 local_108;\n  undefined8 local_100;\n  undefined8 local_f8;\n  undefined8 local_f0;\n  undefined8 local_e8;\n  undefined8 local_e0;\n  undefined8 local_d8;\n  undefined8 local_d0;\n  undefined1 local_c8 [136];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    \n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);\n  if (iVar7 != 0) goto LAB_00179c52;\n  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(param_5);\nLAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\nLAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);\n  if (iVar7 != 0) goto LAB_0017a050;\n  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);\n  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;\n  goto LAB_0017a52f;\n}" (primitive_type "int") (function_declarator "dsa_generate_pqg(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)" (identifier "dsa_generate_pqg") (parameter_list "(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)" (( "(") (parameter_declaration "undefined8 param_1" (type_identifier "undefined8") (identifier "param_1")) (, ",") (parameter_declaration "int param_2" (primitive_type "int") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "long param_5" (sized_type_specifier "long" (long "long")) (identifier "param_5")) () ")"))) (compound_statement "{\n  ulong uVar1;\n  undefined8 uVar2;\n  undefined8 uVar3;\n  undefined8 uVar4;\n  ulong uVar5;\n  undefined *puVar6;\n  int iVar7;\n  int iVar8;\n  ulong uVar9;\n  void *__ptr;\n  void *__ptr_00;\n  ulong uVar10;\n  size_t sVar11;\n  size_t __size;\n  size_t __size_00;\n  void *pvVar12;\n  long in_FS_OFFSET;\n  int local_1cc;\n  undefined4 local_1c8;\n  int local_1c4;\n  ulong local_150;\n  int local_12c;\n  ulong local_128;\n  undefined8 local_120;\n  undefined8 local_118;\n  undefined8 local_110;\n  undefined8 local_108;\n  undefined8 local_100;\n  undefined8 local_f8;\n  undefined8 local_f0;\n  undefined8 local_e8;\n  undefined8 local_e0;\n  undefined8 local_d8;\n  undefined8 local_d0;\n  undefined1 local_c8 [136];\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_5 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }\n  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    \n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }\n  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);\n  if (iVar7 != 0) goto LAB_00179c52;\n  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }\nLAB_0017a0de:\n  dsa_free(param_5);\nLAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }\n  return iVar7;\nLAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);\n  if (iVar7 != 0) goto LAB_0017a050;\n  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);\n  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;\n  goto LAB_0017a52f;\n}" ({ "{") (declaration "ulong uVar1;" (type_identifier "ulong") (identifier "uVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "undefined8 uVar3;" (type_identifier "undefined8") (identifier "uVar3") (; ";")) (declaration "undefined8 uVar4;" (type_identifier "undefined8") (identifier "uVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "undefined *puVar6;" (type_identifier "undefined") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "void *__ptr_00;" (primitive_type "void") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "size_t sVar11;" (primitive_type "size_t") (identifier "sVar11") (; ";")) (declaration "size_t __size;" (primitive_type "size_t") (identifier "__size") (; ";")) (declaration "size_t __size_00;" (primitive_type "size_t") (identifier "__size_00") (; ";")) (declaration "void *pvVar12;" (primitive_type "void") (pointer_declarator "*pvVar12" (* "*") (identifier "pvVar12")) (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "int local_1cc;" (primitive_type "int") (identifier "local_1cc") (; ";")) (declaration "undefined4 local_1c8;" (type_identifier "undefined4") (identifier "local_1c8") (; ";")) (declaration "int local_1c4;" (primitive_type "int") (identifier "local_1c4") (; ";")) (declaration "ulong local_150;" (type_identifier "ulong") (identifier "local_150") (; ";")) (declaration "int local_12c;" (primitive_type "int") (identifier "local_12c") (; ";")) (declaration "ulong local_128;" (type_identifier "ulong") (identifier "local_128") (; ";")) (declaration "undefined8 local_120;" (type_identifier "undefined8") (identifier "local_120") (; ";")) (declaration "undefined8 local_118;" (type_identifier "undefined8") (identifier "local_118") (; ";")) (declaration "undefined8 local_110;" (type_identifier "undefined8") (identifier "local_110") (; ";")) (declaration "undefined8 local_108;" (type_identifier "undefined8") (identifier "local_108") (; ";")) (declaration "undefined8 local_100;" (type_identifier "undefined8") (identifier "local_100") (; ";")) (declaration "undefined8 local_f8;" (type_identifier "undefined8") (identifier "local_f8") (; ";")) (declaration "undefined8 local_f0;" (type_identifier "undefined8") (identifier "local_f0") (; ";")) (declaration "undefined8 local_e8;" (type_identifier "undefined8") (identifier "local_e8") (; ";")) (declaration "undefined8 local_e0;" (type_identifier "undefined8") (identifier "local_e0") (; ";")) (declaration "undefined8 local_d8;" (type_identifier "undefined8") (identifier "local_d8") (; ";")) (declaration "undefined8 local_d0;" (type_identifier "undefined8") (identifier "local_d0") (; ";")) (declaration "undefined1 local_c8 [136];" (type_identifier "undefined1") (array_declarator "local_c8 [136]" (identifier "local_c8") ([ "[") (number_literal "136") (] "]")) (; ";")) (declaration "long local_40;" (sized_type_specifier "long" (long "long")) (identifier "local_40") (; ";")) (expression_statement "local_40 = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_40 = *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (= "=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) (; ";")) (if_statement "if (param_5 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }" (if "if") (parenthesized_expression "(param_5 == 0)" (( "(") (binary_expression "param_5 == 0" (identifier "param_5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);\n  }" ({ "{") (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda)" (identifier "crypt_argchk") (argument_list "("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda)" (( "(") (string_literal ""key != NULL"" (" """) (string_content "key != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_generate_pqg.c"" (" """) (string_content "src/pk/dsa/dsa_generate_pqg.c") (" """)) (, ",") (number_literal "0xda") () ")"))) (; ";")) (} "}"))) (if_statement "if (*(long *)PTR_ltc_mp_001ddec0 == 0) {\n                    \n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }" (if "if") (parenthesized_expression "(*(long *)PTR_ltc_mp_001ddec0 == 0)" (( "(") (binary_expression "*(long *)PTR_ltc_mp_001ddec0 == 0" (pointer_expression "*(long *)PTR_ltc_mp_001ddec0" (* "*") (cast_expression "(long *)PTR_ltc_mp_001ddec0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_ltc_mp_001ddec0"))) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);\n  }" ({ "{") (expression_statement "crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);" (call_expression "crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb)" (identifier "crypt_argchk") (argument_list "("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb)" (( "(") (string_literal ""ltc_mp.name != NULL"" (" """) (string_content "ltc_mp.name != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_generate_pqg.c"" (" """) (string_content "src/pk/dsa/dsa_generate_pqg.c") (" """)) (, ",") (number_literal "0xdb") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);" (assignment_expression "iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0)" (identifier "iVar7") (= "=") (call_expression "ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0)" (identifier "ltc_init_multi") (argument_list "(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0)" (( "(") (binary_expression "param_5 + 0x18" (identifier "param_5") (+ "+") (number_literal "0x18")) (, ",") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) (, ",") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) (, ",") (binary_expression "param_5 + 0x20" (identifier "param_5") (+ "+") (number_literal "0x20")) (, ",") (binary_expression "param_5 + 0x28" (identifier "param_5") (+ "+") (number_literal "0x28")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_00179c52;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00179c52;" (goto "goto") (statement_identifier "LAB_00179c52") (; ";"))) (if_statement "if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }\n  else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }" (if "if") (parenthesized_expression "((param_3 - 1U < 0x1ff) && (param_3 < param_4))" (( "(") (binary_expression "(param_3 - 1U < 0x1ff) && (param_3 < param_4)" (parenthesized_expression "(param_3 - 1U < 0x1ff)" (( "(") (binary_expression "param_3 - 1U < 0x1ff" (binary_expression "param_3 - 1U" (identifier "param_3") (- "-") (number_literal "1U")) (< "<") (number_literal "0x1ff")) () ")")) (&& "&&") (parenthesized_expression "(param_3 < param_4)" (( "(") (binary_expression "param_3 < param_4" (identifier "param_3") (< "<") (identifier "param_4")) () ")"))) () ")")) (compound_statement "{\n    __size = (size_t)param_3;\n    local_1c4 = 0x28;\n    uVar10 = (long)param_4 * 8;\n    uVar1 = __size * 8;\n    if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }\n    uVar2 = *(undefined8 *)(param_5 + 8);\n    uVar3 = *(undefined8 *)(param_5 + 0x10);\n    uVar4 = *(undefined8 *)(param_5 + 0x18);\n    if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }\n    iVar7 = hash_is_valid(local_1cc);\n    if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }\n  }" ({ "{") (expression_statement "__size = (size_t)param_3;" (assignment_expression "__size = (size_t)param_3" (identifier "__size") (= "=") (cast_expression "(size_t)param_3" (( "(") (type_descriptor "size_t" (primitive_type "size_t")) () ")") (identifier "param_3"))) (; ";")) (expression_statement "local_1c4 = 0x28;" (assignment_expression "local_1c4 = 0x28" (identifier "local_1c4") (= "=") (number_literal "0x28")) (; ";")) (expression_statement "uVar10 = (long)param_4 * 8;" (assignment_expression "uVar10 = (long)param_4 * 8" (identifier "uVar10") (= "=") (binary_expression "(long)param_4 * 8" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (* "*") (number_literal "8"))) (; ";")) (expression_statement "uVar1 = __size * 8;" (assignment_expression "uVar1 = __size * 8" (identifier "uVar1") (= "=") (binary_expression "__size * 8" (identifier "__size") (* "*") (number_literal "8"))) (; ";")) (if_statement "if (0x400 < uVar10) {\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }" (if "if") (parenthesized_expression "(0x400 < uVar10)" (( "(") (binary_expression "0x400 < uVar10" (number_literal "0x400") (< "<") (identifier "uVar10")) () ")")) (compound_statement "{\n      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;\n    }" ({ "{") (expression_statement "local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;" (assignment_expression "local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40" (identifier "local_1c4") (= "=") (binary_expression "(-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40" (parenthesized_expression "(-(uint)(uVar10 < 0x801) & 0xfffffff8)" (( "(") (binary_expression "-(uint)(uVar10 < 0x801) & 0xfffffff8" (unary_expression "-(uint)(uVar10 < 0x801)" (- "-") (call_expression "(uint)(uVar10 < 0x801)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(uVar10 < 0x801)" (( "(") (binary_expression "uVar10 < 0x801" (identifier "uVar10") (< "<") (number_literal "0x801")) () ")")))) (& "&") (number_literal "0xfffffff8")) () ")")) (+ "+") (number_literal "0x40"))) (; ";")) (} "}"))) (expression_statement "uVar2 = *(undefined8 *)(param_5 + 8);" (assignment_expression "uVar2 = *(undefined8 *)(param_5 + 8)" (identifier "uVar2") (= "=") (pointer_expression "*(undefined8 *)(param_5 + 8)" (* "*") (cast_expression "(undefined8 *)(param_5 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 8)" (( "(") (binary_expression "param_5 + 8" (identifier "param_5") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "uVar3 = *(undefined8 *)(param_5 + 0x10);" (assignment_expression "uVar3 = *(undefined8 *)(param_5 + 0x10)" (identifier "uVar3") (= "=") (pointer_expression "*(undefined8 *)(param_5 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_5 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x10)" (( "(") (binary_expression "param_5 + 0x10" (identifier "param_5") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar4 = *(undefined8 *)(param_5 + 0x18);" (assignment_expression "uVar4 = *(undefined8 *)(param_5 + 0x18)" (identifier "uVar4") (= "=") (pointer_expression "*(undefined8 *)(param_5 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_5 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 0x18)" (( "(") (binary_expression "param_5 + 0x18" (identifier "param_5") (+ "+") (number_literal "0x18")) () ")"))))) (; ";")) (if_statement "if (uVar1 < 0xa1) {\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }\n    else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" (if "if") (parenthesized_expression "(uVar1 < 0xa1)" (( "(") (binary_expression "uVar1 < 0xa1" (identifier "uVar1") (< "<") (number_literal "0xa1")) () ")")) (compound_statement "{\n      local_1c8 = 0x28;\nLAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);\n    }" ({ "{") (expression_statement "local_1c8 = 0x28;" (assignment_expression "local_1c8 = 0x28" (identifier "local_1c8") (= "=") (number_literal "0x28")) (; ";")) (labeled_statement "LAB_00179d0a:\n      local_1cc = register_hash(PTR_sha256_desc_001ddf70);" (statement_identifier "LAB_00179d0a") (: ":") (expression_statement "local_1cc = register_hash(PTR_sha256_desc_001ddf70);" (assignment_expression "local_1cc = register_hash(PTR_sha256_desc_001ddf70)" (identifier "local_1cc") (= "=") (call_expression "register_hash(PTR_sha256_desc_001ddf70)" (identifier "register_hash") (argument_list "(PTR_sha256_desc_001ddf70)" (( "(") (identifier "PTR_sha256_desc_001ddf70") () ")")))) (; ";"))) (} "}")) (else_clause "else {\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" (else "else") (compound_statement "{\n      if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }\n      if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }\n    }" ({ "{") (if_statement "if (uVar1 < 0xe1) {\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }" (if "if") (parenthesized_expression "(uVar1 < 0xe1)" (( "(") (binary_expression "uVar1 < 0xe1" (identifier "uVar1") (< "<") (number_literal "0xe1")) () ")")) (compound_statement "{\n        local_1c8 = 0x38;\n        goto LAB_00179d0a;\n      }" ({ "{") (expression_statement "local_1c8 = 0x38;" (assignment_expression "local_1c8 = 0x38" (identifier "local_1c8") (= "=") (number_literal "0x38")) (; ";")) (goto_statement "goto LAB_00179d0a;" (goto "goto") (statement_identifier "LAB_00179d0a") (; ";")) (} "}"))) (if_statement "if (uVar1 < 0x101) {\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }" (if "if") (parenthesized_expression "(uVar1 < 0x101)" (( "(") (binary_expression "uVar1 < 0x101" (identifier "uVar1") (< "<") (number_literal "0x101")) () ")")) (compound_statement "{\n        local_1c8 = 0x40;\n        goto LAB_00179d0a;\n      }" ({ "{") (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" (identifier "local_1c8") (= "=") (number_literal "0x40")) (; ";")) (goto_statement "goto LAB_00179d0a;" (goto "goto") (statement_identifier "LAB_00179d0a") (; ";")) (} "}"))) (if_statement "if (uVar1 < 0x181) {\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }\n      else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" (if "if") (parenthesized_expression "(uVar1 < 0x181)" (( "(") (binary_expression "uVar1 < 0x181" (identifier "uVar1") (< "<") (number_literal "0x181")) () ")")) (compound_statement "{\n        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);\n        local_1c8 = 0x40;\n      }" ({ "{") (expression_statement "local_1cc = register_hash(PTR_sha384_desc_001ddfa8);" (assignment_expression "local_1cc = register_hash(PTR_sha384_desc_001ddfa8)" (identifier "local_1cc") (= "=") (call_expression "register_hash(PTR_sha384_desc_001ddfa8)" (identifier "register_hash") (argument_list "(PTR_sha384_desc_001ddfa8)" (( "(") (identifier "PTR_sha384_desc_001ddfa8") () ")")))) (; ";")) (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" (identifier "local_1c8") (= "=") (number_literal "0x40")) (; ";")) (} "}")) (else_clause "else {\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" (else "else") (compound_statement "{\n        if (0x200 < uVar1) goto LAB_0017a0d8;\n        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);\n        local_1c8 = 0x40;\n      }" ({ "{") (if_statement "if (0x200 < uVar1) goto LAB_0017a0d8;" (if "if") (parenthesized_expression "(0x200 < uVar1)" (( "(") (binary_expression "0x200 < uVar1" (number_literal "0x200") (< "<") (identifier "uVar1")) () ")")) (goto_statement "goto LAB_0017a0d8;" (goto "goto") (statement_identifier "LAB_0017a0d8") (; ";"))) (expression_statement "local_1cc = register_hash(PTR_sha512_desc_001ddfa0);" (assignment_expression "local_1cc = register_hash(PTR_sha512_desc_001ddfa0)" (identifier "local_1cc") (= "=") (call_expression "register_hash(PTR_sha512_desc_001ddfa0)" (identifier "register_hash") (argument_list "(PTR_sha512_desc_001ddfa0)" (( "(") (identifier "PTR_sha512_desc_001ddfa0") () ")")))) (; ";")) (expression_statement "local_1c8 = 0x40;" (assignment_expression "local_1c8 = 0x40" (identifier "local_1c8") (= "=") (number_literal "0x40")) (; ";")) (} "}")))) (} "}")))) (expression_statement "iVar7 = hash_is_valid(local_1cc);" (assignment_expression "iVar7 = hash_is_valid(local_1cc)" (identifier "iVar7") (= "=") (call_expression "hash_is_valid(local_1cc)" (identifier "hash_is_valid") (argument_list "(local_1cc)" (( "(") (identifier "local_1cc") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);\n      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);\n      __size_00 = uVar5 * uVar9;\n      __ptr = malloc(__size_00);\n      if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }\n      iVar7 = 0xd;\n    }" ({ "{") (expression_statement "uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);" (assignment_expression "uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" (identifier "uVar5") (= "=") (pointer_expression "*(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" (* "*") (cast_expression "(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10)" (( "(") (binary_expression "PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0" (identifier "PTR_hash_descriptor_001dde98") (+ "+") (binary_expression "(long)local_1cc * 0xd0" (cast_expression "(long)local_1cc" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_1cc")) (* "*") (number_literal "0xd0"))) (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);" (assignment_expression "uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8)" (identifier "uVar9") (= "=") (binary_expression "((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8)" (parenthesized_expression "((uVar10 - 1) + uVar5 * 8)" (( "(") (binary_expression "(uVar10 - 1) + uVar5 * 8" (parenthesized_expression "(uVar10 - 1)" (( "(") (binary_expression "uVar10 - 1" (identifier "uVar10") (- "-") (number_literal "1")) () ")")) (+ "+") (binary_expression "uVar5 * 8" (identifier "uVar5") (* "*") (number_literal "8"))) () ")")) (/ "/") (parenthesized_expression "(uVar5 * 8)" (( "(") (binary_expression "uVar5 * 8" (identifier "uVar5") (* "*") (number_literal "8")) () ")")))) (; ";")) (expression_statement "__size_00 = uVar5 * uVar9;" (assignment_expression "__size_00 = uVar5 * uVar9" (identifier "__size_00") (= "=") (binary_expression "uVar5 * uVar9" (identifier "uVar5") (* "*") (identifier "uVar9"))) (; ";")) (expression_statement "__ptr = malloc(__size_00);" (assignment_expression "__ptr = malloc(__size_00)" (identifier "__ptr") (= "=") (call_expression "malloc(__size_00)" (identifier "malloc") (argument_list "(__size_00)" (( "(") (identifier "__size_00") () ")")))) (; ";")) (if_statement "if (__ptr != (void *)0x0) {\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }" (if "if") (parenthesized_expression "(__ptr != (void *)0x0)" (( "(") (binary_expression "__ptr != (void *)0x0" (identifier "__ptr") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        __ptr_00 = malloc(__size);\n        if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }\n        free(__ptr);\n      }" ({ "{") (expression_statement "__ptr_00 = malloc(__size);" (assignment_expression "__ptr_00 = malloc(__size)" (identifier "__ptr_00") (= "=") (call_expression "malloc(__size)" (identifier "malloc") (argument_list "(__size)" (( "(") (identifier "__size") () ")")))) (; ";")) (if_statement "if (__ptr_00 != (void *)0x0) {\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }" (if "if") (parenthesized_expression "(__ptr_00 != (void *)0x0)" (( "(") (binary_expression "__ptr_00 != (void *)0x0" (identifier "__ptr_00") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);\n          if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }\n          free(__ptr_00);\n          free(__ptr);\n          if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }\n          goto LAB_0017a0de;\n        }" ({ "{") (expression_statement "iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);" (assignment_expression "iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0)" (identifier "iVar7") (= "=") (call_expression "ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0)" (identifier "ltc_init_multi") (argument_list "(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,\n                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0)" (( "(") (pointer_expression "&local_120" (& "&") (identifier "local_120")) (, ",") (pointer_expression "&local_118" (& "&") (identifier "local_118")) (, ",") (pointer_expression "&local_110" (& "&") (identifier "local_110")) (, ",") (pointer_expression "&local_108" (& "&") (identifier "local_108")) (, ",") (pointer_expression "&local_100" (& "&") (identifier "local_100")) (, ",") (pointer_expression "&local_f8" (& "&") (identifier "local_f8")) (, ",") (pointer_expression "&local_f0" (& "&") (identifier "local_f0")) (, ",") (pointer_expression "&local_e8" (& "&") (identifier "local_e8")) (, ",") (pointer_expression "&local_e0" (& "&") (identifier "local_e0")) (, ",") (pointer_expression "&local_d8" (& "&") (identifier "local_d8")) (, ",") (pointer_expression "&local_d0" (& "&") (identifier "local_d0")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar7 == 0) {\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);\n            if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }\nLAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);\n          }" ({ "{") (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x78")) () ")"))))) () ")")) (argument_list "(local_120,(int)uVar10 + -1)" (( "(") (identifier "local_120") (, ",") (binary_expression "(int)uVar10 + -1" (cast_expression "(int)uVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar10")) (+ "+") (number_literal "-1")) () ")")))) (; ";")) (if_statement "if (((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }" (if "if") (parenthesized_expression "(((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0))" (( "(") (binary_expression "((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)) &&\n               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)" (parenthesized_expression "((iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0))" (( "(") (binary_expression "(iVar7 == 0) &&\n                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)" (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),\n                iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x78")) () ")"))))) () ")")) (argument_list "(local_118,(int)uVar1 + -1)" (( "(") (identifier "local_118") (, ",") (binary_expression "(int)uVar1 + -1" (cast_expression "(int)uVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar1")) (+ "+") (number_literal "-1")) () ")")))) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),\n               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x78))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x78)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x78)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x78)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x78)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x78" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x78")) () ")"))))) () ")")) (argument_list "(local_108,param_3 * 8)" (( "(") (identifier "local_108") (, ",") (binary_expression "param_3 * 8" (identifier "param_3") (* "*") (number_literal "8")) () ")")))) (, ",") (comma_expression "puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0" (assignment_expression "puVar6 = PTR_prng_descriptor_001ddf90" (identifier "puVar6") (= "=") (identifier "PTR_prng_descriptor_001ddf90")) (, ",") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")))) () ")"))) () ")")) (compound_statement "{\n              uVar9 = uVar9 - 1;\n              while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }\n            }" ({ "{") (expression_statement "uVar9 = uVar9 - 1;" (assignment_expression "uVar9 = uVar9 - 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 - 1" (identifier "uVar9") (- "-") (number_literal "1"))) (; ";")) (while_statement "while( true ) {\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n                do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);\n                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);\n                if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;\n                local_150 = 0;\n                do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));\n              }" ({ "{") (do_statement "do {\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                } while (local_12c != 1);" (do "do") (compound_statement "{\n                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);\n                  if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }\n                  local_128 = uVar5;\n                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);\n                  if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);\n                  if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);\n                  if (iVar7 != 0) goto LAB_0017a050;\n                }" ({ "{") (expression_statement "sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1);" (assignment_expression "sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1)" (identifier "sVar11") (= "=") (call_expression "(**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))\n                                     (__ptr_00,__size,param_1)" (parenthesized_expression "(**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))" (( "(") (pointer_expression "**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28)" (* "*") (pointer_expression "*(code **)(puVar6 + (long)param_2 * 0x50 + 0x28)" (* "*") (cast_expression "(code **)(puVar6 + (long)param_2 * 0x50 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar6 + (long)param_2 * 0x50 + 0x28)" (( "(") (binary_expression "puVar6 + (long)param_2 * 0x50 + 0x28" (binary_expression "puVar6 + (long)param_2 * 0x50" (identifier "puVar6") (+ "+") (binary_expression "(long)param_2 * 0x50" (cast_expression "(long)param_2" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_2")) (* "*") (number_literal "0x50"))) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "(__ptr_00,__size,param_1)" (( "(") (identifier "__ptr_00") (, ",") (identifier "__size") (, ",") (identifier "param_1") () ")")))) (; ";")) (if_statement "if (__size != sVar11) {\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }" (if "if") (parenthesized_expression "(__size != sVar11)" (( "(") (binary_expression "__size != sVar11" (identifier "__size") (!= "!=") (identifier "sVar11")) () ")")) (compound_statement "{\n                    iVar7 = 9;\n                    goto LAB_0017a050;\n                  }" ({ "{") (expression_statement "iVar7 = 9;" (assignment_expression "iVar7 = 9" (identifier "iVar7") (= "=") (number_literal "9")) (; ";")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";")) (} "}"))) (expression_statement "local_128 = uVar5;" (assignment_expression "local_128 = uVar5" (identifier "local_128") (= "=") (identifier "uVar5")) (; ";")) (expression_statement "iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);" (assignment_expression "iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128)" (identifier "iVar7") (= "=") (call_expression "hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128)" (identifier "hash_memory") (argument_list "(local_1cc,__ptr_00,__size,local_c8,&local_128)" (( "(") (identifier "local_1cc") (, ",") (identifier "__ptr_00") (, ",") (identifier "__size") (, ",") (identifier "local_c8") (, ",") (pointer_expression "&local_128" (& "&") (identifier "local_128")) () ")")))) (; ";")) (if_statement "if (((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))) goto LAB_0017a050;" (if "if") (parenthesized_expression "(((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0))))" (( "(") (binary_expression "((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)) ||\n                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))" (parenthesized_expression "((iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),\n                      iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(local_100,local_c8,uVar5)" (( "(") (identifier "local_100") (, ",") (identifier "local_c8") (, ",") (identifier "uVar5") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)))" (( "(") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0))" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100), iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                         (local_100,local_118,0,local_100)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xe0")) () ")"))))) () ")")) (argument_list "(local_100,local_118,0,local_100)" (( "(") (identifier "local_100") (, ",") (identifier "local_118") (, ",") (number_literal "0") (, ",") (identifier "local_100") () ")")))) (, ",") (binary_expression "iVar7 != 0 ||\n                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)" (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),\n                      iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xa8")) () ")"))))) () ")")) (argument_list "(local_118,local_100,uVar3)" (( "(") (identifier "local_118") (, ",") (identifier "local_100") (, ",") (identifier "uVar3") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";"))) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x50))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x50)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x50)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x50)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x50)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x50" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x50")) () ")"))))) () ")")) (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")")))) (; ";")) (if_statement "if ((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )) {\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }" (if "if") (parenthesized_expression "((iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     ))" (( "(") (binary_expression "(iVar7 < 1) ||\n                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )" (parenthesized_expression "(iVar7 < 1)" (( "(") (binary_expression "iVar7 < 1" (identifier "iVar7") (< "<") (number_literal "1")) () ")")) (|| "||") (parenthesized_expression "(uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0\n                     )" (( "(") (comma_expression "uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0" (assignment_expression "uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0)" (identifier "uVar10") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x48))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x48)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x48)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x48)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x48)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x48" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x48")) () ")"))))) () ")")) (argument_list "(uVar3,0)" (( "(") (identifier "uVar3") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "(uVar10 & 1) == 0" (parenthesized_expression "(uVar10 & 1)" (( "(") (binary_expression "uVar10 & 1" (identifier "uVar10") (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);\n                  }" ({ "{") (expression_statement "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);" (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xb0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (argument_list "(uVar3,1,uVar3)" (( "(") (identifier "uVar3") (, ",") (number_literal "1") (, ",") (identifier "uVar3") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x148)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x148)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x148)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x148)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x148" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x148")) () ")"))))) () ")")) (argument_list "(uVar3,local_1c8,&local_12c)" (( "(") (identifier "uVar3") (, ",") (identifier "local_1c8") (, ",") (pointer_expression "&local_12c" (& "&") (identifier "local_12c")) () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_0017a050;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(local_12c != 1)" (( "(") (binary_expression "local_12c != 1" (identifier "local_12c") (!= "!=") (number_literal "1")) () ")")) (; ";")) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(local_d0,__ptr_00,__size)" (( "(") (identifier "local_d0") (, ",") (identifier "__ptr_00") (, ",") (identifier "__size") () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)) break;" (if "if") (parenthesized_expression "((iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) ||\n                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),\n                   iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xa8")) () ")"))))) () ")")) (argument_list "(uVar3,uVar3,local_110)" (( "(") (identifier "uVar3") (, ",") (identifier "uVar3") (, ",") (identifier "local_110") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "local_150 = 0;" (assignment_expression "local_150 = 0" (identifier "local_150") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                } while (local_150 < (ulong)((long)param_4 << 5));" (do "do") (compound_statement "{\n                  uVar10 = 0;\n                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);\n                  do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);\n                  if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;\n                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);\n                  if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }\n                  local_150 = local_150 + 1;\n                }" ({ "{") (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" (identifier "uVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);" (assignment_expression "pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr)" (identifier "pvVar12") (= "=") (cast_expression "(void *)(uVar5 * uVar9 + (long)__ptr)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar5 * uVar9 + (long)__ptr)" (( "(") (binary_expression "uVar5 * uVar9 + (long)__ptr" (binary_expression "uVar5 * uVar9" (identifier "uVar5") (* "*") (identifier "uVar9")) (+ "+") (cast_expression "(long)__ptr" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr"))) () ")")))) (; ";")) (do_statement "do {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  } while (uVar10 <= uVar9);" (do "do") (compound_statement "{\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);\n                    if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;\n                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);\n                    if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }\n                    zeromem(__ptr_00,__size);\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);\n                    if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;\n                    uVar10 = uVar10 + 1;\n                    pvVar12 = (void *)((long)pvVar12 - uVar5);\n                  }" ({ "{") (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xb0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xb0")) () ")"))))) () ")")) (argument_list "(local_d0,1,local_d0)" (( "(") (identifier "local_d0") (, ",") (number_literal "1") (, ",") (identifier "local_d0") () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))\n                    goto LAB_0017a050;" (if "if") (parenthesized_expression "((iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_d0,local_108,0,local_d0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xe0")) () ")"))))) () ")")) (argument_list "(local_d0,local_108,0,local_d0)" (( "(") (identifier "local_d0") (, ",") (identifier "local_108") (, ",") (number_literal "0") (, ",") (identifier "local_d0") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";"))) (expression_statement "local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);" (assignment_expression "local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0)" (identifier "local_128") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x90))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x90)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x90)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x90)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x90" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x90")) () ")"))))) () ")")) (argument_list "(local_d0)" (( "(") (identifier "local_d0") () ")")))) (; ";")) (if_statement "if (__size < local_128) {\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }" (if "if") (parenthesized_expression "(__size < local_128)" (( "(") (binary_expression "__size < local_128" (identifier "__size") (< "<") (identifier "local_128")) () ")")) (compound_statement "{\n                      iVar7 = 0x10;\n                      goto LAB_0017a050;\n                    }" ({ "{") (expression_statement "iVar7 = 0x10;" (assignment_expression "iVar7 = 0x10" (identifier "iVar7") (= "=") (number_literal "0x10")) (; ";")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";")) (} "}"))) (expression_statement "zeromem(__ptr_00,__size);" (call_expression "zeromem(__ptr_00,__size)" (identifier "zeromem") (argument_list "(__ptr_00,__size)" (( "(") (identifier "__ptr_00") (, ",") (identifier "__size") () ")"))) (; ";")) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x98))\n                                      (local_d0,(__size - local_128) + (long)__ptr_00)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x98))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x98)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x98)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x98)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x98)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x98" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x98")) () ")"))))) () ")")) (argument_list "(local_d0,(__size - local_128) + (long)__ptr_00)" (( "(") (identifier "local_d0") (, ",") (binary_expression "(__size - local_128) + (long)__ptr_00" (parenthesized_expression "(__size - local_128)" (( "(") (binary_expression "__size - local_128" (identifier "__size") (- "-") (identifier "local_128")) () ")")) (+ "+") (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00"))) () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )) goto LAB_0017a050;" (if "if") (parenthesized_expression "((iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       ))" (( "(") (binary_expression "(iVar7 != 0) ||\n                       (local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0\n                       )" (( "(") (comma_expression "local_128 = uVar5,\n                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0" (assignment_expression "local_128 = uVar5" (identifier "local_128") (= "=") (identifier "uVar5")) (, ",") (comma_expression "iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0" (assignment_expression "iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128)" (identifier "iVar7") (= "=") (call_expression "hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128)" (identifier "hash_memory") (argument_list "(local_1cc,__ptr_00,__size,pvVar12,&local_128)" (( "(") (identifier "local_1cc") (, ",") (identifier "__ptr_00") (, ",") (identifier "__size") (, ",") (identifier "pvVar12") (, ",") (pointer_expression "&local_128" (& "&") (identifier "local_128")) () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")))) () ")"))) () ")")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";"))) (expression_statement "uVar10 = uVar10 + 1;" (assignment_expression "uVar10 = uVar10 + 1" (identifier "uVar10") (= "=") (binary_expression "uVar10 + 1" (identifier "uVar10") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pvVar12 = (void *)((long)pvVar12 - uVar5);" (assignment_expression "pvVar12 = (void *)((long)pvVar12 - uVar5)" (identifier "pvVar12") (= "=") (cast_expression "(void *)((long)pvVar12 - uVar5)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar12 - uVar5)" (( "(") (binary_expression "(long)pvVar12 - uVar5" (cast_expression "(long)pvVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar12")) (- "-") (identifier "uVar5")) () ")")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar10 <= uVar9)" (( "(") (binary_expression "uVar10 <= uVar9" (identifier "uVar10") (<= "<=") (identifier "uVar9")) () ")")) (; ";")) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xa0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xa0")) () ")"))))) () ")")) (argument_list "(local_f8,__ptr,__size_00)" (( "(") (identifier "local_f8") (, ",") (identifier "__ptr") (, ",") (identifier "__size_00") () ")")))) (; ";")) (if_statement "if (((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)) goto LAB_0017a050;" (if "if") (parenthesized_expression "(((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0))" (( "(") (binary_expression "((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))) ||\n                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)" (parenthesized_expression "((((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0))))" (( "(") (binary_expression "(((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||\n                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))" (parenthesized_expression "(((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0))" (( "(") (binary_expression "((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)" (parenthesized_expression "((iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) ||\n                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                           (local_f8,local_120,0,local_f8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xe0")) () ")"))))) () ")")) (argument_list "(local_f8,local_120,0,local_f8)" (( "(") (identifier "local_f8") (, ",") (identifier "local_120") (, ",") (number_literal "0") (, ",") (identifier "local_f8") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))\n                                          (local_f8,local_120,local_f0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xa8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xa8)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xa8" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xa8")) () ")"))))) () ")")) (argument_list "(local_f8,local_120,local_f0)" (( "(") (identifier "local_f8") (, ",") (identifier "local_120") (, ",") (identifier "local_f0") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (|| "||") (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)))" (( "(") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0))" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                          (local_f0,local_110,0,local_e8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xe0")) () ")"))))) () ")")) (argument_list "(local_f0,local_110,0,local_e8)" (( "(") (identifier "local_f0") (, ",") (identifier "local_110") (, ",") (number_literal "0") (, ",") (identifier "local_e8") () ")")))) (, ",") (binary_expression "iVar7 != 0 ||\n                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)" (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),\n                       iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xc0")) () ")"))))) () ")")) (argument_list "(local_e8,1,uVar4)" (( "(") (identifier "local_e8") (, ",") (number_literal "1") (, ",") (identifier "uVar4") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),\n                     iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xb8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xb8)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xb8" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xb8")) () ")"))))) () ")")) (argument_list "(local_f0,uVar4,uVar4)" (( "(") (identifier "local_f0") (, ",") (identifier "uVar4") (, ",") (identifier "uVar4") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";"))) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(uVar4,local_120)" (( "(") (identifier "uVar4") (, ",") (identifier "local_120") () ")")))) (; ";")) (if_statement "if (iVar7 != -1) {\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }" (if "if") (parenthesized_expression "(iVar7 != -1)" (( "(") (binary_expression "iVar7 != -1" (identifier "iVar7") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);\n                    if (iVar7 != 0) goto LAB_0017a050;\n                    if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }\n                  }" ({ "{") (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x148))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x148)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x148)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x148)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x148)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x148" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x148")) () ")"))))) () ")")) (argument_list "(uVar4,local_1c4,&local_12c)" (( "(") (identifier "uVar4") (, ",") (identifier "local_1c4") (, ",") (pointer_expression "&local_12c" (& "&") (identifier "local_12c")) () ")")))) (; ";")) (if_statement "if (iVar7 != 0) goto LAB_0017a050;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";"))) (if_statement "if (local_12c == 1) {\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }" (if "if") (parenthesized_expression "(local_12c == 1)" (( "(") (binary_expression "local_12c == 1" (identifier "local_12c") (== "==") (number_literal "1")) () ")")) (compound_statement "{\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);\n                      if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;\n                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);\n                      local_128 = (ulong)iVar7;\n                      goto LAB_0017a52f;\n                    }" ({ "{") (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xc0")) () ")"))))) () ")")) (argument_list "(uVar4,1,local_d8)" (( "(") (identifier "uVar4") (, ",") (number_literal "1") (, ",") (identifier "local_d8") () ")")))) (; ";")) (if_statement "if ((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))\n                      goto LAB_0017a050;" (if "if") (parenthesized_expression "((iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))" (( "(") (binary_expression "(iVar7 != 0) ||\n                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0)" (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))\n                                            (local_d8,uVar3,local_d8,local_e8)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xe0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xe0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xe0")) () ")"))))) () ")")) (argument_list "(local_d8,uVar3,local_d8,local_e8)" (( "(") (identifier "local_d8") (, ",") (identifier "uVar3") (, ",") (identifier "local_d8") (, ",") (identifier "local_e8") () ")")))) (, ",") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";"))) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x68))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x68)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x68)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x68)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x68)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x68" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x68")) () ")"))))) () ")")) (argument_list "(uVar4)" (( "(") (identifier "uVar4") () ")")))) (; ";")) (expression_statement "local_128 = (ulong)iVar7;" (assignment_expression "local_128 = (ulong)iVar7" (identifier "local_128") (= "=") (cast_expression "(ulong)iVar7" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "iVar7"))) (; ";")) (goto_statement "goto LAB_0017a52f;" (goto "goto") (statement_identifier "LAB_0017a52f") (; ";")) (} "}"))) (} "}"))) (expression_statement "local_150 = local_150 + 1;" (assignment_expression "local_150 = local_150 + 1" (identifier "local_150") (= "=") (binary_expression "local_150 + 1" (identifier "local_150") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_150 < (ulong)((long)param_4 << 5))" (( "(") (binary_expression "local_150 < (ulong)((long)param_4 << 5)" (identifier "local_150") (< "<") (call_expression "(ulong)((long)param_4 << 5)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((long)param_4 << 5)" (( "(") (binary_expression "(long)param_4 << 5" (cast_expression "(long)param_4" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_4")) (<< "<<") (number_literal "5")) () ")")))) () ")")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "LAB_0017a050:\n            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);" (statement_identifier "LAB_0017a050") (: ":") (expression_statement "ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0);" (call_expression "ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0)" (identifier "ltc_deinit_multi") (argument_list "(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,\n                             local_e8,local_e0,local_d8,local_d0,0)" (( "(") (identifier "local_120") (, ",") (identifier "local_118") (, ",") (identifier "local_110") (, ",") (identifier "local_108") (, ",") (identifier "local_100") (, ",") (identifier "local_f8") (, ",") (identifier "local_f0") (, ",") (identifier "local_e8") (, ",") (identifier "local_e0") (, ",") (identifier "local_d8") (, ",") (identifier "local_d0") (, ",") (number_literal "0") () ")"))) (; ";"))) (} "}"))) (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (if_statement "if (iVar7 == 0) {\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *(int *)(param_5 + 4) = param_3;\n            goto LAB_00179c52;\n          }" ({ "{") (expression_statement "*(int *)(param_5 + 4) = param_3;" (assignment_expression "*(int *)(param_5 + 4) = param_3" (pointer_expression "*(int *)(param_5 + 4)" (* "*") (cast_expression "(int *)(param_5 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_5 + 4)" (( "(") (binary_expression "param_5 + 4" (identifier "param_5") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (goto_statement "goto LAB_00179c52;" (goto "goto") (statement_identifier "LAB_00179c52") (; ";")) (} "}"))) (goto_statement "goto LAB_0017a0de;" (goto "goto") (statement_identifier "LAB_0017a0de") (; ";")) (} "}"))) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = 0xd;" (assignment_expression "iVar7 = 0xd" (identifier "iVar7") (= "=") (number_literal "0xd")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }" (else "else") (compound_statement "{\nLAB_0017a0d8:\n    iVar7 = 0x10;\n  }" ({ "{") (labeled_statement "LAB_0017a0d8:\n    iVar7 = 0x10;" (statement_identifier "LAB_0017a0d8") (: ":") (expression_statement "iVar7 = 0x10;" (assignment_expression "iVar7 = 0x10" (identifier "iVar7") (= "=") (number_literal "0x10")) (; ";"))) (} "}")))) (labeled_statement "LAB_0017a0de:\n  dsa_free(param_5);" (statement_identifier "LAB_0017a0de") (: ":") (expression_statement "dsa_free(param_5);" (call_expression "dsa_free(param_5)" (identifier "dsa_free") (argument_list "(param_5)" (( "(") (identifier "param_5") () ")"))) (; ";"))) (labeled_statement "LAB_00179c52:\n  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (statement_identifier "LAB_00179c52") (: ":") (if_statement "if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {\n                    \n    __stack_chk_fail();\n  }" (if "if") (parenthesized_expression "(local_40 != *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_40 != *(long *)(in_FS_OFFSET + 0x28)" (identifier "local_40") (!= "!=") (pointer_expression "*(long *)(in_FS_OFFSET + 0x28)" (* "*") (cast_expression "(long *)(in_FS_OFFSET + 0x28)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_FS_OFFSET + 0x28)" (( "(") (binary_expression "in_FS_OFFSET + 0x28" (identifier "in_FS_OFFSET") (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (compound_statement "{\n                    \n    __stack_chk_fail();\n  }" ({ "{") (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (return_statement "return iVar7;" (return "return") (identifier "iVar7") (; ";")) (labeled_statement "LAB_0017a52f:\n  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);" (statement_identifier "LAB_0017a52f") (: ":") (expression_statement "iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);" (assignment_expression "iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2)" (identifier "iVar7") (= "=") (call_expression "rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2)" (identifier "rand_bn_bits") (argument_list "(local_e0,local_128 & 0xffffffff,param_1,param_2)" (( "(") (identifier "local_e0") (, ",") (binary_expression "local_128 & 0xffffffff" (identifier "local_128") (& "&") (number_literal "0xffffffff")) (, ",") (identifier "param_1") (, ",") (identifier "param_2") () ")")))) (; ";"))) (if_statement "if (iVar7 != 0) goto LAB_0017a050;" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";"))) (expression_statement "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x58))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x58)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x58" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x58")) () ")"))))) () ")")) (argument_list "(local_e0,uVar4)" (( "(") (identifier "local_e0") (, ",") (identifier "uVar4") () ")")))) (; ";")) (if_statement "if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     ) goto LAB_0017a050;" (if "if") (parenthesized_expression "(((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))\n     )" (( "(") (binary_expression "((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))\n     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))" (parenthesized_expression "((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))" (( "(") (binary_expression "(iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1)" (parenthesized_expression "(iVar7 == -1)" (( "(") (binary_expression "iVar7 == -1" (identifier "iVar7") (== "==") (number_literal "-1")) () ")")) (&& "&&") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1)" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(local_e0,2)" (( "(") (identifier "local_e0") (, ",") (number_literal "2") () ")")))) (, ",") (binary_expression "iVar7 == 1" (identifier "iVar7") (== "==") (number_literal "1"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))" (( "(") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0))))" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0xc0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0xc0)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0xc0" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0xc0")) () ")"))))) () ")")) (argument_list "(local_e0,1,local_e0)" (( "(") (identifier "local_e0") (, ",") (number_literal "1") (, ",") (identifier "local_e0") () ")")))) (, ",") (binary_expression "iVar7 != 0 ||\n         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))" (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))" (( "(") (parenthesized_expression "(iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0))" (( "(") (comma_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),\n          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)" (assignment_expression "iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2)" (identifier "iVar7") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x140))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x140)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x140)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x140)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x140)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x140" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x140")) () ")"))))) () ")")) (argument_list "(local_e0,local_d8,uVar4,uVar2)" (( "(") (identifier "local_e0") (, ",") (identifier "local_d8") (, ",") (identifier "uVar4") (, ",") (identifier "uVar2") () ")")))) (, ",") (binary_expression "iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)" (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)" (( "(") (comma_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0" (assignment_expression "iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1)" (identifier "iVar8") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ddec0 + 0x60))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ddec0 + 0x60)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ddec0 + 0x60)" (( "(") (binary_expression "PTR_ltc_mp_001ddec0 + 0x60" (identifier "PTR_ltc_mp_001ddec0") (+ "+") (number_literal "0x60")) () ")"))))) () ")")) (argument_list "(uVar2,1)" (( "(") (identifier "uVar2") (, ",") (number_literal "1") () ")")))) (, ",") (binary_expression "iVar8 != 0" (identifier "iVar8") (!= "!=") (number_literal "0"))) () ")")))) () ")")) () ")")))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_0017a050;" (goto "goto") (statement_identifier "LAB_0017a050") (; ";"))) (goto_statement "goto LAB_0017a52f;" (goto "goto") (statement_identifier "LAB_0017a52f") (; ";")) (} "}")))

int function_1(type_1 *prng,int wprng,int var_6,int var_7,type_2 *var_2)

{
  type_3 var_10;
  long var_31;
  void *pvVar3;
  void *pvVar4;
  void *pvVar5;
  type_3 var_14;
  type_4 *var_20;
  int var_5;
  int var_34;
  type_3 var_15;
  void *var_17;
  type_5 *var_18;
  type_3 var_9;
  size_t var_21;
  size_t var_8;
  size_t __size_00;
  type_5 *var_26;
  long var_1;
  int local_1cc;
  type_6 local_1c8;
  int local_1c4;
  type_3 var_27;
  int var_23;
  type_3 var_24;
  void *t2L1;
  void *t2N1;
  void *t2q;
  void *t2seedlen;
  void *U;
  void *W;
  void *X;
  void *c;
  void *h;
  void *e;
  void *seedinc;
  type_5 digest [128];
  
  var_31 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("key != NULL","src/pk/dsa/dsa_generate_pqg.c",0xda);
  }
  if (*(long *)var_19 == 0) {
                    /* WARNING: Subroutine does not return */
    var_3("ltc_mp.name != NULL","src/pk/dsa/dsa_generate_pqg.c",0xdb);
  }
  var_5 = var_4(&var_2->p,&var_2->g,&var_2->q,&var_2->x,&var_2->y,0);
  if (var_5 != 0) goto LAB_00179c52;
  if ((var_6 - 1U < 0x1ff) && (var_6 < var_7)) {
    var_8 = (size_t)var_6;
    local_1c4 = 0x28;
    var_9 = (long)var_7 * 8;
    var_10 = var_8 * 8;
    if (0x400 < var_9) {
      local_1c4 = (-(uint)(var_9 < 0x801) & 0xfffffff8) + 0x40;
    }
    pvVar3 = var_2->g;
    pvVar4 = var_2->q;
    pvVar5 = var_2->p;
    if (var_10 < 0xa1) {
      local_1c8 = 0x28;
LAB_00179d0a:
      local_1cc = var_11((type_7 *)PTR_sha256_desc_001ddf70);
    }
    else {
      if (var_10 < 0xe1) {
        local_1c8 = 0x38;
        goto LAB_00179d0a;
      }
      if (var_10 < 0x101) {
        local_1c8 = 0x40;
        goto LAB_00179d0a;
      }
      if (var_10 < 0x181) {
        local_1cc = var_11((type_7 *)PTR_sha384_desc_001ddfa8);
        local_1c8 = 0x40;
      }
      else {
        if (0x200 < var_10) goto LAB_0017a0d8;
        local_1cc = var_11((type_7 *)PTR_sha512_desc_001ddfa0);
        local_1c8 = 0x40;
      }
    }
    var_5 = var_12(local_1cc);
    if (var_5 == 0) {
      var_14 = *(type_3 *)(var_13 + (long)local_1cc * 0xd0 + 0x10);
      var_15 = ((var_9 - 1) + var_14 * 8) / (var_14 * 8);
      __size_00 = var_14 * var_15;
      var_17 = var_16(__size_00);
      if (var_17 != (void *)0x0) {
        var_18 = (type_5 *)var_16(var_8);
        if (var_18 != (type_5 *)0x0) {
          var_5 = var_4(&t2L1,&t2N1,&t2q,&t2seedlen,&U,&W,&X,&c,&h,&e,&seedinc,0);
          if (var_5 == 0) {
            var_5 = (**(type_8 **)(var_19 + 0x78))(t2L1,(int)var_9 + -1);
            if (((var_5 == 0) &&
                (var_5 = (**(type_8 **)(var_19 + 0x78))(t2N1,(int)var_10 + -1), var_5 == 0
                )) && (var_5 = (**(type_8 **)(var_19 + 0x78))(t2seedlen,var_6 * 8),
                      var_20 = PTR_prng_descriptor_001ddf90, var_5 == 0)) {
              var_15 = var_15 - 1;
              while( true ) {
                do {
                  var_21 = (**(type_8 **)(var_20 + (long)wprng * 0x50 + 0x28))(var_18,var_8,prng);
                  if (var_8 != var_21) {
                    var_5 = 9;
                    goto LAB_0017a050;
                  }
                  var_24 = var_14;
                  var_5 = var_22(local_1cc,var_18,var_8,digest,&var_24);
                  if (((var_5 != 0) ||
                      (var_5 = (**(type_8 **)(var_19 + 0xa0))(U,digest,var_14), var_5 != 0
                      )) || ((var_5 = (**(type_8 **)(var_19 + 0xe0))(U,t2N1,0,U),
                             var_5 != 0 ||
                             (var_5 = (**(type_8 **)(var_19 + 0xa8))(t2N1,U,pvVar4),
                             var_5 != 0)))) goto LAB_0017a050;
                  var_5 = (**(type_8 **)(var_19 + 0x50))(pvVar4);
                  if ((var_5 < 1) ||
                     (var_9 = (**(type_8 **)(var_19 + 0x48))(pvVar4,0),
                     (var_9 & 1) == 0)) {
                    (**(type_8 **)(var_19 + 0xb0))(pvVar4,1,pvVar4);
                  }
                  var_5 = (**(type_8 **)(var_19 + 0x148))(pvVar4,local_1c8,&var_23);
                  if (var_5 != 0) goto LAB_0017a050;
                } while (var_23 != 1);
                var_5 = (**(type_8 **)(var_19 + 0xa0))(seedinc,var_18,var_8);
                if ((var_5 != 0) ||
                   (var_5 = (**(type_8 **)(var_19 + 0xa8))(pvVar4,pvVar4,t2q), var_5 != 0
                   )) break;
                var_27 = 0;
                do {
                  var_9 = 0;
                  var_26 = (type_5 *)(var_14 * var_15 + (long)var_17);
                  do {
                    var_5 = (**(type_8 **)(var_19 + 0xb0))(seedinc,1,seedinc);
                    if ((var_5 != 0) ||
                       (var_5 = (**(type_8 **)(var_19 + 0xe0))
                                          (seedinc,t2seedlen,0,seedinc), var_5 != 0))
                    goto LAB_0017a050;
                    var_24 = (**(type_8 **)(var_19 + 0x90))(seedinc);
                    if (var_8 < var_24) {
                      var_5 = 0x10;
                      goto LAB_0017a050;
                    }
                    var_25(var_18,var_8);
                    var_5 = (**(type_8 **)(var_19 + 0x98))(seedinc,var_18 + (var_8 - var_24));
                    if ((var_5 != 0) ||
                       (var_24 = var_14, var_5 = var_22(local_1cc,var_18,var_8,var_26,&var_24), var_5 != 0))
                    goto LAB_0017a050;
                    var_9 = var_9 + 1;
                    var_26 = var_26 + -var_14;
                  } while (var_9 <= var_15);
                  var_5 = (**(type_8 **)(var_19 + 0xa0))(W,var_17,__size_00);
                  if (((((var_5 != 0) ||
                        (var_5 = (**(type_8 **)(var_19 + 0xe0))(W,t2L1,0,W), var_5 != 0))
                       || (var_5 = (**(type_8 **)(var_19 + 0xa8))(W,t2L1,X), var_5 != 0))
                      || ((var_5 = (**(type_8 **)(var_19 + 0xe0))(X,t2q,0,c), var_5 != 0
                          || (var_5 = (**(type_8 **)(var_19 + 0xc0))(c,1,pvVar5),
                             var_5 != 0)))) ||
                     (var_5 = (**(type_8 **)(var_19 + 0xb8))(X,pvVar5,pvVar5), var_5 != 0
                     )) goto LAB_0017a050;
                  var_5 = (**(type_8 **)(var_19 + 0x58))(pvVar5,t2L1);
                  if (var_5 != -1) {
                    var_5 = (**(type_8 **)(var_19 + 0x148))(pvVar5,local_1c4,&var_23);
                    if (var_5 != 0) goto LAB_0017a050;
                    if (var_23 == 1) {
                      var_5 = (**(type_8 **)(var_19 + 0xc0))(pvVar5,1,e);
                      if ((var_5 != 0) ||
                         (var_5 = (**(type_8 **)(var_19 + 0xe0))(e,pvVar4,e,c),
                         var_5 != 0)) goto LAB_0017a050;
                      var_5 = (**(type_8 **)(var_19 + 0x68))(pvVar5);
                      var_24 = (type_3)var_5;
                      goto LAB_0017a52f;
                    }
                  }
                  var_27 = var_27 + 1;
                } while (var_27 < (type_3)((long)var_7 << 5));
              }
            }
LAB_0017a050:
            var_28(t2L1,t2N1,t2q,t2seedlen,U,W,X,c,h,e,seedinc,0);
          }
          var_29(var_18);
          var_29(var_17);
          if (var_5 == 0) {
            var_2->qord = var_6;
            goto LAB_00179c52;
          }
          goto LAB_0017a0de;
        }
        var_29(var_17);
      }
      var_5 = 0xd;
    }
  }
  else {
LAB_0017a0d8:
    var_5 = 0x10;
  }
LAB_0017a0de:
  var_30(var_2);
LAB_00179c52:
  if (var_31 != *(long *)(var_1 + 0x28)) {
                    /* WARNING: Subroutine does not return */
    var_32();
  }
  return var_5;
LAB_0017a52f:
  var_5 = var_33(h,(int)var_24,prng,wprng);
  if (var_5 != 0) goto LAB_0017a050;
  var_5 = (**(type_8 **)(var_19 + 0x58))(h,pvVar5);
  if (((var_5 == -1) && (var_5 = (**(type_8 **)(var_19 + 0x60))(h,2), var_5 == 1)) &&
     ((var_5 = (**(type_8 **)(var_19 + 0xc0))(h,1,h), var_5 != 0 ||
      ((var_5 = (**(type_8 **)(var_19 + 0x140))(h,e,pvVar5,pvVar3), var_5 != 0 ||
       (var_34 = (**(type_8 **)(var_19 + 0x60))(pvVar3,1), var_34 != 0))))))
  goto LAB_0017a050;
  goto LAB_0017a52f;
}


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

int MASKED(undefined8 param_1,int param_2,int param_3,int param_4,long param_5)

{
  ulong uVar1;
  undefined8 uVar2;
  undefined8 uVar3;
  undefined8 uVar4;
  ulong uVar5;
  undefined *puVar6;
  int iVar7;
  int iVar8;
  ulong uVar9;
  void *__ptr;
  void *__ptr_00;
  ulong uVar10;
  size_t sVar11;
  size_t __size;
  size_t __size_00;
  void *pvVar12;
  long in_FS_OFFSET;
  int local_1cc;
  undefined4 local_1c8;
  int local_1c4;
  ulong local_150;
  int local_12c;
  ulong local_128;
  undefined8 local_120;
  undefined8 local_118;
  undefined8 local_110;
  undefined8 local_108;
  undefined8 local_100;
  undefined8 local_f8;
  undefined8 local_f0;
  undefined8 local_e8;
  undefined8 local_e0;
  undefined8 local_d8;
  undefined8 local_d0;
  undefined1 local_c8 [136];
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (param_5 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/dsa/MASKED.c",0xda);
  }
  if (*(long *)PTR_ltc_mp_001ddec0 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("ltc_mp.name != NULL","src/pk/dsa/MASKED.c",0xdb);
  }
  iVar7 = ltc_init_multi(param_5 + 0x18,param_5 + 8,param_5 + 0x10,param_5 + 0x20,param_5 + 0x28,0);
  if (iVar7 != 0) goto LAB_00179c52;
  if ((param_3 - 1U < 0x1ff) && (param_3 < param_4)) {
    __size = (size_t)param_3;
    local_1c4 = 0x28;
    uVar10 = (long)param_4 * 8;
    uVar1 = __size * 8;
    if (0x400 < uVar10) {
      local_1c4 = (-(uint)(uVar10 < 0x801) & 0xfffffff8) + 0x40;
    }
    uVar2 = *(undefined8 *)(param_5 + 8);
    uVar3 = *(undefined8 *)(param_5 + 0x10);
    uVar4 = *(undefined8 *)(param_5 + 0x18);
    if (uVar1 < 0xa1) {
      local_1c8 = 0x28;
LAB_00179d0a:
      local_1cc = register_hash(PTR_sha256_desc_001ddf70);
    }
    else {
      if (uVar1 < 0xe1) {
        local_1c8 = 0x38;
        goto LAB_00179d0a;
      }
      if (uVar1 < 0x101) {
        local_1c8 = 0x40;
        goto LAB_00179d0a;
      }
      if (uVar1 < 0x181) {
        local_1cc = register_hash(PTR_sha384_desc_001ddfa8);
        local_1c8 = 0x40;
      }
      else {
        if (0x200 < uVar1) goto LAB_0017a0d8;
        local_1cc = register_hash(PTR_sha512_desc_001ddfa0);
        local_1c8 = 0x40;
      }
    }
    iVar7 = hash_is_valid(local_1cc);
    if (iVar7 == 0) {
      uVar5 = *(ulong *)(PTR_hash_descriptor_001dde98 + (long)local_1cc * 0xd0 + 0x10);
      uVar9 = ((uVar10 - 1) + uVar5 * 8) / (uVar5 * 8);
      __size_00 = uVar5 * uVar9;
      __ptr = malloc(__size_00);
      if (__ptr != (void *)0x0) {
        __ptr_00 = malloc(__size);
        if (__ptr_00 != (void *)0x0) {
          iVar7 = ltc_init_multi(&local_120,&local_118,&local_110,&local_108,&local_100,&local_f8,
                                 &local_f0,&local_e8,&local_e0,&local_d8,&local_d0,0);
          if (iVar7 == 0) {
            iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_120,(int)uVar10 + -1);
            if (((iVar7 == 0) &&
                (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_118,(int)uVar1 + -1),
                iVar7 == 0)) &&
               (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x78))(local_108,param_3 * 8),
               puVar6 = PTR_prng_descriptor_001ddf90, iVar7 == 0)) {
              uVar9 = uVar9 - 1;
              while( true ) {
                do {
                  sVar11 = (**(code **)(puVar6 + (long)param_2 * 0x50 + 0x28))
                                     (__ptr_00,__size,param_1);
                  if (__size != sVar11) {
                    iVar7 = 9;
                    goto LAB_0017a050;
                  }
                  local_128 = uVar5;
                  iVar7 = hash_memory(local_1cc,__ptr_00,__size,local_c8,&local_128);
                  if (((iVar7 != 0) ||
                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_100,local_c8,uVar5),
                      iVar7 != 0)) ||
                     ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                         (local_100,local_118,0,local_100), iVar7 != 0 ||
                      (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(local_118,local_100,uVar3),
                      iVar7 != 0)))) goto LAB_0017a050;
                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x50))(uVar3);
                  if ((iVar7 < 1) ||
                     (uVar10 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x48))(uVar3,0), (uVar10 & 1) == 0
                     )) {
                    (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(uVar3,1,uVar3);
                  }
                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar3,local_1c8,&local_12c);
                  if (iVar7 != 0) goto LAB_0017a050;
                } while (local_12c != 1);
                iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_d0,__ptr_00,__size);
                if ((iVar7 != 0) ||
                   (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))(uVar3,uVar3,local_110),
                   iVar7 != 0)) break;
                local_150 = 0;
                do {
                  uVar10 = 0;
                  pvVar12 = (void *)(uVar5 * uVar9 + (long)__ptr);
                  do {
                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb0))(local_d0,1,local_d0);
                    if ((iVar7 != 0) ||
                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                          (local_d0,local_108,0,local_d0), iVar7 != 0))
                    goto LAB_0017a050;
                    local_128 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x90))(local_d0);
                    if (__size < local_128) {
                      iVar7 = 0x10;
                      goto LAB_0017a050;
                    }
                    zeromem(__ptr_00,__size);
                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x98))
                                      (local_d0,(__size - local_128) + (long)__ptr_00);
                    if ((iVar7 != 0) ||
                       (local_128 = uVar5,
                       iVar7 = hash_memory(local_1cc,__ptr_00,__size,pvVar12,&local_128), iVar7 != 0
                       )) goto LAB_0017a050;
                    uVar10 = uVar10 + 1;
                    pvVar12 = (void *)((long)pvVar12 - uVar5);
                  } while (uVar10 <= uVar9);
                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa0))(local_f8,__ptr,__size_00);
                  if (((((iVar7 != 0) ||
                        (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                           (local_f8,local_120,0,local_f8), iVar7 != 0)) ||
                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xa8))
                                          (local_f8,local_120,local_f0), iVar7 != 0)) ||
                      ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                          (local_f0,local_110,0,local_e8), iVar7 != 0 ||
                       (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e8,1,uVar4),
                       iVar7 != 0)))) ||
                     (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xb8))(local_f0,uVar4,uVar4),
                     iVar7 != 0)) goto LAB_0017a050;
                  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(uVar4,local_120);
                  if (iVar7 != -1) {
                    iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x148))(uVar4,local_1c4,&local_12c);
                    if (iVar7 != 0) goto LAB_0017a050;
                    if (local_12c == 1) {
                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(uVar4,1,local_d8);
                      if ((iVar7 != 0) ||
                         (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xe0))
                                            (local_d8,uVar3,local_d8,local_e8), iVar7 != 0))
                      goto LAB_0017a050;
                      iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x68))(uVar4);
                      local_128 = (ulong)iVar7;
                      goto LAB_0017a52f;
                    }
                  }
                  local_150 = local_150 + 1;
                } while (local_150 < (ulong)((long)param_4 << 5));
              }
            }
LAB_0017a050:
            ltc_deinit_multi(local_120,local_118,local_110,local_108,local_100,local_f8,local_f0,
                             local_e8,local_e0,local_d8,local_d0,0);
          }
          free(__ptr_00);
          free(__ptr);
          if (iVar7 == 0) {
            *(int *)(param_5 + 4) = param_3;
            goto LAB_00179c52;
          }
          goto LAB_0017a0de;
        }
        free(__ptr);
      }
      iVar7 = 0xd;
    }
  }
  else {
LAB_0017a0d8:
    iVar7 = 0x10;
  }
LAB_0017a0de:
  dsa_free(param_5);
LAB_00179c52:
  if (local_40 != *(long *)(in_FS_OFFSET + 0x28)) {
                    /* WARNING: Subroutine does not return */
    __stack_chk_fail();
  }
  return iVar7;
LAB_0017a52f:
  iVar7 = rand_bn_bits(local_e0,local_128 & 0xffffffff,param_1,param_2);
  if (iVar7 != 0) goto LAB_0017a050;
  iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x58))(local_e0,uVar4);
  if (((iVar7 == -1) && (iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(local_e0,2), iVar7 == 1))
     && ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0xc0))(local_e0,1,local_e0), iVar7 != 0 ||
         ((iVar7 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x140))(local_e0,local_d8,uVar4,uVar2),
          iVar7 != 0 || (iVar8 = (**(code **)(PTR_ltc_mp_001ddec0 + 0x60))(uVar2,1), iVar8 != 0)))))
     ) goto LAB_0017a050;
  goto LAB_0017a52f;
}

