I don't know how to use this tool very well, I was only ever a mediocre C programmer, and my knowledge of assembly stops right about at the 6502.
This is on a Mac, retail software, and it's a 32-bit Intel executable. If I perform the following command:
(lldb) expr ((char *) 0xa5baddf2)
I will often see strings that resemble (to my ignorant eyes):
(char *) $63 = 0xa5baddf2 "\xffffff83\xffffffc4\x10\xffffff89\xffffffc6\xffffff8b\xffffff87\xffffffe6A\x0e\x04\xffffff85\xffffffc0t\x12\xffffff83\xffffffec\fj\x01\xffffffffu\x10\xffffffffu\fSV\xffffffff\xffffffd0\xffffff83\xffffffc4 \xffffff81\xfffffffb\x01\b"
This is in hex of course because they aren't ascii printable, and it likely terminates just where there's some random null byte. Why are the top 24 (or so) bits always 0xffffff? Given that the low bits (the actual value) appear normal, these are probably unsigned ints or something like that, and it being a 32-bit executable it would pad those out I should think. But if so, shouldn't the high bits all be zeroed?
This doesn't much make sense to me whether they'd be unsigned or signed (I don't think two's complement would look like this).