void add_unwind_adjustsp (long); void abort (void); unsigned char bytes[5]; int flag; void add_unwind_adjustsp (long offset) { int n; unsigned long o; o = (long) ((offset - 0x204) >> 2); n = 0; do { a: bytes[n] = o & 0x7f; o >>= 7; if (o) { bytes[n] |= 0x80; if (flag) goto a; } n++; } while (o); } int main(void) { add_unwind_adjustsp (4132); if (bytes[0] != 0x88 || bytes[1] != 0x07) abort (); return 0; }