1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| {
int count;
var v = Function(1, 2, out count);
lea r8,[rbp+8] // définition de count
mov edx,2 // param2 = 2
mov ecx,1 // param1 = 1
call FFFFFFFFFFEC95E0 // call method entry point
mov qword ptr [rbp+20h],rax // v = method result
mov eax,dword ptr [rbp+8] // nouvelle valeur de count
}
static public List<int> Function(int a, int b, out int count)
{
var result = new List<int>();
00000000 mov qword ptr [rsp+18h],r8
00000005 mov dword ptr [rsp+10h],edx
00000009 mov dword ptr [rsp+8],ecx
0000000d sub rsp,38h
00000011 mov qword ptr [rsp+20h],0
0000001a mov rax,7FF001E0A18h
00000024 mov eax,dword ptr [rax]
00000026 test eax,eax
00000028 je 000000000000002F
0000002a call FFFFFFFFF53AE090
0000002f mov rcx,7FEF44846F0h
00000039 call FFFFFFFFF514CEF0
0000003e mov qword ptr [rsp+28h],rax
00000043 mov rcx,qword ptr [rsp+28h]
00000048 call FFFFFFFFF41F0840
0000004d mov r11,qword ptr [rsp+28h]
00000052 mov qword ptr [rsp+20h],r11
count = 2;
00000057 mov rax,qword ptr [rsp+50h]
0000005c mov dword ptr [rax],2
result.Add(a + b);
00000062 mov eax,dword ptr [rsp+48h]
00000066 mov edx,dword ptr [rsp+40h]
0000006a add edx,eax
0000006c mov rax,qword ptr [rsp+20h]
00000071 cmp byte ptr [rax],0
00000074 mov rcx,qword ptr [rsp+20h]
00000079 call FFFFFFFFF41F4C00
result.Add(a - b);
0000007e mov r11d,dword ptr [rsp+48h]
00000083 mov edx,dword ptr [rsp+40h]
00000087 sub edx,r11d
0000008a mov rax,qword ptr [rsp+20h]
0000008f cmp byte ptr [rax],0
00000092 mov rcx,qword ptr [rsp+20h]
00000097 call FFFFFFFFF41F4C00
return result;
0000009c mov rax,qword ptr [rsp+20h]
000000a1 jmp 00000000000000A3
000000a3 add rsp,38h
000000a7 rep ret |
Partager