mirror of
https://github.com/pakt/ropc
synced 2026-06-08 16:36:27 +00:00
572 lines
13 KiB
Plaintext
572 lines
13 KiB
Plaintext
0x0004 edx = 0x000a6425
|
|
0x000c ecx = 0x0804a068
|
|
0x0014 [ecx] = edx
|
|
0x0018 edx = 0x00000000
|
|
0x0020 ecx = 0x0804a06b
|
|
0x0028 [ecx] = edx
|
|
0x002c edx = 0x0841a980
|
|
0x0034 ecx = 0x0804a060
|
|
0x003c [ecx] = edx
|
|
0x0040 edx = 0x0841a980
|
|
0x0048 ecx = 0x0804a064
|
|
0x0050 [ecx] = edx
|
|
0x0054 edx = (from: Named(function_main), to: Named(global_end))
|
|
0x005c ecx = 0x0804a060
|
|
0x0064 ecx = [ecx]
|
|
0x0068 [ecx] = edx
|
|
0x006c edx = 0x0804a060
|
|
0x0074 ecx = [edx]
|
|
0x0078 edx = 0x00000004
|
|
0x0080 ecx = ecx - edx
|
|
0x0084 eax = 0x0804a060
|
|
0x008c [eax] = ecx
|
|
0x0090 ;# Fun: main, args:
|
|
0x0090 function_main:
|
|
0x0090 ;Enter(12)
|
|
0x0090 edx = 0x0804a064
|
|
0x0098 edx = [edx]
|
|
0x009c ecx = 0x0804a060
|
|
0x00a4 ecx = [ecx]
|
|
0x00a8 [ecx] = edx
|
|
0x00ac edx = 0x0804a060
|
|
0x00b4 ecx = [edx]
|
|
0x00b8 edx = 0x00000004
|
|
0x00c0 ecx = ecx - edx
|
|
0x00c4 eax = 0x0804a060
|
|
0x00cc [eax] = ecx
|
|
0x00d0 edx = 0x0804a060
|
|
0x00d8 edx = [edx]
|
|
0x00dc ecx = 0x0804a064
|
|
0x00e4 [ecx] = edx
|
|
0x00e8 edx = 0x0804a060
|
|
0x00f0 ecx = [edx]
|
|
0x00f4 edx = 0x0000000c
|
|
0x00fc ecx = ecx - edx
|
|
0x0100 eax = 0x0804a060
|
|
0x0108 [eax] = ecx
|
|
0x010c ;Assign(fmt, 134520936)
|
|
0x010c edx = 0x0804a068
|
|
0x0114 ebx = 0x0804a064
|
|
0x011c eax = [ebx]
|
|
0x0120 ecx = 0x7ffffff8
|
|
0x0128 ecx = eax + ecx
|
|
0x012c [ecx] = edx
|
|
0x0130 ;Assign(i, 0)
|
|
0x0130 edx = 0x00000000
|
|
0x0138 ebx = 0x0804a064
|
|
0x0140 eax = [ebx]
|
|
0x0144 ecx = 0x7ffffffc
|
|
0x014c ecx = eax + ecx
|
|
0x0150 [ecx] = edx
|
|
0x0154 ;Assign(x, 0)
|
|
0x0154 edx = 0x00000000
|
|
0x015c ebx = 0x0804a064
|
|
0x0164 eax = [ebx]
|
|
0x0168 ecx = 0x00000000
|
|
0x0170 ecx = eax + ecx
|
|
0x0174 [ecx] = edx
|
|
0x0178 local_main_print:
|
|
0x0178 ;Call(fib, i,&x)
|
|
0x0178 edx = 0x0804a064
|
|
0x0180 ecx = [edx]
|
|
0x0184 edx = 0x00000000
|
|
0x018c edx = ecx + edx
|
|
0x0190 ecx = 0x0804a060
|
|
0x0198 ecx = [ecx]
|
|
0x019c [ecx] = edx
|
|
0x01a0 edx = 0x0804a060
|
|
0x01a8 ecx = [edx]
|
|
0x01ac edx = 0x00000004
|
|
0x01b4 ecx = ecx - edx
|
|
0x01b8 eax = 0x0804a060
|
|
0x01c0 [eax] = ecx
|
|
0x01c4 edx = 0x0804a064
|
|
0x01cc ecx = [edx]
|
|
0x01d0 edx = 0x7ffffffc
|
|
0x01d8 edx = ecx + edx
|
|
0x01dc edx = [edx]
|
|
0x01e0 ecx = 0x0804a060
|
|
0x01e8 ecx = [ecx]
|
|
0x01ec [ecx] = edx
|
|
0x01f0 edx = 0x0804a060
|
|
0x01f8 ecx = [edx]
|
|
0x01fc edx = 0x00000004
|
|
0x0204 ecx = ecx - edx
|
|
0x0208 eax = 0x0804a060
|
|
0x0210 [eax] = ecx
|
|
0x0214 edx = (from: Named(function_fib), to: Unnamed(@f))
|
|
0x021c ecx = 0x0804a060
|
|
0x0224 ecx = [ecx]
|
|
0x0228 [ecx] = edx
|
|
0x022c edx = 0x0804a060
|
|
0x0234 ecx = [edx]
|
|
0x0238 edx = 0x00000004
|
|
0x0240 ecx = ecx - edx
|
|
0x0244 eax = 0x0804a060
|
|
0x024c [eax] = ecx
|
|
0x0250 ebx = (from: Unnamed(@f), to: Named(function_fib))
|
|
0x0258 esp = esp + ebx
|
|
0x0264 @@:
|
|
0x0264 ;!Call(printf, fmt,x)
|
|
0x0264 eax = esp
|
|
0x0268 @@:
|
|
0x0268 ecx = (from: Unnamed(@b), to: Unnamed(@f))
|
|
0x0270 eax = eax + ecx
|
|
0x0274 ecx = 0x080484a0
|
|
0x027c [eax] = ecx
|
|
0x0280 ecx = 0x00000008
|
|
0x0288 eax = eax + ecx
|
|
0x028c edx = 0x0804a064
|
|
0x0294 ecx = [edx]
|
|
0x0298 edx = 0x7ffffff8
|
|
0x02a0 edx = ecx + edx
|
|
0x02a4 ecx = [edx]
|
|
0x02a8 [eax] = ecx
|
|
0x02ac ebx = 0x00000004
|
|
0x02b4 eax = eax + ebx
|
|
0x02b8 edx = 0x0804a064
|
|
0x02c0 ecx = [edx]
|
|
0x02c4 edx = 0x00000000
|
|
0x02cc edx = ecx + edx
|
|
0x02d0 ecx = [edx]
|
|
0x02d4 [eax] = ecx
|
|
0x02d8 ebx = 0x00000004
|
|
0x02e0 eax = eax + ebx
|
|
0x02e4 ebx = 0x00000100
|
|
0x02ec esp = esp + ebx
|
|
0x02f8 hex(0x00000000)
|
|
0x02fc hex(0x01010101)
|
|
0x0300 hex(0x02020202)
|
|
0x0304 hex(0x03030303)
|
|
0x0308 hex(0x04040404)
|
|
0x030c hex(0x05050505)
|
|
0x0310 hex(0x06060606)
|
|
0x0314 hex(0x07070707)
|
|
0x0318 hex(0x08080808)
|
|
0x031c hex(0x09090909)
|
|
0x0320 hex(0x0a0a0a0a)
|
|
0x0324 hex(0x0b0b0b0b)
|
|
0x0328 hex(0x0c0c0c0c)
|
|
0x032c hex(0x0d0d0d0d)
|
|
0x0330 hex(0x0e0e0e0e)
|
|
0x0334 hex(0x0f0f0f0f)
|
|
0x0338 hex(0x10101010)
|
|
0x033c hex(0x11111111)
|
|
0x0340 hex(0x12121212)
|
|
0x0344 hex(0x13131313)
|
|
0x0348 hex(0x14141414)
|
|
0x034c hex(0x15151515)
|
|
0x0350 hex(0x16161616)
|
|
0x0354 hex(0x17171717)
|
|
0x0358 hex(0x18181818)
|
|
0x035c hex(0x19191919)
|
|
0x0360 hex(0x1a1a1a1a)
|
|
0x0364 hex(0x1b1b1b1b)
|
|
0x0368 hex(0x1c1c1c1c)
|
|
0x036c hex(0x1d1d1d1d)
|
|
0x0370 hex(0x1e1e1e1e)
|
|
0x0374 hex(0x1f1f1f1f)
|
|
0x0378 hex(0x20202020)
|
|
0x037c hex(0x21212121)
|
|
0x0380 hex(0x22222222)
|
|
0x0384 hex(0x23232323)
|
|
0x0388 hex(0x24242424)
|
|
0x038c hex(0x25252525)
|
|
0x0390 hex(0x26262626)
|
|
0x0394 hex(0x27272727)
|
|
0x0398 hex(0x28282828)
|
|
0x039c hex(0x29292929)
|
|
0x03a0 hex(0x2a2a2a2a)
|
|
0x03a4 hex(0x2b2b2b2b)
|
|
0x03a8 hex(0x2c2c2c2c)
|
|
0x03ac hex(0x2d2d2d2d)
|
|
0x03b0 hex(0x2e2e2e2e)
|
|
0x03b4 hex(0x2f2f2f2f)
|
|
0x03b8 hex(0x30303030)
|
|
0x03bc hex(0x31313131)
|
|
0x03c0 hex(0x32323232)
|
|
0x03c4 hex(0x33333333)
|
|
0x03c8 hex(0x34343434)
|
|
0x03cc hex(0x35353535)
|
|
0x03d0 hex(0x36363636)
|
|
0x03d4 hex(0x37373737)
|
|
0x03d8 hex(0x38383838)
|
|
0x03dc hex(0x39393939)
|
|
0x03e0 hex(0x3a3a3a3a)
|
|
0x03e4 hex(0x3b3b3b3b)
|
|
0x03e8 hex(0x3c3c3c3c)
|
|
0x03ec hex(0x3d3d3d3d)
|
|
0x03f0 hex(0x3e3e3e3e)
|
|
0x03f4 hex(0x3f3f3f3f)
|
|
0x03f8 ;jmp printf
|
|
0x03f8 @@:
|
|
0x03f8 hex(0x080484a0)
|
|
0x03fc ;esp += 12
|
|
0x03fc hex(0x080489f7)
|
|
0x0400 hex(0x00000000)
|
|
0x0404 hex(0x01010101)
|
|
0x0408 ;Assign(i, BinOp(i,+,1))
|
|
0x0408 edx = 0x0804a064
|
|
0x0410 ecx = [edx]
|
|
0x0414 edx = 0x7ffffffc
|
|
0x041c edx = ecx + edx
|
|
0x0420 ecx = [edx]
|
|
0x0424 edx = 0x00000001
|
|
0x042c edx = ecx + edx
|
|
0x0430 ebx = 0x0804a064
|
|
0x0438 eax = [ebx]
|
|
0x043c ecx = 0x7ffffffc
|
|
0x0444 ecx = eax + ecx
|
|
0x0448 [ecx] = edx
|
|
0x044c ;Cmp(i, 11)
|
|
0x044c edx = 0x0804a064
|
|
0x0454 ecx = [edx]
|
|
0x0458 edx = 0x7ffffffc
|
|
0x0460 edx = ecx + edx
|
|
0x0464 ecx = [edx]
|
|
0x0468 edx = 0x0000000b
|
|
0x0470 ecx = ecx - edx
|
|
0x0474 SaveFlags
|
|
0x0478 ;Branch(~[e], print)
|
|
0x0478 edx = 0x00004000
|
|
0x0480 eax = eax & edx
|
|
0x0484 ebx = 0x00004000
|
|
0x048c eax = eax - ebx
|
|
0x0490 SaveFlags
|
|
0x0494 ebx = 0x00004000
|
|
0x049c eax = eax / ebx
|
|
0x04a0 edx = 0x00000001
|
|
0x04a8 eax = eax & edx
|
|
0x04ac eax = eax ^ edx
|
|
0x04b0 edx = (from: Unnamed(@f), to: Named(local_main_print))
|
|
0x04b8 eax = eax * edx
|
|
0x04bc esp = esp + eax
|
|
0x04c0 @@:
|
|
0x04c0 ;Leave
|
|
0x04c0 edx = 0x0804a064
|
|
0x04c8 edx = [edx]
|
|
0x04cc ecx = 0x0804a060
|
|
0x04d4 [ecx] = edx
|
|
0x04d8 edx = 0x0804a060
|
|
0x04e0 ecx = [edx]
|
|
0x04e4 edx = 0x00000004
|
|
0x04ec edx = ecx + edx
|
|
0x04f0 ecx = 0x0804a060
|
|
0x04f8 [ecx] = edx
|
|
0x04fc edx = [edx]
|
|
0x0500 ecx = 0x0804a064
|
|
0x0508 [ecx] = edx
|
|
0x050c ;ret(main)
|
|
0x050c edx = 0x0804a060
|
|
0x0514 ecx = [edx]
|
|
0x0518 edx = 0x00000004
|
|
0x0520 edx = ecx + edx
|
|
0x0524 ecx = 0x0804a060
|
|
0x052c [ecx] = edx
|
|
0x0530 ecx = [edx]
|
|
0x0534 ebx = (from: Unnamed(@f), to: Named(function_main))
|
|
0x053c ebx = ebx + ecx
|
|
0x0540 esp = esp + ebx
|
|
0x054c @@:
|
|
0x054c ;# Fun: fib, args: n,out
|
|
0x054c function_fib:
|
|
0x054c ;Enter(24)
|
|
0x054c edx = 0x0804a064
|
|
0x0554 edx = [edx]
|
|
0x0558 ecx = 0x0804a060
|
|
0x0560 ecx = [ecx]
|
|
0x0564 [ecx] = edx
|
|
0x0568 edx = 0x0804a060
|
|
0x0570 ecx = [edx]
|
|
0x0574 edx = 0x00000004
|
|
0x057c ecx = ecx - edx
|
|
0x0580 eax = 0x0804a060
|
|
0x0588 [eax] = ecx
|
|
0x058c edx = 0x0804a060
|
|
0x0594 edx = [edx]
|
|
0x0598 ecx = 0x0804a064
|
|
0x05a0 [ecx] = edx
|
|
0x05a4 edx = 0x0804a060
|
|
0x05ac ecx = [edx]
|
|
0x05b0 edx = 0x00000018
|
|
0x05b8 ecx = ecx - edx
|
|
0x05bc eax = 0x0804a060
|
|
0x05c4 [eax] = ecx
|
|
0x05c8 ;Assign(x, 0)
|
|
0x05c8 edx = 0x00000000
|
|
0x05d0 ebx = 0x0804a064
|
|
0x05d8 eax = [ebx]
|
|
0x05dc ecx = 0x7ffffffc
|
|
0x05e4 ecx = eax + ecx
|
|
0x05e8 [ecx] = edx
|
|
0x05ec ;Assign(y, 0)
|
|
0x05ec edx = 0x00000000
|
|
0x05f4 ebx = 0x0804a064
|
|
0x05fc eax = [ebx]
|
|
0x0600 ecx = 0x00000000
|
|
0x0608 ecx = eax + ecx
|
|
0x060c [ecx] = edx
|
|
0x0610 ;Cmp(n, 0)
|
|
0x0610 edx = 0x0804a064
|
|
0x0618 ecx = [edx]
|
|
0x061c edx = 0x0000000c
|
|
0x0624 edx = ecx + edx
|
|
0x0628 ecx = [edx]
|
|
0x062c edx = 0x00000000
|
|
0x0634 ecx = ecx - edx
|
|
0x0638 SaveFlags
|
|
0x063c ;Branch([e], copy)
|
|
0x063c edx = 0x00004000
|
|
0x0644 eax = eax & edx
|
|
0x0648 ebx = 0x00004000
|
|
0x0650 eax = eax - ebx
|
|
0x0654 SaveFlags
|
|
0x0658 ebx = 0x00004000
|
|
0x0660 eax = eax / ebx
|
|
0x0664 edx = 0x00000001
|
|
0x066c eax = eax & edx
|
|
0x0670 edx = (from: Unnamed(@f), to: Named(local_fib_copy))
|
|
0x0678 eax = eax * edx
|
|
0x067c esp = esp + eax
|
|
0x0680 @@:
|
|
0x0680 ;Cmp(n, 1)
|
|
0x0680 edx = 0x0804a064
|
|
0x0688 ecx = [edx]
|
|
0x068c edx = 0x0000000c
|
|
0x0694 edx = ecx + edx
|
|
0x0698 ecx = [edx]
|
|
0x069c edx = 0x00000001
|
|
0x06a4 ecx = ecx - edx
|
|
0x06a8 SaveFlags
|
|
0x06ac ;Branch([e], copy)
|
|
0x06ac edx = 0x00004000
|
|
0x06b4 eax = eax & edx
|
|
0x06b8 ebx = 0x00004000
|
|
0x06c0 eax = eax - ebx
|
|
0x06c4 SaveFlags
|
|
0x06c8 ebx = 0x00004000
|
|
0x06d0 eax = eax / ebx
|
|
0x06d4 edx = 0x00000001
|
|
0x06dc eax = eax & edx
|
|
0x06e0 edx = (from: Unnamed(@f), to: Named(local_fib_copy))
|
|
0x06e8 eax = eax * edx
|
|
0x06ec esp = esp + eax
|
|
0x06f0 @@:
|
|
0x06f0 ;Assign(tmp0, BinOp(n,-,1))
|
|
0x06f0 edx = 0x0804a064
|
|
0x06f8 ecx = [edx]
|
|
0x06fc edx = 0x0000000c
|
|
0x0704 edx = ecx + edx
|
|
0x0708 ecx = [edx]
|
|
0x070c edx = 0x00000001
|
|
0x0714 ecx = ecx - edx
|
|
0x0718 ebx = 0x0804a064
|
|
0x0720 eax = [ebx]
|
|
0x0724 ebx = 0x7ffffff4
|
|
0x072c eax = eax + ebx
|
|
0x0730 [eax] = ecx
|
|
0x0734 ;Call(fib, tmp0,&x)
|
|
0x0734 edx = 0x0804a064
|
|
0x073c ecx = [edx]
|
|
0x0740 edx = 0x7ffffffc
|
|
0x0748 edx = ecx + edx
|
|
0x074c ecx = 0x0804a060
|
|
0x0754 ecx = [ecx]
|
|
0x0758 [ecx] = edx
|
|
0x075c edx = 0x0804a060
|
|
0x0764 ecx = [edx]
|
|
0x0768 edx = 0x00000004
|
|
0x0770 ecx = ecx - edx
|
|
0x0774 eax = 0x0804a060
|
|
0x077c [eax] = ecx
|
|
0x0780 edx = 0x0804a064
|
|
0x0788 ecx = [edx]
|
|
0x078c edx = 0x7ffffff4
|
|
0x0794 edx = ecx + edx
|
|
0x0798 edx = [edx]
|
|
0x079c ecx = 0x0804a060
|
|
0x07a4 ecx = [ecx]
|
|
0x07a8 [ecx] = edx
|
|
0x07ac edx = 0x0804a060
|
|
0x07b4 ecx = [edx]
|
|
0x07b8 edx = 0x00000004
|
|
0x07c0 ecx = ecx - edx
|
|
0x07c4 eax = 0x0804a060
|
|
0x07cc [eax] = ecx
|
|
0x07d0 edx = (from: Named(function_fib), to: Unnamed(@f))
|
|
0x07d8 ecx = 0x0804a060
|
|
0x07e0 ecx = [ecx]
|
|
0x07e4 [ecx] = edx
|
|
0x07e8 edx = 0x0804a060
|
|
0x07f0 ecx = [edx]
|
|
0x07f4 edx = 0x00000004
|
|
0x07fc ecx = ecx - edx
|
|
0x0800 eax = 0x0804a060
|
|
0x0808 [eax] = ecx
|
|
0x080c ebx = (from: Unnamed(@f), to: Named(function_fib))
|
|
0x0814 esp = esp + ebx
|
|
0x0820 @@:
|
|
0x0820 ;Assign(tmp1, BinOp(n,-,2))
|
|
0x0820 edx = 0x0804a064
|
|
0x0828 ecx = [edx]
|
|
0x082c edx = 0x0000000c
|
|
0x0834 edx = ecx + edx
|
|
0x0838 ecx = [edx]
|
|
0x083c edx = 0x00000002
|
|
0x0844 ecx = ecx - edx
|
|
0x0848 ebx = 0x0804a064
|
|
0x0850 eax = [ebx]
|
|
0x0854 ebx = 0x7ffffff8
|
|
0x085c eax = eax + ebx
|
|
0x0860 [eax] = ecx
|
|
0x0864 ;Call(fib, tmp1,&y)
|
|
0x0864 edx = 0x0804a064
|
|
0x086c ecx = [edx]
|
|
0x0870 edx = 0x00000000
|
|
0x0878 edx = ecx + edx
|
|
0x087c ecx = 0x0804a060
|
|
0x0884 ecx = [ecx]
|
|
0x0888 [ecx] = edx
|
|
0x088c edx = 0x0804a060
|
|
0x0894 ecx = [edx]
|
|
0x0898 edx = 0x00000004
|
|
0x08a0 ecx = ecx - edx
|
|
0x08a4 eax = 0x0804a060
|
|
0x08ac [eax] = ecx
|
|
0x08b0 edx = 0x0804a064
|
|
0x08b8 ecx = [edx]
|
|
0x08bc edx = 0x7ffffff8
|
|
0x08c4 edx = ecx + edx
|
|
0x08c8 edx = [edx]
|
|
0x08cc ecx = 0x0804a060
|
|
0x08d4 ecx = [ecx]
|
|
0x08d8 [ecx] = edx
|
|
0x08dc edx = 0x0804a060
|
|
0x08e4 ecx = [edx]
|
|
0x08e8 edx = 0x00000004
|
|
0x08f0 ecx = ecx - edx
|
|
0x08f4 eax = 0x0804a060
|
|
0x08fc [eax] = ecx
|
|
0x0900 edx = (from: Named(function_fib), to: Unnamed(@f))
|
|
0x0908 ecx = 0x0804a060
|
|
0x0910 ecx = [ecx]
|
|
0x0914 [ecx] = edx
|
|
0x0918 edx = 0x0804a060
|
|
0x0920 ecx = [edx]
|
|
0x0924 edx = 0x00000004
|
|
0x092c ecx = ecx - edx
|
|
0x0930 eax = 0x0804a060
|
|
0x0938 [eax] = ecx
|
|
0x093c ebx = (from: Unnamed(@f), to: Named(function_fib))
|
|
0x0944 esp = esp + ebx
|
|
0x0950 @@:
|
|
0x0950 ;WriteMem(out, BinOp(x,+,y))
|
|
0x0950 edx = 0x0804a064
|
|
0x0958 ecx = [edx]
|
|
0x095c edx = 0x7ffffffc
|
|
0x0964 edx = ecx + edx
|
|
0x0968 ecx = [edx]
|
|
0x096c eax = 0x0804a064
|
|
0x0974 ebx = [eax]
|
|
0x0978 edx = 0x00000000
|
|
0x0980 edx = ebx + edx
|
|
0x0984 edx = [edx]
|
|
0x0988 edx = ecx + edx
|
|
0x098c ebx = 0x0804a064
|
|
0x0994 eax = [ebx]
|
|
0x0998 ecx = 0x00000010
|
|
0x09a0 ecx = eax + ecx
|
|
0x09a4 ecx = [ecx]
|
|
0x09a8 [ecx] = edx
|
|
0x09ac ;Branch([@], exit)
|
|
0x09ac eax = 0x00000001
|
|
0x09b4 edx = (from: Unnamed(@f), to: Named(local_fib_exit))
|
|
0x09bc eax = eax * edx
|
|
0x09c0 esp = esp + eax
|
|
0x09c4 @@:
|
|
0x09c4 local_fib_copy:
|
|
0x09c4 ;WriteMem(out, n)
|
|
0x09c4 edx = 0x0804a064
|
|
0x09cc ecx = [edx]
|
|
0x09d0 edx = 0x0000000c
|
|
0x09d8 edx = ecx + edx
|
|
0x09dc edx = [edx]
|
|
0x09e0 ebx = 0x0804a064
|
|
0x09e8 eax = [ebx]
|
|
0x09ec ecx = 0x00000010
|
|
0x09f4 ecx = eax + ecx
|
|
0x09f8 ecx = [ecx]
|
|
0x09fc [ecx] = edx
|
|
0x0a00 local_fib_exit:
|
|
0x0a00 ;Leave
|
|
0x0a00 edx = 0x0804a064
|
|
0x0a08 edx = [edx]
|
|
0x0a0c ecx = 0x0804a060
|
|
0x0a14 [ecx] = edx
|
|
0x0a18 edx = 0x0804a060
|
|
0x0a20 ecx = [edx]
|
|
0x0a24 edx = 0x00000004
|
|
0x0a2c edx = ecx + edx
|
|
0x0a30 ecx = 0x0804a060
|
|
0x0a38 [ecx] = edx
|
|
0x0a3c edx = [edx]
|
|
0x0a40 ecx = 0x0804a064
|
|
0x0a48 [ecx] = edx
|
|
0x0a4c ;ret(fib)
|
|
0x0a4c edx = 0x0804a060
|
|
0x0a54 ecx = [edx]
|
|
0x0a58 edx = 0x00000004
|
|
0x0a60 edx = ecx + edx
|
|
0x0a64 ecx = 0x0804a060
|
|
0x0a6c [ecx] = edx
|
|
0x0a70 ecx = [edx]
|
|
0x0a74 ebx = (from: Unnamed(@f), to: Named(function_fib))
|
|
0x0a7c ebx = ebx + ecx
|
|
0x0a80 esp = esp + ebx
|
|
0x0a8c @@:
|
|
0x0a8c global_end:
|
|
FromTo: (Named(function_main),Named(global_end))->(60,2616)->2556
|
|
FromTo: (Named(function_fib),Unnamed(@f))->(824,80)->-744
|
|
FromTo: (Unnamed(@f),Named(function_fib))->(20,764)->744
|
|
FromTo: (Unnamed(@b),Unnamed(@f))->(0,400)->400
|
|
FromTo: (Unnamed(@f),Named(local_main_print))->(16,-824)->-840
|
|
FromTo: (Unnamed(@f),Named(function_main))->(24,-1188)->-1212
|
|
FromTo: (Unnamed(@f),Named(local_fib_copy))->(16,852)->836
|
|
FromTo: (Unnamed(@f),Named(local_fib_copy))->(16,740)->724
|
|
FromTo: (Named(function_fib),Unnamed(@f))->(-644,80)->724
|
|
FromTo: (Unnamed(@f),Named(function_fib))->(20,-704)->-724
|
|
FromTo: (Named(function_fib),Unnamed(@f))->(-948,80)->1028
|
|
FromTo: (Unnamed(@f),Named(function_fib))->(20,-1008)->-1028
|
|
FromTo: (Unnamed(@f),Named(local_fib_exit))->(16,76)->60
|
|
FromTo: (Unnamed(@f),Named(function_fib))->(24,-1320)->-1344
|
|
DUMPED:
|
|
# Fun: main, args:
|
|
AssignTab(fmt, ;37;100;10;0)
|
|
Assign(i, 0)
|
|
Assign(x, 0)
|
|
Label(print)
|
|
Call(fib, i,&x)
|
|
!Call(printf, fmt,x)
|
|
Assign(i, BinOp(i,+,1))
|
|
Cmp(i, 11)
|
|
Branch(~[e], print)
|
|
|
|
# Fun: fib, args: n,out
|
|
Assign(x, 0)
|
|
Assign(y, 0)
|
|
Cmp(n, 0)
|
|
Branch([e], copy)
|
|
Cmp(n, 1)
|
|
Branch([e], copy)
|
|
Assign(tmp0, BinOp(n,-,1))
|
|
Call(fib, tmp0,&x)
|
|
Assign(tmp1, BinOp(n,-,2))
|
|
Call(fib, tmp1,&y)
|
|
WriteMem(out, BinOp(x,+,y))
|
|
Branch([@], exit)
|
|
Label(copy)
|
|
WriteMem(out, n)
|
|
Label(exit)
|
|
|
|
####
|