zloy
Принятый Кодер
- Регистрация
- 9 Янв 2016
- Сообщения
- 38
- Баллы
- 50
для теста вязл функцию php_base64_encode из php5ts.dll версии 5,3
но что то ничего не вышло может кто знает как правильно сделать
Код:
int __cdecl php_base64_encode(int a1, signed int a2, _DWORD *a3)
{
int v3; // esi@1
int v4; // edi@1
int result; // eax@4
int v6; // ebp@5
int v7; // ecx@5
unsigned int v8; // edx@6
_BYTE *v9; // ecx@7
_BYTE *v10; // ecx@9
_BYTE *v11; // ecx@10
_BYTE *v12; // ecx@12
v3 = a1;
v4 = a2;
if ( a2 >= 0 )
{
v6 = safe_emalloc((a2 + 2) / 3, 4, 1);
v7 = v6;
if ( a2 > 2 )
{
v8 = (a2 - 3) / 3u + 1;
v4 = -3 * v8 + a2;
do
{
*(_BYTE *)v7 = byte_1041F828[(unsigned int)*(_BYTE *)v3 >> 2];
*(_BYTE *)(v7 + 1) = *(&byte_1041F828[16 * (*(_BYTE *)v3 & 3)] + ((unsigned int)*(_BYTE *)(v3 + 1) >> 4));
v9 = (_BYTE *)(v7 + 2);
*v9++ = *(&byte_1041F828[4 * (*(_BYTE *)(v3 + 1) & 0xF)] + ((unsigned int)*(_BYTE *)(v3 + 2) >> 6));
*v9 = byte_1041F828[*(_BYTE *)(v3 + 2) & 0x3F];
v7 = (int)(v9 + 1);
v3 += 3;
--v8;
}
while ( v8 );
}
if ( v4 )
{
*(_BYTE *)v7 = byte_1041F828[(unsigned int)*(_BYTE *)v3 >> 2];
v10 = (_BYTE *)(v7 + 1);
if ( v4 <= 1 )
{
*v10 = byte_1041F828[16 * (*(_BYTE *)v3 & 3)];
v11 = v10 + 1;
*v11 = 61;
}
else
{
*v10 = *(&byte_1041F828[16 * (*(_BYTE *)v3 & 3)] + ((unsigned int)*(_BYTE *)(v3 + 1) >> 4));
v11 = v10 + 1;
*v11 = byte_1041F828[4 * (*(_BYTE *)(v3 + 1) & 0xF)];
}
v12 = v11 + 1;
*v12 = 61;
v7 = (int)(v12 + 1);
}
if ( a3 )
*a3 = v7 - v6;
result = v6;
*(_BYTE *)v7 = 0;
}
else
{
if ( a3 )
*a3 = 0;
result = 0;
}
return result;
}