if
( my_str && len )
{
v7 = len / 3;
if
( (
signed
int
)(len / 3) % 3 )
++v7;
v7 *= 4;
*a3 = v7;
malloc
(v7 + 1);
Dst = (
void
*)sub_411127();
if
( Dst )
{
j_memset(Dst, 0, v7 + 1);
v9 = my_str;
v7 = len;
i = 0;
v5 = 0;
while
( v7 > 0 )
{
byte_41A144[2] = 0;
byte_41A144[1] = 0;
byte_41A144[0] = 0;
for
( i = 0; i < 3 && v7 >= 1; ++i )
{
byte_41A144[i] = *v9;
--v7;
++v9;
}
if
( !i )
break
;
v4 = i;
if
( i == 1 )
{
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[(
signed
int
)(unsigned
__int8
)byte_41A144[0] >> 2];
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[((byte_41A144[1] & 0xF0) >> 4) | 16 * (byte_41A144[0] & 3)];
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[64];
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[64];
}
else
if
( v4 == 2 )
{
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[(
signed
int
)(unsigned
__int8
)byte_41A144[0] >> 2];
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[((byte_41A144[1] & 0xF0) >> 4) | 16 * (byte_41A144[0] & 3)];
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[((byte_41A144[2] & 0xC0) >> 6) | 4 * (byte_41A144[1] & 0xF)];
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[64];
}
else
if
( v4 == 3 )
{
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[(
signed
int
)(unsigned
__int8
)byte_41A144[0] >> 2];
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[((byte_41A144[1] & 0xF0) >> 4) | 16 * (byte_41A144[0] & 3)];
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[((byte_41A144[2] & 0xC0) >> 6) | 4 * (byte_41A144[1] & 0xF)];
*((_BYTE *)Dst + v5++) = aAbcdefghijklmn[byte_41A144[2] & 0x3F];
}
}
*((_BYTE *)Dst + v5) = 0;
}
}