mov edx, [ebx+FSOUND_SAMPLE.length]
ebx should be a pointer to a structure of FSOUND_SAMPLE
the whole line mov edx, [ebx+FSOUND_SAMPLE.length]
transfers the data from the FSOUND_SAMPLE.lenght structure variable to edx.
small example:
Font2D struct <-Structure Font2D
FontList dd ?
NrChars dd ?
Font2D ends
.data?
BigFont Font2D <?> <-Declare a Structurevariable of Font2D
.code
mov esi,offset BigFont <- mov the startadress of BigFont into esi-Register
mov eax,dword ptr[esi+Font2D.FontList] <- Now yu have access to structure variable:
startadress of big font + offset from the
structure Font2D.FontList [Byte 0]
This line transfers the data from
BigFont.FontList to eax.
mov ebx,dword ptr[esi+Font2D.NrChars] <- Now yu have access to structure variable:
startadress of big font + offset from the
structure Font2D.NrChars[Byte 4]
This line transfers the data from
BigFont.NrChars to ebx.