SAMP DrawNames ASM DUMP
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
samp.dll+86770 >/$ 55 PUSH EBP ; drawNames | |
samp.dll+86771 |. 8BEC MOV EBP,ESP | |
samp.dll+86773 |. 83E4 F8 AND ESP,FFFFFFF8 | |
samp.dll+86776 |. 83EC 08 SUB ESP,8 | |
samp.dll+86779 |. A1 802A2110 MOV EAX,DWORD PTR DS:[10212A80] ; LOAD SAMP_INFO | |
samp.dll+8677E |. 85C0 TEST EAX,EAX | |
samp.dll+86780 |. 53 PUSH EBX | |
samp.dll+86781 |. 55 PUSH EBP | |
samp.dll+86782 |. 56 PUSH ESI | |
samp.dll+86783 |. 57 PUSH EDI | |
samp.dll+86784 |. 0F84 58020000 JE <samp.endFunc> ; if SAMP_INFO is not loaded, end this function | |
samp.dll+8678A |. 8B80 D5030000 MOV EAX,DWORD PTR DS:[EAX+3D5] ; eax = SAMP_INFO + SAMP_SETTINGS | |
samp.dll+86790 |. 8A48 38 MOV CL,BYTE PTR DS:[EAX+38] | |
samp.dll+86793 |. 84C9 TEST CL,CL ; if (SAMP_SETTINGS + 38 == 1) { endFunc } | |
samp.dll+86795 |. 0F84 47020000 JE <samp.endFunc> ; stop function, jmp to end | |
samp.dll+8679B |. 8B0D 382A2110 MOV ECX,DWORD PTR DS:[10212A38] | |
samp.dll+867A1 |. E8 6A7FFFFF CALL samp.1007E710 | |
samp.dll+867A6 |. 8B0D 802A2110 MOV ECX,DWORD PTR DS:[10212A80] ; LOAD SAMP_INFO | |
samp.dll+867AC |. 8B91 D9030000 MOV EDX,DWORD PTR DS:[ECX+3D9] ; edx = SAMP_INFO + 3d9 | |
samp.dll+867B2 |. 8B0D 942A2110 MOV ECX,DWORD PTR DS:[10212A94] | |
samp.dll+867B8 |. 8B5A 14 MOV EBX,DWORD PTR DS:[EDX+14] ; SAMP_INFO + 3D9 + 14 | |
samp.dll+867BB |. 68 08EE2010 PUSH samp.1020EE08 | |
samp.dll+867C0 |. E8 4BA8F7FF CALL samp.10001010 | |
samp.dll+867C5 |. 8BC8 MOV ECX,EAX | |
samp.dll+867C7 |. E8 74BBFDFF CALL samp.10062340 | |
samp.dll+867CC |. 8B03 MOV EAX,DWORD PTR DS:[EBX] ; EAX = SAMP_INFO + 3D9 + 14 | |
samp.dll+867CE |. 33FF XOR EDI,EDI ; edi = 0 | |
samp.dll+867D0 |. 85C0 TEST EAX,EAX ; test SAMP_INFO + 3D9 + 14 | |
samp.dll+867D2 |. 894424 14 MOV DWORD PTR SS:[ESP+14],EAX | |
samp.dll+867D6 |. 0F8C FB010000 JL <samp.endFunc_ButCallLastFunc> ; jump almost to end | |
samp.dll+867DC |. 8D6424 00 LEA ESP,DWORD PTR SS:[ESP] | |
samp.dll+867E0 |> 66:81FF EC03 /CMP DI,3EC ; for all peds in streaming range | |
samp.dll+867E5 |. 0F83 DF010000 |JNB <samp.endOfLoop> ; jump to end of for loop | |
samp.dll+867EB |. 0FB7C7 |MOVZX EAX,DI | |
samp.dll+867EE |. 8B8C83 DE0F000>|MOV ECX,DWORD PTR DS:[EBX+EAX*4+FDE] | |
samp.dll+867F5 |. 83F9 01 |CMP ECX,1 | |
samp.dll+867F8 |. 8D0483 |LEA EAX,DWORD PTR DS:[EBX+EAX*4] | |
samp.dll+867FB |. 0F85 C9010000 |JNZ <samp.endOfLoop> | |
samp.dll+86801 |. 8B40 2E |MOV EAX,DWORD PTR DS:[EAX+2E] | |
samp.dll+86804 |. 85C0 |TEST EAX,EAX | |
samp.dll+86806 |. 0F84 BE010000 |JE <samp.endOfLoop> | |
samp.dll+8680C |. 8B70 08 |MOV ESI,DWORD PTR DS:[EAX+8] | |
samp.dll+8680F |. 85F6 |TEST ESI,ESI | |
samp.dll+86811 |. 0F84 B3010000 |JE <samp.endOfLoop> | |
samp.dll+86817 |. 8B6E 13 |MOV EBP,DWORD PTR DS:[ESI+13] | |
samp.dll+8681A |. 85ED |TEST EBP,EBP | |
samp.dll+8681C |. 0F84 A8010000 |JE <samp.endOfLoop> | |
samp.dll+86822 |. 8A46 05 |MOV AL,BYTE PTR DS:[ESI+5] | |
samp.dll+86825 |. 84C0 |TEST AL,AL | |
samp.dll+86827 |. 0F84 9D010000 |JE <samp.endOfLoop> | |
samp.dll+8682D |. 8B46 7F |MOV EAX,DWORD PTR DS:[ESI+7F] | |
samp.dll+86830 |. 85C0 |TEST EAX,EAX | |
samp.dll+86832 |. 0F84 92010000 |JE <samp.endOfLoop> | |
samp.dll+86838 |. 8BCD |MOV ECX,EBP | |
samp.dll+8683A |. E8 81C1FDFF |CALL <samp.funcD> | |
samp.dll+8683F >|. 8B0D 802A2110 |MOV ECX,DWORD PTR DS:[10212A80] ; Load Distance(SAMP_INFO) | |
samp.dll+86845 |. 8B91 D5030000 |MOV EDX,DWORD PTR DS:[ECX+3D5] ; Load Distance (SAMP_SETTINGS) | |
samp.dll+8684B |. D85A 27 |FCOMP DWORD PTR DS:[EDX+27] ; Load Distance | |
samp.dll+8684E |. DFE0 |FSTSW AX | |
samp.dll+86850 |. F6C4 41 |TEST AH,41 | |
samp.dll+86853 |. 0F8A 71010000 |JPE <samp.endOfLoop> ; Jump if we are out of name range | |
samp.dll+86859 |. 807E 05 13 |CMP BYTE PTR DS:[ESI+5],13 | |
samp.dll+8685D |. 75 41 |JNZ SHORT samp.samp.dll+868A0 | |
samp.dll+8685F |. 8B4E 0F |MOV ECX,DWORD PTR DS:[ESI+F] | |
samp.dll+86862 |. 85C9 |TEST ECX,ECX | |
samp.dll+86864 |. 74 3A |JE SHORT samp.samp.dll+868A0 | |
samp.dll+86866 |. E8 F518FFFF |CALL samp.10078160 | |
samp.dll+8686B |. 85C0 |TEST EAX,EAX | |
samp.dll+8686D |. 74 31 |JE SHORT samp.samp.dll+868A0 | |
samp.dll+8686F |. 8B4E 0F |MOV ECX,DWORD PTR DS:[ESI+F] | |
samp.dll+86872 |. 68 08ED2010 |PUSH samp.1020ED08 | |
samp.dll+86877 |. E8 C4BAFDFF |CALL samp.10062340 | |
samp.dll+8687C |. A1 38ED2010 |MOV EAX,DWORD PTR DS:[1020ED38] | |
samp.dll+86881 |. 8B0D 3CED2010 |MOV ECX,DWORD PTR DS:[1020ED3C] | |
samp.dll+86887 |. 8B15 40ED2010 |MOV EDX,DWORD PTR DS:[1020ED40] | |
samp.dll+8688D |. A3 4CEE2010 |MOV DWORD PTR DS:[1020EE4C],EAX | |
samp.dll+86892 |. 890D 50EE2010 |MOV DWORD PTR DS:[1020EE50],ECX | |
samp.dll+86898 |. 8915 54EE2010 |MOV DWORD PTR DS:[1020EE54],EDX | |
samp.dll+8689E |. EB 2E |JMP SHORT samp.samp.dll+868CE | |
samp.dll+868A0 |> 8BCD |MOV ECX,EBP | |
samp.dll+868A2 |. E8 59C3FDFF |CALL samp.10062C00 | |
samp.dll+868A7 |. 85C0 |TEST EAX,EAX | |
samp.dll+868A9 |. 0F84 1B010000 |JE <samp.endOfLoop> | |
samp.dll+868AF |. 33C0 |XOR EAX,EAX | |
samp.dll+868B1 |. A3 4CEE2010 |MOV DWORD PTR DS:[1020EE4C],EAX ; save pos? | |
samp.dll+868B6 |. 68 4CEE2010 |PUSH samp.1020EE4C ; /Arg2 = 1020EE4C | |
samp.dll+868BB |. A3 50EE2010 |MOV DWORD PTR DS:[1020EE50],EAX ; |save pos? | |
samp.dll+868C0 |. 6A 08 |PUSH 8 ; |Arg1 = 00000008 | |
samp.dll+868C2 |. 8BCD |MOV ECX,EBP ; | | |
samp.dll+868C4 |. A3 54EE2010 |MOV DWORD PTR DS:[1020EE54],EAX ; | | |
samp.dll+868C9 |. E8 029AFEFF |CALL samp.100702D0 ; \samp.100702D0 | |
samp.dll+868CE |> 8B0D 4CEE2010 |MOV ECX,DWORD PTR DS:[1020EE4C] ; load pos? | |
samp.dll+868D4 |. 8B15 50EE2010 |MOV EDX,DWORD PTR DS:[1020EE50] ; load pos? | |
samp.dll+868DA |. A1 54EE2010 |MOV EAX,DWORD PTR DS:[1020EE54] ; load pos? | |
samp.dll+868DF |. 890D 74EE2010 |MOV DWORD PTR DS:[1020EE74],ECX ; store pos? | |
samp.dll+868E5 |. 8915 78EE2010 |MOV DWORD PTR DS:[1020EE78],EDX ; store pos? | |
samp.dll+868EB |. A3 7CEE2010 |MOV DWORD PTR DS:[1020EE7C],EAX ; store pos? | |
samp.dll+868F0 |. E8 7B9CFDFF |CALL samp.10060570 | |
samp.dll+868F5 |. 8B15 802A2110 |MOV EDX,DWORD PTR DS:[10212A80] ; load SAMP_INFO | |
samp.dll+868FB |. 8B92 D5030000 |MOV EDX,DWORD PTR DS:[EDX+3D5] ; load SAMP_SETTINGS | |
samp.dll+86901 |. 33C9 |XOR ECX,ECX ; ecx = 0 | |
samp.dll+86903 |. 384A 2F |CMP BYTE PTR DS:[EDX+2F],CL ; visible through wall == 0? | |
samp.dll+86906 |. 74 4B |JE SHORT <samp.loadThroughWall> | |
samp.dll+86908 |. D940 14 |FLD DWORD PTR DS:[EAX+14] | |
samp.dll+8690B |. 51 |PUSH ECX ; ecx == 0 | |
samp.dll+8690C |. 6A 01 |PUSH 1 | |
samp.dll+8690E |. 51 |PUSH ECX ; ecx == 0 | |
samp.dll+8690F |. 51 |PUSH ECX ; ecx == 0 | |
samp.dll+86910 |. 6A 01 |PUSH 1 | |
samp.dll+86912 |. 83EC 30 |SUB ESP,30 | |
samp.dll+86915 |. DD5C24 28 |FSTP QWORD PTR SS:[ESP+28] | |
samp.dll+86919 |. D940 10 |FLD DWORD PTR DS:[EAX+10] | |
samp.dll+8691C |. DD5C24 20 |FSTP QWORD PTR SS:[ESP+20] | |
samp.dll+86920 |. D940 0C |FLD DWORD PTR DS:[EAX+C] | |
samp.dll+86923 |. DD5C24 18 |FSTP QWORD PTR SS:[ESP+18] | |
samp.dll+86927 |. D905 7CEE2010 |FLD DWORD PTR DS:[1020EE7C] | |
samp.dll+8692D |. DD5C24 10 |FSTP QWORD PTR SS:[ESP+10] | |
samp.dll+86931 |. D905 78EE2010 |FLD DWORD PTR DS:[1020EE78] | |
samp.dll+86937 |. DD5C24 08 |FSTP QWORD PTR SS:[ESP+8] | |
samp.dll+8693B |. D905 74EE2010 |FLD DWORD PTR DS:[1020EE74] | |
samp.dll+86941 |. DD1C24 |FSTP QWORD PTR SS:[ESP] | |
samp.dll+86944 |. 68 B4430D10 |PUSH samp.100D43B4 | |
samp.dll+86949 |. E8 72C2FEFF |CALL samp.10072BC0 ; calc pos? draw string? func(x,1,0,0,1,0) | |
samp.dll+8694E |. 83C4 48 |ADD ESP,48 | |
samp.dll+86951 |. 8BC8 |MOV ECX,EAX ; ecx = pos? | |
samp.dll+86953 >|> A1 802A2110 |MOV EAX,DWORD PTR DS:[10212A80] ; Load ThroughWalls (SAMP_INFO) | |
samp.dll+86958 |. 8B90 D5030000 |MOV EDX,DWORD PTR DS:[EAX+3D5] ; Load ThroughWalls (SAMP_SETTINGS) | |
samp.dll+8695E |. 8A42 2F |MOV AL,BYTE PTR DS:[EDX+2F] ; Load ThroughWalls (1 if no wh, 0 if normal) | |
samp.dll+86961 |. 84C0 |TEST AL,AL | |
samp.dll+86963 |. 74 04 |JE SHORT <samp.dontEndLoop> ; jump if we dont see through walls | |
samp.dll+86965 |. 85C9 |TEST ECX,ECX ; test pos? | |
samp.dll+86967 |. 74 61 |JE SHORT <samp.endOfLoop> ; continue | | |
samp.dll+86969 >|> 57 |PUSH EDI ; <----------- | |
samp.dll+8696A |. 57 |PUSH EDI | |
samp.dll+8696B |. 8BCB |MOV ECX,EBX | |
samp.dll+8696D |. E8 5EBAF8FF |CALL <samp.funcA> ; func(edi,edi) | |
samp.dll+86972 |. 50 |PUSH EAX | |
samp.dll+86973 |. 68 C8430D10 |PUSH samp.100D43C8 ; ASCII "%s (%d)" | |
samp.dll+86978 |. 68 88ED2010 |PUSH samp.1020ED88 ; Name (ID) | |
samp.dll+8697D |. E8 B19F0200 |CALL <samp.funcB> ; funcB(name,namemask,funcA(edi,edi)) | Same func is used for drawing DL | |
samp.dll+86982 |. 8B46 07 |MOV EAX,DWORD PTR DS:[ESI+7] ; eax = something from stack | |
samp.dll+86985 |. 83C4 10 |ADD ESP,10 | |
samp.dll+86988 |. 85C0 |TEST EAX,EAX | |
samp.dll+8698A |. 75 3E |JNZ SHORT <samp.endOfLoop> ; jump to end of loop if ESI+7 == 0 | |
samp.dll+8698C |. 8BCE |MOV ECX,ESI | |
samp.dll+8698E |. E8 9DA9F8FF |CALL <samp.funcC> | |
samp.dll+86993 |. 50 |PUSH EAX | |
samp.dll+86994 |. A1 802A2110 |MOV EAX,DWORD PTR DS:[10212A80] ; Load SAMP_INFO into eax | |
samp.dll+86999 |. 33C9 |XOR ECX,ECX ; ECX = 0 | |
samp.dll+8699B |. 8A88 C8030000 |MOV CL,BYTE PTR DS:[EAX+3C8] ; ecx = SAMP_INFO + 3c8 | |
samp.dll+869A1 |. 51 |PUSH ECX | |
samp.dll+869A2 |. 8BCD |MOV ECX,EBP | |
samp.dll+869A4 |. E8 17C0FDFF |CALL <samp.funcD> ; nop this -> names at left upper corner | something with pos | func(eax,ecx) | |
samp.dll+869A9 |. 51 |PUSH ECX | |
samp.dll+869AA |. 8BCE |MOV ECX,ESI | |
samp.dll+869AC |. D91C24 |FSTP DWORD PTR SS:[ESP] | |
samp.dll+869AF |. E8 DCA7F8FF |CALL <samp.getColor~> ; getColor(somethingFromStack) | |
samp.dll+869B4 |. 8B0D 382A2110 |MOV ECX,DWORD PTR DS:[10212A38] ; | | |
samp.dll+869BA |. 50 |PUSH EAX ; |eax = color XXXXXXXX | |
samp.dll+869BB |. 68 88ED2010 |PUSH samp.1020ED88 ; |Name (ID) | |
samp.dll+869C0 |. 68 74EE2010 |PUSH samp.1020EE74 ; |pos? | |
samp.dll+869C5 |. E8 667DFFFF |CALL samp.1007E730 ; \samp.1007E730 | |
samp.dll+869CA >|> 8B4424 14 |MOV EAX,DWORD PTR SS:[ESP+14] ; We jump here if we are out of name range | |
samp.dll+869CE |. 47 |INC EDI ; increment for | |
samp.dll+869CF |. 3BF8 |CMP EDI,EAX ; if for loop is done | |
samp.dll+869D1 |.^0F8E 09FEFFFF \JLE samp.samp.dll+867E0 | |
samp.dll+869D7 >|> 8B0D 382A2110 MOV ECX,DWORD PTR DS:[10212A38] | |
samp.dll+869DD |. E8 3E7DFFFF CALL samp.1007E720 | |
samp.dll+869E2 >|> 5F POP EDI | |
samp.dll+869E3 |. 5E POP ESI | |
samp.dll+869E4 |. 5D POP EBP | |
samp.dll+869E5 |. 5B POP EBX | |
samp.dll+869E6 |. 8BE5 MOV ESP,EBP | |
samp.dll+869E8 |. 5D POP EBP | |
samp.dll+869E9 \. C3 RETN | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment