_BYTE *__usercall DebugVgaPrintStr@<eax>(int value@<eax>, _BYTE *buf, char a3, unsigned int n164)
{
unsigned int n164_1; // ecx
_BYTE *buf_1; // edi
__int16 value_1; // bx
int value_2; // eax
int v8; // edx
char n164_2; // dl
unsigned int count; // ecx
n164_1 = n164;
LOBYTE(value) = a3;
buf_1 = buf;
BYTE1(value) = a3;
value_1 = value;
value_2 = value << 16;
LOWORD(value_2) = value_1;
if ( n164 >= 4 )
{
v8 = (unsigned __int8)buf & 3;
if ( ((unsigned __int8)buf & 3) != 0 )
{
memset(buf, value_1, 4 - v8);
buf_1 = &buf[4 - v8];
n164_1 = n164 - (4 - v8);
}
n164_2 = n164_1;
count = n164_1 >> 2;
memset32(buf_1, value_2, count);
buf_1 += 4 * count;
n164_1 = n164_2 & 3;
}
memset(buf_1, value_1, n164_1);
return buf;
}