1	.text
2wrap:
3	mov	$500 - 0x100, %eax
4	mov	$500 + 0xffffff00, %edx
5	mov	$val - 0x100, %eax
6	mov	$val + 0xffffff00, %edx
7	mov	$sym - 0x100, %eax
8	mov	$sym + 0xffffff00, %edx
9	mov	$sym + 500 - 0x100, %eax
10	mov	$sym + 500 + 0xffffff00, %edx
11
12	movl	$500 - 0x100, (%eax)
13	movl	$500 + 0xffffff00, (%edx)
14	movl	$val - 0x100, (%eax)
15	movl	$val + 0xffffff00, (%edx)
16	movl	$sym - 0x100, (%eax)
17	movl	$sym + 0xffffff00, (%edx)
18	movl	$sym + 500 - 0x100, (%eax)
19	movl	$sym + 500 + 0xffffff00, (%edx)
20
21	add	$500 - 0x100, %ecx
22	add	$500 + 0xffffff00, %edx
23	add	$val - 0x100, %ecx
24	add	$val + 0xffffff00, %edx
25	add	$sym - 0x100, %ecx
26	add	$sym + 0xffffff00, %edx
27	add	$sym + 500 - 0x100, %ecx
28	add	$sym + 500 + 0xffffff00, %edx
29
30	addl	$500 - 0x100, (%eax)
31	addl	$500 + 0xffffff00, (%edx)
32	addl	$val - 0x100, (%eax)
33	addl	$val + 0xffffff00, (%edx)
34	addl	$sym - 0x100, (%eax)
35	addl	$sym + 0xffffff00, (%edx)
36	addl	$sym + 500 - 0x100, (%eax)
37	addl	$sym + 500 + 0xffffff00, (%edx)
38
39	ret
40
41	.data
42	.long 500 - 0x100
43	.long 500 + 0xffffff00
44	.long val - 0x100
45	.long val + 0xffffff00
46	.long sym - 0x100
47	.long sym + 0xffffff00
48	.long sym + 500 - 0x100
49	.long sym + 500 + 0xffffff00
50
51	.slong 500 - 0x8fffff00
52	.slong 500 + 0x7fffff00
53	.slong val - 0x8fffff00
54	.slong val + 0x7fffff00
55	.slong sym - 0x8fffff00
56	.slong sym + 0x7fffff00
57	.slong sym + 500 - 0x8fffff00
58	.slong sym + 500 + 0x7fffff00
59
60	.equ val, 400
61