懂汇编的帮忙看下解决办法

懂汇编的帮忙看下
这个函数传了两个参数 1:地址 2:字符串 返回是异或后的字符串 我不懂汇编 麻烦帮忙看下这段delphi的代码应该怎么写 谢谢!

00A13B30  /$  51                      push    ecx
00A13B31  |.  8B5424 08               mov     edx, dword ptr [esp+8]
00A13B35  |.  55                      push    ebp
00A13B36  |.  57                      push    edi
00A13B37  |.  8BFA                    mov     edi, edx
00A13B39  |.  83C9 FF                 or      ecx, FFFFFFFF
00A13B3C  |.  33C0                    xor     eax, eax
00A13B3E  |.  F2:AE                   repne   scas byte ptr es:[edi]
00A13B40  |.  F7D1                    not     ecx
00A13B42  |.  49                      dec     ecx
00A13B43  |.  8BE9                    mov     ebp, ecx
00A13B45  |.  85ED                    test    ebp, ebp
00A13B47  |.  0F8E 83000000           jle     00A13BD0
00A13B4D  |.  53                      push    ebx
00A13B4E  |.  56                      push    esi
00A13B4F  |.  8B7424 1C               mov     esi, dword ptr [esp+1C]
00A13B53  |.  8BFA                    mov     edi, edx
00A13B55  |.  2BFE                    sub     edi, esi
00A13B57  |>  8A0437                  /mov     al, byte ptr [edi+esi]