it's from a thing that does a yucky key derivation thing. or at least tries to
k1 and k2 are both byte *s (k1's the input, k2's the output), k2buf is just a byte[20]. b is just a temporary byte
k2 = k2buf;
b = *k1;
while (b != '\0') {
if ((((char)b < 'A') || ('M' < (char)b)) &&
(((char)b < 'a' || ('m' < (char)b)))) {
if ((('M' < (char)b) && ((char)b < '[')) ||
(('m' < (char)b && ((char)b < '{')))) {
b += 0xf3;
}
}
else {
b += 0xd;
}
k1 = k1 + 1;
*k2 = b;
k2 = k2 + 1;
b = *k1;
}
"oh come on, tell me"
what's special about 0xf3 and 0xd?
"i'm unsatisfied"
well, they're 243 and 13. though it's a byte so it's not really 243, it's -13, since the overflow is nice and predictable. almost.
"i remain unsatisfied, and confused"
ascii char comparisons plus +/-13 is pretty rot13-y don't you think
"oh, now that i know the answer it's kinda patently unsatisfying"
yeah i felt the same way. who does rot13 in real code
"thanks for this little adventure"
oh you're so kind


.png)