Skip to content

Instantly share code, notes, and snippets.

@GrabYourPitchforks
Created January 25, 2018 20:20
Show Gist options
  • Save GrabYourPitchforks/3d50843a2639d50d3e26a751d8510470 to your computer and use it in GitHub Desktop.
Save GrabYourPitchforks/3d50843a2639d50d3e26a751d8510470 to your computer and use it in GitHub Desktop.
; System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64):
00007ff8`1f759440 0f1f440000 nop dword ptr [rax+rax]
00007ff8`1f759445 488bc1 mov rax,rcx
00007ff8`1f759448 482bc2 sub rax,rdx
00007ff8`1f75944b 493bc0 cmp rax,r8
00007ff8`1f75944e 0f822f010000 jb System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x143 (00007ff8`1f759583)
00007ff8`1f759454 488bc2 mov rax,rdx
00007ff8`1f759457 482bc1 sub rax,rcx
00007ff8`1f75945a 493bc0 cmp rax,r8
00007ff8`1f75945d 0f8220010000 jb System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x143 (00007ff8`1f759583)
00007ff8`1f759463 4a8d0402 lea rax,[rdx+r8]
00007ff8`1f759467 4e8d0c01 lea r9,[rcx+r8]
00007ff8`1f75946b 4983f810 cmp r8,10h
00007ff8`1f75946f 7656 jbe System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x87 (00007ff8`1f7594c7)
00007ff8`1f759471 4983f840 cmp r8,40h
00007ff8`1f759475 0f87a2000000 ja System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0xdd (00007ff8`1f75951d)
00007ff8`1f75947b f30f6f02 movdqu xmm0,xmmword ptr [rdx]
00007ff8`1f75947f f30f7f01 movdqu xmmword ptr [rcx],xmm0
00007ff8`1f759483 4983f820 cmp r8,20h
00007ff8`1f759487 7629 jbe System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x72 (00007ff8`1f7594b2)
00007ff8`1f759489 4c8d5210 lea r10,[rdx+10h]
00007ff8`1f75948d 4c8d5910 lea r11,[rcx+10h]
00007ff8`1f759491 f3410f6f02 movdqu xmm0,xmmword ptr [r10]
00007ff8`1f759496 f3410f7f03 movdqu xmmword ptr [r11],xmm0
00007ff8`1f75949b 4983f830 cmp r8,30h
00007ff8`1f75949f 7611 jbe System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x72 (00007ff8`1f7594b2)
00007ff8`1f7594a1 4c8d4220 lea r8,[rdx+20h]
00007ff8`1f7594a5 488d5120 lea rdx,[rcx+20h]
00007ff8`1f7594a9 f3410f6f00 movdqu xmm0,xmmword ptr [r8]
00007ff8`1f7594ae f30f7f02 movdqu xmmword ptr [rdx],xmm0
00007ff8`1f7594b2 488d48f0 lea rcx,[rax-10h]
00007ff8`1f7594b6 498d41f0 lea rax,[r9-10h]
00007ff8`1f7594ba f30f6f01 movdqu xmm0,xmmword ptr [rcx]
00007ff8`1f7594be f30f7f00 movdqu xmmword ptr [rax],xmm0
00007ff8`1f7594c2 e9bb000000 jmp System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x142 (00007ff8`1f759582)
00007ff8`1f7594c7 458bd0 mov r10d,r8d
00007ff8`1f7594ca 41f6c218 test r10b,18h
00007ff8`1f7594ce 7413 je System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0xa3 (00007ff8`1f7594e3)
00007ff8`1f7594d0 4c8b12 mov r10,qword ptr [rdx]
00007ff8`1f7594d3 4c8911 mov qword ptr [rcx],r10
00007ff8`1f7594d6 488b50f8 mov rdx,qword ptr [rax-8]
00007ff8`1f7594da 498951f8 mov qword ptr [r9-8],rdx
00007ff8`1f7594de e99f000000 jmp System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x142 (00007ff8`1f759582)
00007ff8`1f7594e3 41f6c204 test r10b,4
00007ff8`1f7594e7 7412 je System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0xbb (00007ff8`1f7594fb)
00007ff8`1f7594e9 448b02 mov r8d,dword ptr [rdx]
00007ff8`1f7594ec 448901 mov dword ptr [rcx],r8d
00007ff8`1f7594ef 8b50fc mov edx,dword ptr [rax-4]
00007ff8`1f7594f2 418951fc mov dword ptr [r9-4],edx
00007ff8`1f7594f6 e987000000 jmp System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x142 (00007ff8`1f759582)
00007ff8`1f7594fb 4d85c0 test r8,r8
00007ff8`1f7594fe 0f847e000000 je System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x142 (00007ff8`1f759582)
00007ff8`1f759504 440fb602 movzx r8d,byte ptr [rdx]
00007ff8`1f759508 448801 mov byte ptr [rcx],r8b
00007ff8`1f75950b 41f6c202 test r10b,2
00007ff8`1f75950f 7471 je System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x142 (00007ff8`1f759582)
00007ff8`1f759511 480fbf50fe movsx rdx,word ptr [rax-2]
00007ff8`1f759516 66418951fe mov word ptr [r9-2],dx
00007ff8`1f75951b eb65 jmp System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x142 (00007ff8`1f759582)
00007ff8`1f75951d 4981f800080000 cmp r8,800h
00007ff8`1f759524 775d ja System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x143 (00007ff8`1f759583)
00007ff8`1f759526 4d8bd0 mov r10,r8
00007ff8`1f759529 49c1ea06 shr r10,6
00007ff8`1f75952d f30f6f02 movdqu xmm0,xmmword ptr [rdx]
00007ff8`1f759531 f30f7f01 movdqu xmmword ptr [rcx],xmm0
00007ff8`1f759535 f30f6f4210 movdqu xmm0,xmmword ptr [rdx+10h]
00007ff8`1f75953a f30f7f4110 movdqu xmmword ptr [rcx+10h],xmm0
00007ff8`1f75953f f30f6f4220 movdqu xmm0,xmmword ptr [rdx+20h]
00007ff8`1f759544 f30f7f4120 movdqu xmmword ptr [rcx+20h],xmm0
00007ff8`1f759549 f30f6f4230 movdqu xmm0,xmmword ptr [rdx+30h]
00007ff8`1f75954e f30f7f4130 movdqu xmmword ptr [rcx+30h],xmm0
00007ff8`1f759553 4883c140 add rcx,40h
00007ff8`1f759557 4883c240 add rdx,40h
00007ff8`1f75955b 49ffca dec r10
00007ff8`1f75955e 4d85d2 test r10,r10
00007ff8`1f759561 75ca jne System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0xed (00007ff8`1f75952d)
00007ff8`1f759563 4983e03f and r8,3Fh
00007ff8`1f759567 4983f810 cmp r8,10h
00007ff8`1f75956b 0f870affffff ja System_Private_CoreLib!System.Buffer.Memmove(Byte*, Byte*, UInt64)+0x3b (00007ff8`1f75947b)
00007ff8`1f759571 4883c0f0 add rax,0FFFFFFFFFFFFFFF0h
00007ff8`1f759575 4983c1f0 add r9,0FFFFFFFFFFFFFFF0h
00007ff8`1f759579 f30f6f00 movdqu xmm0,xmmword ptr [rax]
00007ff8`1f75957d f3410f7f01 movdqu xmmword ptr [r9],xmm0
00007ff8`1f759582 c3 ret
00007ff8`1f759583 488d0506000000 lea rax,[System_Private_CoreLib!System.Buffer._Memmove(Byte*, Byte*, UInt64) (00007ff8`1f759590)]
00007ff8`1f75958a 48ffe0 jmp rax
00007ff8`1f75958d cc int 3
00007ff8`1f75958e cc int 3
00007ff8`1f75958f cc int 3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment