RtlIpv6AddressToStringExA
INT64 __fastcall RtlIpv6AddressToStringExA(
const in6_addr *Address,
UINT64 ScopeId,
INT64 Port,
CHAR *AddressString,
UINT64 *AddressStringLength){
__int16 v6;
int v7;
UINT8 v8;
CHAR *p_Src;
INT8 *v10;
INT8 *v11;
int v12;
unsigned int v13;
unsigned int v14;
UINT8 Src;
CHAR S;
char v18[15];
v6 = Port;
v7 = ScopeId;
if( !Address || !AddressStringLength || !AddressString && *(_DWORD *)AddressStringLength )
return 3221225485i64;
v8 = Src;
if( (_WORD)Port )
v8 = 91;
p_Src = (CHAR *)&Src;
Src = v8;
if( (_WORD)Port )
p_Src = &S;
v10 = RtlIpv6AddressToStringA((in6_addr *)Address, p_Src);
v11 = v10;
if( v7 )
v11 = &v10[(int)sprintf_s(v10, v18 - v10, (INT8 *)"%%%u")];
if( v6 )
LODWORD(v11) = sprintf_s(v11, v18 - v11, (INT8 *)"]:%u") + (_DWORD)v11;
v13 = *(_DWORD *)AddressStringLength;
v14 = (_DWORD)v11 - (v12 + 32) + 1;
*(_DWORD *)AddressStringLength = v14;
if( v13 < v14 )
return 3221225485i64;
memmove((UINT8 *)AddressString, &Src, v14);
return 0i64;
}Referenced by:
No references.