private static string FormatBigIntegerToHexString(BigInteger value, char format, int digits, NumberFormatInfo info) {
StringBuilder builder = new StringBuilder();
byte[] buffer = value.ToByteArray();
string str = null;
int index = buffer.Length - 1;
if (index > -1) {
bool flag = false;
byte num2 = buffer[index];
if (num2 > 0xf7) {
num2 = (byte)(num2 - 240);
flag = true;
}
if ((num2 < 8) || flag) {
str = format + "1";
#if !dotNETMF
builder.Append(num2.ToString(str, info));
#else
builder.Append(num2.ToString(str));
#endif
index--;
}
}
if (index > -1) {
str = format + "2";
while (index > -1) {
#if !dotNETMF
builder.Append(buffer[index--].ToString(str, info));
#else
builder.Append(buffer[index--].ToString(str));
#endif
}
}
if ((digits > 0) && (digits > builder.Length)) {
builder.Insert(0, (value._sign >= 0) ? "0" : ((format == 'x') ? "f" : "F"), digits - builder.Length);
}
return builder.ToString();
}