All pastes #956339 Raw Edit

Something

public text v1 · immutable
#956339 ·published 2008-03-25 05:20 UTC
rendered paste body
//----- (004EB960) --------------------------------------------------------
unsigned int __cdecl sub_4EB960(void *a1, signed int a2, int a3, signed int a4, int a5)
{
  unsigned int result; // eax@2
  const void *v6; // esi@4
  int v7; // eax@5
  signed int i; // ecx@5
  signed int v9; // edx@10
  char v10; // dl@6

  if ( a4 >= 10 )
  {
    if ( a5 != a4 + 1 || (v6 = (const void *)(a3 + 1), *(_BYTE *)a3 != 2) )
    {
      sub_4CEC20(4u, 114, 107, (int)".\\crypto\\rsa\\rsa_ssl.c", 119);
      result = -1;
    }
    else
    {
      v7 = a4 - 1;
      for ( i = 0; i < v7; ++i )
      {
        v10 = *(_BYTE *)v6;
        v6 = (char *)v6 + 1;
        if ( !v10 )
          break;
      }
      if ( i == v7 || i < 8 )
      {
        sub_4CEC20(4u, 114, 113, (int)".\\crypto\\rsa\\rsa_ssl.c", 130);
        result = -1;
      }
      else
      {
        v9 = -8;
        do
        {
          if ( *((_BYTE *)v6 + v9) != 3 )
            break;
          ++v9;
        }
        while ( v9 < 0 );
        if ( v9 == -1 )
        {
          sub_4CEC20(4u, 114, 115, (int)".\\crypto\\rsa\\rsa_ssl.c", 139);
          result = -1;
        }
        else
        {
          result = -1 - i + v7;
          if ( (signed int)result <= a2 )
          {
            memcpy(a1, v6, result);
          }
          else
          {
            sub_4CEC20(4u, 114, 109, (int)".\\crypto\\rsa\\rsa_ssl.c", 147);
            result = -1;
          }
        }
      }
    }
  }
  else
  {
    sub_4CEC20(4u, 114, 111, (int)".\\crypto\\rsa\\rsa_ssl.c", 114);
    result = -1;
  }
  return result;
}