.text:00000000 ; .text:00000000 ; +-------------------------------------------------------------------------+ .text:00000000 ; | This file has been generated by The Interactive Disassembler (IDA) | .text:00000000 ; | Copyright (c) 2009 by Hex-Rays, | .text:00000000 ; | License info: 48-313D-7374-F1 | .text:00000000 ; | Aditya Thakur, University of Wisconsin/Computer Sciences Department | .text:00000000 ; +-------------------------------------------------------------------------+ .text:00000000 ; .text:00000000 ; Input MD5 : 592D20F2FE1FF84483138B277408EB0B .text:00000000 .text:00000000 ; File Name : C:\aditya\work\TSL\TSL\analyzer\TSLFiles\DASH\regression\clobber_ret_addr\clobber_ret_addr--CASE-4.obj .text:00000000 ; Format : COFF (X386MAGIC) .text:00000000 ; includelib "LIBCMT" .text:00000000 ; includelib "OLDNAMES"" .text:00000000 .text:00000000 .686p .text:00000000 .mmx .text:00000000 .model flat .text:00000000 .text:00000000 ; =========================================================================== .text:00000000 .text:00000000 ; Segment type: Pure code .text:00000000 ; Segment permissions: Read/Execute .text:00000000 _text segment para public 'CODE' use32 .text:00000000 assume cs:_text .text:00000000 assume es:nothing, ss:nothing, ds:nothing, fs:nothing, gs:nothing .text:00000000 .text:00000000 ; =============== S U B R O U T I N E ======================================= .text:00000000 .text:00000000 ; Attributes: bp-based frame .text:00000000 .text:00000000 ; int __cdecl MakeChoice() .text:00000000 public ?MakeChoice@@YAHXZ .text:00000000 ?MakeChoice@@YAHXZ proc near ; CODE XREF: foo(void)+Dp .text:00000000 push ebp .text:00000001 mov ebp, esp .text:00000003 cmp eax, 2A20h .text:00000008 xor eax, eax .text:0000000A pop ebp .text:0000000B retn .text:0000000B ?MakeChoice@@YAHXZ endp .text:0000000B .text:0000000B ; --------------------------------------------------------------------------- .text:0000000C align 10h .text:00000010 .text:00000010 ; =============== S U B R O U T I N E ======================================= .text:00000010 .text:00000010 ; Attributes: bp-based frame .text:00000010 .text:00000010 ; void __cdecl bar() .text:00000010 public ?bar@@YAXXZ .text:00000010 ?bar@@YAXXZ proc near ; DATA XREF: foo(void)+6o .text:00000010 push ebp .text:00000011 mov ebp, esp .text:00000013 cmp eax, 2A10h .text:00000018 pop ebp .text:00000019 retn .text:00000019 ?bar@@YAXXZ endp .text:00000019 .text:00000019 ; --------------------------------------------------------------------------- .text:0000001A align 10h .text:00000020 .text:00000020 ; =============== S U B R O U T I N E ======================================= .text:00000020 .text:00000020 ; Attributes: bp-based frame .text:00000020 .text:00000020 ; void __cdecl foo() .text:00000020 public ?foo@@YAXXZ .text:00000020 ?foo@@YAXXZ proc near ; CODE XREF: _main+3p .text:00000020 .text:00000020 var_14 = dword ptr -14h .text:00000020 var_10 = dword ptr -10h .text:00000020 var_C = dword ptr -0Ch .text:00000020 var_4 = dword ptr -4 .text:00000020 .text:00000020 push ebp .text:00000021 mov ebp, esp .text:00000023 sub esp, 14h .text:00000026 mov [ebp+var_10], offset ?bar@@YAXXZ ; bar(void) .text:0000002D call ?MakeChoice@@YAHXZ ; MakeChoice(void) .text:00000032 mov [ebp+var_4], eax .text:00000035 cmp [ebp+var_4], 0 .text:00000039 jl short loc_41 .text:0000003B cmp [ebp+var_4], 0Ah .text:0000003F jle short loc_43 .text:00000041 .text:00000041 loc_41: ; CODE XREF: foo(void)+19j .text:00000041 jmp short loc_69 .text:00000043 ; --------------------------------------------------------------------------- .text:00000043 .text:00000043 loc_43: ; CODE XREF: foo(void)+1Fj .text:00000043 mov [ebp+var_14], 0 .text:0000004A jmp short loc_55 .text:0000004C ; --------------------------------------------------------------------------- .text:0000004C .text:0000004C loc_4C: ; CODE XREF: foo(void)+47j .text:0000004C mov eax, [ebp+var_14] .text:0000004F add eax, 1 .text:00000052 mov [ebp+var_14], eax .text:00000055 .text:00000055 loc_55: ; CODE XREF: foo(void)+2Aj .text:00000055 mov ecx, [ebp+var_14] .text:00000058 cmp ecx, [ebp+var_4] .text:0000005B jge short loc_69 .text:0000005D mov edx, [ebp+var_14] .text:00000060 mov eax, [ebp+var_10] .text:00000063 mov [ebp+edx*4+var_C], eax .text:00000067 jmp short loc_4C .text:00000069 ; --------------------------------------------------------------------------- .text:00000069 .text:00000069 loc_69: ; CODE XREF: foo(void):loc_41j .text:00000069 ; foo(void)+3Bj .text:00000069 mov esp, ebp .text:0000006B pop ebp .text:0000006C retn .text:0000006C ?foo@@YAXXZ endp .text:0000006C .text:0000006C ; --------------------------------------------------------------------------- .text:0000006D align 10h .text:00000070 .text:00000070 ; =============== S U B R O U T I N E ======================================= .text:00000070 .text:00000070 ; Attributes: bp-based frame .text:00000070 .text:00000070 public _main .text:00000070 _main proc near .text:00000070 push ebp .text:00000071 mov ebp, esp .text:00000073 call ?foo@@YAXXZ ; foo(void) .text:00000078 xor eax, eax .text:0000007A pop ebp .text:0000007B retn .text:0000007B _main endp .text:0000007B .text:0000007B _text ends .text:0000007B .text:0000007B .text:0000007B end