unsigned char crypt_unpackD()

in src/generic/nca_d.c [481:517]


unsigned char crypt_unpackD(int in)
{
    int out, type;
    type = in / 256;
    in = in - 256 * type;
    switch (type) {
    case 0:
	if (in < 10)
	    out = (in + 48);
	else if (in <= 31)
	    out = (in + 55);
	else
	    out = (in + 65);
	break;
    case 1:
	if (in < 48)
	    out = in;
	else
	    out = (in + 10);
	break;
    case 2:
	out = (in + 123);
	break;
    case 3:
	out = (in + 167);
	break;
    default:
	if (in < 31)
	    out = (in + 225);
	else if (in < 37)
	    out = (in + 60);
	else
	    out = (in + 33);
	break;
    }
    return (unsigned char) out;
}