rendered paste body//----- (004CC640) --------------------------------------------------------
int __cdecl sub_4CC640(int a1)
{
int v1; // eax@1
int v2; // ebp@1
int v3; // edi@1
signed int v4; // esi@1
int result; // eax@2
int v6; // edx@3
int v7; // ebx@7
signed int v8; // edi@8
int v9; // eax@11
int v10; // edx@11
v2 = a1;
v4 = 0;
v1 = sub_4CC080(8 * *(_DWORD *)(a1 + 4) + 2, (int)".\\crypto\\bn\\bn_print.c", 74);
v3 = v1;
a1 = v1;
if ( v1 )
{
v6 = v1;
if ( *(_DWORD *)(v2 + 12) )
{
*(_BYTE *)v1 = 45;
v6 = v1 + 1;
}
if ( !*(_DWORD *)(v2 + 4) )
*(_BYTE *)v6++ = 48;
v7 = *(_DWORD *)(v2 + 4) - 1;
if ( v7 >= 0 )
{
do
{
v8 = 24;
do
{
if ( v4 || (*(_DWORD *)(*(_DWORD *)v2 + 4 * v7) >> v8) & 0xFF )
{
v9 = (*(_DWORD *)(*(_DWORD *)v2 + 4 * v7) >> v8) & 0xF;
v10 = v6 + 1;
v4 = 1;
*(_BYTE *)(v10 - 1) = byte_50BDE8[((*(_DWORD *)(*(_DWORD *)v2 + 4 * v7) >> v8) & 0xFF) >> 4];
*(_BYTE *)v10 = byte_50BDE8[v9];
v6 = v10 + 1;
}
v8 -= 8;
}
while ( v8 >= 0 );
--v7;
}
while ( v7 >= 0 );
v3 = a1;
}
result = v3;
*(_BYTE *)v6 = 0;
}
else
{
sub_4CEC20(3u, 105, 65, (int)".\\crypto\\bn\\bn_print.c", 77);
result = v3;
}
return result;
}