
int dsa_encrypt_key(uchar *in,ulong inlen,uchar *out,ulong *outlen,prng_state *prng,int wprng,
                   int hash,dsa_key *key)

{
  byte *pbVar1;
  ulong *puVar2;
  ulong uVar3;
  ulong uVar4;
  ulong uVar5;
  ulong uVar6;
  ulong uVar7;
  ulong uVar8;
  ulong uVar9;
  ulong uVar10;
  ulong uVar11;
  ulong uVar12;
  ulong uVar13;
  ulong uVar14;
  ulong uVar15;
  ulong uVar16;
  ulong uVar17;
  ulong uVar18;
  ulong uVar19;
  ulong uVar20;
  ulong uVar21;
  ulong uVar22;
  ulong uVar23;
  ulong uVar24;
  ulong uVar25;
  ulong uVar26;
  ulong uVar27;
  ulong uVar28;
  ulong uVar29;
  ulong uVar30;
  ulong uVar31;
  ulong uVar32;
  int iVar33;
  long lVar34;
  uchar *out_00;
  ulong *out_01;
  ulong uVar35;
  uint uVar36;
  long in_FS_OFFSET;
  void *g_pub;
  void *g_priv;
  ulong x;
  ulong y;
  long local_40;
  
  local_40 = *(long *)(in_FS_OFFSET + 0x28);
  if (in == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);
  }
  if (out == (uchar *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);
  }
  if (outlen == (ulong *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);
  }
  if (key == (dsa_key *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);
  }
  iVar33 = prng_is_valid(wprng);
  if ((iVar33 != 0) || (iVar33 = hash_is_valid(hash), iVar33 != 0)) goto LAB_0018654c;
  iVar33 = 0xb;
  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10) < inlen) ||
     (iVar33 = ltc_init_multi(&g_pub,&g_priv,0), iVar33 != 0)) goto LAB_0018654c;
  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);
  out_00 = (uchar *)malloc(lVar34 + 1);
  out_01 = (ulong *)malloc(0x80);
  if ((out_00 == (uchar *)0x0) || (out_01 == (ulong *)0x0)) {
    if (out_00 != (uchar *)0x0) {
      free(out_00);
    }
    if (out_01 != (ulong *)0x0) {
      free(out_01);
    }
    ltc_deinit_multi(g_pub,g_priv,0);
    iVar33 = 0xd;
    goto LAB_0018654c;
  }
  iVar33 = rand_bn_upto(g_priv,key->q,prng,wprng);
  if ((iVar33 == 0) &&
     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub), iVar33 == 0))
  {
    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);
    x = lVar34 + 1;
    iVar33 = dsa_shared_secret(g_priv,key->y,key,out_00,&x);
    if (iVar33 == 0) {
      y = 0x80;
      iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y);
      if (iVar33 == 0) {
        x = 0;
        if (inlen != 0) {
          x = inlen;
          if (inlen - 1 < 0xf) {
            uVar35 = 0;
          }
          else {
            uVar35 = 0;
            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;
            if (uVar36 == 0) goto LAB_00186826;
            if (uVar36 != 1) {
              if (uVar36 != 2) {
                if (uVar36 != 3) {
                  if (uVar36 != 4) {
                    if (uVar36 != 5) {
                      if (uVar36 != 6) {
                        uVar3 = *(ulong *)(in + 8);
                        uVar35 = 0x10;
                        *out_01 = *out_01 ^ *(ulong *)in;
                        out_01[1] = out_01[1] ^ uVar3;
                      }
                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];
                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);
                      *(ulong *)((long)out_01 + uVar35) =
                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);
                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;
                      uVar35 = uVar35 + 0x10;
                    }
                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];
                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);
                    *(ulong *)((long)out_01 + uVar35) =
                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);
                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;
                    uVar35 = uVar35 + 0x10;
                  }
                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];
                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);
                  *(ulong *)((long)out_01 + uVar35) =
                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);
                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;
                  uVar35 = uVar35 + 0x10;
                }
                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];
                uVar4 = *(ulong *)((long)(in + uVar35) + 8);
                *(ulong *)((long)out_01 + uVar35) =
                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);
                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;
                uVar35 = uVar35 + 0x10;
              }
              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];
              uVar4 = *(ulong *)((long)(in + uVar35) + 8);
              *(ulong *)((long)out_01 + uVar35) =
                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);
              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;
              uVar35 = uVar35 + 0x10;
            }
            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];
            uVar4 = *(ulong *)((long)(in + uVar35) + 8);
            *(ulong *)((long)out_01 + uVar35) =
                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);
            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;
            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);
                uVar35 = uVar35 + 0x80) {
LAB_00186826:
              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);
              uVar5 = *puVar2;
              uVar6 = puVar2[1];
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);
              uVar9 = *puVar2;
              uVar10 = puVar2[1];
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);
              uVar13 = *puVar2;
              uVar14 = puVar2[1];
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);
              uVar17 = *puVar2;
              uVar18 = puVar2[1];
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);
              uVar21 = *puVar2;
              uVar22 = puVar2[1];
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);
              uVar25 = *puVar2;
              uVar26 = puVar2[1];
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);
              uVar29 = *puVar2;
              uVar30 = puVar2[1];
              uVar4 = *(ulong *)((long)(in + uVar35) + 8);
              uVar7 = *(ulong *)(in + uVar35 + 0x10);
              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);
              uVar11 = *(ulong *)(in + uVar35 + 0x20);
              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);
              uVar15 = *(ulong *)(in + uVar35 + 0x30);
              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);
              uVar19 = *(ulong *)(in + uVar35 + 0x40);
              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);
              uVar23 = *(ulong *)(in + uVar35 + 0x50);
              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);
              uVar27 = *(ulong *)(in + uVar35 + 0x60);
              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);
              uVar31 = *(ulong *)(in + uVar35 + 0x70);
              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);
              *(ulong *)((long)out_01 + uVar35) =
                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);
              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);
              *puVar2 = uVar5 ^ uVar7;
              puVar2[1] = uVar6 ^ uVar8;
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);
              *puVar2 = uVar9 ^ uVar11;
              puVar2[1] = uVar10 ^ uVar12;
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);
              *puVar2 = uVar13 ^ uVar15;
              puVar2[1] = uVar14 ^ uVar16;
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);
              *puVar2 = uVar17 ^ uVar19;
              puVar2[1] = uVar18 ^ uVar20;
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);
              *puVar2 = uVar21 ^ uVar23;
              puVar2[1] = uVar22 ^ uVar24;
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);
              *puVar2 = uVar25 ^ uVar27;
              puVar2[1] = uVar26 ^ uVar28;
              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);
              *puVar2 = uVar29 ^ uVar31;
              puVar2[1] = uVar30 ^ uVar32;
            }
            uVar35 = inlen & 0xfffffffffffffff0;
            if (inlen == uVar35) goto LAB_00186a3d;
          }
          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];
          if (uVar35 + 1 < inlen) {
            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);
            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];
            if (uVar35 + 2 < inlen) {
              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);
              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];
              if (uVar35 + 3 < inlen) {
                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);
                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];
                if (uVar35 + 4 < inlen) {
                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);
                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];
                  if (uVar35 + 5 < inlen) {
                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);
                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];
                    if (uVar35 + 6 < inlen) {
                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);
                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];
                      if (uVar35 + 7 < inlen) {
                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);
                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];
                        if (uVar35 + 8 < inlen) {
                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);
                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];
                          if (uVar35 + 9 < inlen) {
                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);
                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];
                            if (uVar35 + 10 < inlen) {
                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);
                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];
                              if (uVar35 + 0xb < inlen) {
                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);
                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];
                                if (uVar35 + 0xc < inlen) {
                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);
                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];
                                  if (uVar35 + 0xd < inlen) {
                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);
                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];
                                    if (uVar35 + 0xe < inlen) {
                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);
                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
LAB_00186a3d:
        lVar34 = (long)hash * 0xd0;
        iVar33 = der_encode_sequence_multi
                           (out,outlen,7,
                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),
                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,
                            0,0);
      }
    }
  }
  free(out_01);
  free(out_00);
  ltc_deinit_multi(g_pub,g_priv,0);
LAB_0018654c:
  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar33;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}



/* WARNING: Type propagation algorithm not settling */

int dsa_encrypt_key(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,
                   undefined4 param_6,int param_7,long param_8)

{
  byte *pbVar1;
  ulong *puVar2;
  ulong uVar3;
  ulong uVar4;
  ulong uVar5;
  ulong uVar6;
  ulong uVar7;
  ulong uVar8;
  ulong uVar9;
  ulong uVar10;
  ulong uVar11;
  ulong uVar12;
  ulong uVar13;
  ulong uVar14;
  ulong uVar15;
  ulong uVar16;
  ulong uVar17;
  ulong uVar18;
  ulong uVar19;
  ulong uVar20;
  ulong uVar21;
  ulong uVar22;
  ulong uVar23;
  ulong uVar24;
  ulong uVar25;
  ulong uVar26;
  ulong uVar27;
  ulong uVar28;
  ulong uVar29;
  ulong uVar30;
  ulong uVar31;
  ulong uVar32;
  int iVar33;
  long lVar34;
  void *__ptr;
  ulong *__ptr_00;
  ulong uVar35;
  uint uVar36;
  long in_FS_OFFSET;
  undefined8 local_60;
  undefined8 local_58;
  ulong local_50 [4];
  
  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == (ulong *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);
  }
  if (param_4 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);
  }
  if (param_8 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);
  }
  iVar33 = prng_is_valid(param_6);
  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;
  iVar33 = 0xb;
  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||
     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;
  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));
  __ptr = malloc(lVar34 + 1);
  __ptr_00 = (ulong *)malloc(0x80);
  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {
    if (__ptr != (void *)0x0) {
      free(__ptr);
    }
    if (__ptr_00 != (ulong *)0x0) {
      free(__ptr_00);
    }
    ltc_deinit_multi(local_60,local_58,0);
    iVar33 = 0xd;
    goto LAB_0018654c;
  }
  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);
  if ((iVar33 == 0) &&
     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))
                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),
                          local_60), iVar33 == 0)) {
    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));
    local_50[0] = lVar34 + 1;
    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);
    if (iVar33 == 0) {
      local_50[1] = 0x80;
      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);
      if (iVar33 == 0) {
        local_50[0] = 0;
        if (param_2 != 0) {
          local_50[0] = param_2;
          if (param_2 - 1 < 0xf) {
            uVar35 = 0;
          }
          else {
            uVar35 = 0;
            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;
            if (uVar36 == 0) goto LAB_00186826;
            if (uVar36 != 1) {
              if (uVar36 != 2) {
                if (uVar36 != 3) {
                  if (uVar36 != 4) {
                    if (uVar36 != 5) {
                      if (uVar36 != 6) {
                        uVar3 = param_1[1];
                        uVar35 = 0x10;
                        *__ptr_00 = *__ptr_00 ^ *param_1;
                        __ptr_00[1] = __ptr_00[1] ^ uVar3;
                      }
                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
                      *(ulong *)((long)__ptr_00 + uVar35) =
                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
                      uVar35 = uVar35 + 0x10;
                    }
                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
                    *(ulong *)((long)__ptr_00 + uVar35) =
                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
                    uVar35 = uVar35 + 0x10;
                  }
                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
                  *(ulong *)((long)__ptr_00 + uVar35) =
                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
                  uVar35 = uVar35 + 0x10;
                }
                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
                *(ulong *)((long)__ptr_00 + uVar35) =
                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
                uVar35 = uVar35 + 0x10;
              }
              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
              *(ulong *)((long)__ptr_00 + uVar35) =
                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
              uVar35 = uVar35 + 0x10;
            }
            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
            *(ulong *)((long)__ptr_00 + uVar35) =
                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);
                uVar35 = uVar35 + 0x80) {
LAB_00186826:
              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);
              uVar5 = *puVar2;
              uVar6 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);
              uVar9 = *puVar2;
              uVar10 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);
              uVar13 = *puVar2;
              uVar14 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);
              uVar17 = *puVar2;
              uVar18 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);
              uVar21 = *puVar2;
              uVar22 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);
              uVar25 = *puVar2;
              uVar26 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);
              uVar29 = *puVar2;
              uVar30 = puVar2[1];
              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);
              uVar3 = *puVar2;
              uVar4 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);
              uVar11 = *puVar2;
              uVar12 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);
              uVar15 = *puVar2;
              uVar16 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);
              uVar19 = *puVar2;
              uVar20 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);
              uVar23 = *puVar2;
              uVar24 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);
              uVar27 = *puVar2;
              uVar28 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);
              uVar31 = *puVar2;
              uVar32 = puVar2[1];
              *(ulong *)((long)__ptr_00 + uVar35) =
                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);
              *puVar2 = uVar5 ^ uVar3;
              puVar2[1] = uVar6 ^ uVar4;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);
              *puVar2 = uVar9 ^ uVar11;
              puVar2[1] = uVar10 ^ uVar12;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);
              *puVar2 = uVar13 ^ uVar15;
              puVar2[1] = uVar14 ^ uVar16;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);
              *puVar2 = uVar17 ^ uVar19;
              puVar2[1] = uVar18 ^ uVar20;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);
              *puVar2 = uVar21 ^ uVar23;
              puVar2[1] = uVar22 ^ uVar24;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);
              *puVar2 = uVar25 ^ uVar27;
              puVar2[1] = uVar26 ^ uVar28;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);
              *puVar2 = uVar29 ^ uVar31;
              puVar2[1] = uVar30 ^ uVar32;
            }
            uVar35 = param_2 & 0xfffffffffffffff0;
            if (param_2 == uVar35) goto LAB_00186a3d;
          }
          *(byte *)((long)__ptr_00 + uVar35) =
               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);
          if (uVar35 + 1 < param_2) {
            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);
            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);
            if (uVar35 + 2 < param_2) {
              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);
              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);
              if (uVar35 + 3 < param_2) {
                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);
                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);
                if (uVar35 + 4 < param_2) {
                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);
                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);
                  if (uVar35 + 5 < param_2) {
                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);
                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);
                    if (uVar35 + 6 < param_2) {
                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);
                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);
                      if (uVar35 + 7 < param_2) {
                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);
                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);
                        if (uVar35 + 8 < param_2) {
                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);
                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);
                          if (uVar35 + 9 < param_2) {
                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);
                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);
                            if (uVar35 + 10 < param_2) {
                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);
                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);
                              if (uVar35 + 0xb < param_2) {
                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);
                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);
                                if (uVar35 + 0xc < param_2) {
                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);
                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);
                                  if (uVar35 + 0xd < param_2) {
                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);
                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);
                                    if (uVar35 + 0xe < param_2) {
                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);
                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
LAB_00186a3d:
        lVar34 = (long)param_7 * 0xd0;
        iVar33 = der_encode_sequence_multi
                           (param_3,param_4,7,
                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),
                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,
                            __ptr_00,0,0,0);
      }
    }
  }
  free(__ptr_00);
  free(__ptr);
  ltc_deinit_multi(local_60,local_58,0);
LAB_0018654c:
  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar33;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x58
MOV qword ptr [RSP],R8
MOV RBX,qword ptr [RSP + 0x98]
MOV RAX,qword ptr FS:[0x28]
MOV qword ptr [RSP + 0x48],RAX
XOR EAX,EAX
TEST RDI,RDI
JZ 0x00186b6a
MOV R13,RDX
TEST RDX,RDX
JZ 0x00186b52
MOV R14,RCX
TEST RCX,RCX
JZ 0x00186b3a
TEST RBX,RBX
JZ 0x00186b22
MOV RBP,RDI
MOV EDI,R9D
MOV R12D,R9D
MOV R15,RSI
CALL 0x001144b0
MOV R9D,EAX
TEST EAX,EAX
JZ 0x00186578
MOV RDX,qword ptr [RSP + 0x48]
XOR RDX,qword ptr FS:[0x28]
MOV EAX,R9D
JNZ 0x00186b82
ADD RSP,0x58
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV EDI,dword ptr [RSP + 0x90]
CALL 0x00113bd0
MOV R9D,EAX
TEST EAX,EAX
JNZ 0x0018654c
MOVSXD R9,dword ptr [RSP + 0x90]
MOV RSI,qword ptr [0x001ecea0]
LEA RAX,[R9 + R9*0x2]
MOV qword ptr [RSP + 0x10],R9
LEA RDX,[R9 + RAX*0x4]
MOV R9D,0xb
SHL RDX,0x4
CMP qword ptr [RDX + RSI*0x1 + 0x10],R15
JC 0x0018654c
LEA RSI,[RSP + 0x30]
LEA RDI,[RSP + 0x28]
XOR EDX,EDX
XOR EAX,EAX
CALL 0x001135b0
MOV R9D,EAX
TEST EAX,EAX
JNZ 0x0018654c
MOV RAX,qword ptr [0x001ecec8]
MOV RDI,qword ptr [RBX + 0x18]
CALL qword ptr [RAX + 0x90]
LEA RDI,[RAX + 0x1]
CALL 0x001141b0
MOV EDI,0x80
MOV qword ptr [RSP + 0x8],RAX
CALL 0x001141b0
CMP qword ptr [RSP + 0x8],0x0
MOV RDX,RAX
JZ 0x00186ad8
TEST RAX,RAX
MOV RCX,qword ptr [RSP + 0x10]
JZ 0x00186ad8
MOV RSI,qword ptr [RBX + 0x10]
MOV RDX,qword ptr [RSP]
MOV qword ptr [RSP + 0x18],RCX
MOV ECX,R12D
MOV RDI,qword ptr [RSP + 0x30]
MOV qword ptr [RSP + 0x10],RAX
CALL 0x00114820
MOV R10,qword ptr [RSP + 0x10]
TEST EAX,EAX
MOV R8D,EAX
JNZ 0x00186aa0
MOV R12,qword ptr [0x001ecec8]
MOV RDX,qword ptr [RBX + 0x18]
MOV qword ptr [RSP],R10
MOV RDI,qword ptr [RBX + 0x8]
MOV RCX,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RSP + 0x30]
CALL qword ptr [R12 + 0x140]
MOV R10,qword ptr [RSP]
TEST EAX,EAX
MOV R8D,EAX
JNZ 0x00186aa0
MOV RAX,qword ptr [0x001ecec8]
MOV RDI,qword ptr [RBX + 0x18]
CALL qword ptr [RAX + 0x90]
MOV R12,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RBX + 0x28]
LEA R8,[RSP + 0x38]
MOV RDI,qword ptr [RSP + 0x30]
ADD RAX,0x1
MOV RDX,RBX
MOV RCX,R12
MOV qword ptr [RSP + 0x38],RAX
CALL 0x00114a80
MOV R10,qword ptr [RSP]
TEST EAX,EAX
MOV R8D,EAX
JNZ 0x00186aa0
MOV RDX,qword ptr [RSP + 0x38]
LEA R8,[RSP + 0x40]
MOV RCX,R10
MOV RSI,R12
MOV qword ptr [RSP + 0x40],0x80
MOV EDI,dword ptr [RSP + 0x90]
CALL 0x00113310
MOV R10,qword ptr [RSP]
TEST EAX,EAX
MOV R8D,EAX
JNZ 0x00186aa0
TEST R15,R15
MOV RDI,qword ptr [RSP + 0x18]
MOV qword ptr [RSP + 0x38],0x0
JZ 0x00186a3d
LEA R8,[R15 + -0x1]
CMP R8,0xe
JBE 0x00186b1a
MOV RBX,R15
XOR EDX,EDX
AND RBX,-0x10
LEA R9,[RBX + -0x10]
SHR R9,0x4
ADD R9,0x1
AND R9D,0x7
JZ 0x00186826
CMP R9,0x1
JZ 0x00186802
CMP R9,0x2
JZ 0x001867e7
CMP R9,0x3
JZ 0x001867cc
CMP R9,0x4
JZ 0x001867b3
CMP R9,0x5
JZ 0x0018679a
CMP R9,0x6
JZ 0x00186781
MOVDQU XMM0,xmmword ptr [R10]
MOVDQU XMM1,xmmword ptr [RBP]
MOV EDX,0x10
PXOR XMM0,XMM1
MOVUPS xmmword ptr [R10],XMM0
MOVDQU XMM2,xmmword ptr [R10 + RDX*0x1]
MOVDQU XMM3,xmmword ptr [RBP + RDX*0x1]
PXOR XMM2,XMM3
MOVUPS xmmword ptr [R10 + RDX*0x1],XMM2
ADD RDX,0x10
MOVDQU XMM4,xmmword ptr [R10 + RDX*0x1]
MOVDQU XMM5,xmmword ptr [RBP + RDX*0x1]
PXOR XMM4,XMM5
MOVUPS xmmword ptr [R10 + RDX*0x1],XMM4
ADD RDX,0x10
MOVDQU XMM6,xmmword ptr [R10 + RDX*0x1]
MOVDQU XMM7,xmmword ptr [RBP + RDX*0x1]
PXOR XMM6,XMM7
MOVUPS xmmword ptr [R10 + RDX*0x1],XMM6
ADD RDX,0x10
MOVDQU XMM8,xmmword ptr [R10 + RDX*0x1]
MOVDQU XMM9,xmmword ptr [RBP + RDX*0x1]
PXOR XMM8,XMM9
MOVUPS xmmword ptr [R10 + RDX*0x1],XMM8
ADD RDX,0x10
MOVDQU XMM10,xmmword ptr [R10 + RDX*0x1]
MOVDQU XMM11,xmmword ptr [RBP + RDX*0x1]
PXOR XMM10,XMM11
MOVUPS xmmword ptr [R10 + RDX*0x1],XMM10
ADD RDX,0x10
MOVDQU XMM12,xmmword ptr [R10 + RDX*0x1]
MOVDQU XMM13,xmmword ptr [RBP + RDX*0x1]
PXOR XMM12,XMM13
MOVUPS xmmword ptr [R10 + RDX*0x1],XMM12
ADD RDX,0x10
CMP RDX,RBX
JZ 0x001868f1
MOVDQU XMM14,xmmword ptr [R10 + RDX*0x1]
MOVDQU XMM0,xmmword ptr [R10 + RDX*0x1 + 0x10]
MOVDQU XMM2,xmmword ptr [R10 + RDX*0x1 + 0x20]
MOVDQU XMM4,xmmword ptr [R10 + RDX*0x1 + 0x30]
MOVDQU XMM6,xmmword ptr [R10 + RDX*0x1 + 0x40]
MOVDQU XMM8,xmmword ptr [R10 + RDX*0x1 + 0x50]
MOVDQU XMM10,xmmword ptr [R10 + RDX*0x1 + 0x60]
MOVDQU XMM12,xmmword ptr [R10 + RDX*0x1 + 0x70]
MOVDQU XMM15,xmmword ptr [RBP + RDX*0x1]
MOVDQU XMM1,xmmword ptr [RBP + RDX*0x1 + 0x10]
MOVDQU XMM3,xmmword ptr [RBP + RDX*0x1 + 0x20]
MOVDQU XMM5,xmmword ptr [RBP + RDX*0x1 + 0x30]
MOVDQU XMM7,xmmword ptr [RBP + RDX*0x1 + 0x40]
PXOR XMM14,XMM15
PXOR XMM0,XMM1
MOVDQU XMM9,xmmword ptr [RBP + RDX*0x1 + 0x50]
MOVDQU XMM11,xmmword ptr [RBP + RDX*0x1 + 0x60]
MOVDQU XMM13,xmmword ptr [RBP + RDX*0x1 + 0x70]
PXOR XMM2,XMM3
PXOR XMM4,XMM5
PXOR XMM6,XMM7
PXOR XMM8,XMM9
MOVUPS xmmword ptr [R10 + RDX*0x1],XMM14
PXOR XMM10,XMM11
PXOR XMM12,XMM13
MOVUPS xmmword ptr [R10 + RDX*0x1 + 0x10],XMM0
MOVUPS xmmword ptr [R10 + RDX*0x1 + 0x20],XMM2
MOVUPS xmmword ptr [R10 + RDX*0x1 + 0x30],XMM4
MOVUPS xmmword ptr [R10 + RDX*0x1 + 0x40],XMM6
MOVUPS xmmword ptr [R10 + RDX*0x1 + 0x50],XMM8
MOVUPS xmmword ptr [R10 + RDX*0x1 + 0x60],XMM10
MOVUPS xmmword ptr [R10 + RDX*0x1 + 0x70],XMM12
SUB RDX,-0x80
CMP RDX,RBX
JNZ 0x00186826
MOV R11,R15
AND R11,-0x10
CMP R15,R11
JZ 0x00186a38
LEA RAX,[R11 + 0x1]
MOVZX ESI,byte ptr [RBP + R11*0x1]
XOR byte ptr [R10 + R11*0x1],SIL
CMP R15,RAX
JBE 0x00186a38
LEA R12,[R11 + 0x2]
MOVZX ECX,byte ptr [RBP + R11*0x1 + 0x1]
XOR byte ptr [R10 + RAX*0x1],CL
CMP R15,R12
JBE 0x00186a38
LEA RBX,[R11 + 0x3]
MOVZX R8D,byte ptr [RBP + R11*0x1 + 0x2]
XOR byte ptr [R10 + R12*0x1],R8B
CMP R15,RBX
JBE 0x00186a38
LEA RDX,[R11 + 0x4]
MOVZX R9D,byte ptr [RBP + R11*0x1 + 0x3]
XOR byte ptr [R10 + RBX*0x1],R9B
CMP R15,RDX
JBE 0x00186a38
LEA RAX,[R11 + 0x5]
MOVZX ESI,byte ptr [RBP + R11*0x1 + 0x4]
XOR byte ptr [R10 + RDX*0x1],SIL
CMP R15,RAX
JBE 0x00186a38
LEA R12,[R11 + 0x6]
MOVZX ECX,byte ptr [RBP + R11*0x1 + 0x5]
XOR byte ptr [R10 + RAX*0x1],CL
CMP R15,R12
JBE 0x00186a38
LEA RBX,[R11 + 0x7]
MOVZX R8D,byte ptr [RBP + R11*0x1 + 0x6]
XOR byte ptr [R10 + R12*0x1],R8B
CMP R15,RBX
JBE 0x00186a38
LEA RDX,[R11 + 0x8]
MOVZX R9D,byte ptr [RBP + R11*0x1 + 0x7]
XOR byte ptr [R10 + RBX*0x1],R9B
CMP R15,RDX
JBE 0x00186a38
LEA RAX,[R11 + 0x9]
MOVZX ESI,byte ptr [RBP + R11*0x1 + 0x8]
XOR byte ptr [R10 + RDX*0x1],SIL
CMP R15,RAX
JBE 0x00186a38
LEA R12,[R11 + 0xa]
MOVZX ECX,byte ptr [RBP + R11*0x1 + 0x9]
XOR byte ptr [R10 + RAX*0x1],CL
CMP R15,R12
JBE 0x00186a38
LEA RBX,[R11 + 0xb]
MOVZX R8D,byte ptr [RBP + R11*0x1 + 0xa]
XOR byte ptr [R10 + R12*0x1],R8B
CMP R15,RBX
JBE 0x00186a38
LEA RDX,[R11 + 0xc]
MOVZX R9D,byte ptr [RBP + R11*0x1 + 0xb]
XOR byte ptr [R10 + RBX*0x1],R9B
CMP R15,RDX
JBE 0x00186a38
LEA RAX,[R11 + 0xd]
MOVZX ESI,byte ptr [RBP + R11*0x1 + 0xc]
XOR byte ptr [R10 + RDX*0x1],SIL
CMP R15,RAX
JBE 0x00186a38
LEA R12,[R11 + 0xe]
MOVZX ECX,byte ptr [RBP + R11*0x1 + 0xd]
XOR byte ptr [R10 + RAX*0x1],CL
CMP R15,R12
JBE 0x00186a38
MOVZX EBP,byte ptr [RBP + R11*0x1 + 0xe]
XOR byte ptr [R10 + R12*0x1],BPL
NOP dword ptr [RAX]
MOV qword ptr [RSP + 0x38],R15
PUSH 0x0
LEA R11,[RDI + RDI*0x2]
MOV R9D,0x2
MOV RSI,R14
PUSH 0x0
LEA RDI,[RDI + R11*0x4]
MOV EDX,0x7
XOR EAX,EAX
PUSH 0x0
SHL RDI,0x4
PUSH R10
MOV qword ptr [RSP + 0x20],R10
MOV R10,qword ptr [0x001ecea0]
PUSH R15
PUSH 0x5
LEA R8,[RDI + R10*0x1 + 0x20]
PUSH qword ptr [RSP + 0x58]
PUSH 0x1
MOV RCX,qword ptr [RDI + R10*0x1 + 0xa0]
MOV RDI,R13
CALL 0x00114950
ADD RSP,0x40
MOV R10,qword ptr [RSP]
MOV R8D,EAX
NOP word ptr [RAX + RAX*0x1]
MOV RDI,R10
MOV dword ptr [RSP],R8D
CALL 0x00113130
MOV RDI,qword ptr [RSP + 0x8]
CALL 0x00113130
MOV RSI,qword ptr [RSP + 0x30]
XOR EDX,EDX
XOR EAX,EAX
MOV RDI,qword ptr [RSP + 0x28]
CALL 0x00113330
MOV R9D,dword ptr [RSP]
JMP 0x0018654c
MOV RDI,qword ptr [RSP + 0x8]
TEST RDI,RDI
JZ 0x00186aef
MOV qword ptr [RSP],RDX
CALL 0x00113130
MOV RDX,qword ptr [RSP]
TEST RDX,RDX
JZ 0x00186afc
MOV RDI,RDX
CALL 0x00113130
MOV RSI,qword ptr [RSP + 0x30]
MOV RDI,qword ptr [RSP + 0x28]
XOR EDX,EDX
XOR EAX,EAX
CALL 0x00113330
MOV R9D,0xd
JMP 0x0018654c
XOR R11D,R11D
JMP 0x00186901
MOV EDX,0x2b
LEA RSI,[0x1d54a6]
LEA RDI,[0x1d547d]
CALL 0x00114270
MOV EDX,0x2a
LEA RSI,[0x1d54a6]
LEA RDI,[0x1bd93a]
CALL 0x00114270
MOV EDX,0x29
LEA RSI,[0x1d54a6]
LEA RDI,[0x1b77e1]
CALL 0x00114270
MOV EDX,0x28
LEA RSI,[0x1d54a6]
LEA RDI,[0x1b77d0]
CALL 0x00114270
CALL 0x00113880
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nint dsa_encrypt_key(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)\n\n{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  void *__ptr;\n  ulong *__ptr_00;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50 [4];\n  \n  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (param_4 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(param_6);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n  __ptr = malloc(lVar34 + 1);\n  __ptr_00 = (ulong *)malloc(0x80);\n  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }\n  free(__ptr_00);\n  free(__ptr);\n  ltc_deinit_multi(local_60,local_58,0);\nLAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" comment (function_definition "int dsa_encrypt_key(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)\n\n{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  void *__ptr;\n  ulong *__ptr_00;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50 [4];\n  \n  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (param_4 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(param_6);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n  __ptr = malloc(lVar34 + 1);\n  __ptr_00 = (ulong *)malloc(0x80);\n  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }\n  free(__ptr_00);\n  free(__ptr);\n  ltc_deinit_multi(local_60,local_58,0);\nLAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "dsa_encrypt_key(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)" identifier (parameter_list "(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)" ( (parameter_declaration "ulong *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  void *__ptr;\n  ulong *__ptr_00;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50 [4];\n  \n  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (param_4 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(param_6);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n  __ptr = malloc(lVar34 + 1);\n  __ptr_00 = (ulong *)malloc(0x80);\n  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }\n  free(__ptr_00);\n  free(__ptr);\n  ltc_deinit_multi(local_60,local_58,0);\nLAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "ulong *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "ulong uVar22;" type_identifier identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "ulong uVar25;" type_identifier identifier ;) (declaration "ulong uVar26;" type_identifier identifier ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "ulong uVar28;" type_identifier identifier ;) (declaration "ulong uVar29;" type_identifier identifier ;) (declaration "ulong uVar30;" type_identifier identifier ;) (declaration "ulong uVar31;" type_identifier identifier ;) (declaration "ulong uVar32;" type_identifier identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "long lVar34;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "ulong *__ptr_00;" type_identifier (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "ulong uVar35;" type_identifier identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "ulong local_50 [4];" type_identifier (array_declarator "local_50 [4]" identifier [ number_literal ]) ;) (expression_statement "local_50[2] = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_50[2] = *(long *)(in_FS_OFFSET + 0x28)" (subscript_expression "local_50[2]" identifier [ number_literal ]) = (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_1 == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }" if (parenthesized_expression "(param_1 == (ulong *)0x0)" ( (binary_expression "param_1 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }" { comment (expression_statement "crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);" (call_expression "crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28)" identifier (argument_list "("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_3 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }" { comment (expression_statement "crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);" (call_expression "crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29)" identifier (argument_list "("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_4 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }" { comment (expression_statement "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);" (call_expression "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a)" identifier (argument_list "("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a)" ( (string_literal ""outlen != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_8 == 0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }" { comment (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar33 = prng_is_valid(param_6);" (assignment_expression "iVar33 = prng_is_valid(param_6)" identifier = (call_expression "prng_is_valid(param_6)" identifier (argument_list "(param_6)" ( identifier )))) ;) (if_statement "if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;" if (parenthesized_expression "((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0))" ( (binary_expression "(iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)" (parenthesized_expression "(iVar33 != 0)" ( (binary_expression "iVar33 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar33 = hash_is_valid(param_7), iVar33 != 0)" ( (comma_expression "iVar33 = hash_is_valid(param_7), iVar33 != 0" (assignment_expression "iVar33 = hash_is_valid(param_7)" identifier = (call_expression "hash_is_valid(param_7)" identifier (argument_list "(param_7)" ( identifier )))) , (binary_expression "iVar33 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0018654c;" goto statement_identifier ;)) (expression_statement "iVar33 = 0xb;" (assignment_expression "iVar33 = 0xb" identifier = number_literal) ;) (if_statement "if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;" if (parenthesized_expression "((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0))" ( (binary_expression "(*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)" (parenthesized_expression "(*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2)" ( (binary_expression "*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2" (pointer_expression "*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10)" * (cast_expression "(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10)" ( (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0" identifier + (binary_expression "(long)param_7 * 0xd0" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) )))) < identifier) )) || (parenthesized_expression "(iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)" ( (comma_expression "iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0" (assignment_expression "iVar33 = ltc_init_multi(&local_60,&local_58,0)" identifier = (call_expression "ltc_init_multi(&local_60,&local_58,0)" identifier (argument_list "(&local_60,&local_58,0)" ( (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_58" & identifier) , number_literal )))) , (binary_expression "iVar33 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0018654c;" goto statement_identifier ;)) (expression_statement "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));" (assignment_expression "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x90)" ( (binary_expression "PTR_ltc_mp_001ecec8 + 0x90" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_8 + 0x18))" ( (pointer_expression "*(undefined8 *)(param_8 + 0x18)" * (cast_expression "(undefined8 *)(param_8 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x18)" ( (binary_expression "param_8 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "__ptr = malloc(lVar34 + 1);" (assignment_expression "__ptr = malloc(lVar34 + 1)" identifier = (call_expression "malloc(lVar34 + 1)" identifier (argument_list "(lVar34 + 1)" ( (binary_expression "lVar34 + 1" identifier + number_literal) )))) ;) (expression_statement "__ptr_00 = (ulong *)malloc(0x80);" (assignment_expression "__ptr_00 = (ulong *)malloc(0x80)" identifier = (cast_expression "(ulong *)malloc(0x80)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (if_statement "if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }" if (parenthesized_expression "((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0))" ( (binary_expression "(__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)" (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)) )) || (parenthesized_expression "(__ptr_00 == (ulong *)0x0)" ( (binary_expression "__ptr_00 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }" { (if_statement "if (__ptr != (void *)0x0) {\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      free(__ptr);\n    }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (if_statement "if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }" if (parenthesized_expression "(__ptr_00 != (ulong *)0x0)" ( (binary_expression "__ptr_00 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr_00);\n    }" { (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) })) (expression_statement "ltc_deinit_multi(local_60,local_58,0);" (call_expression "ltc_deinit_multi(local_60,local_58,0)" identifier (argument_list "(local_60,local_58,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar33 = 0xd;" (assignment_expression "iVar33 = 0xd" identifier = number_literal) ;) (goto_statement "goto LAB_0018654c;" goto statement_identifier ;) })) (expression_statement "iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);" (assignment_expression "iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6)" identifier = (call_expression "rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6)" identifier (argument_list "(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6)" ( identifier , (pointer_expression "*(undefined8 *)(param_8 + 0x10)" * (cast_expression "(undefined8 *)(param_8 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x10)" ( (binary_expression "param_8 + 0x10" identifier + number_literal) )))) , identifier , identifier )))) ;) (if_statement "if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }" if (parenthesized_expression "((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0))" ( (binary_expression "(iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)" (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)" ( (comma_expression "iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0" (assignment_expression "iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ecec8 + 0x140" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60)" ( (pointer_expression "*(undefined8 *)(param_8 + 8)" * (cast_expression "(undefined8 *)(param_8 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 8)" ( (binary_expression "param_8 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined8 *)(param_8 + 0x18)" * (cast_expression "(undefined8 *)(param_8 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x18)" ( (binary_expression "param_8 + 0x18" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar33 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }" { (expression_statement "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));" (assignment_expression "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x90)" ( (binary_expression "PTR_ltc_mp_001ecec8 + 0x90" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_8 + 0x18))" ( (pointer_expression "*(undefined8 *)(param_8 + 0x18)" * (cast_expression "(undefined8 *)(param_8 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x18)" ( (binary_expression "param_8 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "local_50[0] = lVar34 + 1;" (assignment_expression "local_50[0] = lVar34 + 1" (subscript_expression "local_50[0]" identifier [ number_literal ]) = (binary_expression "lVar34 + 1" identifier + number_literal)) ;) (expression_statement "iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);" (assignment_expression "iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50)" identifier = (call_expression "dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50)" identifier (argument_list "(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50)" ( identifier , (pointer_expression "*(undefined8 *)(param_8 + 0x28)" * (cast_expression "(undefined8 *)(param_8 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x28)" ( (binary_expression "param_8 + 0x28" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }" if (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) (compound_statement "{\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }" { (expression_statement "local_50[1] = 0x80;" (assignment_expression "local_50[1] = 0x80" (subscript_expression "local_50[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);" (assignment_expression "iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1)" identifier = (call_expression "hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1)" identifier (argument_list "(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1)" ( identifier , identifier , (subscript_expression "local_50[0]" identifier [ number_literal ]) , identifier , (binary_expression "local_50 + 1" identifier + number_literal) )))) ;) (if_statement "if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }" if (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) (compound_statement "{\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }" { (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_50[0] = param_2;" (assignment_expression "local_50[0] = param_2" (subscript_expression "local_50[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }" if (parenthesized_expression "(param_2 - 1 < 0xf)" ( (binary_expression "param_2 - 1 < 0xf" (binary_expression "param_2 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\n            uVar35 = 0;\n          }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }" else (compound_statement "{\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;" (assignment_expression "uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7" identifier = (binary_expression "(int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7" (binary_expression "(int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U" (cast_expression "(int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_2 & 0xfffffffffffffff0) - 0x10 >> 4)" ( (binary_expression "(param_2 & 0xfffffffffffffff0) - 0x10 >> 4" (binary_expression "(param_2 & 0xfffffffffffffff0) - 0x10" (parenthesized_expression "(param_2 & 0xfffffffffffffff0)" ( (binary_expression "param_2 & 0xfffffffffffffff0" identifier & number_literal) )) - number_literal) >> number_literal) ))) + number_literal) & number_literal)) ;) (if_statement "if (uVar36 == 0) goto LAB_00186826;" if (parenthesized_expression "(uVar36 == 0)" ( (binary_expression "uVar36 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00186826;" goto statement_identifier ;)) (if_statement "if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }" if (parenthesized_expression "(uVar36 != 1)" ( (binary_expression "uVar36 != 1" identifier != number_literal) )) (compound_statement "{\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }" { (if_statement "if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }" if (parenthesized_expression "(uVar36 != 2)" ( (binary_expression "uVar36 != 2" identifier != number_literal) )) (compound_statement "{\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }" { (if_statement "if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }" if (parenthesized_expression "(uVar36 != 3)" ( (binary_expression "uVar36 != 3" identifier != number_literal) )) (compound_statement "{\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }" { (if_statement "if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }" if (parenthesized_expression "(uVar36 != 4)" ( (binary_expression "uVar36 != 4" identifier != number_literal) )) (compound_statement "{\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }" { (if_statement "if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }" if (parenthesized_expression "(uVar36 != 5)" ( (binary_expression "uVar36 != 5" identifier != number_literal) )) (compound_statement "{\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }" { (if_statement "if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }" if (parenthesized_expression "(uVar36 != 6)" ( (binary_expression "uVar36 != 6" identifier != number_literal) )) (compound_statement "{\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }" { (expression_statement "uVar3 = param_1[1];" (assignment_expression "uVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar35 = 0x10;" (assignment_expression "uVar35 = 0x10" identifier = number_literal) ;) (expression_statement "*__ptr_00 = *__ptr_00 ^ *param_1;" (assignment_expression "*__ptr_00 = *__ptr_00 ^ *param_1" (pointer_expression "*__ptr_00" * identifier) = (binary_expression "*__ptr_00 ^ *param_1" (pointer_expression "*__ptr_00" * identifier) ^ (pointer_expression "*param_1" * identifier))) ;) (expression_statement "__ptr_00[1] = __ptr_00[1] ^ uVar3;" (assignment_expression "__ptr_00[1] = __ptr_00[1] ^ uVar3" (subscript_expression "__ptr_00[1]" identifier [ number_literal ]) = (binary_expression "__ptr_00[1] ^ uVar3" (subscript_expression "__ptr_00[1]" identifier [ number_literal ]) ^ identifier)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (for_statement "for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }" for ( (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ; (binary_expression "uVar35 != (param_2 & 0xfffffffffffffff0)" identifier != (parenthesized_expression "(param_2 & 0xfffffffffffffff0)" ( (binary_expression "param_2 & 0xfffffffffffffff0" identifier & number_literal) ))) ; (assignment_expression "uVar35 = uVar35 + 0x80" identifier = (binary_expression "uVar35 + 0x80" identifier + number_literal)) ) (compound_statement "{\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }" { (labeled_statement "LAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];" statement_identifier : (expression_statement "uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;)) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x10)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x10" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar5 = *puVar2;" (assignment_expression "uVar5 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar6 = puVar2[1];" (assignment_expression "uVar6 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x20)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x20" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar9 = *puVar2;" (assignment_expression "uVar9 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar10 = puVar2[1];" (assignment_expression "uVar10 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x30)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x30" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar13 = *puVar2;" (assignment_expression "uVar13 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar14 = puVar2[1];" (assignment_expression "uVar14 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x40)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x40" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar17 = *puVar2;" (assignment_expression "uVar17 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar18 = puVar2[1];" (assignment_expression "uVar18 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x50)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x50" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar21 = *puVar2;" (assignment_expression "uVar21 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar22 = puVar2[1];" (assignment_expression "uVar22 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x60)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x60" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar25 = *puVar2;" (assignment_expression "uVar25 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar26 = puVar2[1];" (assignment_expression "uVar26 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x70)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x70" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar29 = *puVar2;" (assignment_expression "uVar29 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar30 = puVar2[1];" (assignment_expression "uVar30 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar8 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x10)" ( (binary_expression "(long)param_1 + uVar35 + 0x10" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar3 = *puVar2;" (assignment_expression "uVar3 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar4 = puVar2[1];" (assignment_expression "uVar4 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x20)" ( (binary_expression "(long)param_1 + uVar35 + 0x20" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar11 = *puVar2;" (assignment_expression "uVar11 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar12 = puVar2[1];" (assignment_expression "uVar12 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x30)" ( (binary_expression "(long)param_1 + uVar35 + 0x30" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar15 = *puVar2;" (assignment_expression "uVar15 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar16 = puVar2[1];" (assignment_expression "uVar16 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x40)" ( (binary_expression "(long)param_1 + uVar35 + 0x40" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar19 = *puVar2;" (assignment_expression "uVar19 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar20 = puVar2[1];" (assignment_expression "uVar20 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x50)" ( (binary_expression "(long)param_1 + uVar35 + 0x50" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar23 = *puVar2;" (assignment_expression "uVar23 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar24 = puVar2[1];" (assignment_expression "uVar24 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x60)" ( (binary_expression "(long)param_1 + uVar35 + 0x60" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar27 = *puVar2;" (assignment_expression "uVar27 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar28 = puVar2[1];" (assignment_expression "uVar28 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x70)" ( (binary_expression "(long)param_1 + uVar35 + 0x70" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar31 = *puVar2;" (assignment_expression "uVar31 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar32 = puVar2[1];" (assignment_expression "uVar32 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar7 ^ uVar8" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x10)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x10" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar5 ^ uVar3;" (assignment_expression "*puVar2 = uVar5 ^ uVar3" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar5 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar6 ^ uVar4;" (assignment_expression "puVar2[1] = uVar6 ^ uVar4" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar6 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x20)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x20" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar9 ^ uVar11;" (assignment_expression "*puVar2 = uVar9 ^ uVar11" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar9 ^ uVar11" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar10 ^ uVar12;" (assignment_expression "puVar2[1] = uVar10 ^ uVar12" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar10 ^ uVar12" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x30)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x30" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar13 ^ uVar15;" (assignment_expression "*puVar2 = uVar13 ^ uVar15" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar13 ^ uVar15" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar14 ^ uVar16;" (assignment_expression "puVar2[1] = uVar14 ^ uVar16" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar14 ^ uVar16" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x40)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x40" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar17 ^ uVar19;" (assignment_expression "*puVar2 = uVar17 ^ uVar19" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar17 ^ uVar19" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar18 ^ uVar20;" (assignment_expression "puVar2[1] = uVar18 ^ uVar20" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar18 ^ uVar20" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x50)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x50" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar21 ^ uVar23;" (assignment_expression "*puVar2 = uVar21 ^ uVar23" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar21 ^ uVar23" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar22 ^ uVar24;" (assignment_expression "puVar2[1] = uVar22 ^ uVar24" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar22 ^ uVar24" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x60)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x60" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar25 ^ uVar27;" (assignment_expression "*puVar2 = uVar25 ^ uVar27" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar25 ^ uVar27" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar26 ^ uVar28;" (assignment_expression "puVar2[1] = uVar26 ^ uVar28" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar26 ^ uVar28" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x70)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x70" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar29 ^ uVar31;" (assignment_expression "*puVar2 = uVar29 ^ uVar31" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar29 ^ uVar31" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar30 ^ uVar32;" (assignment_expression "puVar2[1] = uVar30 ^ uVar32" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar30 ^ uVar32" identifier ^ identifier)) ;) })) (expression_statement "uVar35 = param_2 & 0xfffffffffffffff0;" (assignment_expression "uVar35 = param_2 & 0xfffffffffffffff0" identifier = (binary_expression "param_2 & 0xfffffffffffffff0" identifier & number_literal)) ;) (if_statement "if (param_2 == uVar35) goto LAB_00186a3d;" if (parenthesized_expression "(param_2 == uVar35)" ( (binary_expression "param_2 == uVar35" identifier == identifier) )) (goto_statement "goto LAB_00186a3d;" goto statement_identifier ;)) }))) (expression_statement "*(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);" (assignment_expression "*(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35)" (pointer_expression "*(byte *)((long)__ptr_00 + uVar35)" * (cast_expression "(byte *)((long)__ptr_00 + uVar35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35)" (pointer_expression "*(byte *)((long)__ptr_00 + uVar35)" * (cast_expression "(byte *)((long)__ptr_00 + uVar35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35)" * (cast_expression "(byte *)((long)param_1 + uVar35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (if_statement "if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(uVar35 + 1 < param_2)" ( (binary_expression "uVar35 + 1 < param_2" (binary_expression "uVar35 + 1" identifier + number_literal) < identifier) )) (compound_statement "{\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 1)" ( (binary_expression "(long)__ptr_00 + uVar35 + 1" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 1)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 1)" ( (binary_expression "(long)param_1 + uVar35 + 1" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(uVar35 + 2 < param_2)" ( (binary_expression "uVar35 + 2 < param_2" (binary_expression "uVar35 + 2" identifier + number_literal) < identifier) )) (compound_statement "{\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 2)" ( (binary_expression "(long)__ptr_00 + uVar35 + 2" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 2)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 2)" ( (binary_expression "(long)param_1 + uVar35 + 2" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(uVar35 + 3 < param_2)" ( (binary_expression "uVar35 + 3 < param_2" (binary_expression "uVar35 + 3" identifier + number_literal) < identifier) )) (compound_statement "{\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 3)" ( (binary_expression "(long)__ptr_00 + uVar35 + 3" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 3)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 3)" ( (binary_expression "(long)param_1 + uVar35 + 3" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(uVar35 + 4 < param_2)" ( (binary_expression "uVar35 + 4 < param_2" (binary_expression "uVar35 + 4" identifier + number_literal) < identifier) )) (compound_statement "{\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 4)" ( (binary_expression "(long)__ptr_00 + uVar35 + 4" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 4)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 4)" ( (binary_expression "(long)param_1 + uVar35 + 4" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(uVar35 + 5 < param_2)" ( (binary_expression "uVar35 + 5 < param_2" (binary_expression "uVar35 + 5" identifier + number_literal) < identifier) )) (compound_statement "{\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 5)" ( (binary_expression "(long)__ptr_00 + uVar35 + 5" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 5)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 5)" ( (binary_expression "(long)param_1 + uVar35 + 5" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar35 + 6 < param_2)" ( (binary_expression "uVar35 + 6 < param_2" (binary_expression "uVar35 + 6" identifier + number_literal) < identifier) )) (compound_statement "{\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 6)" ( (binary_expression "(long)__ptr_00 + uVar35 + 6" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 6)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 6)" ( (binary_expression "(long)param_1 + uVar35 + 6" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar35 + 7 < param_2)" ( (binary_expression "uVar35 + 7 < param_2" (binary_expression "uVar35 + 7" identifier + number_literal) < identifier) )) (compound_statement "{\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 7)" ( (binary_expression "(long)__ptr_00 + uVar35 + 7" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 7)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 7)" ( (binary_expression "(long)param_1 + uVar35 + 7" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar35 + 8 < param_2)" ( (binary_expression "uVar35 + 8 < param_2" (binary_expression "uVar35 + 8" identifier + number_literal) < identifier) )) (compound_statement "{\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 8)" ( (binary_expression "(long)__ptr_00 + uVar35 + 8" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 8)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 8)" ( (binary_expression "(long)param_1 + uVar35 + 8" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar35 + 9 < param_2)" ( (binary_expression "uVar35 + 9 < param_2" (binary_expression "uVar35 + 9" identifier + number_literal) < identifier) )) (compound_statement "{\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 9)" ( (binary_expression "(long)__ptr_00 + uVar35 + 9" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 9)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 9)" ( (binary_expression "(long)param_1 + uVar35 + 9" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar35 + 10 < param_2)" ( (binary_expression "uVar35 + 10 < param_2" (binary_expression "uVar35 + 10" identifier + number_literal) < identifier) )) (compound_statement "{\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 10)" ( (binary_expression "(long)__ptr_00 + uVar35 + 10" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 10)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 10)" ( (binary_expression "(long)param_1 + uVar35 + 10" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }" if (parenthesized_expression "(uVar35 + 0xb < param_2)" ( (binary_expression "uVar35 + 0xb < param_2" (binary_expression "uVar35 + 0xb" identifier + number_literal) < identifier) )) (compound_statement "{\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xb)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0xb" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xb)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0xb)" ( (binary_expression "(long)param_1 + uVar35 + 0xb" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }" if (parenthesized_expression "(uVar35 + 0xc < param_2)" ( (binary_expression "uVar35 + 0xc < param_2" (binary_expression "uVar35 + 0xc" identifier + number_literal) < identifier) )) (compound_statement "{\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xc)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0xc" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xc)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0xc)" ( (binary_expression "(long)param_1 + uVar35 + 0xc" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }" if (parenthesized_expression "(uVar35 + 0xd < param_2)" ( (binary_expression "uVar35 + 0xd < param_2" (binary_expression "uVar35 + 0xd" identifier + number_literal) < identifier) )) (compound_statement "{\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xd)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0xd" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xd)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0xd)" ( (binary_expression "(long)param_1 + uVar35 + 0xd" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }" if (parenthesized_expression "(uVar35 + 0xe < param_2)" ( (binary_expression "uVar35 + 0xe < param_2" (binary_expression "uVar35 + 0xe" identifier + number_literal) < identifier) )) (compound_statement "{\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xe)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0xe" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xe)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0xe)" ( (binary_expression "(long)param_1 + uVar35 + 0xe" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) })) })) })) })) })) })) })) })) })) })) })) })) })) })) })) (labeled_statement "LAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;" statement_identifier : (expression_statement "lVar34 = (long)param_7 * 0xd0;" (assignment_expression "lVar34 = (long)param_7 * 0xd0" identifier = (binary_expression "(long)param_7 * 0xd0" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ;)) (expression_statement "iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);" (assignment_expression "iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0)" identifier = (call_expression "der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0)" identifier (argument_list "(param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0)" ( identifier , identifier , number_literal , (pointer_expression "*(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" * (cast_expression "(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" ( (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0" (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34" identifier + identifier) + number_literal) )))) , (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34 + 0x20" (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34" identifier + identifier) + number_literal) , number_literal , number_literal , identifier , number_literal , identifier , identifier , number_literal , number_literal , 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 ))) ;) (expression_statement "ltc_deinit_multi(local_60,local_58,0);" (call_expression "ltc_deinit_multi(local_60,local_58,0)" identifier (argument_list "(local_60,local_58,0)" ( identifier , identifier , number_literal ))) ;) (labeled_statement "LAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }" statement_identifier : (if_statement "if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }" if (parenthesized_expression "(local_50[2] == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_50[2] == *(long *)(in_FS_OFFSET + 0x28)" (subscript_expression "local_50[2]" identifier [ number_literal ]) == (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    return iVar33;\n  }" { (return_statement "return iVar33;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int dsa_encrypt_key(uchar *in,ulong inlen,uchar *out,ulong *outlen,prng_state *prng,int wprng,\n                   int hash,dsa_key *key)\n\n{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  uchar *out_00;\n  ulong *out_01;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  void *g_pub;\n  void *g_priv;\n  ulong x;\n  ulong y;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (outlen == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(wprng);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(hash), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10) < inlen) ||\n     (iVar33 = ltc_init_multi(&g_pub,&g_priv,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);\n  out_00 = (uchar *)malloc(lVar34 + 1);\n  out_01 = (ulong *)malloc(0x80);\n  if ((out_00 == (uchar *)0x0) || (out_01 == (ulong *)0x0)) {\n    if (out_00 != (uchar *)0x0) {\n      free(out_00);\n    }\n    if (out_01 != (ulong *)0x0) {\n      free(out_01);\n    }\n    ltc_deinit_multi(g_pub,g_priv,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(g_priv,key->q,prng,wprng);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub), iVar33 == 0))\n  {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);\n    x = lVar34 + 1;\n    iVar33 = dsa_shared_secret(g_priv,key->y,key,out_00,&x);\n    if (iVar33 == 0) {\n      y = 0x80;\n      iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y);\n      if (iVar33 == 0) {\n        x = 0;\n        if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);\n      }\n    }\n  }\n  free(out_01);\n  free(out_00);\n  ltc_deinit_multi(g_pub,g_priv,0);\nLAB_0018654c:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}\n\n" (function_definition "int dsa_encrypt_key(uchar *in,ulong inlen,uchar *out,ulong *outlen,prng_state *prng,int wprng,\n                   int hash,dsa_key *key)\n\n{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  uchar *out_00;\n  ulong *out_01;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  void *g_pub;\n  void *g_priv;\n  ulong x;\n  ulong y;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (outlen == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(wprng);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(hash), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10) < inlen) ||\n     (iVar33 = ltc_init_multi(&g_pub,&g_priv,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);\n  out_00 = (uchar *)malloc(lVar34 + 1);\n  out_01 = (ulong *)malloc(0x80);\n  if ((out_00 == (uchar *)0x0) || (out_01 == (ulong *)0x0)) {\n    if (out_00 != (uchar *)0x0) {\n      free(out_00);\n    }\n    if (out_01 != (ulong *)0x0) {\n      free(out_01);\n    }\n    ltc_deinit_multi(g_pub,g_priv,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(g_priv,key->q,prng,wprng);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub), iVar33 == 0))\n  {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);\n    x = lVar34 + 1;\n    iVar33 = dsa_shared_secret(g_priv,key->y,key,out_00,&x);\n    if (iVar33 == 0) {\n      y = 0x80;\n      iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y);\n      if (iVar33 == 0) {\n        x = 0;\n        if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);\n      }\n    }\n  }\n  free(out_01);\n  free(out_00);\n  ltc_deinit_multi(g_pub,g_priv,0);\nLAB_0018654c:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" primitive_type (function_declarator "dsa_encrypt_key(uchar *in,ulong inlen,uchar *out,ulong *outlen,prng_state *prng,int wprng,\n                   int hash,dsa_key *key)" identifier (parameter_list "(uchar *in,ulong inlen,uchar *out,ulong *outlen,prng_state *prng,int wprng,\n                   int hash,dsa_key *key)" ( (parameter_declaration "uchar *in" type_identifier (pointer_declarator "*in" * identifier)) , (parameter_declaration "ulong inlen" type_identifier identifier) , (parameter_declaration "uchar *out" type_identifier (pointer_declarator "*out" * identifier)) , (parameter_declaration "ulong *outlen" type_identifier (pointer_declarator "*outlen" * identifier)) , (parameter_declaration "prng_state *prng" type_identifier (pointer_declarator "*prng" * identifier)) , (parameter_declaration "int wprng" primitive_type identifier) , (parameter_declaration "int hash" primitive_type identifier) , (parameter_declaration "dsa_key *key" type_identifier (pointer_declarator "*key" * identifier)) ))) (compound_statement "{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  uchar *out_00;\n  ulong *out_01;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  void *g_pub;\n  void *g_priv;\n  ulong x;\n  ulong y;\n  long local_40;\n  \n  local_40 = *(long *)(in_FS_OFFSET + 0x28);\n  if (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (outlen == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(wprng);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(hash), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10) < inlen) ||\n     (iVar33 = ltc_init_multi(&g_pub,&g_priv,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);\n  out_00 = (uchar *)malloc(lVar34 + 1);\n  out_01 = (ulong *)malloc(0x80);\n  if ((out_00 == (uchar *)0x0) || (out_01 == (ulong *)0x0)) {\n    if (out_00 != (uchar *)0x0) {\n      free(out_00);\n    }\n    if (out_01 != (ulong *)0x0) {\n      free(out_01);\n    }\n    ltc_deinit_multi(g_pub,g_priv,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(g_priv,key->q,prng,wprng);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub), iVar33 == 0))\n  {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);\n    x = lVar34 + 1;\n    iVar33 = dsa_shared_secret(g_priv,key->y,key,out_00,&x);\n    if (iVar33 == 0) {\n      y = 0x80;\n      iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y);\n      if (iVar33 == 0) {\n        x = 0;\n        if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);\n      }\n    }\n  }\n  free(out_01);\n  free(out_00);\n  ltc_deinit_multi(g_pub,g_priv,0);\nLAB_0018654c:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail();\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "ulong *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "ulong uVar22;" type_identifier identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "ulong uVar25;" type_identifier identifier ;) (declaration "ulong uVar26;" type_identifier identifier ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "ulong uVar28;" type_identifier identifier ;) (declaration "ulong uVar29;" type_identifier identifier ;) (declaration "ulong uVar30;" type_identifier identifier ;) (declaration "ulong uVar31;" type_identifier identifier ;) (declaration "ulong uVar32;" type_identifier identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "long lVar34;" (sized_type_specifier "long" long) identifier ;) (declaration "uchar *out_00;" type_identifier (pointer_declarator "*out_00" * identifier) ;) (declaration "ulong *out_01;" type_identifier (pointer_declarator "*out_01" * identifier) ;) (declaration "ulong uVar35;" type_identifier identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "void *g_pub;" primitive_type (pointer_declarator "*g_pub" * identifier) ;) (declaration "void *g_priv;" primitive_type (pointer_declarator "*g_priv" * identifier) ;) (declaration "ulong x;" type_identifier identifier ;) (declaration "ulong y;" type_identifier identifier ;) (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 (in == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\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                    /* WARNING: Subroutine does not return */\n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }" { comment (expression_statement "crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);" (call_expression "crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28)" identifier (argument_list "("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (out == (uchar *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }" if (parenthesized_expression "(out == (uchar *)0x0)" ( (binary_expression "out == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }" { comment (expression_statement "crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);" (call_expression "crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29)" identifier (argument_list "("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (outlen == (ulong *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }" if (parenthesized_expression "(outlen == (ulong *)0x0)" ( (binary_expression "outlen == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }" { comment (expression_statement "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);" (call_expression "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a)" identifier (argument_list "("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a)" ( (string_literal ""outlen != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (key == (dsa_key *)0x0) {\n                    /* WARNING: Subroutine does not return */\n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\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_encrypt_key.c",0x2b);\n  }" { comment (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar33 = prng_is_valid(wprng);" (assignment_expression "iVar33 = prng_is_valid(wprng)" identifier = (call_expression "prng_is_valid(wprng)" identifier (argument_list "(wprng)" ( identifier )))) ;) (if_statement "if ((iVar33 != 0) || (iVar33 = hash_is_valid(hash), iVar33 != 0)) goto LAB_0018654c;" if (parenthesized_expression "((iVar33 != 0) || (iVar33 = hash_is_valid(hash), iVar33 != 0))" ( (binary_expression "(iVar33 != 0) || (iVar33 = hash_is_valid(hash), iVar33 != 0)" (parenthesized_expression "(iVar33 != 0)" ( (binary_expression "iVar33 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar33 = hash_is_valid(hash), iVar33 != 0)" ( (comma_expression "iVar33 = hash_is_valid(hash), iVar33 != 0" (assignment_expression "iVar33 = hash_is_valid(hash)" identifier = (call_expression "hash_is_valid(hash)" identifier (argument_list "(hash)" ( identifier )))) , (binary_expression "iVar33 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0018654c;" goto statement_identifier ;)) (expression_statement "iVar33 = 0xb;" (assignment_expression "iVar33 = 0xb" identifier = number_literal) ;) (if_statement "if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10) < inlen) ||\n     (iVar33 = ltc_init_multi(&g_pub,&g_priv,0), iVar33 != 0)) goto LAB_0018654c;" if (parenthesized_expression "((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10) < inlen) ||\n     (iVar33 = ltc_init_multi(&g_pub,&g_priv,0), iVar33 != 0))" ( (binary_expression "(*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10) < inlen) ||\n     (iVar33 = ltc_init_multi(&g_pub,&g_priv,0), iVar33 != 0)" (parenthesized_expression "(*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10) < inlen)" ( (binary_expression "*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10) < inlen" (pointer_expression "*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10)" * (cast_expression "(ulong *)(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10)" ( (binary_expression "PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001ecea0 + (long)hash * 0xd0" identifier + (binary_expression "(long)hash * 0xd0" (cast_expression "(long)hash" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) )))) < identifier) )) || (parenthesized_expression "(iVar33 = ltc_init_multi(&g_pub,&g_priv,0), iVar33 != 0)" ( (comma_expression "iVar33 = ltc_init_multi(&g_pub,&g_priv,0), iVar33 != 0" (assignment_expression "iVar33 = ltc_init_multi(&g_pub,&g_priv,0)" identifier = (call_expression "ltc_init_multi(&g_pub,&g_priv,0)" identifier (argument_list "(&g_pub,&g_priv,0)" ( (pointer_expression "&g_pub" & identifier) , (pointer_expression "&g_priv" & identifier) , number_literal )))) , (binary_expression "iVar33 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0018654c;" goto statement_identifier ;)) (expression_statement "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);" (assignment_expression "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x90)" ( (binary_expression "PTR_ltc_mp_001ecec8 + 0x90" identifier + number_literal) ))))) )) (argument_list "(key->p)" ( (field_expression "key->p" identifier -> field_identifier) )))) ;) (expression_statement "out_00 = (uchar *)malloc(lVar34 + 1);" (assignment_expression "out_00 = (uchar *)malloc(lVar34 + 1)" identifier = (cast_expression "(uchar *)malloc(lVar34 + 1)" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(lVar34 + 1)" identifier (argument_list "(lVar34 + 1)" ( (binary_expression "lVar34 + 1" identifier + number_literal) ))))) ;) (expression_statement "out_01 = (ulong *)malloc(0x80);" (assignment_expression "out_01 = (ulong *)malloc(0x80)" identifier = (cast_expression "(ulong *)malloc(0x80)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (if_statement "if ((out_00 == (uchar *)0x0) || (out_01 == (ulong *)0x0)) {\n    if (out_00 != (uchar *)0x0) {\n      free(out_00);\n    }\n    if (out_01 != (ulong *)0x0) {\n      free(out_01);\n    }\n    ltc_deinit_multi(g_pub,g_priv,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }" if (parenthesized_expression "((out_00 == (uchar *)0x0) || (out_01 == (ulong *)0x0))" ( (binary_expression "(out_00 == (uchar *)0x0) || (out_01 == (ulong *)0x0)" (parenthesized_expression "(out_00 == (uchar *)0x0)" ( (binary_expression "out_00 == (uchar *)0x0" identifier == (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(out_01 == (ulong *)0x0)" ( (binary_expression "out_01 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (out_00 != (uchar *)0x0) {\n      free(out_00);\n    }\n    if (out_01 != (ulong *)0x0) {\n      free(out_01);\n    }\n    ltc_deinit_multi(g_pub,g_priv,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }" { (if_statement "if (out_00 != (uchar *)0x0) {\n      free(out_00);\n    }" if (parenthesized_expression "(out_00 != (uchar *)0x0)" ( (binary_expression "out_00 != (uchar *)0x0" identifier != (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(out_00);\n    }" { (expression_statement "free(out_00);" (call_expression "free(out_00)" identifier (argument_list "(out_00)" ( identifier ))) ;) })) (if_statement "if (out_01 != (ulong *)0x0) {\n      free(out_01);\n    }" if (parenthesized_expression "(out_01 != (ulong *)0x0)" ( (binary_expression "out_01 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(out_01);\n    }" { (expression_statement "free(out_01);" (call_expression "free(out_01)" identifier (argument_list "(out_01)" ( identifier ))) ;) })) (expression_statement "ltc_deinit_multi(g_pub,g_priv,0);" (call_expression "ltc_deinit_multi(g_pub,g_priv,0)" identifier (argument_list "(g_pub,g_priv,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar33 = 0xd;" (assignment_expression "iVar33 = 0xd" identifier = number_literal) ;) (goto_statement "goto LAB_0018654c;" goto statement_identifier ;) })) (expression_statement "iVar33 = rand_bn_upto(g_priv,key->q,prng,wprng);" (assignment_expression "iVar33 = rand_bn_upto(g_priv,key->q,prng,wprng)" identifier = (call_expression "rand_bn_upto(g_priv,key->q,prng,wprng)" identifier (argument_list "(g_priv,key->q,prng,wprng)" ( identifier , (field_expression "key->q" identifier -> field_identifier) , identifier , identifier )))) ;) (if_statement "if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub), iVar33 == 0))\n  {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);\n    x = lVar34 + 1;\n    iVar33 = dsa_shared_secret(g_priv,key->y,key,out_00,&x);\n    if (iVar33 == 0) {\n      y = 0x80;\n      iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y);\n      if (iVar33 == 0) {\n        x = 0;\n        if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);\n      }\n    }\n  }" if (parenthesized_expression "((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub), iVar33 == 0))" ( (binary_expression "(iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub), iVar33 == 0)" (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub), iVar33 == 0)" ( (comma_expression "iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub), iVar33 == 0" (assignment_expression "iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x140))(key->g,g_priv,key->p,g_pub)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ecec8 + 0x140" identifier + number_literal) ))))) )) (argument_list "(key->g,g_priv,key->p,g_pub)" ( (field_expression "key->g" identifier -> field_identifier) , identifier , (field_expression "key->p" identifier -> field_identifier) , identifier )))) , (binary_expression "iVar33 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);\n    x = lVar34 + 1;\n    iVar33 = dsa_shared_secret(g_priv,key->y,key,out_00,&x);\n    if (iVar33 == 0) {\n      y = 0x80;\n      iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y);\n      if (iVar33 == 0) {\n        x = 0;\n        if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);\n      }\n    }\n  }" { (expression_statement "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p);" (assignment_expression "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(key->p)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x90)" ( (binary_expression "PTR_ltc_mp_001ecec8 + 0x90" identifier + number_literal) ))))) )) (argument_list "(key->p)" ( (field_expression "key->p" identifier -> field_identifier) )))) ;) (expression_statement "x = lVar34 + 1;" (assignment_expression "x = lVar34 + 1" identifier = (binary_expression "lVar34 + 1" identifier + number_literal)) ;) (expression_statement "iVar33 = dsa_shared_secret(g_priv,key->y,key,out_00,&x);" (assignment_expression "iVar33 = dsa_shared_secret(g_priv,key->y,key,out_00,&x)" identifier = (call_expression "dsa_shared_secret(g_priv,key->y,key,out_00,&x)" identifier (argument_list "(g_priv,key->y,key,out_00,&x)" ( identifier , (field_expression "key->y" identifier -> field_identifier) , identifier , identifier , (pointer_expression "&x" & identifier) )))) ;) (if_statement "if (iVar33 == 0) {\n      y = 0x80;\n      iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y);\n      if (iVar33 == 0) {\n        x = 0;\n        if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);\n      }\n    }" if (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) (compound_statement "{\n      y = 0x80;\n      iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y);\n      if (iVar33 == 0) {\n        x = 0;\n        if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);\n      }\n    }" { (expression_statement "y = 0x80;" (assignment_expression "y = 0x80" identifier = number_literal) ;) (expression_statement "iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y);" (assignment_expression "iVar33 = hash_memory(hash,out_00,x,(uchar *)out_01,&y)" identifier = (call_expression "hash_memory(hash,out_00,x,(uchar *)out_01,&y)" identifier (argument_list "(hash,out_00,x,(uchar *)out_01,&y)" ( identifier , identifier , identifier , (cast_expression "(uchar *)out_01" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&y" & identifier) )))) ;) (if_statement "if (iVar33 == 0) {\n        x = 0;\n        if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);\n      }" if (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) (compound_statement "{\n        x = 0;\n        if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);\n      }" { (expression_statement "x = 0;" (assignment_expression "x = 0" identifier = number_literal) ;) (if_statement "if (inlen != 0) {\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(inlen != 0)" ( (binary_expression "inlen != 0" identifier != number_literal) )) (compound_statement "{\n          x = inlen;\n          if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];\n          if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "x = inlen;" (assignment_expression "x = inlen" identifier = identifier) ;) (if_statement "if (inlen - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }" if (parenthesized_expression "(inlen - 1 < 0xf)" ( (binary_expression "inlen - 1 < 0xf" (binary_expression "inlen - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\n            uVar35 = 0;\n          }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }" else (compound_statement "{\n            uVar35 = 0;\n            uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n            uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n            *(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n            ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = inlen & 0xfffffffffffffff0;\n            if (inlen == uVar35) goto LAB_00186a3d;\n          }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;" (assignment_expression "uVar36 = (int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7" identifier = (binary_expression "(int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7" (binary_expression "(int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4) + 1U" (cast_expression "(int)((inlen & 0xfffffffffffffff0) - 0x10 >> 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((inlen & 0xfffffffffffffff0) - 0x10 >> 4)" ( (binary_expression "(inlen & 0xfffffffffffffff0) - 0x10 >> 4" (binary_expression "(inlen & 0xfffffffffffffff0) - 0x10" (parenthesized_expression "(inlen & 0xfffffffffffffff0)" ( (binary_expression "inlen & 0xfffffffffffffff0" identifier & number_literal) )) - number_literal) >> number_literal) ))) + number_literal) & number_literal)) ;) (if_statement "if (uVar36 == 0) goto LAB_00186826;" if (parenthesized_expression "(uVar36 == 0)" ( (binary_expression "uVar36 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00186826;" goto statement_identifier ;)) (if_statement "if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }" if (parenthesized_expression "(uVar36 != 1)" ( (binary_expression "uVar36 != 1" identifier != number_literal) )) (compound_statement "{\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }" { (if_statement "if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }" if (parenthesized_expression "(uVar36 != 2)" ( (binary_expression "uVar36 != 2" identifier != number_literal) )) (compound_statement "{\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                *(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }" { (if_statement "if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }" if (parenthesized_expression "(uVar36 != 3)" ( (binary_expression "uVar36 != 3" identifier != number_literal) )) (compound_statement "{\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                  uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                  *(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                  ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }" { (if_statement "if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }" if (parenthesized_expression "(uVar36 != 4)" ( (binary_expression "uVar36 != 4" identifier != number_literal) )) (compound_statement "{\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                    uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                    *(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                    ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }" { (if_statement "if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }" if (parenthesized_expression "(uVar36 != 5)" ( (binary_expression "uVar36 != 5" identifier != number_literal) )) (compound_statement "{\n                      if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n                      uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n                      *(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n                      ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }" { (if_statement "if (uVar36 != 6) {\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }" if (parenthesized_expression "(uVar36 != 6)" ( (binary_expression "uVar36 != 6" identifier != number_literal) )) (compound_statement "{\n                        uVar3 = *(ulong *)(in + 8);\n                        uVar35 = 0x10;\n                        *out_01 = *out_01 ^ *(ulong *)in;\n                        out_01[1] = out_01[1] ^ uVar3;\n                      }" { (expression_statement "uVar3 = *(ulong *)(in + 8);" (assignment_expression "uVar3 = *(ulong *)(in + 8)" identifier = (pointer_expression "*(ulong *)(in + 8)" * (cast_expression "(ulong *)(in + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + 8)" ( (binary_expression "in + 8" identifier + number_literal) ))))) ;) (expression_statement "uVar35 = 0x10;" (assignment_expression "uVar35 = 0x10" identifier = number_literal) ;) (expression_statement "*out_01 = *out_01 ^ *(ulong *)in;" (assignment_expression "*out_01 = *out_01 ^ *(ulong *)in" (pointer_expression "*out_01" * identifier) = (binary_expression "*out_01 ^ *(ulong *)in" (pointer_expression "*out_01" * identifier) ^ (pointer_expression "*(ulong *)in" * (cast_expression "(ulong *)in" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)))) ;) (expression_statement "out_01[1] = out_01[1] ^ uVar3;" (assignment_expression "out_01[1] = out_01[1] ^ uVar3" (subscript_expression "out_01[1]" identifier [ number_literal ]) = (binary_expression "out_01[1] ^ uVar3" (subscript_expression "out_01[1]" identifier [ number_literal ]) ^ identifier)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)out_01 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)out_01 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = *(ulong *)((long)(in + uVar35) + 8);" (assignment_expression "uVar4 = *(ulong *)((long)(in + uVar35) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35) + 8)" ( (binary_expression "(long)(in + uVar35) + 8" (cast_expression "(long)(in + uVar35)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) ))) + number_literal) ))))) ;) (expression_statement "*(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);" (assignment_expression "*(ulong *)((long)out_01 + uVar35) =\n                           *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)(in + uVar35)" * (cast_expression "(ulong *)(in + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) )))))) ;) (expression_statement "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)out_01 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)out_01 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = *(ulong *)((long)(in + uVar35) + 8);" (assignment_expression "uVar4 = *(ulong *)((long)(in + uVar35) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35) + 8)" ( (binary_expression "(long)(in + uVar35) + 8" (cast_expression "(long)(in + uVar35)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) ))) + number_literal) ))))) ;) (expression_statement "*(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);" (assignment_expression "*(ulong *)((long)out_01 + uVar35) =\n                         *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)(in + uVar35)" * (cast_expression "(ulong *)(in + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) )))))) ;) (expression_statement "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)out_01 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)out_01 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = *(ulong *)((long)(in + uVar35) + 8);" (assignment_expression "uVar4 = *(ulong *)((long)(in + uVar35) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35) + 8)" ( (binary_expression "(long)(in + uVar35) + 8" (cast_expression "(long)(in + uVar35)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) ))) + number_literal) ))))) ;) (expression_statement "*(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);" (assignment_expression "*(ulong *)((long)out_01 + uVar35) =\n                       *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)(in + uVar35)" * (cast_expression "(ulong *)(in + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) )))))) ;) (expression_statement "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)out_01 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)out_01 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = *(ulong *)((long)(in + uVar35) + 8);" (assignment_expression "uVar4 = *(ulong *)((long)(in + uVar35) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35) + 8)" ( (binary_expression "(long)(in + uVar35) + 8" (cast_expression "(long)(in + uVar35)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) ))) + number_literal) ))))) ;) (expression_statement "*(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);" (assignment_expression "*(ulong *)((long)out_01 + uVar35) =\n                     *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)(in + uVar35)" * (cast_expression "(ulong *)(in + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) )))))) ;) (expression_statement "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)out_01 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)out_01 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = *(ulong *)((long)(in + uVar35) + 8);" (assignment_expression "uVar4 = *(ulong *)((long)(in + uVar35) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35) + 8)" ( (binary_expression "(long)(in + uVar35) + 8" (cast_expression "(long)(in + uVar35)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) ))) + number_literal) ))))) ;) (expression_statement "*(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);" (assignment_expression "*(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)(in + uVar35)" * (cast_expression "(ulong *)(in + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) )))))) ;) (expression_statement "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)out_01 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)out_01 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = *(ulong *)((long)(in + uVar35) + 8);" (assignment_expression "uVar4 = *(ulong *)((long)(in + uVar35) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35) + 8)" ( (binary_expression "(long)(in + uVar35) + 8" (cast_expression "(long)(in + uVar35)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) ))) + number_literal) ))))) ;) (expression_statement "*(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);" (assignment_expression "*(ulong *)((long)out_01 + uVar35) =\n                 *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)(in + uVar35)" * (cast_expression "(ulong *)(in + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) )))))) ;) (expression_statement "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (for_statement "for (uVar35 = uVar35 + 0x10; uVar35 != (inlen & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }" for ( (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ; (binary_expression "uVar35 != (inlen & 0xfffffffffffffff0)" identifier != (parenthesized_expression "(inlen & 0xfffffffffffffff0)" ( (binary_expression "inlen & 0xfffffffffffffff0" identifier & number_literal) ))) ; (assignment_expression "uVar35 = uVar35 + 0x80" identifier = (binary_expression "uVar35 + 0x80" identifier + number_literal)) ) (compound_statement "{\nLAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar4 = *(ulong *)((long)(in + uVar35) + 8);\n              uVar7 = *(ulong *)(in + uVar35 + 0x10);\n              uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);\n              uVar11 = *(ulong *)(in + uVar35 + 0x20);\n              uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);\n              uVar15 = *(ulong *)(in + uVar35 + 0x30);\n              uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);\n              uVar19 = *(ulong *)(in + uVar35 + 0x40);\n              uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);\n              uVar23 = *(ulong *)(in + uVar35 + 0x50);\n              uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);\n              uVar27 = *(ulong *)(in + uVar35 + 0x60);\n              uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);\n              uVar31 = *(ulong *)(in + uVar35 + 0x70);\n              uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);\n              *(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);\n              ((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar7;\n              puVar2[1] = uVar6 ^ uVar8;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }" { (labeled_statement "LAB_00186826:\n              uVar3 = ((ulong *)((long)out_01 + uVar35))[1];" statement_identifier : (expression_statement "uVar3 = ((ulong *)((long)out_01 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)out_01 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;)) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x10)" ( (binary_expression "(long)out_01 + uVar35 + 0x10" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar5 = *puVar2;" (assignment_expression "uVar5 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar6 = puVar2[1];" (assignment_expression "uVar6 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x20)" ( (binary_expression "(long)out_01 + uVar35 + 0x20" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar9 = *puVar2;" (assignment_expression "uVar9 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar10 = puVar2[1];" (assignment_expression "uVar10 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x30)" ( (binary_expression "(long)out_01 + uVar35 + 0x30" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar13 = *puVar2;" (assignment_expression "uVar13 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar14 = puVar2[1];" (assignment_expression "uVar14 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x40)" ( (binary_expression "(long)out_01 + uVar35 + 0x40" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar17 = *puVar2;" (assignment_expression "uVar17 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar18 = puVar2[1];" (assignment_expression "uVar18 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x50)" ( (binary_expression "(long)out_01 + uVar35 + 0x50" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar21 = *puVar2;" (assignment_expression "uVar21 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar22 = puVar2[1];" (assignment_expression "uVar22 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x60)" ( (binary_expression "(long)out_01 + uVar35 + 0x60" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar25 = *puVar2;" (assignment_expression "uVar25 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar26 = puVar2[1];" (assignment_expression "uVar26 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x70)" ( (binary_expression "(long)out_01 + uVar35 + 0x70" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar29 = *puVar2;" (assignment_expression "uVar29 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar30 = puVar2[1];" (assignment_expression "uVar30 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar4 = *(ulong *)((long)(in + uVar35) + 8);" (assignment_expression "uVar4 = *(ulong *)((long)(in + uVar35) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35) + 8)" ( (binary_expression "(long)(in + uVar35) + 8" (cast_expression "(long)(in + uVar35)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) ))) + number_literal) ))))) ;) (expression_statement "uVar7 = *(ulong *)(in + uVar35 + 0x10);" (assignment_expression "uVar7 = *(ulong *)(in + uVar35 + 0x10)" identifier = (pointer_expression "*(ulong *)(in + uVar35 + 0x10)" * (cast_expression "(ulong *)(in + uVar35 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35 + 0x10)" ( (binary_expression "in + uVar35 + 0x10" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))))) ;) (expression_statement "uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8);" (assignment_expression "uVar8 = *(ulong *)((long)(in + uVar35 + 0x10) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35 + 0x10) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35 + 0x10) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35 + 0x10) + 8)" ( (binary_expression "(long)(in + uVar35 + 0x10) + 8" (cast_expression "(long)(in + uVar35 + 0x10)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35 + 0x10)" ( (binary_expression "in + uVar35 + 0x10" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))) + number_literal) ))))) ;) (expression_statement "uVar11 = *(ulong *)(in + uVar35 + 0x20);" (assignment_expression "uVar11 = *(ulong *)(in + uVar35 + 0x20)" identifier = (pointer_expression "*(ulong *)(in + uVar35 + 0x20)" * (cast_expression "(ulong *)(in + uVar35 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35 + 0x20)" ( (binary_expression "in + uVar35 + 0x20" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))))) ;) (expression_statement "uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8);" (assignment_expression "uVar12 = *(ulong *)((long)(in + uVar35 + 0x20) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35 + 0x20) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35 + 0x20) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35 + 0x20) + 8)" ( (binary_expression "(long)(in + uVar35 + 0x20) + 8" (cast_expression "(long)(in + uVar35 + 0x20)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35 + 0x20)" ( (binary_expression "in + uVar35 + 0x20" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))) + number_literal) ))))) ;) (expression_statement "uVar15 = *(ulong *)(in + uVar35 + 0x30);" (assignment_expression "uVar15 = *(ulong *)(in + uVar35 + 0x30)" identifier = (pointer_expression "*(ulong *)(in + uVar35 + 0x30)" * (cast_expression "(ulong *)(in + uVar35 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35 + 0x30)" ( (binary_expression "in + uVar35 + 0x30" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))))) ;) (expression_statement "uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8);" (assignment_expression "uVar16 = *(ulong *)((long)(in + uVar35 + 0x30) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35 + 0x30) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35 + 0x30) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35 + 0x30) + 8)" ( (binary_expression "(long)(in + uVar35 + 0x30) + 8" (cast_expression "(long)(in + uVar35 + 0x30)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35 + 0x30)" ( (binary_expression "in + uVar35 + 0x30" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))) + number_literal) ))))) ;) (expression_statement "uVar19 = *(ulong *)(in + uVar35 + 0x40);" (assignment_expression "uVar19 = *(ulong *)(in + uVar35 + 0x40)" identifier = (pointer_expression "*(ulong *)(in + uVar35 + 0x40)" * (cast_expression "(ulong *)(in + uVar35 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35 + 0x40)" ( (binary_expression "in + uVar35 + 0x40" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))))) ;) (expression_statement "uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8);" (assignment_expression "uVar20 = *(ulong *)((long)(in + uVar35 + 0x40) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35 + 0x40) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35 + 0x40) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35 + 0x40) + 8)" ( (binary_expression "(long)(in + uVar35 + 0x40) + 8" (cast_expression "(long)(in + uVar35 + 0x40)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35 + 0x40)" ( (binary_expression "in + uVar35 + 0x40" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))) + number_literal) ))))) ;) (expression_statement "uVar23 = *(ulong *)(in + uVar35 + 0x50);" (assignment_expression "uVar23 = *(ulong *)(in + uVar35 + 0x50)" identifier = (pointer_expression "*(ulong *)(in + uVar35 + 0x50)" * (cast_expression "(ulong *)(in + uVar35 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35 + 0x50)" ( (binary_expression "in + uVar35 + 0x50" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))))) ;) (expression_statement "uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8);" (assignment_expression "uVar24 = *(ulong *)((long)(in + uVar35 + 0x50) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35 + 0x50) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35 + 0x50) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35 + 0x50) + 8)" ( (binary_expression "(long)(in + uVar35 + 0x50) + 8" (cast_expression "(long)(in + uVar35 + 0x50)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35 + 0x50)" ( (binary_expression "in + uVar35 + 0x50" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))) + number_literal) ))))) ;) (expression_statement "uVar27 = *(ulong *)(in + uVar35 + 0x60);" (assignment_expression "uVar27 = *(ulong *)(in + uVar35 + 0x60)" identifier = (pointer_expression "*(ulong *)(in + uVar35 + 0x60)" * (cast_expression "(ulong *)(in + uVar35 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35 + 0x60)" ( (binary_expression "in + uVar35 + 0x60" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))))) ;) (expression_statement "uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8);" (assignment_expression "uVar28 = *(ulong *)((long)(in + uVar35 + 0x60) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35 + 0x60) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35 + 0x60) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35 + 0x60) + 8)" ( (binary_expression "(long)(in + uVar35 + 0x60) + 8" (cast_expression "(long)(in + uVar35 + 0x60)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35 + 0x60)" ( (binary_expression "in + uVar35 + 0x60" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))) + number_literal) ))))) ;) (expression_statement "uVar31 = *(ulong *)(in + uVar35 + 0x70);" (assignment_expression "uVar31 = *(ulong *)(in + uVar35 + 0x70)" identifier = (pointer_expression "*(ulong *)(in + uVar35 + 0x70)" * (cast_expression "(ulong *)(in + uVar35 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35 + 0x70)" ( (binary_expression "in + uVar35 + 0x70" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))))) ;) (expression_statement "uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8);" (assignment_expression "uVar32 = *(ulong *)((long)(in + uVar35 + 0x70) + 8)" identifier = (pointer_expression "*(ulong *)((long)(in + uVar35 + 0x70) + 8)" * (cast_expression "(ulong *)((long)(in + uVar35 + 0x70) + 8)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)(in + uVar35 + 0x70) + 8)" ( (binary_expression "(long)(in + uVar35 + 0x70) + 8" (cast_expression "(long)(in + uVar35 + 0x70)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(in + uVar35 + 0x70)" ( (binary_expression "in + uVar35 + 0x70" (binary_expression "in + uVar35" identifier + identifier) + number_literal) ))) + number_literal) ))))) ;) (expression_statement "*(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35);" (assignment_expression "*(ulong *)((long)out_01 + uVar35) =\n                   *(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)out_01 + uVar35) ^ *(ulong *)(in + uVar35)" (pointer_expression "*(ulong *)((long)out_01 + uVar35)" * (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)(in + uVar35)" * (cast_expression "(ulong *)(in + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in + uVar35)" ( (binary_expression "in + uVar35" identifier + identifier) )))))) ;) (expression_statement "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)out_01 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)out_01 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)out_01 + uVar35))" ( (cast_expression "(ulong *)((long)out_01 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x10)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x10)" ( (binary_expression "(long)out_01 + uVar35 + 0x10" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar5 ^ uVar7;" (assignment_expression "*puVar2 = uVar5 ^ uVar7" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar5 ^ uVar7" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar6 ^ uVar8;" (assignment_expression "puVar2[1] = uVar6 ^ uVar8" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar6 ^ uVar8" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x20)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x20)" ( (binary_expression "(long)out_01 + uVar35 + 0x20" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar9 ^ uVar11;" (assignment_expression "*puVar2 = uVar9 ^ uVar11" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar9 ^ uVar11" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar10 ^ uVar12;" (assignment_expression "puVar2[1] = uVar10 ^ uVar12" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar10 ^ uVar12" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x30)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x30)" ( (binary_expression "(long)out_01 + uVar35 + 0x30" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar13 ^ uVar15;" (assignment_expression "*puVar2 = uVar13 ^ uVar15" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar13 ^ uVar15" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar14 ^ uVar16;" (assignment_expression "puVar2[1] = uVar14 ^ uVar16" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar14 ^ uVar16" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x40)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x40)" ( (binary_expression "(long)out_01 + uVar35 + 0x40" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar17 ^ uVar19;" (assignment_expression "*puVar2 = uVar17 ^ uVar19" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar17 ^ uVar19" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar18 ^ uVar20;" (assignment_expression "puVar2[1] = uVar18 ^ uVar20" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar18 ^ uVar20" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x50)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x50)" ( (binary_expression "(long)out_01 + uVar35 + 0x50" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar21 ^ uVar23;" (assignment_expression "*puVar2 = uVar21 ^ uVar23" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar21 ^ uVar23" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar22 ^ uVar24;" (assignment_expression "puVar2[1] = uVar22 ^ uVar24" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar22 ^ uVar24" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x60)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x60)" ( (binary_expression "(long)out_01 + uVar35 + 0x60" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar25 ^ uVar27;" (assignment_expression "*puVar2 = uVar25 ^ uVar27" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar25 ^ uVar27" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar26 ^ uVar28;" (assignment_expression "puVar2[1] = uVar26 ^ uVar28" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar26 ^ uVar28" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)out_01 + uVar35 + 0x70)" identifier = (cast_expression "(ulong *)((long)out_01 + uVar35 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0x70)" ( (binary_expression "(long)out_01 + uVar35 + 0x70" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar29 ^ uVar31;" (assignment_expression "*puVar2 = uVar29 ^ uVar31" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar29 ^ uVar31" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar30 ^ uVar32;" (assignment_expression "puVar2[1] = uVar30 ^ uVar32" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar30 ^ uVar32" identifier ^ identifier)) ;) })) (expression_statement "uVar35 = inlen & 0xfffffffffffffff0;" (assignment_expression "uVar35 = inlen & 0xfffffffffffffff0" identifier = (binary_expression "inlen & 0xfffffffffffffff0" identifier & number_literal)) ;) (if_statement "if (inlen == uVar35) goto LAB_00186a3d;" if (parenthesized_expression "(inlen == uVar35)" ( (binary_expression "inlen == uVar35" identifier == identifier) )) (goto_statement "goto LAB_00186a3d;" goto statement_identifier ;)) }))) (expression_statement "*(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35];" (assignment_expression "*(byte *)((long)out_01 + uVar35) = *(byte *)((long)out_01 + uVar35) ^ in[uVar35]" (pointer_expression "*(byte *)((long)out_01 + uVar35)" * (cast_expression "(byte *)((long)out_01 + uVar35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(byte *)((long)out_01 + uVar35) ^ in[uVar35]" (pointer_expression "*(byte *)((long)out_01 + uVar35)" * (cast_expression "(byte *)((long)out_01 + uVar35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35)" ( (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (subscript_expression "in[uVar35]" identifier [ identifier ]))) ;) (if_statement "if (uVar35 + 1 < inlen) {\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(uVar35 + 1 < inlen)" ( (binary_expression "uVar35 + 1 < inlen" (binary_expression "uVar35 + 1" identifier + number_literal) < identifier) )) (compound_statement "{\n            pbVar1 = (byte *)((long)out_01 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ in[uVar35 + 1];\n            if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 1);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 1)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 1)" ( (binary_expression "(long)out_01 + uVar35 + 1" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 1];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 1]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 1]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 1]" identifier [ (binary_expression "uVar35 + 1" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 2 < inlen) {\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(uVar35 + 2 < inlen)" ( (binary_expression "uVar35 + 2 < inlen" (binary_expression "uVar35 + 2" identifier + number_literal) < identifier) )) (compound_statement "{\n              pbVar1 = (byte *)((long)out_01 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ in[uVar35 + 2];\n              if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 2);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 2)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 2)" ( (binary_expression "(long)out_01 + uVar35 + 2" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 2];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 2]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 2]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 2]" identifier [ (binary_expression "uVar35 + 2" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 3 < inlen) {\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(uVar35 + 3 < inlen)" ( (binary_expression "uVar35 + 3 < inlen" (binary_expression "uVar35 + 3" identifier + number_literal) < identifier) )) (compound_statement "{\n                pbVar1 = (byte *)((long)out_01 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ in[uVar35 + 3];\n                if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 3);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 3)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 3)" ( (binary_expression "(long)out_01 + uVar35 + 3" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 3];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 3]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 3]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 3]" identifier [ (binary_expression "uVar35 + 3" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 4 < inlen) {\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(uVar35 + 4 < inlen)" ( (binary_expression "uVar35 + 4 < inlen" (binary_expression "uVar35 + 4" identifier + number_literal) < identifier) )) (compound_statement "{\n                  pbVar1 = (byte *)((long)out_01 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ in[uVar35 + 4];\n                  if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 4);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 4)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 4)" ( (binary_expression "(long)out_01 + uVar35 + 4" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 4];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 4]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 4]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 4]" identifier [ (binary_expression "uVar35 + 4" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 5 < inlen) {\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(uVar35 + 5 < inlen)" ( (binary_expression "uVar35 + 5 < inlen" (binary_expression "uVar35 + 5" identifier + number_literal) < identifier) )) (compound_statement "{\n                    pbVar1 = (byte *)((long)out_01 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ in[uVar35 + 5];\n                    if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 5);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 5)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 5)" ( (binary_expression "(long)out_01 + uVar35 + 5" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 5];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 5]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 5]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 5]" identifier [ (binary_expression "uVar35 + 5" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 6 < inlen) {\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar35 + 6 < inlen)" ( (binary_expression "uVar35 + 6 < inlen" (binary_expression "uVar35 + 6" identifier + number_literal) < identifier) )) (compound_statement "{\n                      pbVar1 = (byte *)((long)out_01 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ in[uVar35 + 6];\n                      if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 6);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 6)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 6)" ( (binary_expression "(long)out_01 + uVar35 + 6" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 6];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 6]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 6]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 6]" identifier [ (binary_expression "uVar35 + 6" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 7 < inlen) {\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar35 + 7 < inlen)" ( (binary_expression "uVar35 + 7 < inlen" (binary_expression "uVar35 + 7" identifier + number_literal) < identifier) )) (compound_statement "{\n                        pbVar1 = (byte *)((long)out_01 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ in[uVar35 + 7];\n                        if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 7);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 7)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 7)" ( (binary_expression "(long)out_01 + uVar35 + 7" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 7];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 7]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 7]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 7]" identifier [ (binary_expression "uVar35 + 7" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 8 < inlen) {\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar35 + 8 < inlen)" ( (binary_expression "uVar35 + 8 < inlen" (binary_expression "uVar35 + 8" identifier + number_literal) < identifier) )) (compound_statement "{\n                          pbVar1 = (byte *)((long)out_01 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ in[uVar35 + 8];\n                          if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 8);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 8)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 8)" ( (binary_expression "(long)out_01 + uVar35 + 8" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 8];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 8]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 8]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 8]" identifier [ (binary_expression "uVar35 + 8" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 9 < inlen) {\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar35 + 9 < inlen)" ( (binary_expression "uVar35 + 9 < inlen" (binary_expression "uVar35 + 9" identifier + number_literal) < identifier) )) (compound_statement "{\n                            pbVar1 = (byte *)((long)out_01 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ in[uVar35 + 9];\n                            if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 9);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 9)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 9)" ( (binary_expression "(long)out_01 + uVar35 + 9" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 9];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 9]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 9]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 9]" identifier [ (binary_expression "uVar35 + 9" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 10 < inlen) {\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar35 + 10 < inlen)" ( (binary_expression "uVar35 + 10 < inlen" (binary_expression "uVar35 + 10" identifier + number_literal) < identifier) )) (compound_statement "{\n                              pbVar1 = (byte *)((long)out_01 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ in[uVar35 + 10];\n                              if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }\n                            }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 10);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 10)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 10)" ( (binary_expression "(long)out_01 + uVar35 + 10" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 10];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 10]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 10]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 10]" identifier [ (binary_expression "uVar35 + 10" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 0xb < inlen) {\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }" if (parenthesized_expression "(uVar35 + 0xb < inlen)" ( (binary_expression "uVar35 + 0xb < inlen" (binary_expression "uVar35 + 0xb" identifier + number_literal) < identifier) )) (compound_statement "{\n                                pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];\n                                if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }\n                              }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 0xb)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0xb)" ( (binary_expression "(long)out_01 + uVar35 + 0xb" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 0xb];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 0xb]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 0xb]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 0xb]" identifier [ (binary_expression "uVar35 + 0xb" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 0xc < inlen) {\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }" if (parenthesized_expression "(uVar35 + 0xc < inlen)" ( (binary_expression "uVar35 + 0xc < inlen" (binary_expression "uVar35 + 0xc" identifier + number_literal) < identifier) )) (compound_statement "{\n                                  pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];\n                                  if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }\n                                }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 0xc)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0xc)" ( (binary_expression "(long)out_01 + uVar35 + 0xc" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 0xc];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 0xc]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 0xc]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 0xc]" identifier [ (binary_expression "uVar35 + 0xc" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 0xd < inlen) {\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }" if (parenthesized_expression "(uVar35 + 0xd < inlen)" ( (binary_expression "uVar35 + 0xd < inlen" (binary_expression "uVar35 + 0xd" identifier + number_literal) < identifier) )) (compound_statement "{\n                                    pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];\n                                    if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }\n                                  }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 0xd)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0xd)" ( (binary_expression "(long)out_01 + uVar35 + 0xd" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 0xd];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 0xd]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 0xd]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 0xd]" identifier [ (binary_expression "uVar35 + 0xd" identifier + number_literal) ]))) ;) (if_statement "if (uVar35 + 0xe < inlen) {\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }" if (parenthesized_expression "(uVar35 + 0xe < inlen)" ( (binary_expression "uVar35 + 0xe < inlen" (binary_expression "uVar35 + 0xe" identifier + number_literal) < identifier) )) (compound_statement "{\n                                      pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];\n                                    }" { (expression_statement "pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe);" (assignment_expression "pbVar1 = (byte *)((long)out_01 + uVar35 + 0xe)" identifier = (cast_expression "(byte *)((long)out_01 + uVar35 + 0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)out_01 + uVar35 + 0xe)" ( (binary_expression "(long)out_01 + uVar35 + 0xe" (binary_expression "(long)out_01 + uVar35" (cast_expression "(long)out_01" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ in[uVar35 + 0xe];" (assignment_expression "*pbVar1 = *pbVar1 ^ in[uVar35 + 0xe]" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ in[uVar35 + 0xe]" (pointer_expression "*pbVar1" * identifier) ^ (subscript_expression "in[uVar35 + 0xe]" identifier [ (binary_expression "uVar35 + 0xe" identifier + number_literal) ]))) ;) })) })) })) })) })) })) })) })) })) })) })) })) })) })) })) (labeled_statement "LAB_00186a3d:\n        lVar34 = (long)hash * 0xd0;" statement_identifier : (expression_statement "lVar34 = (long)hash * 0xd0;" (assignment_expression "lVar34 = (long)hash * 0xd0" identifier = (binary_expression "(long)hash * 0xd0" (cast_expression "(long)hash" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ;)) (expression_statement "iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0);" (assignment_expression "iVar33 = der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0)" identifier = (call_expression "der_encode_sequence_multi\n                           (out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0)" identifier (argument_list "(out,outlen,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,g_pub,5,inlen,out_01,0,\n                            0,0)" ( identifier , identifier , number_literal , (pointer_expression "*(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" * (cast_expression "(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" ( (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0" (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34" identifier + identifier) + number_literal) )))) , (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34 + 0x20" (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34" identifier + identifier) + number_literal) , number_literal , number_literal , identifier , number_literal , identifier , identifier , number_literal , number_literal , number_literal )))) ;) })) })) })) (expression_statement "free(out_01);" (call_expression "free(out_01)" identifier (argument_list "(out_01)" ( identifier ))) ;) (expression_statement "free(out_00);" (call_expression "free(out_00)" identifier (argument_list "(out_00)" ( identifier ))) ;) (expression_statement "ltc_deinit_multi(g_pub,g_priv,0);" (call_expression "ltc_deinit_multi(g_pub,g_priv,0)" identifier (argument_list "(g_pub,g_priv,0)" ( identifier , identifier , number_literal ))) ;) (labeled_statement "LAB_0018654c:\n  if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }" statement_identifier : (if_statement "if (local_40 == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\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    return iVar33;\n  }" { (return_statement "return iVar33;" return identifier ;) }))) comment (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "int dsa_encrypt_key(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)\n\n{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  void *__ptr;\n  ulong *__ptr_00;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50 [4];\n  \n  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (param_4 == 0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (param_8 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(param_6);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n  __ptr = malloc(lVar34 + 1);\n  __ptr_00 = (ulong *)malloc(0x80);\n  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }\n  free(__ptr_00);\n  free(__ptr);\n  ltc_deinit_multi(local_60,local_58,0);\nLAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    \n  __stack_chk_fail();\n}\n\n" (function_definition "int dsa_encrypt_key(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)\n\n{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  void *__ptr;\n  ulong *__ptr_00;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50 [4];\n  \n  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (param_4 == 0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (param_8 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(param_6);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n  __ptr = malloc(lVar34 + 1);\n  __ptr_00 = (ulong *)malloc(0x80);\n  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }\n  free(__ptr_00);\n  free(__ptr);\n  ltc_deinit_multi(local_60,local_58,0);\nLAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    \n  __stack_chk_fail();\n}" primitive_type (function_declarator "dsa_encrypt_key(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)" identifier (parameter_list "(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)" ( (parameter_declaration "ulong *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "ulong param_2" type_identifier identifier) , (parameter_declaration "long param_3" (sized_type_specifier "long" long) identifier) , (parameter_declaration "long param_4" (sized_type_specifier "long" long) identifier) , (parameter_declaration "undefined8 param_5" type_identifier identifier) , (parameter_declaration "undefined4 param_6" type_identifier identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "long param_8" (sized_type_specifier "long" long) identifier) ))) (compound_statement "{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  void *__ptr;\n  ulong *__ptr_00;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50 [4];\n  \n  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (param_4 == 0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (param_8 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(param_6);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n  __ptr = malloc(lVar34 + 1);\n  __ptr_00 = (ulong *)malloc(0x80);\n  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }\n  free(__ptr_00);\n  free(__ptr);\n  ltc_deinit_multi(local_60,local_58,0);\nLAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    \n  __stack_chk_fail();\n}" { (declaration "byte *pbVar1;" type_identifier (pointer_declarator "*pbVar1" * identifier) ;) (declaration "ulong *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "ulong uVar4;" type_identifier identifier ;) (declaration "ulong uVar5;" type_identifier identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "ulong uVar8;" type_identifier identifier ;) (declaration "ulong uVar9;" type_identifier identifier ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "ulong uVar12;" type_identifier identifier ;) (declaration "ulong uVar13;" type_identifier identifier ;) (declaration "ulong uVar14;" type_identifier identifier ;) (declaration "ulong uVar15;" type_identifier identifier ;) (declaration "ulong uVar16;" type_identifier identifier ;) (declaration "ulong uVar17;" type_identifier identifier ;) (declaration "ulong uVar18;" type_identifier identifier ;) (declaration "ulong uVar19;" type_identifier identifier ;) (declaration "ulong uVar20;" type_identifier identifier ;) (declaration "ulong uVar21;" type_identifier identifier ;) (declaration "ulong uVar22;" type_identifier identifier ;) (declaration "ulong uVar23;" type_identifier identifier ;) (declaration "ulong uVar24;" type_identifier identifier ;) (declaration "ulong uVar25;" type_identifier identifier ;) (declaration "ulong uVar26;" type_identifier identifier ;) (declaration "ulong uVar27;" type_identifier identifier ;) (declaration "ulong uVar28;" type_identifier identifier ;) (declaration "ulong uVar29;" type_identifier identifier ;) (declaration "ulong uVar30;" type_identifier identifier ;) (declaration "ulong uVar31;" type_identifier identifier ;) (declaration "ulong uVar32;" type_identifier identifier ;) (declaration "int iVar33;" primitive_type identifier ;) (declaration "long lVar34;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "ulong *__ptr_00;" type_identifier (pointer_declarator "*__ptr_00" * identifier) ;) (declaration "ulong uVar35;" type_identifier identifier ;) (declaration "uint uVar36;" type_identifier identifier ;) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 local_60;" type_identifier identifier ;) (declaration "undefined8 local_58;" type_identifier identifier ;) (declaration "ulong local_50 [4];" type_identifier (array_declarator "local_50 [4]" identifier [ number_literal ]) ;) (expression_statement "local_50[2] = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_50[2] = *(long *)(in_FS_OFFSET + 0x28)" (subscript_expression "local_50[2]" identifier [ number_literal ]) = (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_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }" if (parenthesized_expression "(param_1 == (ulong *)0x0)" ( (binary_expression "param_1 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    \n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }" { (expression_statement "crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);" (call_expression "crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28)" identifier (argument_list "("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28)" ( (string_literal ""in != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }" if (parenthesized_expression "(param_3 == 0)" ( (binary_expression "param_3 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }" { (expression_statement "crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);" (call_expression "crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29)" identifier (argument_list "("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29)" ( (string_literal ""out != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_4 == 0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }" if (parenthesized_expression "(param_4 == 0)" ( (binary_expression "param_4 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }" { (expression_statement "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);" (call_expression "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a)" identifier (argument_list "("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a)" ( (string_literal ""outlen != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (if_statement "if (param_8 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }" if (parenthesized_expression "(param_8 == 0)" ( (binary_expression "param_8 == 0" identifier == number_literal) )) (compound_statement "{\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }" { (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b)" identifier (argument_list "("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b)" ( (string_literal ""key != NULL"" " string_content ") , (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" " string_content ") , number_literal ))) ;) })) (expression_statement "iVar33 = prng_is_valid(param_6);" (assignment_expression "iVar33 = prng_is_valid(param_6)" identifier = (call_expression "prng_is_valid(param_6)" identifier (argument_list "(param_6)" ( identifier )))) ;) (if_statement "if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;" if (parenthesized_expression "((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0))" ( (binary_expression "(iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)" (parenthesized_expression "(iVar33 != 0)" ( (binary_expression "iVar33 != 0" identifier != number_literal) )) || (parenthesized_expression "(iVar33 = hash_is_valid(param_7), iVar33 != 0)" ( (comma_expression "iVar33 = hash_is_valid(param_7), iVar33 != 0" (assignment_expression "iVar33 = hash_is_valid(param_7)" identifier = (call_expression "hash_is_valid(param_7)" identifier (argument_list "(param_7)" ( identifier )))) , (binary_expression "iVar33 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0018654c;" goto statement_identifier ;)) (expression_statement "iVar33 = 0xb;" (assignment_expression "iVar33 = 0xb" identifier = number_literal) ;) (if_statement "if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;" if (parenthesized_expression "((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0))" ( (binary_expression "(*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)" (parenthesized_expression "(*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2)" ( (binary_expression "*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2" (pointer_expression "*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10)" * (cast_expression "(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10)" ( (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0" identifier + (binary_expression "(long)param_7 * 0xd0" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) + number_literal) )))) < identifier) )) || (parenthesized_expression "(iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)" ( (comma_expression "iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0" (assignment_expression "iVar33 = ltc_init_multi(&local_60,&local_58,0)" identifier = (call_expression "ltc_init_multi(&local_60,&local_58,0)" identifier (argument_list "(&local_60,&local_58,0)" ( (pointer_expression "&local_60" & identifier) , (pointer_expression "&local_58" & identifier) , number_literal )))) , (binary_expression "iVar33 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0018654c;" goto statement_identifier ;)) (expression_statement "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));" (assignment_expression "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x90)" ( (binary_expression "PTR_ltc_mp_001ecec8 + 0x90" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_8 + 0x18))" ( (pointer_expression "*(undefined8 *)(param_8 + 0x18)" * (cast_expression "(undefined8 *)(param_8 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x18)" ( (binary_expression "param_8 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "__ptr = malloc(lVar34 + 1);" (assignment_expression "__ptr = malloc(lVar34 + 1)" identifier = (call_expression "malloc(lVar34 + 1)" identifier (argument_list "(lVar34 + 1)" ( (binary_expression "lVar34 + 1" identifier + number_literal) )))) ;) (expression_statement "__ptr_00 = (ulong *)malloc(0x80);" (assignment_expression "__ptr_00 = (ulong *)malloc(0x80)" identifier = (cast_expression "(ulong *)malloc(0x80)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "malloc(0x80)" identifier (argument_list "(0x80)" ( number_literal ))))) ;) (if_statement "if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }" if (parenthesized_expression "((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0))" ( (binary_expression "(__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)" (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)) )) || (parenthesized_expression "(__ptr_00 == (ulong *)0x0)" ( (binary_expression "__ptr_00 == (ulong *)0x0" identifier == (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ))) )) (compound_statement "{\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }" { (if_statement "if (__ptr != (void *)0x0) {\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      free(__ptr);\n    }" { (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) })) (if_statement "if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }" if (parenthesized_expression "(__ptr_00 != (ulong *)0x0)" ( (binary_expression "__ptr_00 != (ulong *)0x0" identifier != (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      free(__ptr_00);\n    }" { (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" identifier (argument_list "(__ptr_00)" ( identifier ))) ;) })) (expression_statement "ltc_deinit_multi(local_60,local_58,0);" (call_expression "ltc_deinit_multi(local_60,local_58,0)" identifier (argument_list "(local_60,local_58,0)" ( identifier , identifier , number_literal ))) ;) (expression_statement "iVar33 = 0xd;" (assignment_expression "iVar33 = 0xd" identifier = number_literal) ;) (goto_statement "goto LAB_0018654c;" goto statement_identifier ;) })) (expression_statement "iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);" (assignment_expression "iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6)" identifier = (call_expression "rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6)" identifier (argument_list "(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6)" ( identifier , (pointer_expression "*(undefined8 *)(param_8 + 0x10)" * (cast_expression "(undefined8 *)(param_8 + 0x10)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x10)" ( (binary_expression "param_8 + 0x10" identifier + number_literal) )))) , identifier , identifier )))) ;) (if_statement "if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }" if (parenthesized_expression "((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0))" ( (binary_expression "(iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)" (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) && (parenthesized_expression "(iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)" ( (comma_expression "iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0" (assignment_expression "iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60)" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x140))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x140)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x140)" * (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x140)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x140)" ( (binary_expression "PTR_ltc_mp_001ecec8 + 0x140" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60)" ( (pointer_expression "*(undefined8 *)(param_8 + 8)" * (cast_expression "(undefined8 *)(param_8 + 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 8)" ( (binary_expression "param_8 + 8" identifier + number_literal) )))) , identifier , (pointer_expression "*(undefined8 *)(param_8 + 0x18)" * (cast_expression "(undefined8 *)(param_8 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x18)" ( (binary_expression "param_8 + 0x18" identifier + number_literal) )))) , identifier )))) , (binary_expression "iVar33 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }" { (expression_statement "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));" (assignment_expression "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" identifier = (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))" ( (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x90)" * (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x90)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x90)" ( (binary_expression "PTR_ltc_mp_001ecec8 + 0x90" identifier + number_literal) ))))) )) (argument_list "(*(undefined8 *)(param_8 + 0x18))" ( (pointer_expression "*(undefined8 *)(param_8 + 0x18)" * (cast_expression "(undefined8 *)(param_8 + 0x18)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x18)" ( (binary_expression "param_8 + 0x18" identifier + number_literal) )))) )))) ;) (expression_statement "local_50[0] = lVar34 + 1;" (assignment_expression "local_50[0] = lVar34 + 1" (subscript_expression "local_50[0]" identifier [ number_literal ]) = (binary_expression "lVar34 + 1" identifier + number_literal)) ;) (expression_statement "iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);" (assignment_expression "iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50)" identifier = (call_expression "dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50)" identifier (argument_list "(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50)" ( identifier , (pointer_expression "*(undefined8 *)(param_8 + 0x28)" * (cast_expression "(undefined8 *)(param_8 + 0x28)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_8 + 0x28)" ( (binary_expression "param_8 + 0x28" identifier + number_literal) )))) , identifier , identifier , identifier )))) ;) (if_statement "if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }" if (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) (compound_statement "{\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }" { (expression_statement "local_50[1] = 0x80;" (assignment_expression "local_50[1] = 0x80" (subscript_expression "local_50[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);" (assignment_expression "iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1)" identifier = (call_expression "hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1)" identifier (argument_list "(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1)" ( identifier , identifier , (subscript_expression "local_50[0]" identifier [ number_literal ]) , identifier , (binary_expression "local_50 + 1" identifier + number_literal) )))) ;) (if_statement "if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }" if (parenthesized_expression "(iVar33 == 0)" ( (binary_expression "iVar33 == 0" identifier == number_literal) )) (compound_statement "{\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }" { (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (compound_statement "{\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" { (expression_statement "local_50[0] = param_2;" (assignment_expression "local_50[0] = param_2" (subscript_expression "local_50[0]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }" if (parenthesized_expression "(param_2 - 1 < 0xf)" ( (binary_expression "param_2 - 1 < 0xf" (binary_expression "param_2 - 1" identifier - number_literal) < number_literal) )) (compound_statement "{\n            uVar35 = 0;\n          }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) }) (else_clause "else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }" else (compound_statement "{\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }" { (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;" (assignment_expression "uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7" identifier = (binary_expression "(int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7" (binary_expression "(int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U" (cast_expression "(int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((param_2 & 0xfffffffffffffff0) - 0x10 >> 4)" ( (binary_expression "(param_2 & 0xfffffffffffffff0) - 0x10 >> 4" (binary_expression "(param_2 & 0xfffffffffffffff0) - 0x10" (parenthesized_expression "(param_2 & 0xfffffffffffffff0)" ( (binary_expression "param_2 & 0xfffffffffffffff0" identifier & number_literal) )) - number_literal) >> number_literal) ))) + number_literal) & number_literal)) ;) (if_statement "if (uVar36 == 0) goto LAB_00186826;" if (parenthesized_expression "(uVar36 == 0)" ( (binary_expression "uVar36 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00186826;" goto statement_identifier ;)) (if_statement "if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }" if (parenthesized_expression "(uVar36 != 1)" ( (binary_expression "uVar36 != 1" identifier != number_literal) )) (compound_statement "{\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }" { (if_statement "if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }" if (parenthesized_expression "(uVar36 != 2)" ( (binary_expression "uVar36 != 2" identifier != number_literal) )) (compound_statement "{\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }" { (if_statement "if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }" if (parenthesized_expression "(uVar36 != 3)" ( (binary_expression "uVar36 != 3" identifier != number_literal) )) (compound_statement "{\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }" { (if_statement "if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }" if (parenthesized_expression "(uVar36 != 4)" ( (binary_expression "uVar36 != 4" identifier != number_literal) )) (compound_statement "{\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }" { (if_statement "if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }" if (parenthesized_expression "(uVar36 != 5)" ( (binary_expression "uVar36 != 5" identifier != number_literal) )) (compound_statement "{\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }" { (if_statement "if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }" if (parenthesized_expression "(uVar36 != 6)" ( (binary_expression "uVar36 != 6" identifier != number_literal) )) (compound_statement "{\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }" { (expression_statement "uVar3 = param_1[1];" (assignment_expression "uVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "uVar35 = 0x10;" (assignment_expression "uVar35 = 0x10" identifier = number_literal) ;) (expression_statement "*__ptr_00 = *__ptr_00 ^ *param_1;" (assignment_expression "*__ptr_00 = *__ptr_00 ^ *param_1" (pointer_expression "*__ptr_00" * identifier) = (binary_expression "*__ptr_00 ^ *param_1" (pointer_expression "*__ptr_00" * identifier) ^ (pointer_expression "*param_1" * identifier))) ;) (expression_statement "__ptr_00[1] = __ptr_00[1] ^ uVar3;" (assignment_expression "__ptr_00[1] = __ptr_00[1] ^ uVar3" (subscript_expression "__ptr_00[1]" identifier [ number_literal ]) = (binary_expression "__ptr_00[1] ^ uVar3" (subscript_expression "__ptr_00[1]" identifier [ number_literal ]) ^ identifier)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ;) })) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar3 ^ uVar4" identifier ^ identifier)) ;) (for_statement "for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }" for ( (assignment_expression "uVar35 = uVar35 + 0x10" identifier = (binary_expression "uVar35 + 0x10" identifier + number_literal)) ; (binary_expression "uVar35 != (param_2 & 0xfffffffffffffff0)" identifier != (parenthesized_expression "(param_2 & 0xfffffffffffffff0)" ( (binary_expression "param_2 & 0xfffffffffffffff0" identifier & number_literal) ))) ; (assignment_expression "uVar35 = uVar35 + 0x80" identifier = (binary_expression "uVar35 + 0x80" identifier + number_literal)) ) (compound_statement "{\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }" { (labeled_statement "LAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];" statement_identifier : (expression_statement "uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;)) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x10)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x10" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar5 = *puVar2;" (assignment_expression "uVar5 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar6 = puVar2[1];" (assignment_expression "uVar6 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x20)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x20" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar9 = *puVar2;" (assignment_expression "uVar9 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar10 = puVar2[1];" (assignment_expression "uVar10 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x30)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x30" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar13 = *puVar2;" (assignment_expression "uVar13 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar14 = puVar2[1];" (assignment_expression "uVar14 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x40)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x40" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar17 = *puVar2;" (assignment_expression "uVar17 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar18 = puVar2[1];" (assignment_expression "uVar18 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x50)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x50" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar21 = *puVar2;" (assignment_expression "uVar21 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar22 = puVar2[1];" (assignment_expression "uVar22 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x60)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x60" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar25 = *puVar2;" (assignment_expression "uVar25 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar26 = puVar2[1];" (assignment_expression "uVar26 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x70)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x70" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar29 = *puVar2;" (assignment_expression "uVar29 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar30 = puVar2[1];" (assignment_expression "uVar30 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "uVar8 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar8 = ((ulong *)((long)param_1 + uVar35))[1]" identifier = (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" ( (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x10)" ( (binary_expression "(long)param_1 + uVar35 + 0x10" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar3 = *puVar2;" (assignment_expression "uVar3 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar4 = puVar2[1];" (assignment_expression "uVar4 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x20)" ( (binary_expression "(long)param_1 + uVar35 + 0x20" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar11 = *puVar2;" (assignment_expression "uVar11 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar12 = puVar2[1];" (assignment_expression "uVar12 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x30)" ( (binary_expression "(long)param_1 + uVar35 + 0x30" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar15 = *puVar2;" (assignment_expression "uVar15 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar16 = puVar2[1];" (assignment_expression "uVar16 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x40)" ( (binary_expression "(long)param_1 + uVar35 + 0x40" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar19 = *puVar2;" (assignment_expression "uVar19 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar20 = puVar2[1];" (assignment_expression "uVar20 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x50)" ( (binary_expression "(long)param_1 + uVar35 + 0x50" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar23 = *puVar2;" (assignment_expression "uVar23 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar24 = puVar2[1];" (assignment_expression "uVar24 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x60)" ( (binary_expression "(long)param_1 + uVar35 + 0x60" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar27 = *puVar2;" (assignment_expression "uVar27 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar28 = puVar2[1];" (assignment_expression "uVar28 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70)" identifier = (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0x70)" ( (binary_expression "(long)param_1 + uVar35 + 0x70" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "uVar31 = *puVar2;" (assignment_expression "uVar31 = *puVar2" identifier = (pointer_expression "*puVar2" * identifier)) ;) (expression_statement "uVar32 = puVar2[1];" (assignment_expression "uVar32 = puVar2[1]" identifier = (subscript_expression "puVar2[1]" identifier [ number_literal ])) ;) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" * (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(ulong *)((long)param_1 + uVar35)" * (cast_expression "(ulong *)((long)param_1 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" ( (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) ))) )) [ number_literal ]) = (binary_expression "uVar7 ^ uVar8" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x10)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x10)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x10" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar5 ^ uVar3;" (assignment_expression "*puVar2 = uVar5 ^ uVar3" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar5 ^ uVar3" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar6 ^ uVar4;" (assignment_expression "puVar2[1] = uVar6 ^ uVar4" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar6 ^ uVar4" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x20)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x20)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x20" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar9 ^ uVar11;" (assignment_expression "*puVar2 = uVar9 ^ uVar11" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar9 ^ uVar11" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar10 ^ uVar12;" (assignment_expression "puVar2[1] = uVar10 ^ uVar12" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar10 ^ uVar12" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x30)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x30)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x30" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar13 ^ uVar15;" (assignment_expression "*puVar2 = uVar13 ^ uVar15" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar13 ^ uVar15" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar14 ^ uVar16;" (assignment_expression "puVar2[1] = uVar14 ^ uVar16" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar14 ^ uVar16" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x40)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x40)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x40" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar17 ^ uVar19;" (assignment_expression "*puVar2 = uVar17 ^ uVar19" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar17 ^ uVar19" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar18 ^ uVar20;" (assignment_expression "puVar2[1] = uVar18 ^ uVar20" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar18 ^ uVar20" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x50)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x50)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x50" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar21 ^ uVar23;" (assignment_expression "*puVar2 = uVar21 ^ uVar23" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar21 ^ uVar23" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar22 ^ uVar24;" (assignment_expression "puVar2[1] = uVar22 ^ uVar24" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar22 ^ uVar24" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x60)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x60)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x60" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar25 ^ uVar27;" (assignment_expression "*puVar2 = uVar25 ^ uVar27" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar25 ^ uVar27" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar26 ^ uVar28;" (assignment_expression "puVar2[1] = uVar26 ^ uVar28" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar26 ^ uVar28" identifier ^ identifier)) ;) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70)" identifier = (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x70)" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x70)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0x70" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*puVar2 = uVar29 ^ uVar31;" (assignment_expression "*puVar2 = uVar29 ^ uVar31" (pointer_expression "*puVar2" * identifier) = (binary_expression "uVar29 ^ uVar31" identifier ^ identifier)) ;) (expression_statement "puVar2[1] = uVar30 ^ uVar32;" (assignment_expression "puVar2[1] = uVar30 ^ uVar32" (subscript_expression "puVar2[1]" identifier [ number_literal ]) = (binary_expression "uVar30 ^ uVar32" identifier ^ identifier)) ;) })) (expression_statement "uVar35 = param_2 & 0xfffffffffffffff0;" (assignment_expression "uVar35 = param_2 & 0xfffffffffffffff0" identifier = (binary_expression "param_2 & 0xfffffffffffffff0" identifier & number_literal)) ;) (if_statement "if (param_2 == uVar35) goto LAB_00186a3d;" if (parenthesized_expression "(param_2 == uVar35)" ( (binary_expression "param_2 == uVar35" identifier == identifier) )) (goto_statement "goto LAB_00186a3d;" goto statement_identifier ;)) }))) (expression_statement "*(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);" (assignment_expression "*(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35)" (pointer_expression "*(byte *)((long)__ptr_00 + uVar35)" * (cast_expression "(byte *)((long)__ptr_00 + uVar35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) = (binary_expression "*(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35)" (pointer_expression "*(byte *)((long)__ptr_00 + uVar35)" * (cast_expression "(byte *)((long)__ptr_00 + uVar35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35)" ( (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35)" * (cast_expression "(byte *)((long)param_1 + uVar35)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35)" ( (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) )))))) ;) (if_statement "if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" if (parenthesized_expression "(uVar35 + 1 < param_2)" ( (binary_expression "uVar35 + 1 < param_2" (binary_expression "uVar35 + 1" identifier + number_literal) < identifier) )) (compound_statement "{\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 1)" ( (binary_expression "(long)__ptr_00 + uVar35 + 1" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 1)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 1)" ( (binary_expression "(long)param_1 + uVar35 + 1" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" if (parenthesized_expression "(uVar35 + 2 < param_2)" ( (binary_expression "uVar35 + 2 < param_2" (binary_expression "uVar35 + 2" identifier + number_literal) < identifier) )) (compound_statement "{\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 2)" ( (binary_expression "(long)__ptr_00 + uVar35 + 2" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 2)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 2)" ( (binary_expression "(long)param_1 + uVar35 + 2" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" if (parenthesized_expression "(uVar35 + 3 < param_2)" ( (binary_expression "uVar35 + 3 < param_2" (binary_expression "uVar35 + 3" identifier + number_literal) < identifier) )) (compound_statement "{\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 3)" ( (binary_expression "(long)__ptr_00 + uVar35 + 3" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 3)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 3)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 3)" ( (binary_expression "(long)param_1 + uVar35 + 3" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" if (parenthesized_expression "(uVar35 + 4 < param_2)" ( (binary_expression "uVar35 + 4 < param_2" (binary_expression "uVar35 + 4" identifier + number_literal) < identifier) )) (compound_statement "{\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 4)" ( (binary_expression "(long)__ptr_00 + uVar35 + 4" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 4)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 4)" ( (binary_expression "(long)param_1 + uVar35 + 4" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" if (parenthesized_expression "(uVar35 + 5 < param_2)" ( (binary_expression "uVar35 + 5 < param_2" (binary_expression "uVar35 + 5" identifier + number_literal) < identifier) )) (compound_statement "{\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 5)" ( (binary_expression "(long)__ptr_00 + uVar35 + 5" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 5)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 5)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 5)" ( (binary_expression "(long)param_1 + uVar35 + 5" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" if (parenthesized_expression "(uVar35 + 6 < param_2)" ( (binary_expression "uVar35 + 6 < param_2" (binary_expression "uVar35 + 6" identifier + number_literal) < identifier) )) (compound_statement "{\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 6)" ( (binary_expression "(long)__ptr_00 + uVar35 + 6" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 6)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 6)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 6)" ( (binary_expression "(long)param_1 + uVar35 + 6" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" if (parenthesized_expression "(uVar35 + 7 < param_2)" ( (binary_expression "uVar35 + 7 < param_2" (binary_expression "uVar35 + 7" identifier + number_literal) < identifier) )) (compound_statement "{\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 7)" ( (binary_expression "(long)__ptr_00 + uVar35 + 7" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 7)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 7)" ( (binary_expression "(long)param_1 + uVar35 + 7" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" if (parenthesized_expression "(uVar35 + 8 < param_2)" ( (binary_expression "uVar35 + 8 < param_2" (binary_expression "uVar35 + 8" identifier + number_literal) < identifier) )) (compound_statement "{\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 8)" ( (binary_expression "(long)__ptr_00 + uVar35 + 8" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 8)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 8)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 8)" ( (binary_expression "(long)param_1 + uVar35 + 8" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" if (parenthesized_expression "(uVar35 + 9 < param_2)" ( (binary_expression "uVar35 + 9 < param_2" (binary_expression "uVar35 + 9" identifier + number_literal) < identifier) )) (compound_statement "{\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 9)" ( (binary_expression "(long)__ptr_00 + uVar35 + 9" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 9)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 9)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 9)" ( (binary_expression "(long)param_1 + uVar35 + 9" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }" if (parenthesized_expression "(uVar35 + 10 < param_2)" ( (binary_expression "uVar35 + 10 < param_2" (binary_expression "uVar35 + 10" identifier + number_literal) < identifier) )) (compound_statement "{\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 10)" ( (binary_expression "(long)__ptr_00 + uVar35 + 10" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 10)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 10)" ( (binary_expression "(long)param_1 + uVar35 + 10" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }" if (parenthesized_expression "(uVar35 + 0xb < param_2)" ( (binary_expression "uVar35 + 0xb < param_2" (binary_expression "uVar35 + 0xb" identifier + number_literal) < identifier) )) (compound_statement "{\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xb)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0xb" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xb)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 0xb)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0xb)" ( (binary_expression "(long)param_1 + uVar35 + 0xb" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }" if (parenthesized_expression "(uVar35 + 0xc < param_2)" ( (binary_expression "uVar35 + 0xc < param_2" (binary_expression "uVar35 + 0xc" identifier + number_literal) < identifier) )) (compound_statement "{\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xc)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0xc" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xc)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 0xc)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0xc)" ( (binary_expression "(long)param_1 + uVar35 + 0xc" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }" if (parenthesized_expression "(uVar35 + 0xd < param_2)" ( (binary_expression "uVar35 + 0xd < param_2" (binary_expression "uVar35 + 0xd" identifier + number_literal) < identifier) )) (compound_statement "{\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xd)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0xd" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xd)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 0xd)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0xd)" ( (binary_expression "(long)param_1 + uVar35 + 0xd" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) (if_statement "if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }" if (parenthesized_expression "(uVar35 + 0xe < param_2)" ( (binary_expression "uVar35 + 0xe < param_2" (binary_expression "uVar35 + 0xe" identifier + number_literal) < identifier) )) (compound_statement "{\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }" { (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe)" identifier = (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xe)" ( (binary_expression "(long)__ptr_00 + uVar35 + 0xe" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))) ;) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe)" (pointer_expression "*pbVar1" * identifier) = (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe)" (pointer_expression "*pbVar1" * identifier) ^ (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xe)" * (cast_expression "(byte *)((long)param_1 + uVar35 + 0xe)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)param_1 + uVar35 + 0xe)" ( (binary_expression "(long)param_1 + uVar35 + 0xe" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + identifier) + number_literal) )))))) ;) })) })) })) })) })) })) })) })) })) })) })) })) })) })) })) (labeled_statement "LAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;" statement_identifier : (expression_statement "lVar34 = (long)param_7 * 0xd0;" (assignment_expression "lVar34 = (long)param_7 * 0xd0" identifier = (binary_expression "(long)param_7 * 0xd0" (cast_expression "(long)param_7" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal)) ;)) (expression_statement "iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);" (assignment_expression "iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0)" identifier = (call_expression "der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0)" identifier (argument_list "(param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0)" ( identifier , identifier , number_literal , (pointer_expression "*(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" * (cast_expression "(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" ( (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0" (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34" identifier + identifier) + number_literal) )))) , (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34 + 0x20" (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34" identifier + identifier) + number_literal) , number_literal , number_literal , identifier , number_literal , identifier , identifier , number_literal , number_literal , 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 ))) ;) (expression_statement "ltc_deinit_multi(local_60,local_58,0);" (call_expression "ltc_deinit_multi(local_60,local_58,0)" identifier (argument_list "(local_60,local_58,0)" ( identifier , identifier , number_literal ))) ;) (labeled_statement "LAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }" statement_identifier : (if_statement "if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }" if (parenthesized_expression "(local_50[2] == *(long *)(in_FS_OFFSET + 0x28))" ( (binary_expression "local_50[2] == *(long *)(in_FS_OFFSET + 0x28)" (subscript_expression "local_50[2]" identifier [ number_literal ]) == (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    return iVar33;\n  }" { (return_statement "return iVar33;" return identifier ;) }))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration (sized_type_specifier long) IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (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 == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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 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 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 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 ( IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) )))) < IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) , (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (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 (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , 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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT )))) , (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 ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT , (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) - LIT) >> LIT) ))) + LIT) & LIT)) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT + LIT)) ; (binary_expression IDENT != (parenthesized_expression ( (binary_expression IDENT & LIT) ))) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))))) ;) (expression_statement (assignment_expression (subscript_expression (parenthesized_expression ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) ))) )) [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT ^ IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT ^ IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) ^ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + IDENT) + LIT) )))))) ;) })) })) })) })) })) })) })) })) })) })) })) })) })) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) * LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + IDENT) + LIT) )))) , (binary_expression (binary_expression IDENT + IDENT) + LIT) , LIT , LIT , IDENT , LIT , IDENT , IDENT , LIT , LIT , LIT )))) ;) })) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , LIT ))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return IDENT ;) }))) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "int dsa_encrypt_key(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)\n\n{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  void *__ptr;\n  ulong *__ptr_00;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50 [4];\n  \n  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (param_4 == 0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (param_8 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(param_6);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n  __ptr = malloc(lVar34 + 1);\n  __ptr_00 = (ulong *)malloc(0x80);\n  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }\n  free(__ptr_00);\n  free(__ptr);\n  ltc_deinit_multi(local_60,local_58,0);\nLAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    \n  __stack_chk_fail();\n}" (primitive_type "int") (function_declarator "dsa_encrypt_key(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)" (identifier "dsa_encrypt_key") (parameter_list "(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,\n                   undefined4 param_6,int param_7,long param_8)" (( "(") (parameter_declaration "ulong *param_1" (type_identifier "ulong") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "ulong param_2" (type_identifier "ulong") (identifier "param_2")) (, ",") (parameter_declaration "long param_3" (sized_type_specifier "long" (long "long")) (identifier "param_3")) (, ",") (parameter_declaration "long param_4" (sized_type_specifier "long" (long "long")) (identifier "param_4")) (, ",") (parameter_declaration "undefined8 param_5" (type_identifier "undefined8") (identifier "param_5")) (, ",") (parameter_declaration "undefined4 param_6" (type_identifier "undefined4") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "long param_8" (sized_type_specifier "long" (long "long")) (identifier "param_8")) () ")"))) (compound_statement "{\n  byte *pbVar1;\n  ulong *puVar2;\n  ulong uVar3;\n  ulong uVar4;\n  ulong uVar5;\n  ulong uVar6;\n  ulong uVar7;\n  ulong uVar8;\n  ulong uVar9;\n  ulong uVar10;\n  ulong uVar11;\n  ulong uVar12;\n  ulong uVar13;\n  ulong uVar14;\n  ulong uVar15;\n  ulong uVar16;\n  ulong uVar17;\n  ulong uVar18;\n  ulong uVar19;\n  ulong uVar20;\n  ulong uVar21;\n  ulong uVar22;\n  ulong uVar23;\n  ulong uVar24;\n  ulong uVar25;\n  ulong uVar26;\n  ulong uVar27;\n  ulong uVar28;\n  ulong uVar29;\n  ulong uVar30;\n  ulong uVar31;\n  ulong uVar32;\n  int iVar33;\n  long lVar34;\n  void *__ptr;\n  ulong *__ptr_00;\n  ulong uVar35;\n  uint uVar36;\n  long in_FS_OFFSET;\n  undefined8 local_60;\n  undefined8 local_58;\n  ulong local_50 [4];\n  \n  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);\n  if (param_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }\n  if (param_3 == 0) {\n                    \n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }\n  if (param_4 == 0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }\n  if (param_8 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }\n  iVar33 = prng_is_valid(param_6);\n  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;\n  iVar33 = 0xb;\n  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;\n  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n  __ptr = malloc(lVar34 + 1);\n  __ptr_00 = (ulong *)malloc(0x80);\n  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }\n  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);\n  if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }\n  free(__ptr_00);\n  free(__ptr);\n  ltc_deinit_multi(local_60,local_58,0);\nLAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }\n                    \n  __stack_chk_fail();\n}" ({ "{") (declaration "byte *pbVar1;" (type_identifier "byte") (pointer_declarator "*pbVar1" (* "*") (identifier "pbVar1")) (; ";")) (declaration "ulong *puVar2;" (type_identifier "ulong") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "ulong uVar3;" (type_identifier "ulong") (identifier "uVar3") (; ";")) (declaration "ulong uVar4;" (type_identifier "ulong") (identifier "uVar4") (; ";")) (declaration "ulong uVar5;" (type_identifier "ulong") (identifier "uVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "ulong uVar7;" (type_identifier "ulong") (identifier "uVar7") (; ";")) (declaration "ulong uVar8;" (type_identifier "ulong") (identifier "uVar8") (; ";")) (declaration "ulong uVar9;" (type_identifier "ulong") (identifier "uVar9") (; ";")) (declaration "ulong uVar10;" (type_identifier "ulong") (identifier "uVar10") (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "ulong uVar12;" (type_identifier "ulong") (identifier "uVar12") (; ";")) (declaration "ulong uVar13;" (type_identifier "ulong") (identifier "uVar13") (; ";")) (declaration "ulong uVar14;" (type_identifier "ulong") (identifier "uVar14") (; ";")) (declaration "ulong uVar15;" (type_identifier "ulong") (identifier "uVar15") (; ";")) (declaration "ulong uVar16;" (type_identifier "ulong") (identifier "uVar16") (; ";")) (declaration "ulong uVar17;" (type_identifier "ulong") (identifier "uVar17") (; ";")) (declaration "ulong uVar18;" (type_identifier "ulong") (identifier "uVar18") (; ";")) (declaration "ulong uVar19;" (type_identifier "ulong") (identifier "uVar19") (; ";")) (declaration "ulong uVar20;" (type_identifier "ulong") (identifier "uVar20") (; ";")) (declaration "ulong uVar21;" (type_identifier "ulong") (identifier "uVar21") (; ";")) (declaration "ulong uVar22;" (type_identifier "ulong") (identifier "uVar22") (; ";")) (declaration "ulong uVar23;" (type_identifier "ulong") (identifier "uVar23") (; ";")) (declaration "ulong uVar24;" (type_identifier "ulong") (identifier "uVar24") (; ";")) (declaration "ulong uVar25;" (type_identifier "ulong") (identifier "uVar25") (; ";")) (declaration "ulong uVar26;" (type_identifier "ulong") (identifier "uVar26") (; ";")) (declaration "ulong uVar27;" (type_identifier "ulong") (identifier "uVar27") (; ";")) (declaration "ulong uVar28;" (type_identifier "ulong") (identifier "uVar28") (; ";")) (declaration "ulong uVar29;" (type_identifier "ulong") (identifier "uVar29") (; ";")) (declaration "ulong uVar30;" (type_identifier "ulong") (identifier "uVar30") (; ";")) (declaration "ulong uVar31;" (type_identifier "ulong") (identifier "uVar31") (; ";")) (declaration "ulong uVar32;" (type_identifier "ulong") (identifier "uVar32") (; ";")) (declaration "int iVar33;" (primitive_type "int") (identifier "iVar33") (; ";")) (declaration "long lVar34;" (sized_type_specifier "long" (long "long")) (identifier "lVar34") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "ulong *__ptr_00;" (type_identifier "ulong") (pointer_declarator "*__ptr_00" (* "*") (identifier "__ptr_00")) (; ";")) (declaration "ulong uVar35;" (type_identifier "ulong") (identifier "uVar35") (; ";")) (declaration "uint uVar36;" (type_identifier "uint") (identifier "uVar36") (; ";")) (declaration "long in_FS_OFFSET;" (sized_type_specifier "long" (long "long")) (identifier "in_FS_OFFSET") (; ";")) (declaration "undefined8 local_60;" (type_identifier "undefined8") (identifier "local_60") (; ";")) (declaration "undefined8 local_58;" (type_identifier "undefined8") (identifier "local_58") (; ";")) (declaration "ulong local_50 [4];" (type_identifier "ulong") (array_declarator "local_50 [4]" (identifier "local_50") ([ "[") (number_literal "4") (] "]")) (; ";")) (expression_statement "local_50[2] = *(long *)(in_FS_OFFSET + 0x28);" (assignment_expression "local_50[2] = *(long *)(in_FS_OFFSET + 0x28)" (subscript_expression "local_50[2]" (identifier "local_50") ([ "[") (number_literal "2") (] "]")) (= "=") (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_1 == (ulong *)0x0) {\n                    \n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }" (if "if") (parenthesized_expression "(param_1 == (ulong *)0x0)" (( "(") (binary_expression "param_1 == (ulong *)0x0" (identifier "param_1") (== "==") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    \n    crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);\n  }" ({ "{") (expression_statement "crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);" (call_expression "crypt_argchk("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28)" (identifier "crypt_argchk") (argument_list "("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28)" (( "(") (string_literal ""in != NULL"" (" """) (string_content "in != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" (" """) (string_content "src/pk/dsa/dsa_encrypt_key.c") (" """)) (, ",") (number_literal "0x28") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_3 == 0) {\n                    \n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }" (if "if") (parenthesized_expression "(param_3 == 0)" (( "(") (binary_expression "param_3 == 0" (identifier "param_3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);\n  }" ({ "{") (expression_statement "crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);" (call_expression "crypt_argchk("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29)" (identifier "crypt_argchk") (argument_list "("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29)" (( "(") (string_literal ""out != NULL"" (" """) (string_content "out != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" (" """) (string_content "src/pk/dsa/dsa_encrypt_key.c") (" """)) (, ",") (number_literal "0x29") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_4 == 0) {\n                    \n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }" (if "if") (parenthesized_expression "(param_4 == 0)" (( "(") (binary_expression "param_4 == 0" (identifier "param_4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);\n  }" ({ "{") (expression_statement "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);" (call_expression "crypt_argchk("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a)" (identifier "crypt_argchk") (argument_list "("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a)" (( "(") (string_literal ""outlen != NULL"" (" """) (string_content "outlen != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" (" """) (string_content "src/pk/dsa/dsa_encrypt_key.c") (" """)) (, ",") (number_literal "0x2a") () ")"))) (; ";")) (} "}"))) (if_statement "if (param_8 == 0) {\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }" (if "if") (parenthesized_expression "(param_8 == 0)" (( "(") (binary_expression "param_8 == 0" (identifier "param_8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                    \n    crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);\n  }" ({ "{") (expression_statement "crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);" (call_expression "crypt_argchk("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b)" (identifier "crypt_argchk") (argument_list "("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b)" (( "(") (string_literal ""key != NULL"" (" """) (string_content "key != NULL") (" """)) (, ",") (string_literal ""src/pk/dsa/dsa_encrypt_key.c"" (" """) (string_content "src/pk/dsa/dsa_encrypt_key.c") (" """)) (, ",") (number_literal "0x2b") () ")"))) (; ";")) (} "}"))) (expression_statement "iVar33 = prng_is_valid(param_6);" (assignment_expression "iVar33 = prng_is_valid(param_6)" (identifier "iVar33") (= "=") (call_expression "prng_is_valid(param_6)" (identifier "prng_is_valid") (argument_list "(param_6)" (( "(") (identifier "param_6") () ")")))) (; ";")) (if_statement "if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;" (if "if") (parenthesized_expression "((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0))" (( "(") (binary_expression "(iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)" (parenthesized_expression "(iVar33 != 0)" (( "(") (binary_expression "iVar33 != 0" (identifier "iVar33") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(iVar33 = hash_is_valid(param_7), iVar33 != 0)" (( "(") (comma_expression "iVar33 = hash_is_valid(param_7), iVar33 != 0" (assignment_expression "iVar33 = hash_is_valid(param_7)" (identifier "iVar33") (= "=") (call_expression "hash_is_valid(param_7)" (identifier "hash_is_valid") (argument_list "(param_7)" (( "(") (identifier "param_7") () ")")))) (, ",") (binary_expression "iVar33 != 0" (identifier "iVar33") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0018654c;" (goto "goto") (statement_identifier "LAB_0018654c") (; ";"))) (expression_statement "iVar33 = 0xb;" (assignment_expression "iVar33 = 0xb" (identifier "iVar33") (= "=") (number_literal "0xb")) (; ";")) (if_statement "if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;" (if "if") (parenthesized_expression "((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0))" (( "(") (binary_expression "(*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||\n     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)" (parenthesized_expression "(*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2)" (( "(") (binary_expression "*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2" (pointer_expression "*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10)" (* "*") (cast_expression "(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10)" (( "(") (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10" (binary_expression "PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0" (identifier "PTR_hash_descriptor_001ecea0") (+ "+") (binary_expression "(long)param_7 * 0xd0" (cast_expression "(long)param_7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_7")) (* "*") (number_literal "0xd0"))) (+ "+") (number_literal "0x10")) () ")")))) (< "<") (identifier "param_2")) () ")")) (|| "||") (parenthesized_expression "(iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)" (( "(") (comma_expression "iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0" (assignment_expression "iVar33 = ltc_init_multi(&local_60,&local_58,0)" (identifier "iVar33") (= "=") (call_expression "ltc_init_multi(&local_60,&local_58,0)" (identifier "ltc_init_multi") (argument_list "(&local_60,&local_58,0)" (( "(") (pointer_expression "&local_60" (& "&") (identifier "local_60")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "iVar33 != 0" (identifier "iVar33") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0018654c;" (goto "goto") (statement_identifier "LAB_0018654c") (; ";"))) (expression_statement "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));" (assignment_expression "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" (identifier "lVar34") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x90)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x90)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x90)" (( "(") (binary_expression "PTR_ltc_mp_001ecec8 + 0x90" (identifier "PTR_ltc_mp_001ecec8") (+ "+") (number_literal "0x90")) () ")"))))) () ")")) (argument_list "(*(undefined8 *)(param_8 + 0x18))" (( "(") (pointer_expression "*(undefined8 *)(param_8 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_8 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0x18)" (( "(") (binary_expression "param_8 + 0x18" (identifier "param_8") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "__ptr = malloc(lVar34 + 1);" (assignment_expression "__ptr = malloc(lVar34 + 1)" (identifier "__ptr") (= "=") (call_expression "malloc(lVar34 + 1)" (identifier "malloc") (argument_list "(lVar34 + 1)" (( "(") (binary_expression "lVar34 + 1" (identifier "lVar34") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "__ptr_00 = (ulong *)malloc(0x80);" (assignment_expression "__ptr_00 = (ulong *)malloc(0x80)" (identifier "__ptr_00") (= "=") (cast_expression "(ulong *)malloc(0x80)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "malloc(0x80)" (identifier "malloc") (argument_list "(0x80)" (( "(") (number_literal "0x80") () ")"))))) (; ";")) (if_statement "if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }" (if "if") (parenthesized_expression "((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0))" (( "(") (binary_expression "(__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)" (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"))) () ")")) (|| "||") (parenthesized_expression "(__ptr_00 == (ulong *)0x0)" (( "(") (binary_expression "__ptr_00 == (ulong *)0x0" (identifier "__ptr_00") (== "==") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")"))) () ")")) (compound_statement "{\n    if (__ptr != (void *)0x0) {\n      free(__ptr);\n    }\n    if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }\n    ltc_deinit_multi(local_60,local_58,0);\n    iVar33 = 0xd;\n    goto LAB_0018654c;\n  }" ({ "{") (if_statement "if (__ptr != (void *)0x0) {\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      free(__ptr);\n    }" ({ "{") (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (} "}"))) (if_statement "if (__ptr_00 != (ulong *)0x0) {\n      free(__ptr_00);\n    }" (if "if") (parenthesized_expression "(__ptr_00 != (ulong *)0x0)" (( "(") (binary_expression "__ptr_00 != (ulong *)0x0" (identifier "__ptr_00") (!= "!=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      free(__ptr_00);\n    }" ({ "{") (expression_statement "free(__ptr_00);" (call_expression "free(__ptr_00)" (identifier "free") (argument_list "(__ptr_00)" (( "(") (identifier "__ptr_00") () ")"))) (; ";")) (} "}"))) (expression_statement "ltc_deinit_multi(local_60,local_58,0);" (call_expression "ltc_deinit_multi(local_60,local_58,0)" (identifier "ltc_deinit_multi") (argument_list "(local_60,local_58,0)" (( "(") (identifier "local_60") (, ",") (identifier "local_58") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar33 = 0xd;" (assignment_expression "iVar33 = 0xd" (identifier "iVar33") (= "=") (number_literal "0xd")) (; ";")) (goto_statement "goto LAB_0018654c;" (goto "goto") (statement_identifier "LAB_0018654c") (; ";")) (} "}"))) (expression_statement "iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);" (assignment_expression "iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6)" (identifier "iVar33") (= "=") (call_expression "rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6)" (identifier "rand_bn_upto") (argument_list "(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6)" (( "(") (identifier "local_58") (, ",") (pointer_expression "*(undefined8 *)(param_8 + 0x10)" (* "*") (cast_expression "(undefined8 *)(param_8 + 0x10)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0x10)" (( "(") (binary_expression "param_8 + 0x10" (identifier "param_8") (+ "+") (number_literal "0x10")) () ")")))) (, ",") (identifier "param_5") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if ((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)) {\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }" (if "if") (parenthesized_expression "((iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0))" (( "(") (binary_expression "(iVar33 == 0) &&\n     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)" (parenthesized_expression "(iVar33 == 0)" (( "(") (binary_expression "iVar33 == 0" (identifier "iVar33") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0)" (( "(") (comma_expression "iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60), iVar33 == 0" (assignment_expression "iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60)" (identifier "iVar33") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x140))\n                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60)" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x140))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x140)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x140)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x140)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x140)" (( "(") (binary_expression "PTR_ltc_mp_001ecec8 + 0x140" (identifier "PTR_ltc_mp_001ecec8") (+ "+") (number_literal "0x140")) () ")"))))) () ")")) (argument_list "(*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),\n                          local_60)" (( "(") (pointer_expression "*(undefined8 *)(param_8 + 8)" (* "*") (cast_expression "(undefined8 *)(param_8 + 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 8)" (( "(") (binary_expression "param_8 + 8" (identifier "param_8") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "local_58") (, ",") (pointer_expression "*(undefined8 *)(param_8 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_8 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0x18)" (( "(") (binary_expression "param_8 + 0x18" (identifier "param_8") (+ "+") (number_literal "0x18")) () ")")))) (, ",") (identifier "local_60") () ")")))) (, ",") (binary_expression "iVar33 == 0" (identifier "iVar33") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));\n    local_50[0] = lVar34 + 1;\n    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);\n    if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }\n  }" ({ "{") (expression_statement "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));" (assignment_expression "lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" (identifier "lVar34") (= "=") (call_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18))" (parenthesized_expression "(**(code **)(PTR_ltc_mp_001ecec8 + 0x90))" (( "(") (pointer_expression "**(code **)(PTR_ltc_mp_001ecec8 + 0x90)" (* "*") (pointer_expression "*(code **)(PTR_ltc_mp_001ecec8 + 0x90)" (* "*") (cast_expression "(code **)(PTR_ltc_mp_001ecec8 + 0x90)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(PTR_ltc_mp_001ecec8 + 0x90)" (( "(") (binary_expression "PTR_ltc_mp_001ecec8 + 0x90" (identifier "PTR_ltc_mp_001ecec8") (+ "+") (number_literal "0x90")) () ")"))))) () ")")) (argument_list "(*(undefined8 *)(param_8 + 0x18))" (( "(") (pointer_expression "*(undefined8 *)(param_8 + 0x18)" (* "*") (cast_expression "(undefined8 *)(param_8 + 0x18)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0x18)" (( "(") (binary_expression "param_8 + 0x18" (identifier "param_8") (+ "+") (number_literal "0x18")) () ")")))) () ")")))) (; ";")) (expression_statement "local_50[0] = lVar34 + 1;" (assignment_expression "local_50[0] = lVar34 + 1" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "lVar34 + 1" (identifier "lVar34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);" (assignment_expression "iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50)" (identifier "iVar33") (= "=") (call_expression "dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50)" (identifier "dsa_shared_secret") (argument_list "(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50)" (( "(") (identifier "local_58") (, ",") (pointer_expression "*(undefined8 *)(param_8 + 0x28)" (* "*") (cast_expression "(undefined8 *)(param_8 + 0x28)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_8 + 0x28)" (( "(") (binary_expression "param_8 + 0x28" (identifier "param_8") (+ "+") (number_literal "0x28")) () ")")))) (, ",") (identifier "param_8") (, ",") (identifier "__ptr") (, ",") (identifier "local_50") () ")")))) (; ";")) (if_statement "if (iVar33 == 0) {\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }" (if "if") (parenthesized_expression "(iVar33 == 0)" (( "(") (binary_expression "iVar33 == 0" (identifier "iVar33") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_50[1] = 0x80;\n      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);\n      if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }\n    }" ({ "{") (expression_statement "local_50[1] = 0x80;" (assignment_expression "local_50[1] = 0x80" (subscript_expression "local_50[1]" (identifier "local_50") ([ "[") (number_literal "1") (] "]")) (= "=") (number_literal "0x80")) (; ";")) (expression_statement "iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);" (assignment_expression "iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1)" (identifier "iVar33") (= "=") (call_expression "hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1)" (identifier "hash_memory") (argument_list "(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1)" (( "(") (identifier "param_7") (, ",") (identifier "__ptr") (, ",") (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "__ptr_00") (, ",") (binary_expression "local_50 + 1" (identifier "local_50") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (iVar33 == 0) {\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }" (if "if") (parenthesized_expression "(iVar33 == 0)" (( "(") (binary_expression "iVar33 == 0" (identifier "iVar33") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        local_50[0] = 0;\n        if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }\nLAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;\n        iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);\n      }" ({ "{") (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_2 != 0) {\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n          local_50[0] = param_2;\n          if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }\n          *(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);\n          if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }\n        }" ({ "{") (expression_statement "local_50[0] = param_2;" (assignment_expression "local_50[0] = param_2" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (identifier "param_2")) (; ";")) (if_statement "if (param_2 - 1 < 0xf) {\n            uVar35 = 0;\n          }\n          else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }" (if "if") (parenthesized_expression "(param_2 - 1 < 0xf)" (( "(") (binary_expression "param_2 - 1 < 0xf" (binary_expression "param_2 - 1" (identifier "param_2") (- "-") (number_literal "1")) (< "<") (number_literal "0xf")) () ")")) (compound_statement "{\n            uVar35 = 0;\n          }" ({ "{") (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }" (else "else") (compound_statement "{\n            uVar35 = 0;\n            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;\n            if (uVar36 == 0) goto LAB_00186826;\n            if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }\n            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n            *(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }\n            uVar35 = param_2 & 0xfffffffffffffff0;\n            if (param_2 == uVar35) goto LAB_00186a3d;\n          }" ({ "{") (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;" (assignment_expression "uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7" (identifier "uVar36") (= "=") (binary_expression "(int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7" (binary_expression "(int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U" (cast_expression "(int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "((param_2 & 0xfffffffffffffff0) - 0x10 >> 4)" (( "(") (binary_expression "(param_2 & 0xfffffffffffffff0) - 0x10 >> 4" (binary_expression "(param_2 & 0xfffffffffffffff0) - 0x10" (parenthesized_expression "(param_2 & 0xfffffffffffffff0)" (( "(") (binary_expression "param_2 & 0xfffffffffffffff0" (identifier "param_2") (& "&") (number_literal "0xfffffffffffffff0")) () ")")) (- "-") (number_literal "0x10")) (>> ">>") (number_literal "4")) () ")"))) (+ "+") (number_literal "1U")) (& "&") (number_literal "7"))) (; ";")) (if_statement "if (uVar36 == 0) goto LAB_00186826;" (if "if") (parenthesized_expression "(uVar36 == 0)" (( "(") (binary_expression "uVar36 == 0" (identifier "uVar36") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00186826;" (goto "goto") (statement_identifier "LAB_00186826") (; ";"))) (if_statement "if (uVar36 != 1) {\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }" (if "if") (parenthesized_expression "(uVar36 != 1)" (( "(") (binary_expression "uVar36 != 1" (identifier "uVar36") (!= "!=") (number_literal "1")) () ")")) (compound_statement "{\n              if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }\n              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n              uVar35 = uVar35 + 0x10;\n            }" ({ "{") (if_statement "if (uVar36 != 2) {\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }" (if "if") (parenthesized_expression "(uVar36 != 2)" (( "(") (binary_expression "uVar36 != 2" (identifier "uVar36") (!= "!=") (number_literal "2")) () ")")) (compound_statement "{\n                if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }\n                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                *(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                uVar35 = uVar35 + 0x10;\n              }" ({ "{") (if_statement "if (uVar36 != 3) {\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }" (if "if") (parenthesized_expression "(uVar36 != 3)" (( "(") (binary_expression "uVar36 != 3" (identifier "uVar36") (!= "!=") (number_literal "3")) () ")")) (compound_statement "{\n                  if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }\n                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                  *(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                  uVar35 = uVar35 + 0x10;\n                }" ({ "{") (if_statement "if (uVar36 != 4) {\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }" (if "if") (parenthesized_expression "(uVar36 != 4)" (( "(") (binary_expression "uVar36 != 4" (identifier "uVar36") (!= "!=") (number_literal "4")) () ")")) (compound_statement "{\n                    if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }\n                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                    *(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                    uVar35 = uVar35 + 0x10;\n                  }" ({ "{") (if_statement "if (uVar36 != 5) {\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }" (if "if") (parenthesized_expression "(uVar36 != 5)" (( "(") (binary_expression "uVar36 != 5" (identifier "uVar36") (!= "!=") (number_literal "5")) () ")")) (compound_statement "{\n                      if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }\n                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];\n                      *(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;\n                      uVar35 = uVar35 + 0x10;\n                    }" ({ "{") (if_statement "if (uVar36 != 6) {\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }" (if "if") (parenthesized_expression "(uVar36 != 6)" (( "(") (binary_expression "uVar36 != 6" (identifier "uVar36") (!= "!=") (number_literal "6")) () ")")) (compound_statement "{\n                        uVar3 = param_1[1];\n                        uVar35 = 0x10;\n                        *__ptr_00 = *__ptr_00 ^ *param_1;\n                        __ptr_00[1] = __ptr_00[1] ^ uVar3;\n                      }" ({ "{") (expression_statement "uVar3 = param_1[1];" (assignment_expression "uVar3 = param_1[1]" (identifier "uVar3") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar35 = 0x10;" (assignment_expression "uVar35 = 0x10" (identifier "uVar35") (= "=") (number_literal "0x10")) (; ";")) (expression_statement "*__ptr_00 = *__ptr_00 ^ *param_1;" (assignment_expression "*__ptr_00 = *__ptr_00 ^ *param_1" (pointer_expression "*__ptr_00" (* "*") (identifier "__ptr_00")) (= "=") (binary_expression "*__ptr_00 ^ *param_1" (pointer_expression "*__ptr_00" (* "*") (identifier "__ptr_00")) (^ "^") (pointer_expression "*param_1" (* "*") (identifier "param_1")))) (; ";")) (expression_statement "__ptr_00[1] = __ptr_00[1] ^ uVar3;" (assignment_expression "__ptr_00[1] = __ptr_00[1] ^ uVar3" (subscript_expression "__ptr_00[1]" (identifier "__ptr_00") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "__ptr_00[1] ^ uVar3" (subscript_expression "__ptr_00[1]" (identifier "__ptr_00") ([ "[") (number_literal "1") (] "]")) (^ "^") (identifier "uVar3"))) (; ";")) (} "}"))) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" (identifier "uVar3") (= "=") (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" (identifier "uVar4") (= "=") (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" (( "(") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (= "=") (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (^ "^") (pointer_expression "*(ulong *)((long)param_1 + uVar35)" (* "*") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")")))))) (; ";")) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar3 ^ uVar4" (identifier "uVar3") (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 0x10" (identifier "uVar35") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" (identifier "uVar3") (= "=") (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" (identifier "uVar4") (= "=") (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" (( "(") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (= "=") (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (^ "^") (pointer_expression "*(ulong *)((long)param_1 + uVar35)" (* "*") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")")))))) (; ";")) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar3 ^ uVar4" (identifier "uVar3") (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 0x10" (identifier "uVar35") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" (identifier "uVar3") (= "=") (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" (identifier "uVar4") (= "=") (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" (( "(") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (= "=") (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (^ "^") (pointer_expression "*(ulong *)((long)param_1 + uVar35)" (* "*") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")")))))) (; ";")) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar3 ^ uVar4" (identifier "uVar3") (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 0x10" (identifier "uVar35") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" (identifier "uVar3") (= "=") (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" (identifier "uVar4") (= "=") (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" (( "(") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (= "=") (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (^ "^") (pointer_expression "*(ulong *)((long)param_1 + uVar35)" (* "*") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")")))))) (; ";")) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar3 ^ uVar4" (identifier "uVar3") (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 0x10" (identifier "uVar35") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" (identifier "uVar3") (= "=") (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" (identifier "uVar4") (= "=") (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" (( "(") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (= "=") (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (^ "^") (pointer_expression "*(ulong *)((long)param_1 + uVar35)" (* "*") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")")))))) (; ";")) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar3 ^ uVar4" (identifier "uVar3") (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "uVar35 = uVar35 + 0x10;" (assignment_expression "uVar35 = uVar35 + 0x10" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 0x10" (identifier "uVar35") (+ "+") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1]" (identifier "uVar3") (= "=") (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar4 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar4 = ((ulong *)((long)param_1 + uVar35))[1]" (identifier "uVar4") (= "=") (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" (( "(") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (= "=") (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (^ "^") (pointer_expression "*(ulong *)((long)param_1 + uVar35)" (* "*") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")")))))) (; ";")) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar3 ^ uVar4" (identifier "uVar3") (^ "^") (identifier "uVar4"))) (; ";")) (for_statement "for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);\n                uVar35 = uVar35 + 0x80) {\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }" (for "for") (( "(") (assignment_expression "uVar35 = uVar35 + 0x10" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 0x10" (identifier "uVar35") (+ "+") (number_literal "0x10"))) (; ";") (binary_expression "uVar35 != (param_2 & 0xfffffffffffffff0)" (identifier "uVar35") (!= "!=") (parenthesized_expression "(param_2 & 0xfffffffffffffff0)" (( "(") (binary_expression "param_2 & 0xfffffffffffffff0" (identifier "param_2") (& "&") (number_literal "0xfffffffffffffff0")) () ")"))) (; ";") (assignment_expression "uVar35 = uVar35 + 0x80" (identifier "uVar35") (= "=") (binary_expression "uVar35 + 0x80" (identifier "uVar35") (+ "+") (number_literal "0x80"))) () ")") (compound_statement "{\nLAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              uVar5 = *puVar2;\n              uVar6 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              uVar9 = *puVar2;\n              uVar10 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              uVar13 = *puVar2;\n              uVar14 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              uVar17 = *puVar2;\n              uVar18 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              uVar21 = *puVar2;\n              uVar22 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              uVar25 = *puVar2;\n              uVar26 = puVar2[1];\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              uVar29 = *puVar2;\n              uVar30 = puVar2[1];\n              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);\n              uVar3 = *puVar2;\n              uVar4 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);\n              uVar11 = *puVar2;\n              uVar12 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);\n              uVar15 = *puVar2;\n              uVar16 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);\n              uVar19 = *puVar2;\n              uVar20 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);\n              uVar23 = *puVar2;\n              uVar24 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);\n              uVar27 = *puVar2;\n              uVar28 = puVar2[1];\n              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);\n              uVar31 = *puVar2;\n              uVar32 = puVar2[1];\n              *(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);\n              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);\n              *puVar2 = uVar5 ^ uVar3;\n              puVar2[1] = uVar6 ^ uVar4;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);\n              *puVar2 = uVar9 ^ uVar11;\n              puVar2[1] = uVar10 ^ uVar12;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);\n              *puVar2 = uVar13 ^ uVar15;\n              puVar2[1] = uVar14 ^ uVar16;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);\n              *puVar2 = uVar17 ^ uVar19;\n              puVar2[1] = uVar18 ^ uVar20;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);\n              *puVar2 = uVar21 ^ uVar23;\n              puVar2[1] = uVar22 ^ uVar24;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);\n              *puVar2 = uVar25 ^ uVar27;\n              puVar2[1] = uVar26 ^ uVar28;\n              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);\n              *puVar2 = uVar29 ^ uVar31;\n              puVar2[1] = uVar30 ^ uVar32;\n            }" ({ "{") (labeled_statement "LAB_00186826:\n              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (statement_identifier "LAB_00186826") (: ":") (expression_statement "uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];" (assignment_expression "uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1]" (identifier "uVar7") (= "=") (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";"))) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x10)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x10" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uVar5 = *puVar2;" (assignment_expression "uVar5 = *puVar2" (identifier "uVar5") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar6 = puVar2[1];" (assignment_expression "uVar6 = puVar2[1]" (identifier "uVar6") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x20)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x20" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar9 = *puVar2;" (assignment_expression "uVar9 = *puVar2" (identifier "uVar9") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar10 = puVar2[1];" (assignment_expression "uVar10 = puVar2[1]" (identifier "uVar10") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x30)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x30" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "uVar13 = *puVar2;" (assignment_expression "uVar13 = *puVar2" (identifier "uVar13") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar14 = puVar2[1];" (assignment_expression "uVar14 = puVar2[1]" (identifier "uVar14") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x40)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x40)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x40" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x40")) () ")")))) (; ";")) (expression_statement "uVar17 = *puVar2;" (assignment_expression "uVar17 = *puVar2" (identifier "uVar17") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar18 = puVar2[1];" (assignment_expression "uVar18 = puVar2[1]" (identifier "uVar18") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x50)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x50)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x50" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x50")) () ")")))) (; ";")) (expression_statement "uVar21 = *puVar2;" (assignment_expression "uVar21 = *puVar2" (identifier "uVar21") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar22 = puVar2[1];" (assignment_expression "uVar22 = puVar2[1]" (identifier "uVar22") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x60)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x60)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x60" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x60")) () ")")))) (; ";")) (expression_statement "uVar25 = *puVar2;" (assignment_expression "uVar25 = *puVar2" (identifier "uVar25") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar26 = puVar2[1];" (assignment_expression "uVar26 = puVar2[1]" (identifier "uVar26") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x70)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x70)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x70" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x70")) () ")")))) (; ";")) (expression_statement "uVar29 = *puVar2;" (assignment_expression "uVar29 = *puVar2" (identifier "uVar29") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar30 = puVar2[1];" (assignment_expression "uVar30 = puVar2[1]" (identifier "uVar30") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar8 = ((ulong *)((long)param_1 + uVar35))[1];" (assignment_expression "uVar8 = ((ulong *)((long)param_1 + uVar35))[1]" (identifier "uVar8") (= "=") (subscript_expression "((ulong *)((long)param_1 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)param_1 + uVar35))" (( "(") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0x10)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0x10" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "uVar3 = *puVar2;" (assignment_expression "uVar3 = *puVar2" (identifier "uVar3") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar4 = puVar2[1];" (assignment_expression "uVar4 = puVar2[1]" (identifier "uVar4") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0x20)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0x20" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "uVar11 = *puVar2;" (assignment_expression "uVar11 = *puVar2" (identifier "uVar11") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar12 = puVar2[1];" (assignment_expression "uVar12 = puVar2[1]" (identifier "uVar12") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0x30)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0x30" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "uVar15 = *puVar2;" (assignment_expression "uVar15 = *puVar2" (identifier "uVar15") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar16 = puVar2[1];" (assignment_expression "uVar16 = puVar2[1]" (identifier "uVar16") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x40)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0x40)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0x40" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x40")) () ")")))) (; ";")) (expression_statement "uVar19 = *puVar2;" (assignment_expression "uVar19 = *puVar2" (identifier "uVar19") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar20 = puVar2[1];" (assignment_expression "uVar20 = puVar2[1]" (identifier "uVar20") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x50)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0x50)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0x50" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x50")) () ")")))) (; ";")) (expression_statement "uVar23 = *puVar2;" (assignment_expression "uVar23 = *puVar2" (identifier "uVar23") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar24 = puVar2[1];" (assignment_expression "uVar24 = puVar2[1]" (identifier "uVar24") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x60)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0x60)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0x60" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x60")) () ")")))) (; ";")) (expression_statement "uVar27 = *puVar2;" (assignment_expression "uVar27 = *puVar2" (identifier "uVar27") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar28 = puVar2[1];" (assignment_expression "uVar28 = puVar2[1]" (identifier "uVar28") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)param_1 + uVar35 + 0x70)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0x70)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0x70" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x70")) () ")")))) (; ";")) (expression_statement "uVar31 = *puVar2;" (assignment_expression "uVar31 = *puVar2" (identifier "uVar31") (= "=") (pointer_expression "*puVar2" (* "*") (identifier "puVar2"))) (; ";")) (expression_statement "uVar32 = puVar2[1];" (assignment_expression "uVar32 = puVar2[1]" (identifier "uVar32") (= "=") (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);" (assignment_expression "*(ulong *)((long)__ptr_00 + uVar35) =\n                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (= "=") (binary_expression "*(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35)" (pointer_expression "*(ulong *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (^ "^") (pointer_expression "*(ulong *)((long)param_1 + uVar35)" (* "*") (cast_expression "(ulong *)((long)param_1 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")")))))) (; ";")) (expression_statement "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;" (assignment_expression "((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8" (subscript_expression "((ulong *)((long)__ptr_00 + uVar35))[1]" (parenthesized_expression "((ulong *)((long)__ptr_00 + uVar35))" (( "(") (cast_expression "(ulong *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")"))) () ")")) ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar7 ^ uVar8" (identifier "uVar7") (^ "^") (identifier "uVar8"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x10)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x10)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x10" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x10")) () ")")))) (; ";")) (expression_statement "*puVar2 = uVar5 ^ uVar3;" (assignment_expression "*puVar2 = uVar5 ^ uVar3" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "uVar5 ^ uVar3" (identifier "uVar5") (^ "^") (identifier "uVar3"))) (; ";")) (expression_statement "puVar2[1] = uVar6 ^ uVar4;" (assignment_expression "puVar2[1] = uVar6 ^ uVar4" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar6 ^ uVar4" (identifier "uVar6") (^ "^") (identifier "uVar4"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x20)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x20)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x20" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x20")) () ")")))) (; ";")) (expression_statement "*puVar2 = uVar9 ^ uVar11;" (assignment_expression "*puVar2 = uVar9 ^ uVar11" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "uVar9 ^ uVar11" (identifier "uVar9") (^ "^") (identifier "uVar11"))) (; ";")) (expression_statement "puVar2[1] = uVar10 ^ uVar12;" (assignment_expression "puVar2[1] = uVar10 ^ uVar12" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar10 ^ uVar12" (identifier "uVar10") (^ "^") (identifier "uVar12"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x30)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x30)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x30" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x30")) () ")")))) (; ";")) (expression_statement "*puVar2 = uVar13 ^ uVar15;" (assignment_expression "*puVar2 = uVar13 ^ uVar15" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "uVar13 ^ uVar15" (identifier "uVar13") (^ "^") (identifier "uVar15"))) (; ";")) (expression_statement "puVar2[1] = uVar14 ^ uVar16;" (assignment_expression "puVar2[1] = uVar14 ^ uVar16" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar14 ^ uVar16" (identifier "uVar14") (^ "^") (identifier "uVar16"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x40)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x40)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x40" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x40")) () ")")))) (; ";")) (expression_statement "*puVar2 = uVar17 ^ uVar19;" (assignment_expression "*puVar2 = uVar17 ^ uVar19" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "uVar17 ^ uVar19" (identifier "uVar17") (^ "^") (identifier "uVar19"))) (; ";")) (expression_statement "puVar2[1] = uVar18 ^ uVar20;" (assignment_expression "puVar2[1] = uVar18 ^ uVar20" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar18 ^ uVar20" (identifier "uVar18") (^ "^") (identifier "uVar20"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x50)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x50)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x50" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x50")) () ")")))) (; ";")) (expression_statement "*puVar2 = uVar21 ^ uVar23;" (assignment_expression "*puVar2 = uVar21 ^ uVar23" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "uVar21 ^ uVar23" (identifier "uVar21") (^ "^") (identifier "uVar23"))) (; ";")) (expression_statement "puVar2[1] = uVar22 ^ uVar24;" (assignment_expression "puVar2[1] = uVar22 ^ uVar24" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar22 ^ uVar24" (identifier "uVar22") (^ "^") (identifier "uVar24"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x60)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x60)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x60" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x60")) () ")")))) (; ";")) (expression_statement "*puVar2 = uVar25 ^ uVar27;" (assignment_expression "*puVar2 = uVar25 ^ uVar27" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "uVar25 ^ uVar27" (identifier "uVar25") (^ "^") (identifier "uVar27"))) (; ";")) (expression_statement "puVar2[1] = uVar26 ^ uVar28;" (assignment_expression "puVar2[1] = uVar26 ^ uVar28" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar26 ^ uVar28" (identifier "uVar26") (^ "^") (identifier "uVar28"))) (; ";")) (expression_statement "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);" (assignment_expression "puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70)" (identifier "puVar2") (= "=") (cast_expression "(ulong *)((long)__ptr_00 + uVar35 + 0x70)" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0x70)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0x70" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0x70")) () ")")))) (; ";")) (expression_statement "*puVar2 = uVar29 ^ uVar31;" (assignment_expression "*puVar2 = uVar29 ^ uVar31" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (binary_expression "uVar29 ^ uVar31" (identifier "uVar29") (^ "^") (identifier "uVar31"))) (; ";")) (expression_statement "puVar2[1] = uVar30 ^ uVar32;" (assignment_expression "puVar2[1] = uVar30 ^ uVar32" (subscript_expression "puVar2[1]" (identifier "puVar2") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "uVar30 ^ uVar32" (identifier "uVar30") (^ "^") (identifier "uVar32"))) (; ";")) (} "}"))) (expression_statement "uVar35 = param_2 & 0xfffffffffffffff0;" (assignment_expression "uVar35 = param_2 & 0xfffffffffffffff0" (identifier "uVar35") (= "=") (binary_expression "param_2 & 0xfffffffffffffff0" (identifier "param_2") (& "&") (number_literal "0xfffffffffffffff0"))) (; ";")) (if_statement "if (param_2 == uVar35) goto LAB_00186a3d;" (if "if") (parenthesized_expression "(param_2 == uVar35)" (( "(") (binary_expression "param_2 == uVar35" (identifier "param_2") (== "==") (identifier "uVar35")) () ")")) (goto_statement "goto LAB_00186a3d;" (goto "goto") (statement_identifier "LAB_00186a3d") (; ";"))) (} "}")))) (expression_statement "*(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);" (assignment_expression "*(byte *)((long)__ptr_00 + uVar35) =\n               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35)" (pointer_expression "*(byte *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(byte *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (= "=") (binary_expression "*(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35)" (pointer_expression "*(byte *)((long)__ptr_00 + uVar35)" (* "*") (cast_expression "(byte *)((long)__ptr_00 + uVar35)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35)" (( "(") (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) () ")")))) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35)" (( "(") (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 1 < param_2) {\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" (if "if") (parenthesized_expression "(uVar35 + 1 < param_2)" (( "(") (binary_expression "uVar35 + 1 < param_2" (binary_expression "uVar35 + 1" (identifier "uVar35") (+ "+") (number_literal "1")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);\n            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);\n            if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }\n          }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 1)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 1" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 1)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 1)" (( "(") (binary_expression "(long)param_1 + uVar35 + 1" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "1")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 2 < param_2) {\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" (if "if") (parenthesized_expression "(uVar35 + 2 < param_2)" (( "(") (binary_expression "uVar35 + 2 < param_2" (binary_expression "uVar35 + 2" (identifier "uVar35") (+ "+") (number_literal "2")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);\n              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);\n              if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }\n            }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 2)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 2" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 2)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 2)" (( "(") (binary_expression "(long)param_1 + uVar35 + 2" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "2")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 3 < param_2) {\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" (if "if") (parenthesized_expression "(uVar35 + 3 < param_2)" (( "(") (binary_expression "uVar35 + 3 < param_2" (binary_expression "uVar35 + 3" (identifier "uVar35") (+ "+") (number_literal "3")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);\n                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);\n                if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }\n              }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 3)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 3" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "3")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 3)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 3)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 3)" (( "(") (binary_expression "(long)param_1 + uVar35 + 3" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "3")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 4 < param_2) {\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" (if "if") (parenthesized_expression "(uVar35 + 4 < param_2)" (( "(") (binary_expression "uVar35 + 4 < param_2" (binary_expression "uVar35 + 4" (identifier "uVar35") (+ "+") (number_literal "4")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);\n                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);\n                  if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }\n                }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 4)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 4" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "4")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 4)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 4)" (( "(") (binary_expression "(long)param_1 + uVar35 + 4" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "4")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 5 < param_2) {\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" (if "if") (parenthesized_expression "(uVar35 + 5 < param_2)" (( "(") (binary_expression "uVar35 + 5 < param_2" (binary_expression "uVar35 + 5" (identifier "uVar35") (+ "+") (number_literal "5")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);\n                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);\n                    if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }\n                  }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 5)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 5" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "5")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 5)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 5)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 5)" (( "(") (binary_expression "(long)param_1 + uVar35 + 5" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "5")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 6 < param_2) {\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" (if "if") (parenthesized_expression "(uVar35 + 6 < param_2)" (( "(") (binary_expression "uVar35 + 6 < param_2" (binary_expression "uVar35 + 6" (identifier "uVar35") (+ "+") (number_literal "6")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);\n                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);\n                      if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }\n                    }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 6)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 6" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 6)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 6)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 6)" (( "(") (binary_expression "(long)param_1 + uVar35 + 6" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "6")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 7 < param_2) {\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" (if "if") (parenthesized_expression "(uVar35 + 7 < param_2)" (( "(") (binary_expression "uVar35 + 7 < param_2" (binary_expression "uVar35 + 7" (identifier "uVar35") (+ "+") (number_literal "7")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);\n                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);\n                        if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }\n                      }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 7)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 7" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "7")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 7)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 7)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 7)" (( "(") (binary_expression "(long)param_1 + uVar35 + 7" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "7")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 8 < param_2) {\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" (if "if") (parenthesized_expression "(uVar35 + 8 < param_2)" (( "(") (binary_expression "uVar35 + 8 < param_2" (binary_expression "uVar35 + 8" (identifier "uVar35") (+ "+") (number_literal "8")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);\n                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);\n                          if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }\n                        }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 8)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 8" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "8")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 8)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 8)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 8)" (( "(") (binary_expression "(long)param_1 + uVar35 + 8" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "8")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 9 < param_2) {\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" (if "if") (parenthesized_expression "(uVar35 + 9 < param_2)" (( "(") (binary_expression "uVar35 + 9 < param_2" (binary_expression "uVar35 + 9" (identifier "uVar35") (+ "+") (number_literal "9")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);\n                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);\n                            if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }\n                          }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 9)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 9" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "9")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 9)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 9)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 9)" (( "(") (binary_expression "(long)param_1 + uVar35 + 9" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "9")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 10 < param_2) {\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }" (if "if") (parenthesized_expression "(uVar35 + 10 < param_2)" (( "(") (binary_expression "uVar35 + 10 < param_2" (binary_expression "uVar35 + 10" (identifier "uVar35") (+ "+") (number_literal "10")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);\n                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);\n                              if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }\n                            }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 10)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 10" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "10")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 10)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 10)" (( "(") (binary_expression "(long)param_1 + uVar35 + 10" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "10")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 0xb < param_2) {\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }" (if "if") (parenthesized_expression "(uVar35 + 0xb < param_2)" (( "(") (binary_expression "uVar35 + 0xb < param_2" (binary_expression "uVar35 + 0xb" (identifier "uVar35") (+ "+") (number_literal "0xb")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);\n                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);\n                                if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }\n                              }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xb)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0xb" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0xb")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xb)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 0xb)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0xb)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0xb" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0xb")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 0xc < param_2) {\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }" (if "if") (parenthesized_expression "(uVar35 + 0xc < param_2)" (( "(") (binary_expression "uVar35 + 0xc < param_2" (binary_expression "uVar35 + 0xc" (identifier "uVar35") (+ "+") (number_literal "0xc")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);\n                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);\n                                  if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }\n                                }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xc)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0xc" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0xc")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xc)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 0xc)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0xc)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0xc" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0xc")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 0xd < param_2) {\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }" (if "if") (parenthesized_expression "(uVar35 + 0xd < param_2)" (( "(") (binary_expression "uVar35 + 0xd < param_2" (binary_expression "uVar35 + 0xd" (identifier "uVar35") (+ "+") (number_literal "0xd")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);\n                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);\n                                    if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }\n                                  }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xd)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0xd" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0xd")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xd)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 0xd)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0xd)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0xd" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0xd")) () ")")))))) (; ";")) (if_statement "if (uVar35 + 0xe < param_2) {\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }" (if "if") (parenthesized_expression "(uVar35 + 0xe < param_2)" (( "(") (binary_expression "uVar35 + 0xe < param_2" (binary_expression "uVar35 + 0xe" (identifier "uVar35") (+ "+") (number_literal "0xe")) (< "<") (identifier "param_2")) () ")")) (compound_statement "{\n                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);\n                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);\n                                    }" ({ "{") (expression_statement "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);" (assignment_expression "pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe)" (identifier "pbVar1") (= "=") (cast_expression "(byte *)((long)__ptr_00 + uVar35 + 0xe)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)__ptr_00 + uVar35 + 0xe)" (( "(") (binary_expression "(long)__ptr_00 + uVar35 + 0xe" (binary_expression "(long)__ptr_00 + uVar35" (cast_expression "(long)__ptr_00" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "__ptr_00")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0xe")) () ")")))) (; ";")) (expression_statement "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);" (assignment_expression "*pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (= "=") (binary_expression "*pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe)" (pointer_expression "*pbVar1" (* "*") (identifier "pbVar1")) (^ "^") (pointer_expression "*(byte *)((long)param_1 + uVar35 + 0xe)" (* "*") (cast_expression "(byte *)((long)param_1 + uVar35 + 0xe)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)param_1 + uVar35 + 0xe)" (( "(") (binary_expression "(long)param_1 + uVar35 + 0xe" (binary_expression "(long)param_1 + uVar35" (cast_expression "(long)param_1" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_1")) (+ "+") (identifier "uVar35")) (+ "+") (number_literal "0xe")) () ")")))))) (; ";")) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (} "}"))) (labeled_statement "LAB_00186a3d:\n        lVar34 = (long)param_7 * 0xd0;" (statement_identifier "LAB_00186a3d") (: ":") (expression_statement "lVar34 = (long)param_7 * 0xd0;" (assignment_expression "lVar34 = (long)param_7 * 0xd0" (identifier "lVar34") (= "=") (binary_expression "(long)param_7 * 0xd0" (cast_expression "(long)param_7" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "param_7")) (* "*") (number_literal "0xd0"))) (; ";"))) (expression_statement "iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0);" (assignment_expression "iVar33 = der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0)" (identifier "iVar33") (= "=") (call_expression "der_encode_sequence_multi\n                           (param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0)" (identifier "der_encode_sequence_multi") (argument_list "(param_3,param_4,7,\n                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),\n                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,\n                            __ptr_00,0,0,0)" (( "(") (identifier "param_3") (, ",") (identifier "param_4") (, ",") (number_literal "7") (, ",") (pointer_expression "*(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" (* "*") (cast_expression "(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0)" (( "(") (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0" (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34" (identifier "PTR_hash_descriptor_001ecea0") (+ "+") (identifier "lVar34")) (+ "+") (number_literal "0xa0")) () ")")))) (, ",") (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34 + 0x20" (binary_expression "PTR_hash_descriptor_001ecea0 + lVar34" (identifier "PTR_hash_descriptor_001ecea0") (+ "+") (identifier "lVar34")) (+ "+") (number_literal "0x20")) (, ",") (number_literal "2") (, ",") (number_literal "1") (, ",") (identifier "local_60") (, ",") (number_literal "5") (, ",") (identifier "param_2") (, ",") (identifier "__ptr_00") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (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") () ")"))) (; ";")) (expression_statement "ltc_deinit_multi(local_60,local_58,0);" (call_expression "ltc_deinit_multi(local_60,local_58,0)" (identifier "ltc_deinit_multi") (argument_list "(local_60,local_58,0)" (( "(") (identifier "local_60") (, ",") (identifier "local_58") (, ",") (number_literal "0") () ")"))) (; ";")) (labeled_statement "LAB_0018654c:\n  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }" (statement_identifier "LAB_0018654c") (: ":") (if_statement "if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {\n    return iVar33;\n  }" (if "if") (parenthesized_expression "(local_50[2] == *(long *)(in_FS_OFFSET + 0x28))" (( "(") (binary_expression "local_50[2] == *(long *)(in_FS_OFFSET + 0x28)" (subscript_expression "local_50[2]" (identifier "local_50") ([ "[") (number_literal "2") (] "]")) (== "==") (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    return iVar33;\n  }" ({ "{") (return_statement "return iVar33;" (return "return") (identifier "iVar33") (; ";")) (} "}")))) (expression_statement "__stack_chk_fail();" (call_expression "__stack_chk_fail()" (identifier "__stack_chk_fail") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

int function_1(type_1 *var_2,type_2 var_11,type_1 *var_4,type_2 *var_5,type_3 *prng,int wprng,
                   int hash,type_4 *var_6)

{
  type_5 *pbVar1;
  type_2 *puVar2;
  type_2 var_24;
  type_2 var_26;
  type_2 var_27;
  type_2 var_29;
  type_2 var_28;
  type_2 var_30;
  type_2 var_31;
  type_2 var_33;
  type_2 var_32;
  type_2 var_34;
  type_2 var_35;
  type_2 var_37;
  type_2 var_36;
  type_2 var_38;
  type_2 var_39;
  type_2 var_41;
  type_2 var_40;
  type_2 var_42;
  type_2 var_43;
  type_2 var_45;
  type_2 var_44;
  type_2 var_46;
  type_2 var_47;
  type_2 var_49;
  type_2 var_48;
  type_2 var_50;
  type_2 var_51;
  type_2 var_53;
  type_2 var_52;
  type_2 var_54;
  int var_8;
  long var_15;
  type_1 *var_16;
  type_2 *var_17;
  type_2 var_25;
  type_6 var_23;
  long var_1;
  void *g_pub;
  void *g_priv;
  type_2 x;
  type_2 y;
  long var_56;
  
  var_56 = *(long *)(var_1 + 0x28);
  if (var_2 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("in != NULL","src/pk/dsa/dsa_encrypt_key.c",0x28);
  }
  if (var_4 == (type_1 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("out != NULL","src/pk/dsa/dsa_encrypt_key.c",0x29);
  }
  if (var_5 == (type_2 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("outlen != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2a);
  }
  if (var_6 == (type_4 *)0x0) {
                    /* WARNING: Subroutine does not return */
    var_3("key != NULL","src/pk/dsa/dsa_encrypt_key.c",0x2b);
  }
  var_8 = var_7(wprng);
  if ((var_8 != 0) || (var_8 = var_9(hash), var_8 != 0)) goto LAB_0018654c;
  var_8 = 0xb;
  if ((*(type_2 *)(var_10 + (long)hash * 0xd0 + 0x10) < var_11) ||
     (var_8 = var_12(&g_pub,&g_priv,0), var_8 != 0)) goto LAB_0018654c;
  var_15 = (**(type_7 **)(var_13 + 0x90))(var_6->p);
  var_16 = (type_1 *)var_14(var_15 + 1);
  var_17 = (type_2 *)var_14(0x80);
  if ((var_16 == (type_1 *)0x0) || (var_17 == (type_2 *)0x0)) {
    if (var_16 != (type_1 *)0x0) {
      var_18(var_16);
    }
    if (var_17 != (type_2 *)0x0) {
      var_18(var_17);
    }
    var_19(g_pub,g_priv,0);
    var_8 = 0xd;
    goto LAB_0018654c;
  }
  var_8 = var_20(g_priv,var_6->q,prng,wprng);
  if ((var_8 == 0) &&
     (var_8 = (**(type_7 **)(var_13 + 0x140))(var_6->g,g_priv,var_6->p,g_pub), var_8 == 0))
  {
    var_15 = (**(type_7 **)(var_13 + 0x90))(var_6->p);
    x = var_15 + 1;
    var_8 = var_21(g_priv,var_6->y,var_6,var_16,&x);
    if (var_8 == 0) {
      y = 0x80;
      var_8 = var_22(hash,var_16,x,(type_1 *)var_17,&y);
      if (var_8 == 0) {
        x = 0;
        if (var_11 != 0) {
          x = var_11;
          if (var_11 - 1 < 0xf) {
            var_25 = 0;
          }
          else {
            var_25 = 0;
            var_23 = (int)((var_11 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;
            if (var_23 == 0) goto LAB_00186826;
            if (var_23 != 1) {
              if (var_23 != 2) {
                if (var_23 != 3) {
                  if (var_23 != 4) {
                    if (var_23 != 5) {
                      if (var_23 != 6) {
                        var_24 = *(type_2 *)(var_2 + 8);
                        var_25 = 0x10;
                        *var_17 = *var_17 ^ *(type_2 *)var_2;
                        var_17[1] = var_17[1] ^ var_24;
                      }
                      var_24 = ((type_2 *)((long)var_17 + var_25))[1];
                      var_26 = *(type_2 *)((long)(var_2 + var_25) + 8);
                      *(type_2 *)((long)var_17 + var_25) =
                           *(type_2 *)((long)var_17 + var_25) ^ *(type_2 *)(var_2 + var_25);
                      ((type_2 *)((long)var_17 + var_25))[1] = var_24 ^ var_26;
                      var_25 = var_25 + 0x10;
                    }
                    var_24 = ((type_2 *)((long)var_17 + var_25))[1];
                    var_26 = *(type_2 *)((long)(var_2 + var_25) + 8);
                    *(type_2 *)((long)var_17 + var_25) =
                         *(type_2 *)((long)var_17 + var_25) ^ *(type_2 *)(var_2 + var_25);
                    ((type_2 *)((long)var_17 + var_25))[1] = var_24 ^ var_26;
                    var_25 = var_25 + 0x10;
                  }
                  var_24 = ((type_2 *)((long)var_17 + var_25))[1];
                  var_26 = *(type_2 *)((long)(var_2 + var_25) + 8);
                  *(type_2 *)((long)var_17 + var_25) =
                       *(type_2 *)((long)var_17 + var_25) ^ *(type_2 *)(var_2 + var_25);
                  ((type_2 *)((long)var_17 + var_25))[1] = var_24 ^ var_26;
                  var_25 = var_25 + 0x10;
                }
                var_24 = ((type_2 *)((long)var_17 + var_25))[1];
                var_26 = *(type_2 *)((long)(var_2 + var_25) + 8);
                *(type_2 *)((long)var_17 + var_25) =
                     *(type_2 *)((long)var_17 + var_25) ^ *(type_2 *)(var_2 + var_25);
                ((type_2 *)((long)var_17 + var_25))[1] = var_24 ^ var_26;
                var_25 = var_25 + 0x10;
              }
              var_24 = ((type_2 *)((long)var_17 + var_25))[1];
              var_26 = *(type_2 *)((long)(var_2 + var_25) + 8);
              *(type_2 *)((long)var_17 + var_25) =
                   *(type_2 *)((long)var_17 + var_25) ^ *(type_2 *)(var_2 + var_25);
              ((type_2 *)((long)var_17 + var_25))[1] = var_24 ^ var_26;
              var_25 = var_25 + 0x10;
            }
            var_24 = ((type_2 *)((long)var_17 + var_25))[1];
            var_26 = *(type_2 *)((long)(var_2 + var_25) + 8);
            *(type_2 *)((long)var_17 + var_25) =
                 *(type_2 *)((long)var_17 + var_25) ^ *(type_2 *)(var_2 + var_25);
            ((type_2 *)((long)var_17 + var_25))[1] = var_24 ^ var_26;
            for (var_25 = var_25 + 0x10; var_25 != (var_11 & 0xfffffffffffffff0);
                var_25 = var_25 + 0x80) {
LAB_00186826:
              var_24 = ((type_2 *)((long)var_17 + var_25))[1];
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x10);
              var_27 = *puVar2;
              var_29 = puVar2[1];
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x20);
              var_31 = *puVar2;
              var_33 = puVar2[1];
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x30);
              var_35 = *puVar2;
              var_37 = puVar2[1];
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x40);
              var_39 = *puVar2;
              var_41 = puVar2[1];
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x50);
              var_43 = *puVar2;
              var_45 = puVar2[1];
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x60);
              var_47 = *puVar2;
              var_49 = puVar2[1];
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x70);
              var_51 = *puVar2;
              var_53 = puVar2[1];
              var_26 = *(type_2 *)((long)(var_2 + var_25) + 8);
              var_28 = *(type_2 *)(var_2 + var_25 + 0x10);
              var_30 = *(type_2 *)((long)(var_2 + var_25 + 0x10) + 8);
              var_32 = *(type_2 *)(var_2 + var_25 + 0x20);
              var_34 = *(type_2 *)((long)(var_2 + var_25 + 0x20) + 8);
              var_36 = *(type_2 *)(var_2 + var_25 + 0x30);
              var_38 = *(type_2 *)((long)(var_2 + var_25 + 0x30) + 8);
              var_40 = *(type_2 *)(var_2 + var_25 + 0x40);
              var_42 = *(type_2 *)((long)(var_2 + var_25 + 0x40) + 8);
              var_44 = *(type_2 *)(var_2 + var_25 + 0x50);
              var_46 = *(type_2 *)((long)(var_2 + var_25 + 0x50) + 8);
              var_48 = *(type_2 *)(var_2 + var_25 + 0x60);
              var_50 = *(type_2 *)((long)(var_2 + var_25 + 0x60) + 8);
              var_52 = *(type_2 *)(var_2 + var_25 + 0x70);
              var_54 = *(type_2 *)((long)(var_2 + var_25 + 0x70) + 8);
              *(type_2 *)((long)var_17 + var_25) =
                   *(type_2 *)((long)var_17 + var_25) ^ *(type_2 *)(var_2 + var_25);
              ((type_2 *)((long)var_17 + var_25))[1] = var_24 ^ var_26;
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x10);
              *puVar2 = var_27 ^ var_28;
              puVar2[1] = var_29 ^ var_30;
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x20);
              *puVar2 = var_31 ^ var_32;
              puVar2[1] = var_33 ^ var_34;
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x30);
              *puVar2 = var_35 ^ var_36;
              puVar2[1] = var_37 ^ var_38;
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x40);
              *puVar2 = var_39 ^ var_40;
              puVar2[1] = var_41 ^ var_42;
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x50);
              *puVar2 = var_43 ^ var_44;
              puVar2[1] = var_45 ^ var_46;
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x60);
              *puVar2 = var_47 ^ var_48;
              puVar2[1] = var_49 ^ var_50;
              puVar2 = (type_2 *)((long)var_17 + var_25 + 0x70);
              *puVar2 = var_51 ^ var_52;
              puVar2[1] = var_53 ^ var_54;
            }
            var_25 = var_11 & 0xfffffffffffffff0;
            if (var_11 == var_25) goto LAB_00186a3d;
          }
          *(type_5 *)((long)var_17 + var_25) = *(type_5 *)((long)var_17 + var_25) ^ var_2[var_25];
          if (var_25 + 1 < var_11) {
            pbVar1 = (type_5 *)((long)var_17 + var_25 + 1);
            *pbVar1 = *pbVar1 ^ var_2[var_25 + 1];
            if (var_25 + 2 < var_11) {
              pbVar1 = (type_5 *)((long)var_17 + var_25 + 2);
              *pbVar1 = *pbVar1 ^ var_2[var_25 + 2];
              if (var_25 + 3 < var_11) {
                pbVar1 = (type_5 *)((long)var_17 + var_25 + 3);
                *pbVar1 = *pbVar1 ^ var_2[var_25 + 3];
                if (var_25 + 4 < var_11) {
                  pbVar1 = (type_5 *)((long)var_17 + var_25 + 4);
                  *pbVar1 = *pbVar1 ^ var_2[var_25 + 4];
                  if (var_25 + 5 < var_11) {
                    pbVar1 = (type_5 *)((long)var_17 + var_25 + 5);
                    *pbVar1 = *pbVar1 ^ var_2[var_25 + 5];
                    if (var_25 + 6 < var_11) {
                      pbVar1 = (type_5 *)((long)var_17 + var_25 + 6);
                      *pbVar1 = *pbVar1 ^ var_2[var_25 + 6];
                      if (var_25 + 7 < var_11) {
                        pbVar1 = (type_5 *)((long)var_17 + var_25 + 7);
                        *pbVar1 = *pbVar1 ^ var_2[var_25 + 7];
                        if (var_25 + 8 < var_11) {
                          pbVar1 = (type_5 *)((long)var_17 + var_25 + 8);
                          *pbVar1 = *pbVar1 ^ var_2[var_25 + 8];
                          if (var_25 + 9 < var_11) {
                            pbVar1 = (type_5 *)((long)var_17 + var_25 + 9);
                            *pbVar1 = *pbVar1 ^ var_2[var_25 + 9];
                            if (var_25 + 10 < var_11) {
                              pbVar1 = (type_5 *)((long)var_17 + var_25 + 10);
                              *pbVar1 = *pbVar1 ^ var_2[var_25 + 10];
                              if (var_25 + 0xb < var_11) {
                                pbVar1 = (type_5 *)((long)var_17 + var_25 + 0xb);
                                *pbVar1 = *pbVar1 ^ var_2[var_25 + 0xb];
                                if (var_25 + 0xc < var_11) {
                                  pbVar1 = (type_5 *)((long)var_17 + var_25 + 0xc);
                                  *pbVar1 = *pbVar1 ^ var_2[var_25 + 0xc];
                                  if (var_25 + 0xd < var_11) {
                                    pbVar1 = (type_5 *)((long)var_17 + var_25 + 0xd);
                                    *pbVar1 = *pbVar1 ^ var_2[var_25 + 0xd];
                                    if (var_25 + 0xe < var_11) {
                                      pbVar1 = (type_5 *)((long)var_17 + var_25 + 0xe);
                                      *pbVar1 = *pbVar1 ^ var_2[var_25 + 0xe];
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
LAB_00186a3d:
        var_15 = (long)hash * 0xd0;
        var_8 = var_55
                           (var_4,var_5,7,
                            *(type_8 *)(var_10 + var_15 + 0xa0),
                            var_10 + var_15 + 0x20,2,1,g_pub,5,var_11,var_17,0,
                            0,0);
      }
    }
  }
  var_18(var_17);
  var_18(var_16);
  var_19(g_pub,g_priv,0);
LAB_0018654c:
  if (var_56 == *(long *)(var_1 + 0x28)) {
    return var_8;
  }
                    /* WARNING: Subroutine does not return */
  var_57();
}


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

/* WARNING: Type propagation algorithm not settling */

int MASKED(ulong *param_1,ulong param_2,long param_3,long param_4,undefined8 param_5,
                   undefined4 param_6,int param_7,long param_8)

{
  byte *pbVar1;
  ulong *puVar2;
  ulong uVar3;
  ulong uVar4;
  ulong uVar5;
  ulong uVar6;
  ulong uVar7;
  ulong uVar8;
  ulong uVar9;
  ulong uVar10;
  ulong uVar11;
  ulong uVar12;
  ulong uVar13;
  ulong uVar14;
  ulong uVar15;
  ulong uVar16;
  ulong uVar17;
  ulong uVar18;
  ulong uVar19;
  ulong uVar20;
  ulong uVar21;
  ulong uVar22;
  ulong uVar23;
  ulong uVar24;
  ulong uVar25;
  ulong uVar26;
  ulong uVar27;
  ulong uVar28;
  ulong uVar29;
  ulong uVar30;
  ulong uVar31;
  ulong uVar32;
  int iVar33;
  long lVar34;
  void *__ptr;
  ulong *__ptr_00;
  ulong uVar35;
  uint uVar36;
  long in_FS_OFFSET;
  undefined8 local_60;
  undefined8 local_58;
  ulong local_50 [4];
  
  local_50[2] = *(long *)(in_FS_OFFSET + 0x28);
  if (param_1 == (ulong *)0x0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("in != NULL","src/pk/dsa/MASKED.c",0x28);
  }
  if (param_3 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("out != NULL","src/pk/dsa/MASKED.c",0x29);
  }
  if (param_4 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("outlen != NULL","src/pk/dsa/MASKED.c",0x2a);
  }
  if (param_8 == 0) {
                    /* WARNING: Subroutine does not return */
    crypt_argchk("key != NULL","src/pk/dsa/MASKED.c",0x2b);
  }
  iVar33 = prng_is_valid(param_6);
  if ((iVar33 != 0) || (iVar33 = hash_is_valid(param_7), iVar33 != 0)) goto LAB_0018654c;
  iVar33 = 0xb;
  if ((*(ulong *)(PTR_hash_descriptor_001ecea0 + (long)param_7 * 0xd0 + 0x10) < param_2) ||
     (iVar33 = ltc_init_multi(&local_60,&local_58,0), iVar33 != 0)) goto LAB_0018654c;
  lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));
  __ptr = malloc(lVar34 + 1);
  __ptr_00 = (ulong *)malloc(0x80);
  if ((__ptr == (void *)0x0) || (__ptr_00 == (ulong *)0x0)) {
    if (__ptr != (void *)0x0) {
      free(__ptr);
    }
    if (__ptr_00 != (ulong *)0x0) {
      free(__ptr_00);
    }
    ltc_deinit_multi(local_60,local_58,0);
    iVar33 = 0xd;
    goto LAB_0018654c;
  }
  iVar33 = rand_bn_upto(local_58,*(undefined8 *)(param_8 + 0x10),param_5,param_6);
  if ((iVar33 == 0) &&
     (iVar33 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x140))
                         (*(undefined8 *)(param_8 + 8),local_58,*(undefined8 *)(param_8 + 0x18),
                          local_60), iVar33 == 0)) {
    lVar34 = (**(code **)(PTR_ltc_mp_001ecec8 + 0x90))(*(undefined8 *)(param_8 + 0x18));
    local_50[0] = lVar34 + 1;
    iVar33 = dsa_shared_secret(local_58,*(undefined8 *)(param_8 + 0x28),param_8,__ptr,local_50);
    if (iVar33 == 0) {
      local_50[1] = 0x80;
      iVar33 = hash_memory(param_7,__ptr,local_50[0],__ptr_00,local_50 + 1);
      if (iVar33 == 0) {
        local_50[0] = 0;
        if (param_2 != 0) {
          local_50[0] = param_2;
          if (param_2 - 1 < 0xf) {
            uVar35 = 0;
          }
          else {
            uVar35 = 0;
            uVar36 = (int)((param_2 & 0xfffffffffffffff0) - 0x10 >> 4) + 1U & 7;
            if (uVar36 == 0) goto LAB_00186826;
            if (uVar36 != 1) {
              if (uVar36 != 2) {
                if (uVar36 != 3) {
                  if (uVar36 != 4) {
                    if (uVar36 != 5) {
                      if (uVar36 != 6) {
                        uVar3 = param_1[1];
                        uVar35 = 0x10;
                        *__ptr_00 = *__ptr_00 ^ *param_1;
                        __ptr_00[1] = __ptr_00[1] ^ uVar3;
                      }
                      uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
                      uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
                      *(ulong *)((long)__ptr_00 + uVar35) =
                           *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
                      ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
                      uVar35 = uVar35 + 0x10;
                    }
                    uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
                    uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
                    *(ulong *)((long)__ptr_00 + uVar35) =
                         *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
                    ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
                    uVar35 = uVar35 + 0x10;
                  }
                  uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
                  uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
                  *(ulong *)((long)__ptr_00 + uVar35) =
                       *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
                  ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
                  uVar35 = uVar35 + 0x10;
                }
                uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
                uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
                *(ulong *)((long)__ptr_00 + uVar35) =
                     *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
                ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
                uVar35 = uVar35 + 0x10;
              }
              uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
              uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
              *(ulong *)((long)__ptr_00 + uVar35) =
                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
              uVar35 = uVar35 + 0x10;
            }
            uVar3 = ((ulong *)((long)__ptr_00 + uVar35))[1];
            uVar4 = ((ulong *)((long)param_1 + uVar35))[1];
            *(ulong *)((long)__ptr_00 + uVar35) =
                 *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
            ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar3 ^ uVar4;
            for (uVar35 = uVar35 + 0x10; uVar35 != (param_2 & 0xfffffffffffffff0);
                uVar35 = uVar35 + 0x80) {
LAB_00186826:
              uVar7 = ((ulong *)((long)__ptr_00 + uVar35))[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);
              uVar5 = *puVar2;
              uVar6 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);
              uVar9 = *puVar2;
              uVar10 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);
              uVar13 = *puVar2;
              uVar14 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);
              uVar17 = *puVar2;
              uVar18 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);
              uVar21 = *puVar2;
              uVar22 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);
              uVar25 = *puVar2;
              uVar26 = puVar2[1];
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);
              uVar29 = *puVar2;
              uVar30 = puVar2[1];
              uVar8 = ((ulong *)((long)param_1 + uVar35))[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x10);
              uVar3 = *puVar2;
              uVar4 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x20);
              uVar11 = *puVar2;
              uVar12 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x30);
              uVar15 = *puVar2;
              uVar16 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x40);
              uVar19 = *puVar2;
              uVar20 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x50);
              uVar23 = *puVar2;
              uVar24 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x60);
              uVar27 = *puVar2;
              uVar28 = puVar2[1];
              puVar2 = (ulong *)((long)param_1 + uVar35 + 0x70);
              uVar31 = *puVar2;
              uVar32 = puVar2[1];
              *(ulong *)((long)__ptr_00 + uVar35) =
                   *(ulong *)((long)__ptr_00 + uVar35) ^ *(ulong *)((long)param_1 + uVar35);
              ((ulong *)((long)__ptr_00 + uVar35))[1] = uVar7 ^ uVar8;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x10);
              *puVar2 = uVar5 ^ uVar3;
              puVar2[1] = uVar6 ^ uVar4;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x20);
              *puVar2 = uVar9 ^ uVar11;
              puVar2[1] = uVar10 ^ uVar12;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x30);
              *puVar2 = uVar13 ^ uVar15;
              puVar2[1] = uVar14 ^ uVar16;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x40);
              *puVar2 = uVar17 ^ uVar19;
              puVar2[1] = uVar18 ^ uVar20;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x50);
              *puVar2 = uVar21 ^ uVar23;
              puVar2[1] = uVar22 ^ uVar24;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x60);
              *puVar2 = uVar25 ^ uVar27;
              puVar2[1] = uVar26 ^ uVar28;
              puVar2 = (ulong *)((long)__ptr_00 + uVar35 + 0x70);
              *puVar2 = uVar29 ^ uVar31;
              puVar2[1] = uVar30 ^ uVar32;
            }
            uVar35 = param_2 & 0xfffffffffffffff0;
            if (param_2 == uVar35) goto LAB_00186a3d;
          }
          *(byte *)((long)__ptr_00 + uVar35) =
               *(byte *)((long)__ptr_00 + uVar35) ^ *(byte *)((long)param_1 + uVar35);
          if (uVar35 + 1 < param_2) {
            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 1);
            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 1);
            if (uVar35 + 2 < param_2) {
              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 2);
              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 2);
              if (uVar35 + 3 < param_2) {
                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 3);
                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 3);
                if (uVar35 + 4 < param_2) {
                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 4);
                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 4);
                  if (uVar35 + 5 < param_2) {
                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 5);
                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 5);
                    if (uVar35 + 6 < param_2) {
                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 6);
                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 6);
                      if (uVar35 + 7 < param_2) {
                        pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 7);
                        *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 7);
                        if (uVar35 + 8 < param_2) {
                          pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 8);
                          *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 8);
                          if (uVar35 + 9 < param_2) {
                            pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 9);
                            *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 9);
                            if (uVar35 + 10 < param_2) {
                              pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 10);
                              *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 10);
                              if (uVar35 + 0xb < param_2) {
                                pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xb);
                                *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xb);
                                if (uVar35 + 0xc < param_2) {
                                  pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xc);
                                  *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xc);
                                  if (uVar35 + 0xd < param_2) {
                                    pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xd);
                                    *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xd);
                                    if (uVar35 + 0xe < param_2) {
                                      pbVar1 = (byte *)((long)__ptr_00 + uVar35 + 0xe);
                                      *pbVar1 = *pbVar1 ^ *(byte *)((long)param_1 + uVar35 + 0xe);
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
LAB_00186a3d:
        lVar34 = (long)param_7 * 0xd0;
        iVar33 = der_encode_sequence_multi
                           (param_3,param_4,7,
                            *(undefined8 *)(PTR_hash_descriptor_001ecea0 + lVar34 + 0xa0),
                            PTR_hash_descriptor_001ecea0 + lVar34 + 0x20,2,1,local_60,5,param_2,
                            __ptr_00,0,0,0);
      }
    }
  }
  free(__ptr_00);
  free(__ptr);
  ltc_deinit_multi(local_60,local_58,0);
LAB_0018654c:
  if (local_50[2] == *(long *)(in_FS_OFFSET + 0x28)) {
    return iVar33;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail();
}

