RtlEthernetStringToAddressW
NTSTATUS __stdcall RtlEthernetStringToAddressW(WCHAR *String, WCHAR **Terminator, _DL_EUI48 *Addr){
int *v4;
int v7;
char v8;
wint_t v9;
int v11;
__int16 v12;
char v13;
v4 = &v11;
while( 1 )
{
v7 = 0;
v8 = 0;
while( 1 )
{
v9 = *String;
if( !*String || v9 >= 0x80u )
break;
if( iswctype(v9, 4u) )
{
v8 = v9 + 16 * (v8 + 13);
}
else
{
if( !iswctype(v9, 0x80u) )
break;
v8 = v9 + 16 * v8 - (iswctype(v9, 2u) != 0 ? 97 : 65) + 10;
}
if( v7 == 2 )
goto LABEL_15;
++String;
++v7;
}
if( *String != 45 && *String != 58 )
break;
if( v4 < (int *)((char *)&v12 + 1) )
{
*(_BYTE *)v4 = v8;
++String;
v4 = (int *)((char *)v4 + 1);
if( v7 == 2 )
continue;
}
LABEL_15:
*Terminator = String;
return -1073741811;
}
*Terminator = String;
if( v7 != 2 )
return -1073741811;
*(_BYTE *)v4 = v8;
if( (char *)v4 + 1 != &v13 )
return -1073741811;
*(_DWORD *)Addr->Byte = v11;
*(_WORD *)&Addr->Ei48.Byte[1] = v12;
return 0;
}Referenced by:
No references.