Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Sh*ts'n'giggles

Custom Title Activated
Loyal Member
Joined
May 26, 2007
Messages
5,545
Reaction score
1,315
If anyone can tell me why this code isn't "stupid and ugly" I will give them a kiss... provided it really is a good reason.
Code:
004122E3 lea eax,[ebx+3874]                                             ; VV stupid and ugly VV
004122E9 push eax                                                       ; <%s>
004122EA push KPT2.szTheMostPointlessStringFormattingConstantInTheWorld ; Format = "%s"
004122EF push KPT2.szBufferGMOvl                                        ; Buf = ""
004122F4 call [<&USER32.wsprintfA>]                                     ; USER32.wsprintfA
004122FA mov ecx,[esp+1C]                                               
004122FE add esp,0C                                                     
00412301 push 0                                                         ; Color = <BLACK>
00412303 push ecx                                                       ; hDC
00412304 call esi                                                       ; GDI32.SetTextColor
00412306 push KPT2.szBufferGMOvl                                        ; String = ""
0041230B call edi                                                       ; KERNEL32.lstrlenA
0041230D mov ecx,[esp+10]                                               
00412311 push eax                                                       ; Arg5 = strlen(szBufferGMOvl)
00412312 mov eax,[617D30]                                               ;
00412317 push KPT2.szBufferGMOvl                                        ; Arg4 = KPT2.szBufferGMOvl
0041231C lea edx,[ebp+1]                                                ;
0041231F push edx                                                       ; Arg3 = Y Co-Ord
00412320 add eax,-0DC                                                   ;
00412325 push eax                                                       ; Arg2 => 1A4 X-Co-Ord
00412326 push ecx                                                       ; Arg1 = hDC
00412327 call Sub_48_TextOut                                            ; KPT2.Sub_48_TextOut
Fragment extracted from ET2v2 server... from the routine which displays the GM HUD overlay text... but that's not why I believe it's "stupid and ugly".

wsprintf(szSomeText, '%s', szBuff)
SetTextColor(hDC, clBlack)
TextOut(hDC, x, y, szBuff, strlen(szBuf))

WTH not just TextOut the string before you formatted it with such a pointless do nothing formatting string?

I dun get it... does wsprintf do something on the side that I'm unaware of or is this really just very stupid code?

If it is, please share more... I find lots, they make me laugh and could even be useful for making "caves". XD

Cheers Devs,
bobsobol.
 
Custom Title Activated
Loyal Member
Joined
Jul 21, 2006
Messages
1,638
Reaction score
341
If we can push the date back to April 1st I might be able to come up with some snazzy "reasons"!
 
Custom Title Activated
Loyal Member
Joined
May 26, 2007
Messages
5,545
Reaction score
1,315
lol... Nerd jokes. "Q:Why did the szSomeText cross the %s? A:To get to the other side, unaltered." XD <groan>

If it's about having it in variable, rather than constant memory, I'm sure a memcpy() should be faster.
 
Custom Title Activated
Loyal Member
Joined
Jan 28, 2009
Messages
1,320
Reaction score
616
I know one too...

Code:
C://dos
C://dos.run
run.dos.run

:)
 
Custom Title Activated
Loyal Member
Joined
May 26, 2007
Messages
5,545
Reaction score
1,315
Ecksdeeeeeee.

Srsly though... let's have some more PT server related ones. There is so much this server does that is just blatantly *wrong*. It works, but it's utterly the wrong way to go about it.

Why is so much client code in the server?
Why can the server run as a client at all?
Why are level tables, item tables etc in the executable and not in external data you can edit without rebuilding the main server executable?
Why are monsters and npcs in plain text ini files and saved games (user state data) stored in binary files when login data is in SQL?
Why not use SQL for it all? Or even files for it all, at least that would be consistent.
Why does the servers UI "live" in the same executable as the server, preventing you from running the server without being logged in to an interactive session? (NT Service)
Why does the server allow you to run two copies of it, when the second copy clearly just fails... and when it fails why does it not just quit? Shouldn't it set a mutex and pass any parameters on to the first instance if that mutex already exists?

These are all basic, basic, BASIC things we are taught at school when we take any form of Computer Science studies. What was wrong with the PT developers?
 
Last edited:
Experienced Elementalist
Joined
Apr 29, 2006
Messages
279
Reaction score
90
Maybe they never went to school?

I never learned any C++ at school and I also code in this language for some reason, but yes I also know about the CreateMutex API, ... lol idk what went wrong with that one but I think it's just really funny to see how other people code things sometimes, I also laugh when I open the first projects I made because it's really terrible code, maybe this was one of their first projcts too and maybe they just continued coding because it worked anyway and why would you spend time in rewriting something if it works? That's what my teachers tells me every time, but I would recode something to get a nice optimized code because I love the syntax and I want it to be readable like plain english so I don't have to place comments everywhere, but most people just place comments and mess up the code.

Anyway,
I'm going to try to be around here more, since my forums were dead anyway and the domain got expired.
 
Custom Title Activated
Loyal Member
Joined
May 26, 2007
Messages
5,545
Reaction score
1,315
I rewrite stuff I wrote 10, 15, 20 years ago... either because I want to, or because the syntax wont compile on modern compilers or was even written in a different language (or at least dialect) or platform all-together.

But if you bought some code that you where going to sell, you would read the code and fix stuff like that wouldn't you? If you are selling a program and are responsible for maintaining it, you would have staff who have programming qualifications (at least one surely) wouldn't you? In the language in which it is written preferably?

My favorite language is still Basic. It's the language I learned first. Okay, I was taught, in order, Pascal, COBOL, 8086 Assembler, C, 68000 Assembler, SQL, Java and C++. Okay, I really don't remember the COBOL or Java I learned, and I didn't understand much of the SQL... I spent most of my time writing user interfaces in it or pulling my hair out because it completely failed to run code which was exactly the same as my study book and I usually ended up fixing this by copying all the source into a text document, deleting the entire database, and recreating it from the text file.... NEVER USE FoxPro for DOS. XD (That was a course requirement... we had to use that)

But if you learn (as I learned Basic, Z80 etc) your self you... read a book? Follow tutorials on-line? Whatever... that's still schooling as far as I'm concerned. Self-schooling, sure... what... you skip "Hello World" when you learn a new language? I never have.

How do you write a server program which integrates into Microsoft SQL and Internet Information Services, (IIS) and NOT know that server programs run in the background even before you log in? Do you have a MS-SQL window on your desktop or an IIS window? Have there ever been such things? Can nobody connect to your web server if you log out? NO!!! They are services, they are always on if your computer is on. XD

I've already commented on why I think they happened, but that these things weren't fixed before the servers went public is pretty criminal IMHO. Criminal, but very funny. XD
 
Custom Title Activated
Loyal Member
Joined
May 26, 2007
Messages
5,545
Reaction score
1,315
Hahahahahahahaha!.... Haha... Hahaha. What? No U?

I think I found another one. This is from Server 4096.exe
Code:
00455730  /$   sub esp,1A8                              ; 4096.00455730(guessed Arg1)
00455736  |.   push ebx
00455737  |.   push ebp
00455738  |.   push esi
00455739  |.   push edi
0045573A  |.   push 1A5
0045573F  |.   mov ebp,ecx
00455741  |.   call 005C6F40
00455746  |.   mov dl,1
00455748  |.   mov cl,3
0045574A  |.   mov edi,eax
0045574C  |.   mov al,4
0045574E  |.   add esp,4
00455751  |.   xor ebx,ebx
00455753  |.   mov [ebp+30],edi
00455756  |.   mov byte ptr [esp+10],0FF
0045575B  |.   mov byte ptr [esp+11],0C4
00455760  |.   mov [esp+12],dl
00455764  |.   mov byte ptr [esp+13],0A2
00455769  |.   mov [esp+14],bl
0045576D  |.   mov [esp+15],bl
00455771  |.   mov [esp+16],dl
00455775  |.   mov byte ptr [esp+17],5
0045577A  |.   mov [esp+18],dl
0045577E  |.   mov [esp+19],dl
00455782  |.   mov [esp+1A],dl
00455786  |.   mov [esp+1B],dl
0045578A  |.   mov [esp+1C],dl
0045578E  |.   mov [esp+1D],dl
00455792  |.   mov [esp+1E],bl
00455796  |.   mov [esp+1F],bl
0045579A  |.   mov [esp+20],bl
0045579E  |.   mov [esp+21],bl
004557A2  |.   mov [esp+22],bl
004557A6  |.   mov [esp+23],bl
004557AA  |.   mov [esp+24],bl
004557AE  |.   mov [esp+25],bl
004557B2  |.   mov [esp+26],dl
004557B6  |.   mov byte ptr [esp+27],2
004557BB  |.   mov [esp+28],cl
004557BF  |.   mov [esp+29],al
004557C3  |.   mov byte ptr [esp+2A],5
004557C8  |.   mov byte ptr [esp+2B],6
004557CD  |.   mov byte ptr [esp+2C],7
004557D2  |.   mov byte ptr [esp+2D],8
004557D7  |.   mov byte ptr [esp+2E],9
004557DC  |.   mov byte ptr [esp+2F],0A
004557E1  |.   mov byte ptr [esp+30],0B
004557E6  |.   mov byte ptr [esp+31],10
004557EB  |.   mov [esp+32],bl
004557EF  |.   mov byte ptr [esp+33],2
004557F4  |.   mov [esp+34],dl
004557F8  |.   mov [esp+35],cl
004557FC  |.   mov [esp+36],cl
00455800  |.   mov byte ptr [esp+37],2
00455805  |.   mov [esp+38],al
00455809  |.   mov [esp+39],cl
0045580D  |.   mov byte ptr [esp+3A],5
00455812  |.   mov byte ptr [esp+3B],5
00455817  |.   mov [esp+3C],al
0045581B  |.   mov [esp+3D],al
0045581F  |.   mov [esp+3E],bl
00455823  |.   mov [esp+3F],bl
00455827  |.   mov [esp+40],dl
0045582B  |.   mov byte ptr [esp+41],7D
00455830  |.   mov [esp+42],dl
00455834  |.   mov byte ptr [esp+43],2
00455839  |.   mov [esp+44],cl
0045583D  |.   mov [esp+45],bl
00455841  |.   mov [esp+46],al
00455845  |.   mov byte ptr [esp+47],11
0045584A  |.   mov byte ptr [esp+48],5
0045584F  |.   mov byte ptr [esp+49],12
00455854  |.   mov byte ptr [esp+4A],21
00455859  |.   mov byte ptr [esp+4B],31
0045585E  |.   mov byte ptr [esp+4C],41
00455863  |.   mov byte ptr [esp+4D],6
00455868  |.   mov byte ptr [esp+4E],13
0045586D  |.   mov byte ptr [esp+4F],51
00455872  |.   mov byte ptr [esp+50],61
00455877  |.   mov byte ptr [esp+51],7
0045587C  |.   mov byte ptr [esp+52],22
00455881  |.   mov byte ptr [esp+53],71
00455886  |.   mov byte ptr [esp+54],14
0045588B  |.   mov byte ptr [esp+55],32
00455890  |.   mov byte ptr [esp+56],81
00455895  |.   mov byte ptr [esp+57],91
0045589A  |.   mov byte ptr [esp+58],0A1
0045589F  |.   mov byte ptr [esp+59],8
004558A4  |.   mov byte ptr [esp+5A],23
004558A9  |.   mov byte ptr [esp+5B],42
004558AE  |.   mov byte ptr [esp+5C],0B1
004558B3  |.   mov byte ptr [esp+5D],0C1
004558B8  |.   mov byte ptr [esp+5E],15
004558BD  |.   mov byte ptr [esp+5F],52
004558C2  |.   mov byte ptr [esp+60],0D1
004558C7  |.   mov byte ptr [esp+61],0F0
004558CC  |.   mov byte ptr [esp+62],24
004558D1  |.   mov byte ptr [esp+63],33
004558D6  |.   mov byte ptr [esp+64],62
004558DB  |.   mov byte ptr [esp+65],72
004558E0  |.   mov byte ptr [esp+66],82
004558E5  |.   mov byte ptr [esp+67],9
004558EA  |.   mov byte ptr [esp+68],0A
004558EF  |.   mov byte ptr [esp+69],16
004558F4  |.   mov byte ptr [esp+6A],17
004558F9  |.   mov byte ptr [esp+6B],18
004558FE  |.   mov byte ptr [esp+6C],19
00455903  |.   mov byte ptr [esp+6D],1A
00455908  |.   mov byte ptr [esp+6E],25
0045590D  |.   mov byte ptr [esp+6F],26
00455912  |.   mov byte ptr [esp+70],27
00455917  |.   mov byte ptr [esp+71],28
0045591C  |.   mov byte ptr [esp+72],29
00455921  |.   mov byte ptr [esp+73],2A
00455926  |.   mov byte ptr [esp+74],34
0045592B  |.   mov byte ptr [esp+75],35
00455930  |.   mov byte ptr [esp+76],36
00455935  |.   mov byte ptr [esp+77],37
0045593A  |.   mov byte ptr [esp+78],38
0045593F  |.   mov byte ptr [esp+79],39
00455944  |.   mov byte ptr [esp+7A],3A
00455949  |.   mov byte ptr [esp+7B],43
0045594E  |.   mov byte ptr [esp+7C],44
00455953  |.   mov byte ptr [esp+7D],45
00455958  |.   mov byte ptr [esp+7E],46
0045595D  |.   mov byte ptr [esp+7F],47
00455962  |.   mov byte ptr [esp+80],48
0045596A  |.   mov byte ptr [esp+81],49
00455972  |.   mov byte ptr [esp+82],4A
0045597A  |.   mov byte ptr [esp+83],53
00455982  |.   mov byte ptr [esp+84],54
0045598A  |.   mov byte ptr [esp+85],55
00455992  |.   mov byte ptr [esp+86],56
0045599A  |.   mov byte ptr [esp+87],57
004559A2  |.   mov byte ptr [esp+88],58
004559AA  |.   mov byte ptr [esp+89],59
004559B2  |.   mov byte ptr [esp+8A],5A
004559BA  |.   mov byte ptr [esp+8B],63
004559C2  |.   mov byte ptr [esp+8C],64
004559CA  |.   mov byte ptr [esp+8D],65
004559D2  |.   mov byte ptr [esp+8E],66
004559DA  |.   mov byte ptr [esp+8F],67
004559E2  |.   mov byte ptr [esp+90],68
004559EA  |.   mov byte ptr [esp+91],69
004559F2  |.   mov byte ptr [esp+92],6A
004559FA  |.   mov byte ptr [esp+93],73
00455A02  |.   mov byte ptr [esp+94],74
00455A0A  |.   mov byte ptr [esp+95],75
00455A12  |.   mov byte ptr [esp+96],76
00455A1A  |.   mov byte ptr [esp+97],77
00455A22  |.   mov byte ptr [esp+98],78
00455A2A  |.   mov byte ptr [esp+99],79
00455A32  |.   mov byte ptr [esp+9A],7A
00455A3A  |.   mov byte ptr [esp+9B],83
00455A42  |.   mov byte ptr [esp+9C],84
00455A4A  |.   mov byte ptr [esp+9D],85
00455A52  |.   mov byte ptr [esp+9E],86
00455A5A  |.   mov byte ptr [esp+9F],87
00455A62  |.   mov byte ptr [esp+0A0],88
00455A6A  |.   mov byte ptr [esp+0A1],89
00455A72  |.   mov byte ptr [esp+0A2],8A
00455A7A  |.   mov byte ptr [esp+0A3],92
00455A82  |.   mov byte ptr [esp+0A4],93
00455A8A  |.   mov byte ptr [esp+0A5],94
00455A92  |.   mov byte ptr [esp+0A6],95
00455A9A  |.   mov byte ptr [esp+0A7],96
00455AA2  |.   mov byte ptr [esp+0A8],97
00455AAA  |.   mov byte ptr [esp+0A9],98
00455AB2  |.   mov byte ptr [esp+0AA],99
00455ABA  |.   mov byte ptr [esp+0AB],9A
00455AC2  |.   mov byte ptr [esp+0AC],0A2
00455ACA  |.   mov byte ptr [esp+0AD],0A3
00455AD2  |.   mov byte ptr [esp+0AE],0A4
00455ADA  |.   mov byte ptr [esp+0AF],0A5
00455AE2  |.   mov byte ptr [esp+0B0],0A6
00455AEA  |.   mov byte ptr [esp+0B1],0A7
00455AF2  |.   mov byte ptr [esp+0B2],0A8
00455AFA  |.   mov byte ptr [esp+0B3],0A9
00455B02  |.   mov byte ptr [esp+0B4],0AA
00455B0A  |.   mov byte ptr [esp+0B5],0B2
00455B12  |.   mov byte ptr [esp+0B6],0B3
00455B1A  |.   mov byte ptr [esp+0B7],0B4
00455B22  |.   mov byte ptr [esp+0B8],0B5
00455B2A  |.   mov byte ptr [esp+0B9],0B6
00455B32  |.   mov byte ptr [esp+0BA],0B7
00455B3A  |.   mov byte ptr [esp+0BB],0B8
00455B42  |.   mov byte ptr [esp+0BC],0B9
00455B4A  |.   mov byte ptr [esp+0BD],0BA
00455B52  |.   mov byte ptr [esp+0BE],0C2
00455B5A  |.   mov byte ptr [esp+0BF],0C3
00455B62  |.   mov byte ptr [esp+0C0],0C4
00455B6A  |.   mov byte ptr [esp+0C1],0C5
00455B72  |.   mov byte ptr [esp+0C2],0C6
00455B7A  |.   mov byte ptr [esp+0C3],0C7
00455B82  |.   mov byte ptr [esp+0C4],0C8
00455B8A  |.   mov byte ptr [esp+0C5],0C9
00455B92  |.   mov byte ptr [esp+0C6],0CA
00455B9A  |.   mov byte ptr [esp+0C7],0D2
00455BA2  |.   mov byte ptr [esp+0C8],0D3
00455BAA  |.   mov byte ptr [esp+0C9],0D4
00455BB2  |.   mov byte ptr [esp+0CA],0D5
00455BBA  |.   mov byte ptr [esp+0CB],0D6
00455BC2  |.   mov byte ptr [esp+0CC],0D7
00455BCA  |.   mov byte ptr [esp+0CD],0D8
00455BD2  |.   mov byte ptr [esp+0CE],0D9
00455BDA  |.   mov byte ptr [esp+0CF],0DA
00455BE2  |.   mov byte ptr [esp+0D0],0E1
00455BEA  |.   mov byte ptr [esp+0D1],0E2
00455BF2  |.   mov byte ptr [esp+0D2],0E3
00455BFA  |.   mov byte ptr [esp+0D3],0E4
00455C02  |.   mov byte ptr [esp+0D4],0E5
00455C0A  |.   mov byte ptr [esp+0D5],0E6
00455C12  |.   mov byte ptr [esp+0D6],0E7
00455C1A  |.   mov byte ptr [esp+0D7],0E8
00455C22  |.   mov byte ptr [esp+0D8],0E9
00455C2A  |.   mov byte ptr [esp+0D9],0EA
00455C32  |.   mov byte ptr [esp+0DA],0F1
00455C3A  |.   mov byte ptr [esp+0DB],0F2
00455C42  |.   mov byte ptr [esp+0DC],0F3
00455C4A  |.   mov byte ptr [esp+0DD],0F4
00455C52  |.   mov byte ptr [esp+0DE],0F5
00455C5A  |.   mov byte ptr [esp+0DF],0F6
00455C62  |.   mov byte ptr [esp+0E0],0F7
00455C6A  |.   mov byte ptr [esp+0E1],0F8
00455C72  |.   mov byte ptr [esp+0E2],0F9
00455C7A  |.   mov byte ptr [esp+0E3],0FA
00455C82  |.   mov [esp+0E4],dl
00455C89  |.   mov [esp+0E5],bl
00455C90  |.   mov [esp+0E6],cl
00455C97  |.   mov [esp+0E7],dl
00455C9E  |.   mov [esp+0E8],dl
00455CA5  |.   mov [esp+0E9],dl
00455CAC  |.   mov [esp+0EA],dl
00455CB3  |.   mov [esp+0EB],dl
00455CBA  |.   mov [esp+0EC],dl
00455CC1  |.   mov [esp+0ED],dl
00455CC8  |.   mov [esp+0EE],dl
00455CCF  |.   mov [esp+0EF],dl
00455CD6  |.   mov [esp+0F0],bl
00455CDD  |.   mov [esp+0F1],bl
00455CE4  |.   mov [esp+0F2],bl
00455CEB  |.   mov [esp+0F3],bl
00455CF2  |.   mov [esp+0F4],bl
00455CF9  |.   mov [esp+0F5],bl
00455D00  |.   mov [esp+0F6],dl
00455D07  |.   mov byte ptr [esp+0F7],2
00455D0F  |.   mov [esp+0F8],cl
00455D16  |.   mov [esp+0F9],al
00455D1D  |.   mov byte ptr [esp+0FA],5
00455D25  |.   mov byte ptr [esp+0FB],6
00455D2D  |.   mov byte ptr [esp+0FC],7
00455D35  |.   mov byte ptr [esp+0FD],8
00455D3D  |.   mov byte ptr [esp+0FE],9
00455D45  |.   mov byte ptr [esp+0FF],0A
00455D4D  |.   mov byte ptr [esp+100],0B
00455D55  |.   mov byte ptr [esp+101],11
00455D5D  |.   mov [esp+102],bl
00455D64  |.   mov byte ptr [esp+103],2
00455D6C  |.   mov [esp+104],dl
00455D73  |.   mov byte ptr [esp+105],2
00455D7B  |.   mov [esp+106],al
00455D82  |.   mov [esp+107],al
00455D89  |.   mov [esp+108],cl
00455D90  |.   mov [esp+109],al
00455D97  |.   mov byte ptr [esp+10A],7
00455D9F  |.   mov byte ptr [esp+10B],5
00455DA7  |.   mov [esp+10C],al
00455DAE  |.   mov [esp+10D],al
00455DB5  |.   mov [esp+10E],bl
00455DBC  |.   mov [esp+10F],dl
00455DC3  |.   mov byte ptr [esp+110],2
00455DCB  |.   mov byte ptr [esp+111],77
00455DD3  |.   mov [esp+112],bl
00455DDA  |.   mov [esp+113],dl
00455DE1  |.   mov byte ptr [esp+114],2
00455DE9  |.   mov [esp+115],cl
00455DF0  |.   mov byte ptr [esp+116],11
00455DF8  |.   mov [esp+117],al
00455DFF  |.   mov byte ptr [esp+118],5
00455E07  |.   mov byte ptr [esp+119],21
00455E0F  |.   mov byte ptr [esp+11A],31
00455E17  |.   mov byte ptr [esp+11B],6
00455E1F  |.   mov byte ptr [esp+11C],12
00455E27  |.   mov byte ptr [esp+11D],41
00455E2F  |.   mov byte ptr [esp+11E],51
00455E37  |.   mov byte ptr [esp+11F],7
00455E3F  |.   mov byte ptr [esp+120],61
00455E47  |.   mov byte ptr [esp+121],71
00455E4F  |.   mov byte ptr [esp+122],13
00455E57  |.   mov byte ptr [esp+123],22
00455E5F  |.   mov byte ptr [esp+124],32
00455E67  |.   mov byte ptr [esp+125],81
00455E6F  |.   mov byte ptr [esp+126],8
00455E77  |.   mov byte ptr [esp+127],14
00455E7F  |.   mov byte ptr [esp+128],42
00455E87  |.   mov byte ptr [esp+129],91
00455E8F  |.   mov byte ptr [esp+12A],0A1
00455E97  |.   mov byte ptr [esp+12B],0B1
00455E9F  |.   mov byte ptr [esp+12C],0C1
00455EA7  |.   mov byte ptr [esp+12D],9
00455EAF  |.   mov byte ptr [esp+12E],23
00455EB7  |.   mov byte ptr [esp+12F],33
00455EBF  |.   mov byte ptr [esp+130],52
00455EC7  |.   mov byte ptr [esp+131],0F0
00455ECF  |.   mov byte ptr [esp+132],15
00455ED7  |.   mov byte ptr [esp+133],62
00455EDF  |.   mov byte ptr [esp+134],72
00455EE7  |.   mov byte ptr [esp+135],0D1
00455EEF  |.   mov byte ptr [esp+136],0A
00455EF7  |.   mov byte ptr [esp+137],16
00455EFF  |.   mov byte ptr [esp+138],24
00455F07  |.   mov byte ptr [esp+139],34
00455F0F  |.   mov byte ptr [esp+13A],0E1
00455F17  |.   mov byte ptr [esp+13B],25
00455F1F  |.   mov byte ptr [esp+13C],0F1
00455F27  |.   mov byte ptr [esp+13D],17
00455F2F  |.   mov byte ptr [esp+13E],18
00455F37  |.   mov byte ptr [esp+13F],19
00455F3F  |.   mov byte ptr [esp+140],1A
00455F47  |.   mov byte ptr [esp+141],26
00455F4F  |.   mov byte ptr [esp+142],27
00455F57  |.   mov byte ptr [esp+143],28
00455F5F  |.   mov byte ptr [esp+144],29
00455F67  |.   mov byte ptr [esp+145],2A
00455F6F  |.   mov byte ptr [esp+146],35
00455F77  |.   mov byte ptr [esp+147],36
00455F7F  |.   mov byte ptr [esp+148],37
00455F87  |.   mov byte ptr [esp+149],38
00455F8F  |.   mov byte ptr [esp+14A],39
00455F97  |.   mov byte ptr [esp+14B],3A
00455F9F  |.   mov byte ptr [esp+14C],43
00455FA7  |.   mov byte ptr [esp+14D],44
00455FAF  |.   mov byte ptr [esp+14E],45
00455FB7  |.   mov byte ptr [esp+14F],46
00455FBF  |.   mov byte ptr [esp+150],47
00455FC7  |.   mov byte ptr [esp+151],48
00455FCF  |.   mov byte ptr [esp+152],49
00455FD7  |.   mov byte ptr [esp+153],4A
00455FDF  |.   mov byte ptr [esp+154],53
00455FE7  |.   mov byte ptr [esp+155],54
00455FEF  |.   mov byte ptr [esp+156],55
00455FF7  |.   mov byte ptr [esp+157],56
00455FFF  |.   mov byte ptr [esp+158],57
00456007  |.   mov byte ptr [esp+159],58
0045600F  |.   mov byte ptr [esp+15A],59
00456017  |.   mov byte ptr [esp+15B],5A
0045601F  |.   mov byte ptr [esp+15C],63
00456027  |.   mov byte ptr [esp+15D],64
0045602F  |.   mov byte ptr [esp+15E],65
00456037  |.   mov byte ptr [esp+15F],66
0045603F  |.   mov byte ptr [esp+160],67
00456047  |.   mov byte ptr [esp+161],68
0045604F  |.   mov byte ptr [esp+162],69
00456057  |.   mov byte ptr [esp+163],6A
0045605F  |.   mov byte ptr [esp+164],73
00456067  |.   mov byte ptr [esp+165],74
0045606F  |.   mov byte ptr [esp+166],75
00456077  |.   mov byte ptr [esp+167],76
0045607F  |.   mov byte ptr [esp+168],77
00456087  |.   mov byte ptr [esp+169],78
0045608F  |.   mov byte ptr [esp+16A],79
00456097  |.   mov byte ptr [esp+16B],7A
0045609F  |.   mov byte ptr [esp+16C],82
004560A7  |.   mov byte ptr [esp+16D],83
004560AF  |.   mov byte ptr [esp+16E],84
004560B7  |.   mov byte ptr [esp+16F],85
004560BF  |.   mov byte ptr [esp+170],86
004560C7  |.   mov byte ptr [esp+171],87
004560CF  |.   mov byte ptr [esp+172],88
004560D7  |.   mov byte ptr [esp+173],89
004560DF  |.   mov byte ptr [esp+174],8A
004560E7  |.   mov byte ptr [esp+175],92
004560EF  |.   mov byte ptr [esp+176],93
004560F7  |.   mov byte ptr [esp+177],94
004560FF  |.   mov byte ptr [esp+178],95
00456107  |.   mov byte ptr [esp+179],96
0045610F  |.   mov byte ptr [esp+17A],97
00456117  |.   mov byte ptr [esp+17B],98
0045611F  |.   mov byte ptr [esp+17C],99
00456127  |.   mov byte ptr [esp+17D],9A
0045612F  |.   mov byte ptr [esp+17E],0A2
00456137  |.   mov byte ptr [esp+17F],0A3
0045613F  |.   mov byte ptr [esp+180],0A4
00456147  |.   mov byte ptr [esp+181],0A5
0045614F  |.   mov byte ptr [esp+182],0A6
00456157  |.   mov byte ptr [esp+183],0A7
0045615F  |.   mov byte ptr [esp+184],0A8
00456167  |.   mov byte ptr [esp+185],0A9
0045616F  |.   mov byte ptr [esp+186],0AA
00456177  |.   mov byte ptr [esp+187],0B2
0045617F  |.   mov byte ptr [esp+188],0B3
00456187  |.   mov byte ptr [esp+189],0B4
0045618F  |.   mov byte ptr [esp+18A],0B5
00456197  |.   mov byte ptr [esp+18B],0B6
0045619F  |.   mov byte ptr [esp+18C],0B7
004561A7  |.   mov byte ptr [esp+18D],0B8
004561AF  |.   mov byte ptr [esp+18E],0B9
004561B7  |.   mov byte ptr [esp+18F],0BA
004561BF  |.   mov byte ptr [esp+190],0C2
004561C7  |.   mov byte ptr [esp+191],0C3
004561CF  |.   mov byte ptr [esp+192],0C4
004561D7  |.   mov byte ptr [esp+193],0C5
004561DF  |.   mov byte ptr [esp+194],0C6
004561E7  |.   mov byte ptr [esp+195],0C7
004561EF  |.   mov byte ptr [esp+196],0C8
004561F7  |.   mov byte ptr [esp+197],0C9
004561FF  |.   mov byte ptr [esp+198],0CA
00456207  |.   mov byte ptr [esp+199],0D2
0045620F  |.   mov byte ptr [esp+19A],0D3
00456217  |.   mov byte ptr [esp+19B],0D4
0045621F  |.   mov byte ptr [esp+19C],0D5
00456227  |.   mov byte ptr [esp+19D],0D6
0045622F  |.   mov byte ptr [esp+19E],0D7
00456237  |.   mov byte ptr [esp+19F],0D8
0045623F  |.   mov byte ptr [esp+1A0],0D9
00456247  |.   mov byte ptr [esp+1A1],0DA
0045624F  |.   mov byte ptr [esp+1A2],0E2
00456257  |.   mov byte ptr [esp+1A3],0E3
0045625F  |.   mov byte ptr [esp+1A4],0E4
00456267  |.   mov byte ptr [esp+1A5],0E5
0045626F  |.   mov byte ptr [esp+1A6],0E6
00456277  |.   mov byte ptr [esp+1A7],0E7
0045627F  |.   mov byte ptr [esp+1A8],0E8
00456287  |.   mov byte ptr [esp+1A9],0E9
0045628F  |.   mov byte ptr [esp+1AA],0EA
00456297  |.   mov byte ptr [esp+1AB],0F2
0045629F  |.   mov byte ptr [esp+1AC],0F3
004562A7  |.   mov byte ptr [esp+1AD],0F4
004562AF  |.   mov byte ptr [esp+1AE],0F5
004562B7  |.   mov byte ptr [esp+1AF],0F6
004562BF  |.   mov byte ptr [esp+1B0],0F7
004562C7  |.   mov byte ptr [esp+1B1],0F8
004562CF  |.   mov byte ptr [esp+1B2],0F9
004562D7  |.   mov byte ptr [esp+1B3],0FA
004562DF  |.   mov byte ptr [esp+1B4],0FF
004562E7  |.   mov ecx,69
004562EC  |.   lea esi,[esp+10]
004562F0  |.   rep movs dword ptr [edi],dword ptr [esi]
004562F2  |.   movs byte ptr [edi],byte ptr [esi]
004562F3  |.   mov ecx,ebp
004562F5  |.   mov [ebp+34],ebx
004562F8  |.   call 00454CD0
004562FD  |.   mov eax,[ebp+30]
00456300  |.   mov ecx,[esp+1BC]
00456307  |.   push 1A4                                 ; /Length = 420.
0045630C  |.   push eax                                 ; |Buffer => [ARG.ECX+30]
0045630D  |.   push ecx                                 ; |hFile => [Arg1]
0045630E  |.   call [<&KERNEL32._lwrite>]               ; \KERNEL32._lwrite
00456314  |.   mov edx,[ebp+30]
00456317  |.   push edx                                 ; /Arg1 => [ARG.ECX+30]
00456318  |.   call 005C7B20                            ; \4096.005C71C1
0045631D  |.   add esp,4
00456320  |.   pop edi
00456321  |.   pop esi
00456322  |.   pop ebp
00456323  |.   pop ebx
00456324  |.   add esp,1A8
0045632A  \.   ret 4

Seriously.... is it just me or is this the worlds least efficient implementation of the standard C++ library MemCpy() in the world?

It's like
Code:
Poke 1,15
Poke 2,20
Poke 3,32
Poke 4,16
Poke 5,22
...
There are smaller ways, faster ways, safer ways or more flexible ways... this is just... I don't get it. XD
 
Back
Top