Newer
Older
Import / research / XPlat / hello-lin.asm
; Disassembly of file: hello-lin.o
; Tue Jan 13 02:35:49 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 __gxx_personality_v0: byte
extern _ZdlPv: near
extern _Znwj: near
extern printf: near


_text   SEGMENT DWORD 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     eax, dword ptr [ebp+8H]                 ; 003B _ 8B. 45, 08
        mov     eax, dword ptr [eax]                    ; 003E _ 8B. 00
        mov     edx, dword ptr [ebp+0CH]                ; 0040 _ 8B. 55, 0C
        add     edx, eax                                ; 0043 _ 01. C2
        mov     eax, dword ptr [ebp+8H]                 ; 0045 _ 8B. 45, 08
        mov     eax, dword ptr [eax+4H]                 ; 0048 _ 8B. 40, 04
        add     eax, dword ptr [ebp+10H]                ; 004B _ 03. 45, 10
        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, 8                                  ; 0059 _ 83. EC, 08
        sub     esp, 4                                  ; 005C _ 83. EC, 04
        mov     eax, dword ptr [ebp+8H]                 ; 005F _ 8B. 45, 08
        push    dword ptr [eax+4H]                      ; 0062 _ FF. 70, 04
        mov     eax, dword ptr [ebp+8H]                 ; 0065 _ 8B. 45, 08
        push    dword ptr [eax]                         ; 0068 _ FF. 30
        push    offset ?_002                            ; 006A _ 68, 00000000(d)
        call    printf                                  ; 006F _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 0074 _ 83. C4, 10
        leave                                           ; 0077 _ C9
        ret                                             ; 0078 _ C3
_ZN4John4dumpEv ENDP

        nop                                             ; 0079 _ 90

_Z5helloii PROC NEAR
        push    ebp                                     ; 007A _ 55
        mov     ebp, esp                                ; 007B _ 89. E5
        push    ebx                                     ; 007D _ 53
        sub     esp, 20                                 ; 007E _ 83. EC, 14
        sub     esp, 12                                 ; 0081 _ 83. EC, 0C
        push    offset ?_003                            ; 0084 _ 68, 0000000D(d)
        call    printf                                  ; 0089 _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 008E _ 83. C4, 10
        sub     esp, 12                                 ; 0091 _ 83. EC, 0C
        push    8                                       ; 0094 _ 6A, 08
        call    _Znwj                                   ; 0096 _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 009B _ 83. C4, 10
        mov     ebx, eax                                ; 009E _ 89. C3
        sub     esp, 4                                  ; 00A0 _ 83. EC, 04
        push    5                                       ; 00A3 _ 6A, 05
        push    4                                       ; 00A5 _ 6A, 04
        push    ebx                                     ; 00A7 _ 53
        call    _ZN4JohnC1Eii                           ; 00A8 _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 00AD _ 83. C4, 10
        mov     dword ptr [ebp-8H], ebx                 ; 00B0 _ 89. 5D, F8
        sub     esp, 8                                  ; 00B3 _ 83. EC, 08
        sub     esp, 12                                 ; 00B6 _ 83. EC, 0C
        push    2                                       ; 00B9 _ 6A, 02
        push    1                                       ; 00BB _ 6A, 01
        push    dword ptr [ebp-8H]                      ; 00BD _ FF. 75, F8
        call    _ZN4John10helloClassEii                 ; 00C0 _ E8, FFFFFFFC(rel)
        add     esp, 24                                 ; 00C5 _ 83. C4, 18
        push    eax                                     ; 00C8 _ 50
        push    offset ?_004                            ; 00C9 _ 68, 0000001B(d)
        call    printf                                  ; 00CE _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 00D3 _ 83. C4, 10
        sub     esp, 12                                 ; 00D6 _ 83. EC, 0C
        push    dword ptr [ebp-8H]                      ; 00D9 _ FF. 75, F8
        call    _ZN4John4dumpEv                         ; 00DC _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 00E1 _ 83. C4, 10
        mov     eax, dword ptr [ebp-8H]                 ; 00E4 _ 8B. 45, F8
        mov     dword ptr [ebp-0CH], eax                ; 00E7 _ 89. 45, F4
        cmp     dword ptr [ebp-0CH], 0                  ; 00EA _ 83. 7D, F4, 00
        jz      ?_001                                   ; 00EE _ 74, 1C
        sub     esp, 12                                 ; 00F0 _ 83. EC, 0C
        push    dword ptr [ebp-0CH]                     ; 00F3 _ FF. 75, F4
        call    _ZN4JohnD1Ev                            ; 00F6 _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 00FB _ 83. C4, 10
        sub     esp, 12                                 ; 00FE _ 83. EC, 0C
        push    dword ptr [ebp-0CH]                     ; 0101 _ FF. 75, F4
        call    _ZdlPv                                  ; 0104 _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 0109 _ 83. C4, 10
?_001:  mov     eax, dword ptr [ebp+0CH]                ; 010C _ 8B. 45, 0C
        add     eax, dword ptr [ebp+8H]                 ; 010F _ 03. 45, 08
        imul    eax, dword ptr [ebp+0CH]                ; 0112 _ 0F AF. 45, 0C
        mov     ebx, dword ptr [ebp-4H]                 ; 0116 _ 8B. 5D, FC
        leave                                           ; 0119 _ C9
        ret                                             ; 011A _ C3
_Z5helloii ENDP

        nop                                             ; 011B _ 90

_Z4blahv PROC NEAR
        push    ebp                                     ; 011C _ 55
        mov     ebp, esp                                ; 011D _ 89. E5
        sub     esp, 24                                 ; 011F _ 83. EC, 18
        sub     esp, 4                                  ; 0122 _ 83. EC, 04
        push    2                                       ; 0125 _ 6A, 02
        push    1                                       ; 0127 _ 6A, 01
        lea     eax, [ebp-18H]                          ; 0129 _ 8D. 45, E8
        push    eax                                     ; 012C _ 50
        call    _ZN4JohnC1Eii                           ; 012D _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 0132 _ 83. C4, 10
        sub     esp, 12                                 ; 0135 _ 83. EC, 0C
        lea     eax, [ebp-18H]                          ; 0138 _ 8D. 45, E8
        push    eax                                     ; 013B _ 50
        call    _ZN4John4dumpEv                         ; 013C _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 0141 _ 83. C4, 10
        sub     esp, 12                                 ; 0144 _ 83. EC, 0C
        lea     eax, [ebp-18H]                          ; 0147 _ 8D. 45, E8
        push    eax                                     ; 014A _ 50
        call    _ZN4JohnD1Ev                            ; 014B _ E8, FFFFFFFC(rel)
        add     esp, 16                                 ; 0150 _ 83. C4, 10
        leave                                           ; 0153 _ C9
        ret                                             ; 0154 _ C3
_Z4blahv ENDP

_text   ENDS

_data   SEGMENT DWORD PUBLIC 'DATA'                     ; section number 2

_data   ENDS

.bss    SEGMENT DWORD PUBLIC 'BSS'                      ; section number 3

.bss    ENDS

.rodata 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                           ; 002B _ %i..

.rodata ENDS

.eh_frame SEGMENT DWORD PUBLIC 'CONST'                  ; section number 5

        db 18H, 00H, 00H, 00H, 00H, 00H, 00H, 00H       ; 0000 _ ........
        db 01H, 7AH, 50H, 00H, 01H, 7CH, 08H, 05H       ; 0008 _ .zP..|..
        db 00H                                          ; 0010 _ .
        dd __gxx_personality_v0                         ; 0011 _ 00000000 (d)
        dd 8804040CH, 3C000001H                         ; 0015 _ -2013002740 1006632961 
        dd 20000000H                                    ; 001D _ 536870912 
        db 00H, 00H, 00H                                ; 0021 _ ...
        dd _Z5helloii                                   ; 0024 _ 0000007A (d)
        dd 000000A1H, 00010400H                         ; 0028 _ 161 66560 
        dd 080E0000H, 02040285H                         ; 0030 _ 135135232 33817221 
        dd 0D000000H, 00040405H                         ; 0038 _ 218103808 263173 
        dd 03830000H, 00000804H                         ; 0040 _ 58916864 2052 
        dd 04102E00H, 00000037H                         ; 0048 _ 68169216 55 
        dd 0E04182EH, 2E000000H                         ; 0050 _ 235149358 771751936 
        dd 00000010H                                    ; 0058 _ 16 

.eh_frame ENDS

END