03951F39  |. E8 426B0000    CALL D2Common.03958A80			; call to get dex
03951F3E  |. 8B4C24 18      MOV ECX,DWORD PTR SS:[ESP+18]		; here you have EAX = dex
03951F42  |> 8D5430 F9      LEA EDX,DWORD PTR DS:[EAX+ESI-7]		; ESI probably Item Attack Bonus, not tested - EDX = dex + ESI - 7
03951F46     8D5482 E4      LEA EDX,DWORD PTR DS:[EDX+EAX*4-1C]		; EDX = EDX + 4*DEX - 1C          
03951F4A  |. 8B4424 10      MOV EAX,DWORD PTR SS:[ESP+10]
03951F4E  |. 85C0           TEST EAX,EAX
03951F50  |. 75 21          JNZ SHORT D2Common.03951F73
03951F52  |. 8B41 04        MOV EAX,DWORD PTR DS:[ECX+4]
03951F55  |. 85C0           TEST EAX,EAX
03951F57  |. 7C 1A          JL SHORT D2Common.03951F73
03951F59  |. 3B85 C80B0000  CMP EAX,DWORD PTR SS:[EBP+BC8]
03951F5F  |. 7D 12          JGE SHORT D2Common.03951F73
03951F61  |. 8BB5 C40B0000  MOV ESI,DWORD PTR SS:[EBP+BC4]
03951F67  |. 69C0 C4000000  IMUL EAX,EAX,0C4
03951F6D  |. 03C6           ADD EAX,ESI
03951F6F  |. 85C0           TEST EAX,EAX
03951F71  |. 75 0C          JNZ SHORT D2Common.03951F7F
03951F73  |> 5F             POP EDI
03951F74  |. 5E             POP ESI
03951F75  |. 5D             POP EBP
03951F76  |. 33C0           XOR EAX,EAX
03951F78  |. 8BC2           MOV EAX,EDX
03951F7A  |. 5B             POP EBX
03951F7B  |. 59             POP ECX
03951F7C  |. C2 0400        RETN 4
03951F7F  |> 8B40 3C        MOV EAX,DWORD PTR DS:[EAX+3C]		; EAX = ToHitFactor from CharStats.txt
03951F82  |. 5F             POP EDI
03951F83  |. 5E             POP ESI
03951F84  |. 5D             POP EBP
03951F85  |. 03C2           ADD EAX,EDX					; Attack Rating in EAX = EAX + EDX			
03951F87  |. 5B             POP EBX                                  
03951F88  |. 59             POP ECX
03951F89  \. C2 0400        RETN 4