Криптография с эллиптической кривой

Здравствуйте.
У кого нибудь есть опыт работы с IPP криптографической библиотекой??

Есть две функции восстановленные из библиотеки. Необходимо сделать простенькую утилиту которая смогла бы зашифровать и расшифровать данные аналогичным способом.

_BOOL4 __usercall cr_init@<eax>(int a1@<esi>)
{
  int v1; // eax
  _BOOL4 v2; // ecx
  int v4; // eax
  int v5; // eax
  int v6; // eax
  int v7; // esi
  signed int v8; // eax
  int v9; // eax
  signed int v10; // eax
  int v11; // eax
  int v12; // eax
  int v13; // [esp+0h] [ebp-Ch]

  v13 = a1;
  ippStaticInit();
  v1 = ippsECCPGetSize(force_to_data_0, &ecc_ctx_size);
  v2 = 1;
  if ( !v1 )
  {
    v4 = ippMalloc(ecc_ctx_size);
    p_ecc = v4;
    v5 = ippsECCPInit(force_to_data_0, v4);
    v2 = 1;
    if ( !v5 )
    {
      v6 = ippsECCPSetStd(65544, p_ecc);
      v2 = 1;
      if ( !v6 )
      {
        v7 = (unsigned int)force_to_data_0 >> 5;
        ippsBigNumGetSize((unsigned int)force_to_data_0 >> 5);
        x_bn_length = v7;
        x_bn_buf_size = v13;
        ecc_prime = init_big_num_state(v7, v13);
        v2 = 1;
        if ( ecc_prime )
        {
          ecc_a = init_big_num_state(v7, v13);
          v2 = 1;
          if ( ecc_a )
          {
            ecc_b = init_big_num_state(v7, v13);
            v2 = 1;
            if ( ecc_b )
            {
              ecc_gx = init_big_num_state(v7, v13);
              v2 = 1;
              if ( ecc_gx )
              {
                ecc_gy = init_big_num_state(v7, v13);
                v2 = 1;
                if ( ecc_gy )
                {
                  v8 = init_big_num_state(v7, v13);
                  ecc_order = v8;
                  v2 = 1;
                  if ( v8 )
                  {
                    v9 = ippsECCPGet(ecc_prime, ecc_a, ecc_b, ecc_gx, ecc_gy, v8, &cofactor, p_ecc);
                    v2 = 1;
                    if ( !v9 )
                    {
                      Qa = init_ecc_point(force_to_data_0);
                      v2 = 1;
                      if ( Qa )
                      {
                        v10 = init_ecc_point(force_to_data_0);
                        G = v10;
                        v2 = 1;
                        if ( v10 )
                        {
                          v11 = ippsECCPSetPoint(ecc_gx, ecc_gy, v10, p_ecc);
                          v2 = 1;
                          if ( !v11 )
                          {
                            v12 = generate_big_number(force_to_data_0 / 2, &mc_private_key);
                            da = v12;
                            v2 = 1;
                            if ( v12 )
                              v2 = ippsECCPMulPointScalar(G, v12, Qa, p_ecc) != 0;
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return v2;
}
signed int __cdecl cr_decrypt(int a1, int a2, int a3, int a4, int a5, int a6)
{
  signed int v6; // edx
  int v7; // eax
  signed int v8; // eax
  signed int v9; // ebp
  int v10; // eax
  int v11; // edi
  int v12; // esi
  signed int v14; // [esp+10h] [ebp-1Ch]
  signed int v15; // [esp+14h] [ebp-18h]
  int v16; // [esp+18h] [ebp-14h]

  v16 = init_public_key(force_to_data_0, a5, a6 / 2, a6 / 2 + a5, a6 / 2);
  v6 = 2;
  if ( v16 )
  {
    v15 = init_ecc_point(force_to_data_0);
    v6 = 2;
    if ( v15 )
    {
      v7 = ippsECCPMulPointScalar(v16, da, v15, p_ecc);
      v6 = 2;
      if ( !v7 )
      {
        v14 = init_big_num_state(x_bn_length, x_bn_buf_size);
        v6 = 2;
        if ( v14 )
        {
          v8 = init_big_num_state(x_bn_length, x_bn_buf_size);
          v9 = v8;
          v6 = 2;
          if ( v8 )
          {
            v10 = ippsECCPGetPoint(v14, v8, v15, p_ecc);
            v6 = 2;
            if ( !v10 )
            {
              v11 = init_two_fish_ctx(v14);
              v12 = init_twofish_iv(v9);
              get_plain_data(a1, a2, v11, v12, a3);
              ippFree(v11);
              ippFree(v12);
              ippFree(v9);
              ippFree(v14);
              ippFree(v15);
              ippFree(v16);
              v6 = 0;
            }
          }
        }
      }
    }
  }
  return v6;
}
signed int __cdecl cr_encrypt(int a1, int a2, int a3, int a4, int a5, int a6)
{
  signed int v6; // edx
  int v7; // eax
  signed int v8; // eax
  signed int v9; // ebp
  int v10; // eax
  int v11; // edi
  int v12; // esi
  signed int v14; // [esp+10h] [ebp-1Ch]
  signed int v15; // [esp+14h] [ebp-18h]
  int v16; // [esp+18h] [ebp-14h]

  v16 = init_public_key(force_to_data_0, a5, a6 / 2, a6 / 2 + a5, a6 / 2);
  v6 = 2;
  if ( v16 )
  {
    v15 = init_ecc_point(force_to_data_0);
    v6 = 2;
    if ( v15 )
    {
      v7 = ippsECCPMulPointScalar(v16, da, v15, p_ecc);
      v6 = 2;
      if ( !v7 )
      {
        v14 = init_big_num_state(x_bn_length, x_bn_buf_size);
        v6 = 2;
        if ( v14 )
        {
          v8 = init_big_num_state(x_bn_length, x_bn_buf_size);
          v9 = v8;
          v6 = 2;
          if ( v8 )
          {
            v10 = ippsECCPGetPoint(v14, v8, v15, p_ecc);
            v6 = 2;
            if ( !v10 )
            {
              v11 = init_two_fish_ctx(v14);
              v12 = init_twofish_iv(v9);
              get_cipher_data(a1, a2, v11, v12, a3);
              ippFree(v11);
              ippFree(v12);
              ippFree(v9);
              ippFree(v14);
              ippFree(v15);
              ippFree(v16);
              v6 = 0;
            }
          }
        }
      }
    }
  }
  return v6;
}

Вроде нашел библиотеку ipp но там нету функций таких. А поиск по функциям кидает на разные страницы Intel но никак не нахожу примера использования.

Коменты сам прописывал или были?
Смахивает на коменты каких-то ассемблерных значений.

Так это из иды выдернул.
Интересуют функции:

ippsECCPMulPointScalar
ippsTwofishDecryptCFB
ippsECCPPointGetSize
ippsECCPPointInit

Тут очевидно используется библиотека крипографии с эллиптической кривой. Где то попадаются частичные примеры но там не библиотеки а больше какие то рассказы о технологии.
А вот так конкретно библиотеку чтобы ее к сям подключить не найду.

Вот на интел даже есть описания этих функций