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