|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
General::General Discussion General discussion about EverQuest(tm), EQEMu, and related topics. Do not post support topics here. |
 |
|
 |

05-20-2015, 12:33 PM
|
Fire Beetle
|
|
Join Date: Dec 2002
Posts: 5
|
|
Here is the assembly form the original release CD executable:
Code:
.text:004D8380 loc_4D8380: ; CODE XREF: sub_4D8340+32j
.text:004D8380 xor eax, eax
.text:004D8382 push edi
.text:004D8383 mov al, [esi+98h]
.text:004D8389 sub eax, 0
.text:004D838C jz short loc_4D83D1
.text:004D838E dec eax
.text:004D838F lea esi, [esp+428h+var_410]
.text:004D8393 jz short loc_4D83B3
.text:004D8395 mov edi, offset aIt ; "it"
.text:004D839A or ecx, 0FFFFFFFFh
.text:004D839D xor eax, eax
.text:004D839F mov [esp+428h+var_418], esi
.text:004D83A3 repne scasb
.text:004D83A5 not ecx
.text:004D83A7 sub edi, ecx
.text:004D83A9 mov esi, edi
.text:004D83AB mov edi, [esp+428h+var_418]
.text:004D83AF mov eax, ecx
.text:004D83B1 jmp short loc_4D83F1
.text:004D83B3 ; ---------------------------------------------------------------------------
.text:004D83B3
.text:004D83B3 loc_4D83B3: ; CODE XREF: sub_4D8340+53j
.text:004D83B3 mov edi, offset aShe ; "she"
.text:004D83B8 or ecx, 0FFFFFFFFh
.text:004D83BB xor eax, eax
.text:004D83BD mov [esp+428h+var_418], esi
.text:004D83C1 repne scasb
.text:004D83C3 not ecx
.text:004D83C5 sub edi, ecx
.text:004D83C7 mov esi, edi
.text:004D83C9 mov edi, [esp+428h+var_418]
.text:004D83CD mov eax, ecx
.text:004D83CF jmp short loc_4D83F1
.text:004D83D1 ; ---------------------------------------------------------------------------
.text:004D83D1
.text:004D83D1 loc_4D83D1: ; CODE XREF: sub_4D8340+4Cj
.text:004D83D1 mov edi, offset aHe ; "he"
.text:004D83D6 or ecx, 0FFFFFFFFh
.text:004D83D9 xor eax, eax
.text:004D83DB lea esi, [esp+428h+var_410]
.text:004D83DF repne scasb
.text:004D83E1 not ecx
.text:004D83E3 sub edi, ecx
.text:004D83E5 mov [esp+428h+var_418], esi
.text:004D83E9 mov esi, edi
.text:004D83EB mov edi, [esp+428h+var_418]
.text:004D83EF mov eax, ecx
.text:004D83F1
.text:004D83F1 loc_4D83F1: ; CODE XREF: sub_4D8340+71j
.text:004D83F1 ; sub_4D8340+8Fj
.text:004D83F1 shr ecx, 2
.text:004D83F4 rep movsd
.text:004D83F6 mov ecx, eax
.text:004D83F8 and ecx, 3
.text:004D83FB rep movsb
.text:004D83FD mov ecx, [esp+428h+arg_4]
.text:004D8404 mov al, [ecx+94h]
.text:004D840A test al, al
.text:004D840C jnz short loc_4D8412
.text:004D840E xor eax, eax
.text:004D8410 jmp short loc_4D8419
.text:004D8412 ; ---------------------------------------------------------------------------
.text:004D8412
.text:004D8412 loc_4D8412: ; CODE XREF: sub_4D8340+CCj
.text:004D8412 mov eax, [esp+428h+arg_8]
.text:004D8419
.text:004D8419 loc_4D8419: ; CODE XREF: sub_4D8340+D0j
.text:004D8419 cmp eax, 750
.text:004D841E jl short loc_4D8448
.text:004D8420 mov edi, offset aLooksUponYouWa ; "looks upon you warmly"
.text:004D8425 or ecx, 0FFFFFFFFh
.text:004D8428 xor eax, eax
.text:004D842A lea esi, [esp+428h+var_300]
.text:004D8431 repne scasb
.text:004D8433 not ecx
.text:004D8435 sub edi, ecx
.text:004D8437 mov [esp+428h+var_418], esi
.text:004D843B mov esi, edi
.text:004D843D mov edi, [esp+428h+var_418]
.text:004D8441 mov eax, ecx
.text:004D8443 jmp loc_4D856E
.text:004D8448 ; ---------------------------------------------------------------------------
.text:004D8448
.text:004D8448 loc_4D8448: ; CODE XREF: sub_4D8340+DEj
.text:004D8448 cmp eax, 500
.text:004D844D jl short loc_4D8477
.text:004D844F mov edi, offset aKindlyConsider ; "kindly considers you"
.text:004D8454 or ecx, 0FFFFFFFFh
.text:004D8457 xor eax, eax
.text:004D8459 lea esi, [esp+428h+var_300]
.text:004D8460 repne scasb
.text:004D8462 not ecx
.text:004D8464 sub edi, ecx
.text:004D8466 mov [esp+428h+var_418], esi
.text:004D846A mov esi, edi
.text:004D846C mov edi, [esp+428h+var_418]
.text:004D8470 mov eax, ecx
.text:004D8472 jmp loc_4D856E
.text:004D8477 ; ---------------------------------------------------------------------------
.text:004D8477
.text:004D8477 loc_4D8477: ; CODE XREF: sub_4D8340+10Dj
.text:004D8477 cmp eax, 100
.text:004D847A jl short loc_4D84A4
.text:004D847C mov edi, offset aJudgesYouAmiab ; "judges you amiably"
.text:004D8481 or ecx, 0FFFFFFFFh
.text:004D8484 xor eax, eax
.text:004D8486 lea esi, [esp+428h+var_300]
.text:004D848D repne scasb
.text:004D848F not ecx
.text:004D8491 sub edi, ecx
.text:004D8493 mov [esp+428h+var_418], esi
.text:004D8497 mov esi, edi
.text:004D8499 mov edi, [esp+428h+var_418]
.text:004D849D mov eax, ecx
.text:004D849F jmp loc_4D856E
.text:004D84A4 ; ---------------------------------------------------------------------------
.text:004D84A4
.text:004D84A4 loc_4D84A4: ; CODE XREF: sub_4D8340+13Aj
.text:004D84A4 test eax, eax
.text:004D84A6 jl short loc_4D84D0
.text:004D84A8 mov edi, offset aRegardsYouIndi ; "regards you indifferently"
.text:004D84AD or ecx, 0FFFFFFFFh
.text:004D84B0 xor eax, eax
.text:004D84B2 lea esi, [esp+428h+var_300]
.text:004D84B9 repne scasb
.text:004D84BB not ecx
.text:004D84BD sub edi, ecx
.text:004D84BF mov [esp+428h+var_418], esi
.text:004D84C3 mov esi, edi
.text:004D84C5 mov edi, [esp+428h+var_418]
.text:004D84C9 mov eax, ecx
.text:004D84CB jmp loc_4D856E
.text:004D84D0 ; ---------------------------------------------------------------------------
.text:004D84D0
.text:004D84D0 loc_4D84D0: ; CODE XREF: sub_4D8340+166j
.text:004D84D0 cmp eax, -750
.text:004D84D5 jge short loc_4D84FC
.text:004D84D7 mov edi, offset aScowlsAtYouRea ; "scowls at you, ready to attack"
.text:004D84DC or ecx, 0FFFFFFFFh
.text:004D84DF xor eax, eax
.text:004D84E1 lea esi, [esp+428h+var_300]
.text:004D84E8 repne scasb
.text:004D84EA not ecx
.text:004D84EC sub edi, ecx
.text:004D84EE mov [esp+428h+var_418], esi
.text:004D84F2 mov esi, edi
.text:004D84F4 mov edi, [esp+428h+var_418]
.text:004D84F8 mov eax, ecx
.text:004D84FA jmp short loc_4D856E
.text:004D84FC ; ---------------------------------------------------------------------------
.text:004D84FC
.text:004D84FC loc_4D84FC: ; CODE XREF: sub_4D8340+195j
.text:004D84FC cmp eax, -500
.text:004D8501 jge short loc_4D8528
.text:004D8503 mov edi, offset aGlaresAtYouThr ; "glares at you threateningly"
.text:004D8508 or ecx, 0FFFFFFFFh
.text:004D850B xor eax, eax
.text:004D850D lea esi, [esp+428h+var_300]
.text:004D8514 repne scasb
.text:004D8516 not ecx
.text:004D8518 sub edi, ecx
.text:004D851A mov [esp+428h+var_418], esi
.text:004D851E mov esi, edi
.text:004D8520 mov edi, [esp+428h+var_418]
.text:004D8524 mov eax, ecx
.text:004D8526 jmp short loc_4D856E
.text:004D8528 ; ---------------------------------------------------------------------------
.text:004D8528
.text:004D8528 loc_4D8528: ; CODE XREF: sub_4D8340+1C1j
.text:004D8528 cmp eax, -100
.text:004D852B lea esi, [esp+428h+var_300]
.text:004D8532 jge short loc_4D8552
.text:004D8534 mov edi, offset aGlowersAtYouDu ; "glowers at you dubiously"
.text:004D8539 or ecx, 0FFFFFFFFh
.text:004D853C xor eax, eax
.text:004D853E mov [esp+428h+var_418], esi
.text:004D8542 repne scasb
.text:004D8544 not ecx
.text:004D8546 sub edi, ecx
.text:004D8548 mov esi, edi
.text:004D854A mov edi, [esp+428h+var_418]
.text:004D854E mov eax, ecx
.text:004D8550 jmp short loc_4D856E
.text:004D8552 ; ---------------------------------------------------------------------------
.text:004D8552
.text:004D8552 loc_4D8552: ; CODE XREF: sub_4D8340+1F2j
.text:004D8552 mov edi, offset aLooksYourWayAp ; "looks your way apprehensively"
.text:004D8557 or ecx, 0FFFFFFFFh
.text:004D855A xor eax, eax
.text:004D855C mov [esp+428h+var_418], esi
.text:004D8560 repne scasb
.text:004D8562 not ecx
.text:004D8564 sub edi, ecx
.text:004D8566 mov esi, edi
.text:004D8568 mov edi, [esp+428h+var_418]
.text:004D856C mov eax, ecx
.text:004D856E
.text:004D856E loc_4D856E: ; CODE XREF: sub_4D8340+103j
.text:004D856E ; sub_4D8340+132j ...
.text:004D856E shr ecx, 2
.text:004D8571 rep movsd
.text:004D8573 mov ecx, eax
.text:004D8575 lea eax, [edx+edx*2]
.text:004D8578 cdq
.text:004D8579 and edx, 3
.text:004D857C and ecx, 3
.text:004D857F add eax, edx
.text:004D8581 sar eax, 2
.text:004D8584 cmp eax, ebx
.text:004D8586 rep movsb
.text:004D8588 jle short loc_4D8596
.text:004D858A cmp ebp, 0FFFFFFFDh
.text:004D858D jge short loc_4D8596
.text:004D858F mov ebx, 2
.text:004D8594 jmp short loc_4D85B6
<skipping code that generates con'ing part of message>
.text:004D8706 loc_4D8706: ; CODE XREF: sub_4D8340+285j
.text:004D8706 ; sub_4D8340+293j ...
.text:004D8706 mov eax, [esp+428h+arg_4] ; jumptable 004D85D3 default case
.text:004D870D lea ecx, [esp+428h+var_400]
.text:004D8711 lea edx, [esp+428h+var_300]
.text:004D8718 push ecx
.text:004D8719 mov ecx, dword_716810
.text:004D871F inc eax
.text:004D8720 push edx
.text:004D8721 push eax
.text:004D8722 call sub_4DEA40
.text:004D8727 push eax
.text:004D8728 lea ecx, [esp+434h+var_200]
.text:004D872F push offset aSSS_1 ; "%s %s -- %s"
.text:004D8734 push ecx ; char *
.text:004D8735 call _sprintf
.text:004D873A mov ecx, dword_716810
.text:004D8740 add esp, 14h
.text:004D8743 lea edx, [esp+428h+var_200]
.text:004D874A push ebx
.text:004D874B push edx
.text:004D874C call sub_4DEBA0
.text:004D8751 pop edi
.text:004D8752 pop esi
.text:004D8753 pop ebp
.text:004D8754 mov eax, 1
.text:004D8759 pop ebx
.text:004D875A add esp, 418h
.text:004D8760 retn
.text:004D8760 sub_4D8340 endp
Here is the assembly from a Velious era (June 2001) executable:
Code:
.text:004C05FC loc_4C05FC: ; CODE XREF: sub_4C05C9+2Aj
.text:004C05FC movzx eax, byte ptr [ebx+9Ch]
.text:004C0603 sub eax, 0
.text:004C0606 jz short loc_4C0619
.text:004C0608 dec eax
.text:004C0609 jz short loc_4C0612
.text:004C060B push offset aIt ; "it"
.text:004C0610 jmp short loc_4C061E
.text:004C0612 ; ---------------------------------------------------------------------------
.text:004C0612
.text:004C0612 loc_4C0612: ; CODE XREF: sub_4C05C9+40j
.text:004C0612 push offset aShe ; "she"
.text:004C0617 jmp short loc_4C061E
.text:004C0619 ; ---------------------------------------------------------------------------
.text:004C0619
.text:004C0619 loc_4C0619: ; CODE XREF: sub_4C05C9+3Dj
.text:004C0619 push offset aHe ; "he"
.text:004C061E
.text:004C061E loc_4C061E: ; CODE XREF: sub_4C05C9+47j
.text:004C061E ; sub_4C05C9+4Ej
.text:004C061E lea eax, [ebp+var_10]
.text:004C0621 push eax ; char *
.text:004C0622 call _strcpy
.text:004C0627 cmp byte ptr [ebx+98h], 0
.text:004C062E pop ecx
.text:004C062F pop ecx
.text:004C0630 jnz short loc_4C0634
.text:004C0632 xor esi, esi
.text:004C0634
.text:004C0634 loc_4C0634: ; CODE XREF: sub_4C05C9+67j
.text:004C0634 cmp esi, 1100
.text:004C063A mov ebx, offset aRegardsYouAsAn ; "regards you as an ally"
.text:004C063F jl short loc_4C0644
.text:004C0641 push ebx
.text:004C0642 jmp short loc_4C06A8
.text:004C0644 ; ---------------------------------------------------------------------------
.text:004C0644
.text:004C0644 loc_4C0644: ; CODE XREF: sub_4C05C9+76j
.text:004C0644 cmp esi, 750
.text:004C064A jl short loc_4C0653
.text:004C064C push offset aLooksUponYouWa ; "looks upon you warmly"
.text:004C0651 jmp short loc_4C06A8
.text:004C0653 ; ---------------------------------------------------------------------------
.text:004C0653
.text:004C0653 loc_4C0653: ; CODE XREF: sub_4C05C9+81j
.text:004C0653 cmp esi, 500
.text:004C0659 jl short loc_4C0662
.text:004C065B push offset aKindlyConsider ; "kindly considers you"
.text:004C0660 jmp short loc_4C06A8
.text:004C0662 ; ---------------------------------------------------------------------------
.text:004C0662
.text:004C0662 loc_4C0662: ; CODE XREF: sub_4C05C9+90j
.text:004C0662 cmp esi, 100
.text:004C0665 jl short loc_4C066E
.text:004C0667 push offset aJudgesYouAmiab ; "judges you amiably"
.text:004C066C jmp short loc_4C06A8
.text:004C066E ; ---------------------------------------------------------------------------
.text:004C066E
.text:004C066E loc_4C066E: ; CODE XREF: sub_4C05C9+9Cj
.text:004C066E test esi, esi
.text:004C0670 jl short loc_4C0679
.text:004C0672 push offset aRegardsYouIndi ; "regards you indifferently"
.text:004C0677 jmp short loc_4C06A8
.text:004C0679 ; ---------------------------------------------------------------------------
.text:004C0679
.text:004C0679 loc_4C0679: ; CODE XREF: sub_4C05C9+A7j
.text:004C0679 cmp esi, -750
.text:004C067F jge short loc_4C0688
.text:004C0681 push offset aScowlsAtYouRea ; "scowls at you, ready to attack"
.text:004C0686 jmp short loc_4C06A8
.text:004C0688 ; ---------------------------------------------------------------------------
.text:004C0688
.text:004C0688 loc_4C0688: ; CODE XREF: sub_4C05C9+B6j
.text:004C0688 cmp esi, -500
.text:004C068E jge short loc_4C0697
.text:004C0690 push offset aGlaresAtYouThr ; "glares at you threateningly"
.text:004C0695 jmp short loc_4C06A8
.text:004C0697 ; ---------------------------------------------------------------------------
.text:004C0697
.text:004C0697 loc_4C0697: ; CODE XREF: sub_4C05C9+C5j
.text:004C0697 cmp esi, -100
.text:004C069A jge short loc_4C06A3
.text:004C069C push offset aGlowersAtYouDu ; "glowers at you dubiously"
.text:004C06A1 jmp short loc_4C06A8
.text:004C06A3 ; ---------------------------------------------------------------------------
.text:004C06A3
.text:004C06A3 loc_4C06A3: ; CODE XREF: sub_4C05C9+D1j
.text:004C06A3 push offset aLooksYourWayAp ; "looks your way apprehensively"
.text:004C06A8
.text:004C06A8 loc_4C06A8: ; CODE XREF: sub_4C05C9+79j
.text:004C06A8 ; sub_4C05C9+88j ...
.text:004C06A8 lea eax, [ebp+var_210]
.text:004C06AE push eax ; char *
.text:004C06AF call _strcpy
.text:004C06B4 cmp dword ptr [edi+18h], 4
.text:004C06B8 pop ecx
.text:004C06B9 pop ecx
.text:004C06BA jnz short loc_4C0736
.text:004C06BC push 0
.text:004C06BE push dword_6ACCB4
.text:004C06C4 push [ebp+arg_4]
.text:004C06C7 call sub_4AA11A
.text:004C06CC add esp, 0Ch
.text:004C06CF test eax, eax
.text:004C06D1 jz short loc_4C0727
.text:004C06D3 mov eax, dword_6ACCB4
.text:004C06D8 movsx eax, word ptr [eax+12Ah]
.text:004C06DF push eax
.text:004C06E0 call sub_4AA041
.text:004C06E5 mov esi, eax
.text:004C06E7 mov eax, [ebp+arg_4]
.text:004C06EA movsx eax, word ptr [eax+12Ah]
.text:004C06F1 push eax
.text:004C06F2 call sub_4AA041
.text:004C06F7 pop ecx
.text:004C06F8 cmp esi, 2
.text:004C06FB pop ecx
.text:004C06FC jz short loc_4C070D
.text:004C06FE cmp esi, 1
.text:004C0701 jz short loc_4C0708
.text:004C0703 cmp esi, 3
.text:004C0706 jnz short loc_4C0720
.text:004C0708
.text:004C0708 loc_4C0708: ; CODE XREF: sub_4C05C9+138j
.text:004C0708 cmp eax, 2
.text:004C070B jnz short loc_4C0720
.text:004C070D
.text:004C070D loc_4C070D: ; CODE XREF: sub_4C05C9+133j
.text:004C070D lea eax, [ebp+var_210]
.text:004C0713 push offset aLooksYourWayAp ; "looks your way apprehensively"
.text:004C0718 push eax ; char *
.text:004C0719 call _strcpy
.text:004C071E jmp short loc_4C0734
.text:004C0720 ; ---------------------------------------------------------------------------
.text:004C0720
.text:004C0720 loc_4C0720: ; CODE XREF: sub_4C05C9+13Dj
.text:004C0720 ; sub_4C05C9+142j
.text:004C0720 push offset aGlaresAtYouThr ; "glares at you threateningly"
.text:004C0725 jmp short loc_4C0728
.text:004C0727 ; ---------------------------------------------------------------------------
.text:004C0727
.text:004C0727 loc_4C0727: ; CODE XREF: sub_4C05C9+108j
.text:004C0727 push ebx ; char *
.text:004C0728
.text:004C0728 loc_4C0728: ; CODE XREF: sub_4C05C9+15Cj
.text:004C0728 lea eax, [ebp+var_210]
.text:004C072E push eax ; char *
.text:004C072F call _sprintf
Note: The Velious code also has a special section just after this, but before mob strength is determined, that does some special checking of the God values and forces your con to either apprehensive or threatening. I haven't spent any time trying to fiure out under what conditions these forced con's are applied though.
|
 |
|
 |
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 04:04 AM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |