id __cdecl +[MWUtils doRSAPublicEncrypt:pkvalue:](MWUtils_meta *self, SEL a2, id a3, id a4)
{
v4 = a4;
v20 = self;
v19 = a2;
v18 = 0LL;
objc_storeStrong(&v18, a3);
v17 = 0LL;
objc_storeStrong(&v17, v4);
v15 = +[MWUtils createRsaPublicKey:](&OBJC_CLASS___MWUtils, "createRsaPublicKey:", v17);
if ( v15 )
{
v14 = (unsigned __int64)objc_msgSend(v18, "length");
v13 = sub_10125D5E0(v15);
v16 = malloc(v13 + 1);
__memset_chk(v16, 0LL, v13 + 1, -1LL);
v5 = (void *)objc_retainAutorelease(v18);
v6 = objc_msgSend(v5, "bytes");
v11 = sub_10125D608(v14, v6, v16, v15, 3LL);
if ( v11 >= 0 )
{
sub_101258C18(v15);
v7 = objc_msgSend(&OBJC_CLASS___NSData, "dataWithBytes:length:", v16, v13);
v10 = objc_retainAutoreleasedReturnValue(v7);
if ( v16 )
{
free(v16);
v16 = 0LL;
}
v8 = +[MWUtils bytesToHex:](&OBJC_CLASS___MWUtils, "bytesToHex:", v10);
v21 = objc_retainAutoreleasedReturnValue(v8);
v12 = 1;
objc_storeStrong(&v10, 0LL);
}
else
{
sub_101258C18(v15);
v21 = objc_retain(&stru_102883E78);
v12 = 1;
}
}
else
{
v21 = objc_retain(&stru_102883E78);
v12 = 1;
}
return (id)objc_autoreleaseReturnValue(v21);
}