This is a multi-part message in MIME format.

------=_NextPart_000_002C_01C4577D.73E543F0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hello All,

I've fount that if I compile the same program using gcc and vc 2003 =
the same class E (see complete source bellow) has different size (on vc =
it is 4 bytes bigger). Digging into this I've found that vc is reserving =
a dword in the E class right before storage for virtual base class. In =
my tests value of this dword always was 0. I did not see any code =
referencing this memory.=20

Anybody has any idea what this dword is for?

Vladimir.


/*

Compile:
cl -EHsc -Zi t11.cpp

Classes hierarchy
A
/ \
| |
| |
B D C
| | |
| | |
\ | /
E

Output: My Interpritation:

ma=3Dff1, sizeof(A)=3D8 sizeof(vtable) + sizeof(ma_)
mb=3Dff2, sizeof(B)=3D20 sizeof(vtable) + sizeof(mb_) + =
1*sizeof(DWORD) + sizeof(A)
mc=3Dff3, sizeof(C)=3D20 sizeof(vtable) + sizeof(mb_) + =
1*sizeof(DWORD) + sizeof(A)
md=3Dff4, sizeof(D)=3D8 sizeof(vtable) + sizeof(md_)
me=3Dff5, sizeof(E)=3D40 =20
&before - &after =3D 13

Layout of the stack in the "main" function:

Nr Address Value Points to My Interpritation
01 0012feb0 00000fe2 << veriable "after"

02 0012feb4 0041f178 t11!E::`vftable' << veriable e, start of E, =
start of E::D
03 0012feb8 00000ff4 << e.md_
04 0012febc 0041f188 t11!E::`vbtable' << start of E::B
05 0012fec0 00000ff2 << e.mb_
06 0012fec4 0041f17c t11!E::`vbtable' << start of E::C
07 0012fec8 00000ff3 << e.mc_
08 0012fecc 00000ff5 << e.me_
09 0012fed0 00000000 << ???WHAT ARE THIS FOR???
10 0012fed4 0041f174 t11!E::`vftable' << start of E::A
11 0012fed8 00000ff1 << e.ma_, end of E
12 0012fedc 0000000c << veriable "distance"

13 0012fee0 00000fe1 << veriable "before"

*/

#include<iostream>

using namespace std;

class A {
public:
explicit A(long ma)
: ma_(ma) {
}
virtual void foo();
private:
long ma_;
};

void A::foo() {
cout << hex << "ma=3D" << ma_ << ", sizeof(A)=3D" << dec << =
sizeof(A) << "\n";
}

class B : public virtual A {
public:
explicit B(long mb)
: mb_(mb), A(0) {
}
virtual void foo();
private:
long mb_;
};

void B::foo() {
cout << hex << "mb=3D" << mb_ << ", sizeof(B)=3D" << dec << =
sizeof(B) << "\n";
}

class C : public virtual A {
public:
explicit C(long mc)
: mc_(mc), A(0) {
}
virtual void foo();
private:
long mc_;
};

void C::foo() {
cout << hex << "mc=3D" << mc_ << ", sizeof(C)=3D" << dec << =
sizeof(C) << "\n";
}

class D {
public:
explicit D(long md)
: md_(md) {
}
virtual void foo();
private:
long md_;
};

void D::foo() {
cout << hex << "md=3D" << md_ << ", sizeof(D)=3D" << dec << =
sizeof(D) << "\n";
}

class E : public B, public C, public D {
public:
explicit E(long ma=3D0xFF1, long mb=3D0xFF2, long mc=3D0xFF3, long =
md=3D0xFF4, long me=3D0xFF5)
: A(ma), B(mb), C(mc), D(md), me_(me) {
}
virtual void foo();
private:
long me_;
};

void E::foo() {
A::foo();
B::foo();
C::foo();
D::foo();
cout << hex << "me=3D" << me_ << ", sizeof(E)=3D" << dec << =
sizeof(E) << "\n";
}

int main(int, char **) {
cout << hex;

int distance =3D 0;
int before =3D 0xFE1;

E e;
if(!distance) { //to prevent compiler from rearanging veriables on =
the stack
int after =3D 0xFE2;
distance =3D &before - &after;
}
e.foo();

cout << dec << "&before - &after =3D " << abs(distance) << "\n";

return 0;
}
------=_NextPart_000_002C_01C4577D.73E543F0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1400" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=3DCourier size=3D2>Hello All,</FONT></DIV>
<DIV><FONT face=3DCourier size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; I've fount that if =
I compile=20
the same program using gcc and vc 2003&nbsp; the same class E =
(see&nbsp;complete=20
source bellow) has different size (on vc it is 4 bytes bigger). Digging =
into=20
this I've found that vc is reserving a dword in the E class right before =
storage=20
for virtual base class. In my tests value of this dword always was 0. I =
did not=20
see any code referencing this memory. </FONT></DIV>
<DIV><FONT face=3DCourier size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; Anybody has any =
idea what this=20
dword is for?</FONT></DIV>
<DIV><FONT face=3DCourier size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>Vladimir.</FONT></DIV>
<DIV><FONT face=3DCourier size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>/*</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>Compile:<BR>&nbsp;&nbsp;&nbsp; cl =
-EHsc -Zi=20
t11.cpp</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>Classes=20
hierarchy<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
A<BR>&nbsp;&nbsp;&nbsp;&nbsp;=20
/&nbsp;&nbsp; \<BR>&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; =
|<BR>&nbsp;&nbsp;&nbsp;=20
B&nbsp;&nbsp;D&nbsp; C<BR>&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; |&nbsp; |&nbsp; |<BR>&nbsp;&nbsp;&nbsp;&nbsp; \ =
|=20
/<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; E</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier=20
size=3D2>Output:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
My Interpritation:</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; ma=3Dff1,=20
sizeof(A)=3D8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(vtable) +=20
sizeof(ma_)<BR>&nbsp;&nbsp;&nbsp; mb=3Dff2, =
sizeof(B)=3D20&nbsp;&nbsp;&nbsp;&nbsp;=20
sizeof(vtable) + sizeof(mb_) + 1*sizeof(DWORD) + =
sizeof(A)<BR>&nbsp;&nbsp;&nbsp;=20
mc=3Dff3, sizeof(C)=3D20&nbsp;&nbsp;&nbsp;&nbsp; sizeof(vtable) + =
sizeof(mb_) +=20
1*sizeof(DWORD) + sizeof(A)<BR>&nbsp;&nbsp;&nbsp; md=3Dff4,=20
sizeof(D)=3D8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sizeof(vtable) +=20
sizeof(md_)<BR>&nbsp;&nbsp;&nbsp; me=3Dff5, =
sizeof(E)=3D40&nbsp;&nbsp;&nbsp;&nbsp;=20
<BR>&nbsp;&nbsp;&nbsp; &amp;before - &amp;after =3D 13</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>Layout of the stack in the "main"=20
function:</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; Nr =
Address&nbsp;&nbsp;=20
Value&nbsp;&nbsp;&nbsp; Points=20
to&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; My=20
Interpritation<BR>&nbsp;&nbsp;&nbsp; 01 0012feb0&nbsp;=20
00000fe2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; veriable "after"</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; 02 0012feb4&nbsp; =
0041f178=20
t11!E::`vftable'&nbsp;&nbsp; &lt;&lt; veriable e, start of E, start of=20
E::D<BR>&nbsp;&nbsp;&nbsp; 03 0012feb8&nbsp;=20
00000ff4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; e.md_<BR>&nbsp;&nbsp;&nbsp; 04 0012febc&nbsp; 0041f188=20
t11!E::`vbtable'&nbsp;&nbsp; &lt;&lt; start of =
E::B<BR>&nbsp;&nbsp;&nbsp; 05=20
0012fec0&nbsp;=20
00000ff2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; e.mb_<BR>&nbsp;&nbsp;&nbsp; 06 0012fec4&nbsp; 0041f17c=20
t11!E::`vbtable'&nbsp;&nbsp; &lt;&lt; start of =
E::C<BR>&nbsp;&nbsp;&nbsp; 07=20
0012fec8&nbsp;=20
00000ff3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; e.mc_<BR>&nbsp;&nbsp;&nbsp; 08 0012fecc&nbsp;=20
00000ff5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; e.me_<BR>&nbsp;&nbsp;&nbsp; 09 0012fed0&nbsp;=20
00000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; ???WHAT ARE THIS FOR???<BR>&nbsp;&nbsp;&nbsp; 10 0012fed4&nbsp; =

0041f174 t11!E::`vftable'&nbsp;&nbsp; &lt;&lt; start of=20
E::A<BR>&nbsp;&nbsp;&nbsp; 11 0012fed8&nbsp;=20
00000ff1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; e.ma_, end of E<BR>&nbsp;&nbsp;&nbsp; 12 0012fedc&nbsp;=20
0000000c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; veriable "distance"</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; 13 0012fee0&nbsp;=20
00000fe1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; veriable "before"</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>*/</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>#include&lt;iostream&gt;</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>using namespace std;<BR><BR>class A=20
{<BR>public:<BR>&nbsp;&nbsp;&nbsp; explicit A(long=20
ma)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : ma_(ma)=20
{<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; virtual void=20
foo();<BR>private:<BR>&nbsp;&nbsp;&nbsp; long ma_;<BR>};</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>void A::foo() {<BR>&nbsp;&nbsp;&nbsp; =
cout=20
&lt;&lt; hex &lt;&lt; "ma=3D" &lt;&lt; ma_ &lt;&lt; ", sizeof(A)=3D" =
&lt;&lt; dec=20
&lt;&lt; sizeof(A) &lt;&lt; "\n";<BR>}</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>class B : public virtual A=20
{<BR>public:<BR>&nbsp;&nbsp;&nbsp; explicit B(long=20
mb)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : mb_(mb), A(0)=20
{<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; virtual void=20
foo();<BR>private:<BR>&nbsp;&nbsp;&nbsp; long mb_;<BR>};</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>void B::foo() {<BR>&nbsp;&nbsp;&nbsp; =
cout=20
&lt;&lt; hex &lt;&lt; "mb=3D" &lt;&lt; mb_ &lt;&lt; ", sizeof(B)=3D" =
&lt;&lt; dec=20
&lt;&lt; sizeof(B) &lt;&lt; "\n";<BR>}</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>class C : public virtual A=20
{<BR>public:<BR>&nbsp;&nbsp;&nbsp; explicit C(long=20
mc)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : mc_(mc), A(0)=20
{<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; virtual void=20
foo();<BR>private:<BR>&nbsp;&nbsp;&nbsp; long mc_;<BR>};</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>void C::foo() {<BR>&nbsp;&nbsp;&nbsp; =
cout=20
&lt;&lt; hex &lt;&lt; "mc=3D" &lt;&lt; mc_ &lt;&lt; ", sizeof(C)=3D" =
&lt;&lt; dec=20
&lt;&lt; sizeof(C) &lt;&lt; "\n";<BR>}</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>class D =
{<BR>public:<BR>&nbsp;&nbsp;&nbsp;=20
explicit D(long md)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : =
md_(md)=20
{<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; virtual void=20
foo();<BR>private:<BR>&nbsp;&nbsp;&nbsp; long md_;<BR>};</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>void D::foo() {<BR>&nbsp;&nbsp;&nbsp; =
cout=20
&lt;&lt; hex &lt;&lt; "md=3D" &lt;&lt; md_ &lt;&lt; ", sizeof(D)=3D" =
&lt;&lt; dec=20
&lt;&lt; sizeof(D) &lt;&lt; "\n";<BR>}</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>class E : public B, public C, public =
D=20
{<BR>public:<BR>&nbsp;&nbsp;&nbsp; explicit E(long ma=3D0xFF1, long =
mb=3D0xFF2, long=20
mc=3D0xFF3, long md=3D0xFF4, long=20
me=3D0xFF5)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : A(ma), =
B(mb), C(mc),=20
D(md), me_(me) {<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; virtual =
void=20
foo();<BR>private:<BR>&nbsp;&nbsp;&nbsp; long me_;<BR>};</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>void E::foo() {<BR>&nbsp;&nbsp;&nbsp; =

A::foo();<BR>&nbsp;&nbsp;&nbsp; B::foo();<BR>&nbsp;&nbsp;&nbsp;=20
C::foo();<BR>&nbsp;&nbsp;&nbsp; D::foo();<BR>&nbsp;&nbsp;&nbsp; cout =
&lt;&lt;=20
hex &lt;&lt; "me=3D" &lt;&lt; me_ &lt;&lt; ", sizeof(E)=3D" &lt;&lt; dec =
&lt;&lt;=20
sizeof(E) &lt;&lt; "\n";<BR>}</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>int main(int, char **) =
{<BR>&nbsp;&nbsp;&nbsp;=20
cout &lt;&lt; hex;</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; int distance =3D=20
0;<BR>&nbsp;&nbsp;&nbsp; int before =3D 0xFE1;</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; E =
e;<BR>&nbsp;&nbsp;&nbsp;=20
if(!distance) { //to prevent compiler from rearanging veriables on the=20
stack<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int after =3D=20
0xFE2;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; distance =3D =
&amp;before -=20
&amp;after;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; =
e.foo();</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; cout &lt;&lt; dec =
&lt;&lt;=20
"&amp;before - &amp;after =3D "&nbsp; &lt;&lt; abs(distance) &lt;&lt;=20
"\n";</FONT></DIV>
<DIV><FONT face=3DCourier></FONT>&nbsp;</DIV>
<DIV><FONT face=3DCourier size=3D2>&nbsp;&nbsp;&nbsp; return=20
0;<BR>}</FONT></DIV></BODY></HTML>

------=_NextPart_000_002C_01C4577D.73E543F0--

Re: virtual-multiple inheritance. what an extra dword is for? by Doug

Doug
Mon Jun 21 13:22:39 CDT 2004

Vladimir_petter wrote:

>Hello All,
>
> I've fount that if I compile the same program using gcc and vc 2003 the same class E (see complete source bellow) has different size (on vc it is 4 bytes bigger). Digging into this I've found that vc is reserving a dword in the E class right before storage for virtual base class. In my tests value of this dword always was 0. I did not see any code referencing this memory.
>
> Anybody has any idea what this dword is for?

See if this article helps you figure it out:

C++: Under the Hood
Jan Gray
http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarvc/html/jangrayhood.asp

--
Doug Harrison
Microsoft MVP - Visual C++

Re: virtual-multiple inheritance. what an extra dword is for? by Vladimir_petter

Vladimir_petter
Mon Jun 21 15:37:32 CDT 2004

This is a multi-part message in MIME format.

------=_NextPart_000_00C5_01C45794.E7501CE0
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


Hello Doug,

Thanks for the link. It definetly helped.=20
I am still not 100% sure, but my guess is that this DWORD is a =
reservaton for a future vbtable to store deplacement of A relative to E.
See bellow corrected picture.

Thanks,
Vladimir.

=20
Layout of the stack in the "main" function:
=20
Nr Address Value Points to My Interpritation
01 0012feb0 00000fe2 << veriable "after"
=20
02 0012feb4 0041f178 t11!E::`vftable' << veriable e, start of E, =
start of E::D ---------------
03 0012feb8 00000ff4 << e.md_ =
|
04 0012febc 0041f188 t11!E::`vbtable' << deplacement info for A =
relative to B------------- |
05 0012fec0 00000ff2 << e.mb_, start of E::b =
| |
06 0012fec4 0041f17c t11!E::`vbtable' << deplacement info for A =
relative to C-------- | |
07 0012fec8 00000ff3 << e.mc_ =
| | |
08 0012fecc 00000ff5 << e.me_ =
| | |
09 0012fed0 00000000 << ?is this a reservation =
for future vbtable? | | |
10 0012fed4 0041f174 t11!E::`vftable' << start of =
E::A---------------------------- | | |
11 0012fed8 00000ff1 << e.ma_, end of E =
| | | |
=
| | | |
12 0012fedc 0000000c << veriable "distance" =
| | | |
13 0012fee0 00000fe1 << veriable "before" =
| | | |
=
| | | |
=
| | | |
t11!E::`vftable' at 0041f174 =
<- | | |
0041f174 0040112c =
t11!ILT+295(?fooE$4PPPPPPPMCAAEXXZ)--------------------------- | =
| |
=
| | | |
t11!E::`vftable' at 0041f178: =
| | | |
0041f178 004012f3 =
t11!ILT+750(?fooEUAEXXZ)--------------------------------- | | =
| <-
=
| | | | =20
t11!E::`vbtable' at 0041f17c =
| | <- |
0041f17c 00000000 =
| | |
0041f180 00000010 << decimal 16, 4 dwords from C to A in E =
| | |
0041f184 00000000 =
| | |
=
| | |
t11!E::`vbtable' at 0041f188 =
| | <-
0041f188 00000000 =
| |
0041f18c 00000018 << decimal 24, 6 dwords from B to A in E =
| |
0041f190 00000000 =
| |
=
| |
t11!ILT+295(?fooE$4PPPPPPPMCAAEXXZ): =
| <-
0040112c e98f540000 jmp t11!E::foo (004065c0)-- =
|
| =
|
t11!E::foo: <- =
|
004065c0 2b49fc sub ecx,[ecx-0x4] =
|
004065c3 83e920 sub ecx,0x20 =
|
004065c6 e928adffff jmp t11!ILT+750(?fooEUAEXXZ) =
(004012f3)-- |
=
| |
t11!ILT+750(?fooEUAEXXZ): =
<- <-
004012f3 e9e8040000 jmp t11!E::foo (004017e0)-- =
=20
|
t11!E::foo [t11.cpp @ 117]: <-
004017e0 55 push ebp
004017e1 8bec mov ebp,esp
004017e3 51 push ecx
004017e4 894dfc mov [ebp-0x4],ecx
004017e7 8b45fc mov eax,[ebp-0x4]
------=_NextPart_000_00C5_01C45794.E7501CE0
Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 6.00.2800.1400" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY>
<DIV><FONT face=3DCourier size=3D2></FONT>&nbsp;</DIV>
<DIV>
<DIV><FONT face=3DCourier size=3D2>Hello Doug,</FONT></DIV>
<DIV><FONT face=3DCourier size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3DCourier>Thanks for the =
link. It=20
definetly helped.&nbsp;</FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3DCourier>I am still not =
100% sure, but my=20
guess is that this DWORD is a reservaton for a future vbtable to store=20
deplacement of A relative to E.</FONT></FONT></DIV><FONT face=3DArial =
size=3D2><FONT=20
face=3DCourier></FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><FONT face=3DCourier>See bellow =
corrected=20
picture.</FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><FONT =
face=3DCourier></FONT></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2><FONT =
face=3DCourier>Thanks,</FONT></FONT></DIV>
<DIV><FONT face=3DArial size=3D2><FONT =
face=3DCourier>Vladimir.</FONT></DIV>
<DIV><BR>&nbsp;<BR><FONT face=3DCourier>Layout of the stack in the =
"main"=20
function:<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; Nr Address&nbsp;&nbsp;=20
Value&nbsp;&nbsp;&nbsp; Points=20
to&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; My=20
Interpritation<BR>&nbsp;&nbsp;&nbsp; 01 0012feb0&nbsp;=20
00000fe2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; veriable "after"<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp; 02 =
0012feb4&nbsp;=20
0041f178 t11!E::`vftable'&nbsp;&nbsp; &lt;&lt; veriable e, start of E, =
start of=20
E::D ---------------<BR>&nbsp;&nbsp;&nbsp; 03 0012feb8&nbsp;=20
00000ff4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt;=20
e.md_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; 04 0012febc&nbsp; 0041f188 =
t11!E::`vbtable'&nbsp;&nbsp;=20
&lt;&lt; deplacement info for A relative to B-------------&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; 05 0012fec0&nbsp;=20
00000ff2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; e.mb_, start of=20
E::b&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp; 06 0012fec4&nbsp; 0041f17c=20
t11!E::`vbtable'&nbsp;&nbsp; &lt;&lt; deplacement info for A relative to =

C--------&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp; 07=20
0012fec8&nbsp;=20
00000ff3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt;=20
e.mc_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;=20
|&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp; 08 =
0012fecc&nbsp;=20
00000ff5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt;=20
e.me_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;=20
|&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp; 09 =
0012fed0&nbsp;=20
00000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; ?is this a reservation for future vbtable? |&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp; 10 0012fed4&nbsp; 0041f174=20
t11!E::`vftable'&nbsp;&nbsp; &lt;&lt; start of=20
E::A----------------------------&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; =

|<BR>&nbsp;&nbsp;&nbsp; 11 0012fed8&nbsp;=20
00000ff1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; e.ma_, end of=20
E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =

|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;=20
|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp; 12=20
0012fedc&nbsp;=20
0000000c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; veriable=20
"distance"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp; 13=20
0012fee0&nbsp;=20
00000fe1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;&lt; veriable=20
"before"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;=20
|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;=20
|&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |<BR>t11!E::`vftable' at=20
0041f174&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;-&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp;=20
0041f174&nbsp; 0040112c=20
t11!ILT+295(?fooE$4PPPPPPPMCAAEXXZ)---------------------------&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;=20
|<BR>t11!E::`vftable' at=20
0041f178:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; 0041f178&nbsp; 004012f3=20
t11!ILT+750(?fooEUAEXXZ)---------------------------------&nbsp;&nbsp;&nbs=
p;=20
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; |&nbsp;=20
&lt;-<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp; <BR>t11!E::`vbtable' at=20
0041f17c&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; &lt;-&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; 0041f17c&nbsp;=20
00000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; 0041f180&nbsp; 00000010 &lt;&lt; decimal 16, 4 =
dwords=20
from C to A in=20
E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; 0041f184&nbsp;=20
00000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>t11!E::`vbtable' at=20
0041f188&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp; =
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;-<BR>&nbsp;&nbsp;&nbsp; 0041f188&nbsp;=20
00000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp; 0041f18c&nbsp; 00000018 =
&lt;&lt;=20
decimal 24, 6 dwords from B to A in=20
E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp; |<BR>&nbsp;&nbsp;&nbsp; 0041f190&nbsp;=20
00000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;=20
|<BR>t11!ILT+295(?fooE$4PPPPPPPMCAAEXXZ):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;=20
|&nbsp;&nbsp; &lt;-<BR>&nbsp;&nbsp;&nbsp; 0040112c=20
e98f540000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
jmp&nbsp;&nbsp;&nbsp;&nbsp;=20
t11!E::foo=20
(004065c0)--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>t11!E::foo:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;=20
&lt;-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; 004065c0=20
2b49fc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
sub&nbsp;&nbsp;&nbsp;&nbsp;=20
ecx,[ecx-0x4]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; 004065c3=20
83e920&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
sub&nbsp;&nbsp;&nbsp;&nbsp;=20
ecx,0x20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp; 004065c6 =
e928adffff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
jmp&nbsp;&nbsp;&nbsp;&nbsp; t11!ILT+750(?fooEUAEXXZ)=20
(004012f3)--&nbsp;&nbsp;&nbsp;=20
|<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;=20
|&nbsp;&nbsp;&nbsp;=20
|<BR>t11!ILT+750(?fooEUAEXXZ):&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;=20
&lt;-&nbsp;&nbsp; &lt;-<BR>&nbsp;&nbsp;&nbsp; 004012f3=20
e9e8040000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
jmp&nbsp;&nbsp;&nbsp;&nbsp;=20
t11!E::foo=20
(004017e0)--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
|<BR>t11!E::foo [t11.cpp @=20
117]:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
&lt;-<BR>&nbsp;&nbsp;&nbsp; 004017e0=20
55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;=20
push&nbsp;&nbsp;&nbsp; ebp<BR>&nbsp;&nbsp;&nbsp; 004017e1=20
8bec&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
sp;=20
mov&nbsp;&nbsp;&nbsp;&nbsp; ebp,esp<BR>&nbsp;&nbsp;&nbsp; 004017e3=20
51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;=20
push&nbsp;&nbsp;&nbsp; ecx<BR>&nbsp;&nbsp;&nbsp; 004017e4=20
894dfc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
mov&nbsp;&nbsp;&nbsp;&nbsp; [ebp-0x4],ecx<BR>&nbsp;&nbsp;&nbsp; 004017e7 =

8b45fc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
mov&nbsp;&nbsp;&nbsp;&nbsp; =
eax,[ebp-0x4]</FONT></FONT></DIV></BODY></HTML>

------=_NextPart_000_00C5_01C45794.E7501CE0--