//----- (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; }