; Disassembly of file: hello-elf.o
; Tue Jan 13 02:40:02 2009
; Mode: 32 bits
; Syntax: MASM/ML
; Instruction set: 80386
.386
option dotname
.model flat
public _ZN4JohnC2Eii
public _ZN4JohnC1Eii
public _ZN4JohnD2Ev
public _ZN4JohnD1Ev
public _ZN4John10helloClassEii
public _ZN4John4dumpEv
public _Z5helloii
public _Z4blahv
extern printf: near
extern _Znwj: near
extern _ZdlPv: near
_text SEGMENT BYTE PUBLIC 'CODE' ; section number 1
_ZN4JohnC2Eii PROC NEAR
push ebp ; 0000 _ 55
mov ebp, esp ; 0001 _ 89. E5
mov edx, dword ptr [ebp+8H] ; 0003 _ 8B. 55, 08
mov eax, dword ptr [ebp+0CH] ; 0006 _ 8B. 45, 0C
mov dword ptr [edx], eax ; 0009 _ 89. 02
mov edx, dword ptr [ebp+8H] ; 000B _ 8B. 55, 08
mov eax, dword ptr [ebp+10H] ; 000E _ 8B. 45, 10
mov dword ptr [edx+4H], eax ; 0011 _ 89. 42, 04
pop ebp ; 0014 _ 5D
ret ; 0015 _ C3
_ZN4JohnC2Eii ENDP
_ZN4JohnC1Eii PROC NEAR
push ebp ; 0016 _ 55
mov ebp, esp ; 0017 _ 89. E5
mov edx, dword ptr [ebp+8H] ; 0019 _ 8B. 55, 08
mov eax, dword ptr [ebp+0CH] ; 001C _ 8B. 45, 0C
mov dword ptr [edx], eax ; 001F _ 89. 02
mov edx, dword ptr [ebp+8H] ; 0021 _ 8B. 55, 08
mov eax, dword ptr [ebp+10H] ; 0024 _ 8B. 45, 10
mov dword ptr [edx+4H], eax ; 0027 _ 89. 42, 04
pop ebp ; 002A _ 5D
ret ; 002B _ C3
_ZN4JohnC1Eii ENDP
_ZN4JohnD2Ev PROC NEAR
push ebp ; 002C _ 55
mov ebp, esp ; 002D _ 89. E5
pop ebp ; 002F _ 5D
ret ; 0030 _ C3
_ZN4JohnD2Ev ENDP
nop ; 0031 _ 90
_ZN4JohnD1Ev PROC NEAR
push ebp ; 0032 _ 55
mov ebp, esp ; 0033 _ 89. E5
pop ebp ; 0035 _ 5D
ret ; 0036 _ C3
_ZN4JohnD1Ev ENDP
nop ; 0037 _ 90
_ZN4John10helloClassEii PROC NEAR
push ebp ; 0038 _ 55
mov ebp, esp ; 0039 _ 89. E5
mov edx, dword ptr [ebp+8H] ; 003B _ 8B. 55, 08
mov eax, dword ptr [ebp+0CH] ; 003E _ 8B. 45, 0C
mov edx, dword ptr [edx] ; 0041 _ 8B. 12
add edx, eax ; 0043 _ 01. C2
mov ecx, dword ptr [ebp+8H] ; 0045 _ 8B. 4D, 08
mov eax, dword ptr [ebp+10H] ; 0048 _ 8B. 45, 10
add eax, dword ptr [ecx+4H] ; 004B _ 03. 41, 04
imul edx, eax ; 004E _ 0F AF. D0
mov eax, edx ; 0051 _ 89. D0
pop ebp ; 0053 _ 5D
ret ; 0054 _ C3
_ZN4John10helloClassEii ENDP
nop ; 0055 _ 90
_ZN4John4dumpEv PROC NEAR
push ebp ; 0056 _ 55
mov ebp, esp ; 0057 _ 89. E5
sub esp, 24 ; 0059 _ 83. EC, 18
mov eax, dword ptr [ebp+8H] ; 005C _ 8B. 45, 08
mov eax, dword ptr [eax+4H] ; 005F _ 8B. 40, 04
mov dword ptr [esp+8H], eax ; 0062 _ 89. 44 24, 08
mov eax, dword ptr [ebp+8H] ; 0066 _ 8B. 45, 08
mov eax, dword ptr [eax] ; 0069 _ 8B. 00
mov dword ptr [esp+4H], eax ; 006B _ 89. 44 24, 04
mov dword ptr [esp], offset ?_002 ; 006F _ C7. 04 24, 00000000(d)
call printf ; 0076 _ E8, FFFFFFFC(rel)
leave ; 007B _ C9
ret ; 007C _ C3
_ZN4John4dumpEv ENDP
nop ; 007D _ 90
_Z5helloii PROC NEAR
push ebp ; 007E _ 55
mov ebp, esp ; 007F _ 89. E5
push ebx ; 0081 _ 53
sub esp, 20 ; 0082 _ 83. EC, 14
mov dword ptr [esp], offset ?_003 ; 0085 _ C7. 04 24, 0000000D(d)
call printf ; 008C _ E8, FFFFFFFC(rel)
mov dword ptr [esp], 8 ; 0091 _ C7. 04 24, 00000008
call _Znwj ; 0098 _ E8, FFFFFFFC(rel)
mov ebx, eax ; 009D _ 89. C3
mov dword ptr [esp+8H], 5 ; 009F _ C7. 44 24, 08, 00000005
mov dword ptr [esp+4H], 4 ; 00A7 _ C7. 44 24, 04, 00000004
mov dword ptr [esp], ebx ; 00AF _ 89. 1C 24
call _ZN4JohnC1Eii ; 00B2 _ E8, FFFFFF5F
mov dword ptr [ebp-8H], ebx ; 00B7 _ 89. 5D, F8
mov dword ptr [esp+8H], 2 ; 00BA _ C7. 44 24, 08, 00000002
mov dword ptr [esp+4H], 1 ; 00C2 _ C7. 44 24, 04, 00000001
mov eax, dword ptr [ebp-8H] ; 00CA _ 8B. 45, F8
mov dword ptr [esp], eax ; 00CD _ 89. 04 24
call _ZN4John10helloClassEii ; 00D0 _ E8, FFFFFF63
mov dword ptr [esp+4H], eax ; 00D5 _ 89. 44 24, 04
mov dword ptr [esp], offset ?_004 ; 00D9 _ C7. 04 24, 0000001B(d)
call printf ; 00E0 _ E8, FFFFFFFC(rel)
mov eax, dword ptr [ebp-8H] ; 00E5 _ 8B. 45, F8
mov dword ptr [esp], eax ; 00E8 _ 89. 04 24
call _ZN4John4dumpEv ; 00EB _ E8, FFFFFF66
mov eax, dword ptr [ebp-8H] ; 00F0 _ 8B. 45, F8
mov dword ptr [ebp-0CH], eax ; 00F3 _ 89. 45, F4
cmp dword ptr [ebp-0CH], 0 ; 00F6 _ 83. 7D, F4, 00
jz ?_001 ; 00FA _ 74, 16
mov eax, dword ptr [ebp-0CH] ; 00FC _ 8B. 45, F4
mov dword ptr [esp], eax ; 00FF _ 89. 04 24
call _ZN4JohnD1Ev ; 0102 _ E8, FFFFFF2B
mov eax, dword ptr [ebp-0CH] ; 0107 _ 8B. 45, F4
mov dword ptr [esp], eax ; 010A _ 89. 04 24
call _ZdlPv ; 010D _ E8, FFFFFFFC(rel)
?_001: mov eax, dword ptr [ebp+0CH] ; 0112 _ 8B. 45, 0C
add eax, dword ptr [ebp+8H] ; 0115 _ 03. 45, 08
imul eax, dword ptr [ebp+0CH] ; 0118 _ 0F AF. 45, 0C
add esp, 20 ; 011C _ 83. C4, 14
pop ebx ; 011F _ 5B
pop ebp ; 0120 _ 5D
ret ; 0121 _ C3
_Z5helloii ENDP
_Z4blahv PROC NEAR
push ebp ; 0122 _ 55
mov ebp, esp ; 0123 _ 89. E5
sub esp, 40 ; 0125 _ 83. EC, 28
mov dword ptr [esp+8H], 2 ; 0128 _ C7. 44 24, 08, 00000002
mov dword ptr [esp+4H], 1 ; 0130 _ C7. 44 24, 04, 00000001
lea eax, [ebp-18H] ; 0138 _ 8D. 45, E8
mov dword ptr [esp], eax ; 013B _ 89. 04 24
call _ZN4JohnC1Eii ; 013E _ E8, FFFFFED3
lea eax, [ebp-18H] ; 0143 _ 8D. 45, E8
mov dword ptr [esp], eax ; 0146 _ 89. 04 24
call _ZN4John4dumpEv ; 0149 _ E8, FFFFFF08
lea eax, [ebp-18H] ; 014E _ 8D. 45, E8
mov dword ptr [esp], eax ; 0151 _ 89. 04 24
call _ZN4JohnD1Ev ; 0154 _ E8, FFFFFED9
leave ; 0159 _ C9
ret ; 015A _ C3
_Z4blahv ENDP
nop ; 015B _ 90
nop ; 015C _ 90
nop ; 015D _ 90
nop ; 015E _ 90
nop ; 015F _ 90
_text ENDS
_data SEGMENT BYTE PUBLIC 'DATA' ; section number 2
_data ENDS
.bss SEGMENT BYTE PUBLIC 'BSS' ; section number 3
.bss ENDS
.rdata SEGMENT BYTE PUBLIC 'CONST' ; section number 4
?_002 label byte
db 4AH, 6FH, 68H, 6EH, 28H, 25H, 69H, 2CH ; 0000 _ John(%i,
db 25H, 69H, 29H, 0AH, 00H ; 0008 _ %i)..
?_003 label byte
db 68H, 65H, 6CH, 6CH, 6FH, 20H, 63H, 61H ; 000D _ hello ca
db 6CH, 6CH, 65H, 64H, 0AH, 00H ; 0015 _ lled..
?_004 label byte
db 65H, 78H, 70H, 65H, 63H, 74H, 20H, 33H ; 001B _ expect 3
db 35H, 2CH, 20H, 67H, 6FH, 74H, 3AH, 20H ; 0023 _ 5, got:
db 25H, 69H, 0AH, 00H, 00H ; 002B _ %i...
.rdata ENDS
END