1
0
mirror of https://github.com/pakt/ropc synced 2026-06-08 16:36:27 +00:00
Files
2012-09-14 12:09:09 +02:00

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)
####