Advertisement
sglienke

Untitled

Jul 14th, 2016
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.90 KB | None | 0 0
  1. RTL:
  2.  
  3. System.SysUtils.pas.26452: begin
  4. 004275EC 53               push ebx
  5. 004275ED 56               push esi
  6. 004275EE 57               push edi
  7. 004275EF 55               push ebp
  8. 004275F0 8BEA             mov ebp,edx
  9. 004275F2 8BD8             mov ebx,eax
  10. System.SysUtils.pas.26453: Length := Length + System.Length(Value);
  11. 004275F4 8BFD             mov edi,ebp
  12. 004275F6 8BC7             mov eax,edi
  13. 004275F8 85C0             test eax,eax
  14. 004275FA 7405             jz $00427601
  15. 004275FC 83E804           sub eax,$04
  16. 004275FF 8B00             mov eax,[eax]
  17. 00427601 8B5308           mov edx,[ebx+$08]
  18. 00427604 03D0             add edx,eax
  19. 00427606 8BC3             mov eax,ebx
  20. 00427608 E83B1A0000       call TStringBuilder.SetLength
  21. System.SysUtils.pas.26454: Move(PChar(Value)^, FData[Length - System.Length(Value)], System.Length(Value) * SizeOf(Char));
  22. 0042760D 8BF7             mov esi,edi
  23. 0042760F 85F6             test esi,esi
  24. 00427611 7405             jz $00427618
  25. 00427613 83EE04           sub esi,$04
  26. 00427616 8B36             mov esi,[esi]
  27. 00427618 85FF             test edi,edi
  28. 0042761A 7405             jz $00427621
  29. 0042761C 83EF04           sub edi,$04
  30. 0042761F 8B3F             mov edi,[edi]
  31. 00427621 8BC5             mov eax,ebp
  32. 00427623 E84C3DFEFF       call @UStrToPWChar
  33. 00427628 8B5308           mov edx,[ebx+$08]
  34. 0042762B 2BD6             sub edx,esi
  35. 0042762D 8B4B04           mov ecx,[ebx+$04]
  36. 00427630 8D1451           lea edx,[ecx+edx*2]
  37. 00427633 8BCF             mov ecx,edi
  38. 00427635 03C9             add ecx,ecx
  39. 00427637 E880F9FDFF       call Move
  40. System.SysUtils.pas.26455: Result := self;
  41. 0042763C 8BC3             mov eax,ebx
  42.  
  43. Optimized (using helper)
  44.  
  45. Project1.dpr.26: begin
  46. 004CEF78 53               push ebx
  47. 004CEF79 56               push esi
  48. 004CEF7A 57               push edi
  49. 004CEF7B 8BFA             mov edi,edx
  50. 004CEF7D 8BD8             mov ebx,eax
  51. Project1.dpr.27: len := System.Length(Value);
  52. 004CEF7F 8BC7             mov eax,edi
  53. 004CEF81 85C0             test eax,eax
  54. 004CEF83 7405             jz $004cef8a
  55. 004CEF85 83E804           sub eax,$04
  56. 004CEF88 8B00             mov eax,[eax]
  57. 004CEF8A 8BF0             mov esi,eax
  58. Project1.dpr.28: Length := Length + len;
  59. 004CEF8C 8B5308           mov edx,[ebx+$08]
  60. 004CEF8F 03D6             add edx,esi
  61. 004CEF91 8BC3             mov eax,ebx
  62. 004CEF93 E8B0A0F5FF       call TStringBuilder.SetLength
  63. Project1.dpr.29: Move(PChar(Value)^, FData[Length - len], len * SizeOf(Char));
  64. 004CEF98 8BC7             mov eax,edi
  65. 004CEF9A E8D5C3F3FF       call @UStrToPWChar
  66. 004CEF9F 8B5308           mov edx,[ebx+$08]
  67. 004CEFA2 2BD6             sub edx,esi
  68. 004CEFA4 8B4B04           mov ecx,[ebx+$04]
  69. 004CEFA7 8D1451           lea edx,[ecx+edx*2]
  70. 004CEFAA 8BCE             mov ecx,esi
  71. 004CEFAC 03C9             add ecx,ecx
  72. 004CEFAE E80980F3FF       call Move
  73. Project1.dpr.30: Result := self;
  74. 004CEFB3 8BC3             mov eax,ebx
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement