Created
March 13, 2018 18:47
-
-
Save joncham/be9b64a841a55a6c6d329d2332c36122 to your computer and use it in GitHub Desktop.
Assembly code for managed-to-native wrapper https://github.com/mono/mono/issues/7596
This file contains hidden or 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
000002600F1020C0 push rbp | |
000002600F1020C1 mov rbp,rsp | |
000002600F1020C4 sub rsp,110h | |
000002600F1020CB mov qword ptr [rbp-78h],rsp | |
000002600F1020CF mov qword ptr [rbp-80h],rbp | |
000002600F1020D3 mov qword ptr [rbp-38h],rbx | |
000002600F1020D7 mov qword ptr [rbp-30h],rsi | |
000002600F1020DB mov qword ptr [rbp-28h],rdi | |
000002600F1020DF mov qword ptr [rbp-20h],r12 | |
000002600F1020E3 mov qword ptr [rbp-18h],r13 | |
000002600F1020E7 mov qword ptr [rbp-10h],r14 | |
000002600F1020EB mov qword ptr [rbp-8],r15 | |
000002600F1020EF mov qword ptr [rbp-0C8h],rcx | |
000002600F1020F6 mov r11,7FF8CD9F7240h | |
000002600F102100 mov qword ptr [rbp-48h],r11 | |
000002600F102104 mov r11,7FF8CD9F7248h | |
000002600F10210E mov qword ptr [rbp-40h],r11 | |
000002600F102112 mov rax,qword ptr gs:[1580h] | |
000002600F10211B add rax,10h | |
000002600F10211F mov qword ptr [rbp-0B8h],rax | |
000002600F102126 mov rcx,rbp | |
000002600F102129 add rcx,0FFFFFFFFFFFFFF78h | |
000002600F102130 mov rdx,qword ptr [rax] | |
000002600F102133 mov qword ptr [rbp-88h],rdx | |
000002600F10213A mov qword ptr [rax],rcx | |
000002600F10213D mov r11d,0 | |
000002600F102143 test r11,r11 | |
000002600F102146 je 000002600F10214F | |
000002600F102148 mov r11,qword ptr [rbp-40h] | |
000002600F10214C call qword ptr [r11] | |
000002600F10214F nop | |
000002600F102150 mov r11,qword ptr [rbp-48h] | |
000002600F102154 mov r11,qword ptr [r11] | |
000002600F102157 test r11,r11 | |
000002600F10215A je 000002600F10215F | |
000002600F10215C call r11 | |
000002600F10215F mov r11d,0 | |
000002600F102165 test r11,r11 | |
000002600F102168 je 000002600F102171 | |
000002600F10216A mov r11,qword ptr [rbp-40h] | |
000002600F10216E call qword ptr [r11] | |
000002600F102171 nop | |
000002600F102172 mov r11d,0 | |
000002600F102178 test r11,r11 | |
000002600F10217B je 000002600F102184 | |
000002600F10217D mov r11,qword ptr [rbp-40h] | |
000002600F102181 call qword ptr [r11] | |
000002600F102184 nop | |
000002600F102185 mov rbx,rbp | |
000002600F102188 add rbx,0FFFFFFFFFFFFFF38h | |
000002600F10218F mov r11d,0 | |
000002600F102195 test r11,r11 | |
000002600F102198 je 000002600F1021A1 | |
000002600F10219A mov r11,qword ptr [rbp-40h] | |
000002600F10219E call qword ptr [r11] | |
000002600F1021A1 nop | |
000002600F1021A2 mov edi,0Ch | |
000002600F1021A7 test rdi,rdi | |
000002600F1021AA jne 000002600F1021B0 | |
000002600F1021B0 mov qword ptr [rbp-0C0h],0 | |
000002600F1021BB jmp 000002600F1021BD | |
000002600F1021BD add rdi,0Fh | |
000002600F1021C1 and rdi,0FFFFFFFFFFFFFFF0h | |
000002600F1021C5 test rdi,0FFFFFFFFFFFFF000h | |
000002600F1021CC je 000002600F1021F3 | |
000002600F1021CE sub rsp,1000h | |
000002600F1021D5 test qword ptr [rsp],rsp | |
000002600F1021D9 sub rdi,1000h | |
000002600F1021E0 cmp rdi,1000h | |
000002600F1021E7 jae 000002600F1021CE | |
000002600F1021E9 test rdi,rdi | |
000002600F1021EC je 000002600F1021F6 | |
000002600F1021EE sub rsp,rdi | |
000002600F1021F1 jmp 000002600F1021F6 | |
000002600F1021F3 sub rsp,rdi | |
000002600F1021F6 push rcx | |
000002600F1021F7 shr rdi,3 | |
000002600F1021FB mov rcx,rdi | |
000002600F1021FE xor rax,rax | |
000002600F102201 lea rdi,[rsp+8] | |
000002600F102206 add rdi,2Ch | |
000002600F10220A cld | |
000002600F10220B rep stos qword ptr [rdi] | |
000002600F10220E pop rcx | |
000002600F10220F mov rax,rsp | |
000002600F102212 add rax,2Ch | |
000002600F102216 mov qword ptr [rbp-0C0h],rax | |
000002600F10221D mov rax,qword ptr [rbp-0C0h] | |
000002600F102224 mov qword ptr [rbp-90h],rax | |
000002600F10222B mov r11d,0 | |
000002600F102231 test r11,r11 | |
000002600F102234 je 000002600F10223D | |
000002600F102236 mov r11,qword ptr [rbp-40h] | |
000002600F10223A call qword ptr [r11] | |
000002600F10223D nop | |
000002600F10223E mov r11d,0 | |
000002600F102244 test r11,r11 | |
000002600F102247 je 000002600F102250 | |
000002600F102249 mov r11,qword ptr [rbp-40h] | |
000002600F10224D call qword ptr [r11] | |
000002600F102250 nop | |
000002600F102251 movzx ecx,word ptr [rbx] | |
000002600F102254 mov rax,qword ptr [rbp-0C0h] | |
000002600F10225B mov word ptr [rax],cx | |
000002600F10225E mov qword ptr [rbp-0D8h],rax | |
000002600F102265 mov r11d,0 | |
000002600F10226B test r11,r11 | |
000002600F10226E je 000002600F102277 | |
000002600F102270 mov r11,qword ptr [rbp-40h] | |
000002600F102274 call qword ptr [r11] | |
000002600F102277 nop | |
000002600F102278 add rbx,2 | |
000002600F10227C mov r11d,0 | |
000002600F102282 test r11,r11 | |
000002600F102285 je 000002600F10228E | |
000002600F102287 mov r11,qword ptr [rbp-40h] | |
000002600F10228B call qword ptr [r11] | |
000002600F10228E nop | |
000002600F10228F mov rax,qword ptr [rbp-0D8h] | |
000002600F102296 mov qword ptr [rbp-0D0h],rax | |
000002600F10229D mov rsi,rax | |
000002600F1022A0 add rsi,4 | |
000002600F1022A4 mov r11d,0 | |
000002600F1022AA test r11,r11 | |
000002600F1022AD je 000002600F1022B6 | |
000002600F1022AF mov r11,qword ptr [rbp-40h] | |
000002600F1022B3 call qword ptr [r11] | |
000002600F1022B6 nop | |
000002600F1022B7 mov qword ptr [rbp-98h],rbx | |
000002600F1022BE mov r11d,0 | |
000002600F1022C4 test r11,r11 | |
000002600F1022C7 je 000002600F1022D0 | |
000002600F1022C9 mov r11,qword ptr [rbp-40h] | |
000002600F1022CD call qword ptr [r11] | |
000002600F1022D0 nop | |
000002600F1022D1 mov qword ptr [rbp-0A0h],rsi | |
000002600F1022D8 mov r11d,0 | |
000002600F1022DE test r11,r11 | |
000002600F1022E1 je 000002600F1022EA | |
000002600F1022E3 mov r11,qword ptr [rbp-40h] | |
000002600F1022E7 call qword ptr [r11] | |
000002600F1022EA nop | |
000002600F1022EB movzx eax,byte ptr [rbx] | |
000002600F1022EE mov dword ptr [rsi],eax | |
000002600F1022F0 mov r11d,0 | |
000002600F1022F6 test r11,r11 | |
000002600F1022F9 je 000002600F102302 | |
000002600F1022FB mov r11,qword ptr [rbp-40h] | |
000002600F1022FF call qword ptr [r11] | |
000002600F102302 nop | |
000002600F102303 mov r11d,0 | |
000002600F102309 test r11,r11 | |
000002600F10230C je 000002600F102315 | |
000002600F10230E mov r11,qword ptr [rbp-40h] | |
000002600F102312 call qword ptr [r11] | |
000002600F102315 nop | |
000002600F102316 mov r11d,0 | |
000002600F10231C test r11,r11 | |
000002600F10231F je 000002600F102328 | |
000002600F102321 mov r11,qword ptr [rbp-40h] | |
000002600F102325 call qword ptr [r11] | |
000002600F102328 nop | |
000002600F102329 add rbx,1 | |
000002600F10232D mov r11d,0 | |
000002600F102333 test r11,r11 | |
000002600F102336 je 000002600F10233F | |
000002600F102338 mov r11,qword ptr [rbp-40h] | |
000002600F10233C call qword ptr [r11] | |
000002600F10233F nop | |
000002600F102340 add rsi,4 | |
000002600F102344 mov r11d,0 | |
000002600F10234A test r11,r11 | |
000002600F10234D je 000002600F102356 | |
000002600F10234F mov r11,qword ptr [rbp-40h] | |
000002600F102353 call qword ptr [r11] | |
000002600F102356 nop | |
000002600F102357 mov qword ptr [rbp-0A8h],rbx | |
000002600F10235E mov r11d,0 | |
000002600F102364 test r11,r11 | |
000002600F102367 je 000002600F102370 | |
000002600F102369 mov r11,qword ptr [rbp-40h] | |
000002600F10236D call qword ptr [r11] | |
000002600F102370 nop | |
000002600F102371 mov qword ptr [rbp-0B0h],rsi | |
000002600F102378 mov r11d,0 | |
000002600F10237E test r11,r11 | |
000002600F102381 je 000002600F10238A | |
000002600F102383 mov r11,qword ptr [rbp-40h] | |
000002600F102387 call qword ptr [r11] | |
000002600F10238A nop | |
000002600F10238B movzx eax,byte ptr [rbx] | |
000002600F10238E mov dword ptr [rsi],eax | |
000002600F102390 mov r11d,0 | |
000002600F102396 test r11,r11 | |
000002600F102399 je 000002600F1023A2 | |
000002600F10239B mov r11,qword ptr [rbp-40h] | |
000002600F10239F call qword ptr [r11] | |
000002600F1023A2 nop | |
000002600F1023A3 mov r11d,0 | |
000002600F1023A9 test r11,r11 | |
000002600F1023AC je 000002600F1023B5 | |
000002600F1023AE mov r11,qword ptr [rbp-40h] | |
000002600F1023B2 call qword ptr [r11] | |
000002600F1023B5 nop | |
000002600F1023B6 mov r11d,0 | |
000002600F1023BC test r11,r11 | |
000002600F1023BF je 000002600F1023C8 | |
000002600F1023C1 mov r11,qword ptr [rbp-40h] | |
000002600F1023C5 call qword ptr [r11] | |
000002600F1023C8 nop | |
000002600F1023C9 add rbx,1 | |
000002600F1023CD mov r11d,0 | |
000002600F1023D3 test r11,r11 | |
000002600F1023D6 je 000002600F1023DF | |
000002600F1023D8 mov r11,qword ptr [rbp-40h] | |
000002600F1023DC call qword ptr [r11] | |
000002600F1023DF nop | |
000002600F1023E0 add rsi,4 | |
000002600F1023E4 mov r11d,0 | |
000002600F1023EA test r11,r11 | |
000002600F1023ED je 000002600F1023F6 | |
000002600F1023EF mov r11,qword ptr [rbp-40h] | |
000002600F1023F3 call qword ptr [r11] | |
000002600F1023F6 nop | |
000002600F1023F7 mov rax,qword ptr [rbp-0D0h] | |
000002600F1023FE movsxd rcx,dword ptr [rax] | |
000002600F102401 mov dword ptr [rbp-70h],ecx | |
000002600F102404 movsxd rcx,dword ptr [rax+4] | |
000002600F102408 mov dword ptr [rbp-6Ch],ecx | |
000002600F10240B movsxd rax,dword ptr [rax+8] | |
000002600F10240F mov dword ptr [rbp-68h],eax | |
000002600F102412 movsxd rax,dword ptr [rbp-70h] | |
000002600F102416 mov dword ptr [rbp-60h],eax | |
000002600F102419 movsxd rax,dword ptr [rbp-6Ch] | |
000002600F10241D mov dword ptr [rbp-5Ch],eax | |
000002600F102420 movsxd rax,dword ptr [rbp-68h] | |
000002600F102424 mov dword ptr [rbp-58h],eax | |
000002600F102427 mov rax,7FF908491113h | |
000002600F102431 mov rcx,rbp | |
000002600F102434 add rcx,0FFFFFFFFFFFFFFB0h | |
000002600F102438 mov rdx,qword ptr [rbp-60h] | |
000002600F10243C mov qword ptr [rbp-50h],rdx | |
000002600F102440 movsxd rdx,dword ptr [rbp-58h] | |
000002600F102444 mov dword ptr [rbp-48h],edx | |
000002600F102447 lea rcx,[rcx] | |
000002600F10244A mov qword ptr [rbp-78h],rsp | |
000002600F10244E mov r11,rax | |
000002600F102451 xor rax,rax | |
000002600F102454 call r11 | |
000002600F102457 mov r11d,0 | |
000002600F10245D test r11,r11 | |
000002600F102460 je 000002600F102469 | |
000002600F102462 mov r11,qword ptr [rbp-40h] | |
000002600F102466 call qword ptr [r11] | |
000002600F102469 nop | |
000002600F10246A mov rax,7FF8CD9F4574h | |
000002600F102474 mov eax,dword ptr [rax] | |
000002600F102476 test eax,eax | |
000002600F102478 jne 000002600F10247E | |
000002600F10247E jmp 000002600F102483 | |
000002600F102483 mov r11,qword ptr [rbp-48h] | |
000002600F102487 mov r11,qword ptr [r11] | |
000002600F10248A test r11,r11 | |
000002600F10248D je 000002600F102492 | |
000002600F10248F call r11 | |
000002600F102492 mov r11d,0 | |
000002600F102498 test r11,r11 | |
000002600F10249B je 000002600F1024A4 | |
000002600F10249D mov r11,qword ptr [rbp-40h] | |
000002600F1024A1 call qword ptr [r11] | |
000002600F1024A4 nop | |
000002600F1024A5 mov rcx,2600F14D828h | |
000002600F1024AF mov rdx,qword ptr [rbp-90h] | |
000002600F1024B6 mov qword ptr [rbp-78h],rsp | |
000002600F1024BA xor rax,rax | |
000002600F1024BD nop | |
000002600F1024BE mov r11,0 | |
000002600F1024C8 call r11 | |
000002600F1024CB mov r11d,0 | |
000002600F1024D1 test r11,r11 | |
000002600F1024D4 je 000002600F1024DD | |
000002600F1024D6 mov r11,qword ptr [rbp-40h] | |
000002600F1024DA call qword ptr [r11] | |
000002600F1024DD nop | |
000002600F1024DE mov rcx,qword ptr [rbp-88h] | |
000002600F1024E5 mov rax,qword ptr [rbp-0B8h] | |
000002600F1024EC mov qword ptr [rax],rcx | |
000002600F1024EF mov r11d,0 | |
000002600F1024F5 test r11,r11 | |
000002600F1024F8 je 000002600F102501 | |
000002600F1024FA mov r11,qword ptr [rbp-40h] | |
000002600F1024FE call qword ptr [r11] | |
000002600F102501 nop | |
000002600F102502 mov rcx,qword ptr gs:[1580h] | |
000002600F10250B mov rcx,qword ptr [rcx+20h] | |
000002600F10250F cmp ecx,0 | |
000002600F102512 je 000002600F102516 | |
000002600F102514 call rcx | |
000002600F102516 mov rbx,qword ptr [rbp-38h] | |
000002600F10251A mov rsi,qword ptr [rbp-30h] | |
000002600F10251E mov rdi,qword ptr [rbp-28h] | |
000002600F102522 mov r12,qword ptr [rbp-20h] | |
000002600F102526 mov r13,qword ptr [rbp-18h] | |
000002600F10252A mov r14,qword ptr [rbp-10h] | |
000002600F10252E mov r15,qword ptr [rbp-8] | |
000002600F102532 lea rsp,[rbp] | |
000002600F102536 pop rbp | |
000002600F102537 ret | |
000002600F102538 mov r11d,0 | |
000002600F10253E test r11,r11 | |
000002600F102541 je 000002600F10254A | |
000002600F102543 mov r11,qword ptr [rbp-40h] | |
000002600F102547 call qword ptr [r11] | |
000002600F10254A nop | |
000002600F10254B mov r11d,0 | |
000002600F102551 test r11,r11 | |
000002600F102554 je 000002600F10255D | |
000002600F102556 mov r11,qword ptr [rbp-40h] | |
000002600F10255A call qword ptr [r11] | |
000002600F10255D nop | |
000002600F10255E mov qword ptr [rbp-78h],rsp | |
000002600F102562 xor rax,rax | |
000002600F102565 nop | |
000002600F102566 mov r11,0 | |
000002600F102570 call r11 | |
000002600F102573 mov rcx,rax | |
000002600F102576 mov qword ptr [rbp-0B0h],rcx | |
000002600F10257D test rax,rax | |
000002600F102580 je 000002600F102483 | |
000002600F102586 mov rax,qword ptr [rbp-0B0h] | |
000002600F10258D mov rcx,rax | |
000002600F102590 lea rsp,[rsp] | |
000002600F102595 nop | |
000002600F102596 mov r11,0 | |
000002600F1025A0 call r11 | |
000002600F1025A3 add byte ptr [rax],al |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment