
402212 : e8 ee ed ff ff                call    MD5Init
40221B : e8 20  7  0  0                call    strlen
40222C : e8 de ed ff ff                call    MD5_Update
402239 : e8 cc ed ff ff                call    MD5_Final

.text:00401005 MD5Init         
.text:00402940 strlen          
.text:0040100F MD5_Update      
.text:0040100A MD5_Final       

call offset opcodes are all relative distances from eip
so internally work regardless of module relocation

Clear Example
----------------------------------------------------
	_asm{
			call here
			call here
			jmp there

		here: ret
		there:
	}

401028 : e8  7  0  0  0                call    sub_401034       ;call eip + 7
40102D : e8  2  0  0  0                call    sub_401034       ;call eip + 2
401032 : eb  1                         jmp     short loc_401035
401034 : c3                            retn

----------------------------------------------------



.text:004021F0 MD5_String      proc near               ; CODE XREF: j_MD5_Stringj
.text:004021F0
.text:004021F0 var_A8          = dword ptr -0A8h
.text:004021F0 var_68          = dword ptr -68h
.text:004021F0 var_64          = dword ptr -64h
.text:004021F0 var_60          = dword ptr -60h
.text:004021F0 var_5C          = dword ptr -5Ch
.text:004021F0 var_58          = dword ptr -58h
.text:004021F0 arg_0           = dword ptr  8
.text:004021F0 arg_4           = dword ptr  0Ch
.text:004021F0
.text:004021F0                 push    ebp
.text:004021F1                 mov     ebp, esp
.text:004021F3                 sub     esp, 0A8h
.text:004021F9                 push    ebx
.text:004021FA                 push    esi
.text:004021FB                 push    edi
.text:004021FC                 lea     edi, [ebp+var_A8]
.text:00402202                 mov     ecx, 2Ah
.text:00402207                 mov     eax, 0CCCCCCCCh
.text:0040220C                 rep stosd
.text:0040220E                 lea     eax, [ebp+var_58]
.text:00402211                 push    eax
.text:00402212                 call    MD5Init
.text:00402217                 mov     ecx, [ebp+arg_0]
.text:0040221A                 push    ecx
.text:0040221B                 call    strlen
.text:00402220                 add     esp, 4
.text:00402223                 push    eax
.text:00402224                 mov     edx, [ebp+arg_0]
.text:00402227                 push    edx
.text:00402228                 lea     eax, [ebp+var_58]
.text:0040222B                 push    eax
.text:0040222C                 call    MD5_Update
.text:00402231                 lea     ecx, [ebp+var_58]
.text:00402234                 push    ecx
.text:00402235                 lea     edx, [ebp+var_68]
.text:00402238                 push    edx
.text:00402239                 call    MD5_Final
.text:0040223E                 mov     eax, [ebp-59h]
.text:00402241                 and     eax, 0FFh
.text:00402246                 push    eax
.text:00402247                 mov     ecx, [ebp-5Ah]
.text:0040224A                 and     ecx, 0FFh
.text:00402250                 push    ecx
.text:00402251                 mov     edx, [ebp-5Bh]
.text:00402254                 and     edx, 0FFh
.text:0040225A                 push    edx
.text:0040225B                 mov     eax, [ebp+var_5C]
.text:0040225E                 and     eax, 0FFh
.text:00402263                 push    eax
.text:00402264                 mov     ecx, [ebp-5Dh]
.text:00402267                 and     ecx, 0FFh
.text:0040226D                 push    ecx
.text:0040226E                 mov     edx, [ebp-5Eh]
.text:00402271                 and     edx, 0FFh
.text:00402277                 push    edx
.text:00402278                 mov     eax, [ebp-5Fh]
.text:0040227B                 and     eax, 0FFh
.text:00402280                 push    eax
.text:00402281                 mov     ecx, [ebp+var_60]
.text:00402284                 and     ecx, 0FFh
.text:0040228A                 push    ecx
.text:0040228B                 mov     edx, [ebp-61h]
.text:0040228E                 and     edx, 0FFh
.text:00402294                 push    edx
.text:00402295                 mov     eax, [ebp-62h]
.text:00402298                 and     eax, 0FFh
.text:0040229D                 push    eax
.text:0040229E                 mov     ecx, [ebp-63h]
.text:004022A1                 and     ecx, 0FFh
.text:004022A7                 push    ecx
.text:004022A8                 mov     edx, [ebp+var_64]
.text:004022AB                 and     edx, 0FFh
.text:004022B1                 push    edx
.text:004022B2                 mov     eax, [ebp+var_68+3]
.text:004022B5                 and     eax, 0FFh
.text:004022BA                 push    eax
.text:004022BB                 mov     ecx, [ebp+var_68+2]
.text:004022BE                 and     ecx, 0FFh
.text:004022C4                 push    ecx
.text:004022C5                 mov     edx, [ebp+var_68+1]
.text:004022C8                 and     edx, 0FFh
.text:004022CE                 push    edx
.text:004022CF                 mov     eax, [ebp+var_68]
.text:004022D2                 and     eax, 0FFh
.text:004022D7                 push    eax
.text:004022D8                 push    offset a02x02x02x02x02 ; "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02"...
.text:004022DD                 mov     ecx, [ebp+arg_4]
.text:004022E0                 push    ecx
.text:004022E1                 call    sprintf
.text:004022E6                 add     esp, 48h
.text:004022E9                 pop     edi
.text:004022EA                 pop     esi
.text:004022EB                 pop     ebx
.text:004022EC                 add     esp, 0A8h
.text:004022F2                 cmp     ebp, esp
.text:004022F4                 call    checkesp
.text:004022F9                 mov     esp, ebp
.text:004022FB                 pop     ebp
.text:004022FC                 retn
.text:004022FC MD5_String      endp
.text:004022FC
