1 void add_unwind_adjustsp (long); 2 void abort (void); 3 4 unsigned char bytes[5]; 5 6 int flag; 7 8 void add_unwind_adjustsp(long offset)9add_unwind_adjustsp (long offset) 10 { 11 int n; 12 unsigned long o; 13 14 o = (long) ((offset - 0x204) >> 2); 15 16 n = 0; 17 do 18 { 19 a: 20 bytes[n] = o & 0x7f; 21 o >>= 7; 22 if (o) 23 { 24 bytes[n] |= 0x80; 25 if (flag) 26 goto a; 27 } 28 n++; 29 } 30 while (o); 31 } 32 main(void)33int main(void) 34 { 35 add_unwind_adjustsp (4132); 36 if (bytes[0] != 0x88 || bytes[1] != 0x07) 37 abort (); 38 return 0; 39 } 40