digraph "slicealign_cfg" { label="SliceAlign graph for the W32/Conficker.A example" rankdir=BT; node [shape=box]; subgraph clusterPASS { node [style=filled,color=green]; color=lightgrey; BB_47 [label="pruned (same value)",color=white]; BB_48 [label="pruned (same value)",color=white]; BB_1 -> BB_3 [label="R@eax[0x00000002]T0",]; BB_1 [label="unknown::sub_3D67C0+0x16\n(03638877)003d67d6: shl $0x2,%eax\n",]; BB_49 [label="(slices disaligned)",style=invis]; BB_2 -> BB_41 [label="R@esp[0x0012f818]T0",]; BB_2 -> BB_1 [label="R@eax[0x00000008]T0",]; BB_2 [label="unknown::sub_3D67C0+0x19\n(03638878)003d67d9: push %eax\n",]; BB_50 [label="pruned (same value)",color=white]; BB_3 [label="user32.dll::GetKeyboardLayoutList+0x0\n(03638866)77d4bf8b: mov $0x119c,%eax\n",]; BB_51 [label="(slices disaligned)",style=invis]; BB_4 -> BB_42 [label="R@ebp[0x0012f808]T0",]; BB_4 -> BB_2 [label="M@0x0012f814[0x00000008]T0",]; BB_4 [label="kernel32.dll::GlobalAlloc+0x11c\n(03638916)7c810049: mov 0xc(%ebp),%eax\n",]; BB_52 [label="pruned (same value)",color=white]; BB_5 -> BB_3 [label="R@eax[0x00000002]T0",]; BB_5 [label="unknown::sub_3D67C0+0xf\n(03638873)003d67cf: mov %eax,%esi\n",]; BB_53 [label="pruned (same value)",color=white]; BB_6 -> BB_43 [label="R@esp[0x0012f7d0]T0",]; BB_6 -> BB_4 [label="R@eax[0x00000008]T0",]; BB_6 [label="kernel32.dll::GlobalAlloc+0x127\n(03638919)7c810054: push %eax\n",]; BB_54 [label="pruned (same value)",color=white]; BB_7 -> BB_44 [label="R@esp[0x0012f7d8]T0",]; BB_7 -> BB_5 [label="R@esi[0x00000002]T0",]; BB_7 [label="unknown::sub_7C8024CB+0x1b\n(03638892)7c8024e6: push %esi\n",]; BB_55 [label="pruned (same value)",color=white]; BB_8 -> BB_45 [label="R@ebp[0x0012f7bc]T0",]; BB_8 -> BB_6 [label="M@0x0012f7cc[0x00000008]T0",]; BB_8 [label="ntdll.dll::RtlAllocateHeap+0x693\n(03639216)7c910c67: mov 0x10(%ebp),%ecx\n",]; BB_9 -> BB_46 [label="R@esp[0x0012f7d4]T0",]; BB_9 -> BB_7 [label="M@0x0012f7d4[0x00000002]T0",]; BB_9 [label="unknown::sub_7C80250B+0xc\n(03639273)7c802517: pop %esi\n",]; BB_10 -> BB_8 [label="R@ecx[0x00000008]T0",]; BB_10 [label="ntdll.dll::RtlAllocateHeap+0x69a\n(03639219)7c910c6e: shr $0x2,%ecx\n",]; BB_11 -> BB_48 [label="R@eax[0x00000000]T0",]; BB_11 -> BB_47 [label="R@edi[0x0014b5d8]T0",]; BB_11 -> BB_10 [label="R@ecx[0x00000002]T0",]; BB_11 [label="ntdll.dll::RtlAllocateHeap+0x69d\n(03639220)7c910c71: rep stos %eax,%es:(%edi)\n",]; BB_12 -> BB_9 [label="R@esi[0x00000002]T0",]; BB_12 [label="unknown::sub_3D67C0+0x30\n(03639294)003d67f0: dec %esi\n",]; BB_13 -> BB_49 [label="",style=invis]; BB_13 -> BB_11 [label="divergence point\n(M@0x0014b5dc[0x0422]T0)",weight=1,color=blue,style=dotted]; BB_13 [label="case 2: execution omission\nntdll.dll::RtlAllocateHeap+0x69d\n(03639221)7c910c71: rep stos %eax,%es:(%edi)\n",color=yellow]; BB_14 -> BB_50 [label="R@edi[0x0014b5d8]T0",]; BB_14 -> BB_13 [label="(M@0x0014b5dc[0x0422]T0)",]; BB_14 -> BB_12 [label="R@esi[0x00000001]T0",]; BB_14 [label="unknown::sub_3D67C0+0x31\n(03639295)003d67f1: cmpw $0x422,(%edi,%esi,4)\n",]; BB_15 -> BB_14 [label="EFLAGS",]; BB_15 [label="unknown::sub_3D67C0+0x37\n(03639296)003d67f7: je 0x00000000003d67ff\n",]; BB_16 -> BB_51 [label="",style=invis]; BB_16 -> BB_15 [label="divergence point\n(R@ebp[0x00000001]T0)",weight=1,color=blue,style=dotted]; BB_16 [label="case 2: execution omission\nunknown::sub_3D67C0+0x41\n(03639298)003d6801: inc %ebp\n",color=yellow]; BB_17 -> BB_52 [label="R@esp[0x0012f7fc]T0",]; BB_17 -> BB_16 [label="(R@ebp[0x00000001]T0)",]; BB_17 [label="unknown::sub_7C8024CB+0x10\n(03639308)7c8024db: mov %ebp,0x10(%esp)\n",]; BB_18 -> BB_55 [label="R@ebp[0x0012f80c]T0",]; BB_18 -> BB_54 [label="R@esp[0x0012f7e4]T0",]; BB_18 -> BB_53 [label="R@ebp[0x0012f80c]T0",]; BB_18 -> BB_17 [label="M@0x0012f80c[0x00000001]T0",]; BB_18 [label="unknown::sub_7C80250B+0xe\n(03639494)7c802519: leave \nunknown::sub_3D67C0+0x4b\n(03639500)003d680b: mov %ebp,%eax\n",]; BB_19 -> BB_18 [label="R@eax[0x00000001]T0",]; BB_19 -> BB_18 [label="R@eax[0x00000001]T0",]; BB_19 [label="unknown::sub_3D6B34+0x22\n(03639504)003d6b56: test %eax,%eax\n",]; BB_20 -> BB_19 [label="EFLAGS",]; BB_20 [label="unknown::sub_3D6B34+0x24\n(03639505)003d6b58: jne 0x00000000003d6b61\n",]; BB_41 [label="pruned (same value)",color=white]; BB_42 [label="pruned (same value)",color=white]; BB_43 [label="pruned (same value)",color=white]; BB_44 [label="pruned (same value)",color=white]; BB_45 [label="pruned (same value)",color=white]; BB_46 [label="pruned (same value)",color=white]; label = "PASS"; } subgraph clusterFAIL { node [style=filled,color=red]; color=lightgrey; BB_56 [label="pruned (same value)",color=white]; BB_57 [label="pruned (same value)",color=white]; BB_58 [label="pruned (same value)",color=white]; BB_59 [label="pruned (same value)",color=white]; BB_60 [label="pruned (same value)",color=white]; BB_61 [label="pruned (same value)",color=white]; BB_62 [label="pruned (same value)",color=white]; BB_63 [label="pruned (same value)",color=white]; BB_64 [label="(slices disaligned)",style=invis]; BB_65 [label="pruned (same value)",color=white]; BB_66 [label="(slices disaligned)",style=invis]; BB_67 [label="pruned (same value)",color=white]; BB_68 [label="pruned (same value)",color=white]; BB_21 -> BB_23 [label="R@eax[0x00000001]T0",]; BB_21 [label="unknown::sub_3D67C0+0x16\n(03638876)003d67d6: shl $0x2,%eax\n",]; BB_69 [label="pruned (same value)",color=white]; BB_22 -> BB_56 [label="R@esp[0x0012f818]T0",]; BB_22 -> BB_21 [label="R@eax[0x00000004]T0",]; BB_22 [label="unknown::sub_3D67C0+0x19\n(03638877)003d67d9: push %eax\n",]; BB_70 [label="pruned (same value)",color=white]; BB_23 [label="user32.dll::GetKeyboardLayoutList+0x0\n(03638865)77d4bf8b: mov $0x119c,%eax\n",]; BB_24 -> BB_57 [label="R@ebp[0x0012f808]T0",]; BB_24 -> BB_22 [label="M@0x0012f814[0x00000004]T0",]; BB_24 [label="kernel32.dll::GlobalAlloc+0x11c\n(03638915)7c810049: mov 0xc(%ebp),%eax\n",]; BB_25 -> BB_23 [label="R@eax[0x00000001]T0",]; BB_25 [label="unknown::sub_3D67C0+0xf\n(03638872)003d67cf: mov %eax,%esi\n",]; BB_26 -> BB_58 [label="R@esp[0x0012f7d0]T0",]; BB_26 -> BB_24 [label="R@eax[0x00000004]T0",]; BB_26 [label="kernel32.dll::GlobalAlloc+0x127\n(03638918)7c810054: push %eax\n",]; BB_27 -> BB_59 [label="R@esp[0x0012f7d8]T0",]; BB_27 -> BB_25 [label="R@esi[0x00000001]T0",]; BB_27 [label="unknown::sub_7C8024CB+0x1b\n(03638891)7c8024e6: push %esi\n",]; BB_28 -> BB_60 [label="R@ebp[0x0012f7bc]T0",]; BB_28 -> BB_26 [label="M@0x0012f7cc[0x00000004]T0",]; BB_28 [label="ntdll.dll::RtlAllocateHeap+0x693\n(03639215)7c910c67: mov 0x10(%ebp),%ecx\n",]; BB_29 -> BB_61 [label="R@esp[0x0012f7d4]T0",]; BB_29 -> BB_27 [label="M@0x0012f7d4[0x00000001]T0",]; BB_29 [label="unknown::sub_7C80250B+0xc\n(03639271)7c802517: pop %esi\n",]; BB_30 -> BB_28 [label="R@ecx[0x00000004]T0",]; BB_30 [label="ntdll.dll::RtlAllocateHeap+0x69a\n(03639218)7c910c6e: shr $0x2,%ecx\n",]; BB_31 -> BB_29 [label="R@esi[0x00000001]T0",]; BB_31 [label="unknown::sub_3D67C0+0x30\n(03639292)003d67f0: dec %esi\n",]; BB_32 -> BB_63 [label="R@eax[0x00000000]T0",]; BB_32 -> BB_62 [label="R@edi[0x0014b5d8]T0",]; BB_32 -> BB_30 [label="R@ecx[0x00000001]T0",]; BB_32 [label="case 2: execution omission\nntdll.dll::RtlAllocateHeap+0x69d\n(03639219)7c910c71: rep stos %eax,%es:(%edi)\n",color=yellow]; BB_33 -> BB_65 [label="R@edi[0x0014b5d8]T0",]; BB_33 -> BB_32 [label="(M@0x0014b5d8[0x0409]T0)",]; BB_33 -> BB_32 [label="divergence point\n(M@0x0014b5d8[0x0409]T0)",weight=1,color=blue,style=dotted]; BB_33 -> BB_64 [label="",style=invis]; BB_33 -> BB_31 [label="R@esi[0x00000000]T0",]; BB_33 [label="unknown::sub_3D67C0+0x31\n(03639293)003d67f1: cmpw $0x422,(%edi,%esi,4)\n",]; BB_34 -> BB_33 [label="EFLAGS",]; BB_34 [label="unknown::sub_3D67C0+0x37\n(03639294)003d67f7: je 0x00000000003d67ff\n",]; BB_35 [label="case 2: execution omission\nunknown::sub_7C80250B+0xe\n(03639273)7c802519: leave \n",color=yellow]; BB_36 -> BB_67 [label="R@esp[0x0012f7fc]T0",]; BB_36 -> BB_35 [label="(R@ebp[0x00000000]T0)",]; BB_36 -> BB_66 [label="",style=invis]; BB_36 -> BB_34 [label="divergence point\n(R@ebp[0x00000000]T0)",weight=1,color=blue,style=dotted]; BB_36 [label="unknown::sub_7C8024CB+0x10\n(03639307)7c8024db: mov %ebp,0x10(%esp)\n",]; BB_37 -> BB_70 [label="R@ebp[0x0012f80c]T0",]; BB_37 -> BB_69 [label="R@esp[0x0012f7e4]T0",]; BB_37 -> BB_68 [label="R@ebp[0x0012f80c]T0",]; BB_37 -> BB_36 [label="M@0x0012f80c[0x00000000]T0",]; BB_37 [label="unknown::sub_7C80250B+0xe\n(03639493)7c802519: leave \nunknown::sub_3D67C0+0x4b\n(03639499)003d680b: mov %ebp,%eax\n",]; BB_38 -> BB_37 [label="R@eax[0x00000000]T0",]; BB_38 -> BB_37 [label="R@eax[0x00000000]T0",]; BB_38 [label="unknown::sub_3D6B34+0x22\n(03639503)003d6b56: test %eax,%eax\n",]; BB_39 -> BB_38 [label="EFLAGS",]; BB_39 [label="unknown::sub_3D6B34+0x24\n(03639504)003d6b58: jne 0x00000000003d6b61\n",]; BB_40 -> BB_39 [label="(divergence point)",weight=1,color=blue,style=dotted]; BB_40 [label="unknown::sub_3D6B34+0x26\n(03639505)003d6b5a: push %esi\n",color=yellow]; label = "FAIL"; } BB_1 -> BB_21 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_2 -> BB_22 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_3 -> BB_23 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_4 -> BB_24 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_5 -> BB_25 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_6 -> BB_26 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_7 -> BB_27 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_8 -> BB_28 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_9 -> BB_29 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_10 -> BB_30 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_11 -> BB_32 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_12 -> BB_31 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_14 -> BB_33 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_15 -> BB_34 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_17 -> BB_36 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_18 -> BB_37 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_18 -> BB_37 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_19 -> BB_38 [weight=1,style=bold,style=invis,dir=both,constraint=false]; BB_20 -> BB_39 [weight=1,style=bold,style=invis,dir=both,constraint=false]; }