Skip to content

Instantly share code, notes, and snippets.

@trylek
Created May 8, 2021 00:00
Show Gist options
  • Save trylek/436f16484e7e4756308bed1aea0dae30 to your computer and use it in GitHub Desktop.
Save trylek/436f16484e7e4756308bed1aea0dae30 to your computer and use it in GitHub Desktop.
======================== R2R Header =========================
Signature: 0x00525452 (RTR)
RelativeVirtualAddress: 0x00002548
Size: 124 bytes
MajorVersion: 0x0005
MinorVersion: 0x0003
Flags: 0x00000003
- READYTORUN_FLAG_PlatformNeutralSource
- READYTORUN_FLAG_SkipTypeValidation
======================= R2R Sections ========================
9 sections
_______________________________________________
Type: CompilerIdentifier (100)
Size: 23 bytes
CoreCLR 42.42.42.42424
_______________________________________________
Type: ImportSections (101)
Size: 120 bytes
"Failed to verify type of Fld1 in: " (STRING_HANDLE)
"string" (STRING_HANDLE)
"Test Failed at location: " (STRING_HANDLE)
"Test Failed" (STRING_HANDLE)
"Test Passed" (STRING_HANDLE)
bool Gen`1<double>.InstVerify(System.Type) (METHOD_ENTRY) -- I(48) R(50)
bool Gen`1<int>.InstVerify(System.Type) (METHOD_ENTRY) -- I(48) R(50)
bool Gen`1<System.Guid>.InstVerify(System.Type) (METHOD_ENTRY) -- I(48) R(50)
bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY) -- R(48 50)
CHECKED_WRITE_BARRIER (HELPER)
DELAYLOAD_HELPER (HELPER)
DELAYLOAD_METHODCALL (HELPER)
double (TYPE_HANDLE)
Gen`1<double> (NEW_OBJECT)
Gen`1<double> (TYPE_HANDLE)
Gen`1<int[]> (NEW_OBJECT)
Gen`1<int[]> (TYPE_HANDLE)
Gen`1<int> (NEW_OBJECT)
Gen`1<int> (TYPE_HANDLE)
Gen`1<object[][]> (NEW_OBJECT)
Gen`1<object[][]> (TYPE_HANDLE)
Gen`1<object> (NEW_OBJECT)
Gen`1<object> (TYPE_HANDLE)
Gen`1<RefX1`1<int>> (NEW_OBJECT)
Gen`1<RefX1`1<int>> (TYPE_HANDLE)
Gen`1<string[...,...]> (NEW_OBJECT)
Gen`1<string[...,...]> (TYPE_HANDLE)
Gen`1<string> (NEW_OBJECT)
Gen`1<string> (TYPE_HANDLE)
Gen`1<System.Guid> (NEW_OBJECT)
Gen`1<System.Guid> (TYPE_HANDLE)
Gen`1<ValX1`1<string>> (NEW_OBJECT)
Gen`1<ValX1`1<string>> (TYPE_HANDLE)
GET_RUNTIME_TYPE_HANDLE (HELPER)
int (TYPE_HANDLE)
int[] (NEW_ARRAY)
int[] (TYPE_HANDLE)
MODULE (HELPER)
NEW_MULTI_DIM_ARR (HELPER)
object (NEW_OBJECT)
object (TYPE_HANDLE)
object[][] (NEW_ARRAY)
object[][] (TYPE_HANDLE)
Outer+IGen`1<double> (TYPE_HANDLE)
Outer+IGen`1<int[]> #0 (VIRTUAL_ENTRY_SLOT) -- R(48 50)
Outer+IGen`1<int> (TYPE_HANDLE)
Outer+IGen`1<object[][]> #0 (VIRTUAL_ENTRY_SLOT) -- R(48 50)
Outer+IGen`1<object> #0 (VIRTUAL_ENTRY_SLOT) -- R(48 50)
Outer+IGen`1<RefX1`1<int>> #0 (VIRTUAL_ENTRY_SLOT) -- R(48 50)
Outer+IGen`1<string[...,...]> #0 (VIRTUAL_ENTRY_SLOT) -- R(48 50)
Outer+IGen`1<string> #0 (VIRTUAL_ENTRY_SLOT) -- R(48 50)
Outer+IGen`1<ValX1`1<string>> #0 (VIRTUAL_ENTRY_SLOT) -- R(48 50)
PERSONALITY_ROUTINE (HELPER)
RefX1`1<int> (NEW_OBJECT)
RefX1`1<int> (TYPE_HANDLE)
string (TYPE_HANDLE)
string System.Int32.ToString() (METHOD_ENTRY) -- I(48)
string System.Object.ToString() (VIRTUAL_ENTRY) -- R(48)
string System.String.Concat(string, string) (METHOD_ENTRY) -- R(48 50)
string[...,...] (TYPE_HANDLE)
System.Guid (TYPE_HANDLE)
System.Type System.Object.GetType() (METHOD_ENTRY) -- R(48)
Test (STATIC_BASE_NON_GC)
TYPE_DICTIONARY_LOOKUP: Outer+IGen`1<var #0> (TYPE_HANDLE)
ValX1`1<string> (TYPE_HANDLE)
void System.Console.WriteLine(string) (METHOD_ENTRY) -- R(48)
void Test.Eval(bool) (METHOD_ENTRY)
WRITE_BARRIER (HELPER)
_______________________________________________
Type: RuntimeFunctions (102)
Size: 264 bytes
Index | StartRVA | EndRVA | UnwindRVA
-----------------------------------------
0 | 000036C0 | 000036c1 | 00003E04
1 | 000036D0 | 000036d1 | 00003E04
2 | 000036E0 | 000036e1 | 00003E04
3 | 000036F0 | 000036f1 | 00003E04
4 | 00003700 | 00003701 | 00003E04
5 | 00003710 | 00003711 | 00003E04
6 | 00003720 | 00003721 | 00003E04
7 | 00003730 | 00003731 | 00003E04
8 | 00003740 | 00003741 | 00003E04
9 | 00003750 | 0000375b | 00003E10
10 | 00003760 | 000037ef | 00003E1C
11 | 000037F0 | 0000383c | 00003E40
12 | 00003840 | 00003b3c | 00003E54
13 | 00003B40 | 00003b41 | 00003E04
14 | 00003B50 | 00003b68 | 00003EB4
15 | 00003B70 | 00003b77 | 00003EC4
16 | 00003B80 | 00003b85 | 00003ED0
17 | 00003B90 | 00003c14 | 00003EDC
18 | 00003C20 | 00003c23 | 00003EF8
19 | 00003C30 | 00003cb4 | 00003EDC
20 | 00003CC0 | 00003ccc | 00003F04
21 | 00003CD0 | 00003cd1 | 00003E04
_______________________________________________
Type: MethodDefEntryPoints (103)
Size: 36 bytes
06000001: void RefX0..ctor()
06000002: void RefY0..ctor()
06000009: void Outer..ctor()
0600000C: void Test.Eval(bool)
0600000D: int Test.Main()
0600000E: void Test..ctor()
0600000F: void Test..cctor()
_______________________________________________
Type: DebugInfo (105)
Size: 416 bytes
Unsupported section type DebugInfo
_______________________________________________
Type: DelayLoadMethodCallThunks (106)
Size: 33 bytes
Unsupported section type DelayLoadMethodCallThunks
_______________________________________________
Type: AvailableTypes (108)
Size: 67 bytes
ValX3`3
ValX0
<Module>
ValX1`1
RefY3`3
Gen`1
RefY1`1
Test
RefX2`2
Outer
ValX2`2
RefX0
ValY0
ValY3`3
RefX1`1
ValY1`1
RefX3`3
ValY2`2
Outer+IGen`1
RefY0
RefY2`2
_______________________________________________
Type: InstanceMethodEntryPoints (109)
Size: 186 bytes
0x05 -> void Gen`1<double>..ctor(!0)
0x06 -> void Gen`1<ValX1`1<__Canon>>..ctor(!0)
0x07 -> bool Gen`1<__Canon>.InstVerify(System.Type)
0x44 -> void RefX2`2<__Canon,__Canon>..ctor()
0x65 -> void RefY1`1<__Canon>..ctor()
0xA8 -> void RefX1`1<__Canon>..ctor()
0xBD -> bool Gen`1<double>.InstVerify(System.Type)
0xBF -> void Gen`1<__Canon>..ctor(!0)
0xFC -> void RefX3`3<__Canon,__Canon,__Canon>..ctor()
0x18 -> void RefX1`1<int>..ctor()
0x2D -> void Gen`1<System.Guid>..ctor(!0)
0x47 -> bool Gen`1<int>.InstVerify(System.Type)
0x8E -> void RefY2`2<__Canon,__Canon>..ctor()
0xE8 -> void RefY3`3<__Canon,__Canon,__Canon>..ctor()
0xFF -> void Gen`1<int>..ctor(!0)
_______________________________________________
Type: InliningInfo (110)
Size: 39 bytes
Inliners for inlinee 06000003:
0600000D
Inliners for inlinee 0600000A:
0600000D
Inliners for inlinee 060004D3:
06000001
06000002
06000003
06000004
06000005
06000006
06000007
06000008
06000009
0600000D
0600000E
======================== R2R Methods ========================
22 methods
_______________________________________________
bool Gen`1<__Canon>.InstVerify(System.Type)
Handle: 0x0600000B
Rid: 11
Number of RuntimeFunctions: 1
Number of fixups: 1
"Failed to verify type of Fld1 in: " (STRING_HANDLE)
bool Gen`1<__Canon>.InstVerify(System.Type)
Size: 143 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0007
CountOfUnwindCodes: 4
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0007 FrameOffset 0x0000 NextOffset 0x0 Op 48
UnwindCode[2]: CodeOffset 0x0002 FrameOffset 0x0000 NextOffset 0x0 Op RSI(6)
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0002, Source Types: StackEmpty
IL Offset: 0x001b, Source Types: StackEmpty
IL Offset: 0x001d, Source Types: StackEmpty
IL Offset: 0x0042, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x12
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x12
End Offset: 0x17
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x12
Loc Type: VLT_REG
Register: R8
Variable Number: 1
Start Offset: 0x12
End Offset: 0x23
Loc Type: VLT_REG
Register: RDI
Variable Number: 2
Start Offset: 0x17
End Offset: 0x85
Loc Type: VLT_REG
Register: RBX
Variable Number: 4294967293
Start Offset: 0x0
End Offset: 0x12
Loc Type: VLT_REG
Register: RDX
Variable Number: 4294967293
Start Offset: 0x12
End Offset: 0x3B
Loc Type: VLT_REG
Register: RSI
0000: push rdi
UWOP_PUSH_NONVOL RDI(7) 0
0001: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0002: push rbx
UWOP_PUSH_NONVOL RBX(3) 0
0003: sub rsp, 48
UWOP_ALLOC_SMALL 48 0
0007: mov qword ptr [rsp + 40], rdx
000c: mov rsi, rdx
000f: mov rdi, r8
0012: mov ebx, 1
0017: mov rcx, qword ptr [rcx]
001a: call qword ptr [System.Type System.Object.GetType() (METHOD_ENTRY)]
0020: mov rcx, rax
0023: mov rdx, rdi
0026: lea r11, [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
002d: cmp dword ptr [rcx], ecx
002f: call qword ptr [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0035: test al, al
0037: jne 0x0085
0039: xor ebx, ebx
003b: mov rcx, rsi
003e: call qword ptr [TYPE_DICTIONARY_LOOKUP: Outer+IGen`1<var #0> (TYPE_HANDLE)]
0044: mov rcx, rax
0047: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
004d: mov rcx, rax
0050: mov r11, qword ptr ["Failed to verify type of Fld1 in: " (STRING_HANDLE)]
0057: mov rsi, qword ptr [r11]
005a: test rcx, rcx
005d: jne 0x0063
005f: xor edx, edx
0061: jmp 0x0073
0063: lea r11, [string System.Object.ToString() (VIRTUAL_ENTRY)]
006a: call qword ptr [string System.Object.ToString() (VIRTUAL_ENTRY)]
0070: mov rdx, rax
0073: mov rcx, rsi
0076: call qword ptr [string System.String.Concat(string, string) (METHOD_ENTRY)]
007c: mov rcx, rax
007f: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
0085: mov eax, ebx
0087: add rsp, 48
008b: pop rbx
008c: pop rsi
008d: pop rdi
008e: ret
_______________________________________________
bool Gen`1<double>.InstVerify(System.Type)
Handle: 0x0600000B
Rid: 11
Number of RuntimeFunctions: 1
Number of fixups: 3
"Failed to verify type of Fld1 in: " (STRING_HANDLE)
double (TYPE_HANDLE)
Outer+IGen`1<double> (TYPE_HANDLE)
bool Gen`1<double>.InstVerify(System.Type)
Size: 132 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0006
CountOfUnwindCodes: 3
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0006 FrameOffset 0x0000 NextOffset 0x0 Op 40
UnwindCode[2]: CodeOffset 0x0001 FrameOffset 0x0000 NextOffset 0x0 Op RDI(7)
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0002, Source Types: StackEmpty
IL Offset: 0x001b, Source Types: StackEmpty
IL Offset: 0x001d, Source Types: StackEmpty
IL Offset: 0x0042, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x9
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x9
Loc Type: VLT_REG
Register: RDX
Variable Number: 1
Start Offset: 0x9
End Offset: 0x1E
Loc Type: VLT_REG
Register: RSI
Variable Number: 2
Start Offset: 0xE
End Offset: 0x7B
Loc Type: VLT_REG
Register: RDI
0000: push rdi
UWOP_PUSH_NONVOL RDI(7) 0
0001: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0002: sub rsp, 40
UWOP_ALLOC_SMALL 40 0
0006: mov rsi, rdx
0009: mov edi, 1
000e: mov rcx, qword ptr [double (TYPE_HANDLE)]
0015: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
001b: mov rcx, rax
001e: mov rdx, rsi
0021: lea r11, [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0028: cmp dword ptr [rcx], ecx
002a: call qword ptr [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0030: test al, al
0032: jne 0x007b
0034: xor edi, edi
0036: mov rcx, qword ptr [Outer+IGen`1<double> (TYPE_HANDLE)]
003d: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
0043: mov rcx, rax
0046: mov r11, qword ptr ["Failed to verify type of Fld1 in: " (STRING_HANDLE)]
004d: mov rsi, qword ptr [r11]
0050: test rcx, rcx
0053: jne 0x0059
0055: xor edx, edx
0057: jmp 0x0069
0059: lea r11, [string System.Object.ToString() (VIRTUAL_ENTRY)]
0060: call qword ptr [string System.Object.ToString() (VIRTUAL_ENTRY)]
0066: mov rdx, rax
0069: mov rcx, rsi
006c: call qword ptr [string System.String.Concat(string, string) (METHOD_ENTRY)]
0072: mov rcx, rax
0075: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
007b: mov eax, edi
007d: add rsp, 40
0081: pop rsi
0082: pop rdi
0083: ret
_______________________________________________
bool Gen`1<int>.InstVerify(System.Type)
Handle: 0x0600000B
Rid: 11
Number of RuntimeFunctions: 1
Number of fixups: 3
"Failed to verify type of Fld1 in: " (STRING_HANDLE)
int (TYPE_HANDLE)
Outer+IGen`1<int> (TYPE_HANDLE)
bool Gen`1<int>.InstVerify(System.Type)
Size: 132 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0006
CountOfUnwindCodes: 3
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0006 FrameOffset 0x0000 NextOffset 0x0 Op 40
UnwindCode[2]: CodeOffset 0x0001 FrameOffset 0x0000 NextOffset 0x0 Op RDI(7)
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0002, Source Types: StackEmpty
IL Offset: 0x001b, Source Types: StackEmpty
IL Offset: 0x001d, Source Types: StackEmpty
IL Offset: 0x0042, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x9
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x9
Loc Type: VLT_REG
Register: RDX
Variable Number: 1
Start Offset: 0x9
End Offset: 0x1E
Loc Type: VLT_REG
Register: RSI
Variable Number: 2
Start Offset: 0xE
End Offset: 0x7B
Loc Type: VLT_REG
Register: RDI
0000: push rdi
UWOP_PUSH_NONVOL RDI(7) 0
0001: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0002: sub rsp, 40
UWOP_ALLOC_SMALL 40 0
0006: mov rsi, rdx
0009: mov edi, 1
000e: mov rcx, qword ptr [int (TYPE_HANDLE)]
0015: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
001b: mov rcx, rax
001e: mov rdx, rsi
0021: lea r11, [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0028: cmp dword ptr [rcx], ecx
002a: call qword ptr [bool System.Type.Equals(System.Type) (VIRTUAL_ENTRY)]
0030: test al, al
0032: jne 0x007b
0034: xor edi, edi
0036: mov rcx, qword ptr [Outer+IGen`1<int> (TYPE_HANDLE)]
003d: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
0043: mov rcx, rax
0046: mov r11, qword ptr ["Failed to verify type of Fld1 in: " (STRING_HANDLE)]
004d: mov rsi, qword ptr [r11]
0050: test rcx, rcx
0053: jne 0x0059
0055: xor edx, edx
0057: jmp 0x0069
0059: lea r11, [string System.Object.ToString() (VIRTUAL_ENTRY)]
0060: call qword ptr [string System.Object.ToString() (VIRTUAL_ENTRY)]
0066: mov rdx, rax
0069: mov rcx, rsi
006c: call qword ptr [string System.String.Concat(string, string) (METHOD_ENTRY)]
0072: mov rcx, rax
0075: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
007b: mov eax, edi
007d: add rsp, 40
0081: pop rsi
0082: pop rdi
0083: ret
_______________________________________________
int Test.Main()
Handle: 0x0600000D
Rid: 13
Number of RuntimeFunctions: 1
Number of fixups: 23
"string" (STRING_HANDLE)
"Test Failed" (STRING_HANDLE)
"Test Passed" (STRING_HANDLE)
double (TYPE_HANDLE)
Gen`1<double> (TYPE_HANDLE)
Gen`1<int[]> (TYPE_HANDLE)
Gen`1<int> (TYPE_HANDLE)
Gen`1<object[][]> (TYPE_HANDLE)
Gen`1<object> (TYPE_HANDLE)
Gen`1<RefX1`1<int>> (TYPE_HANDLE)
Gen`1<string[...,...]> (TYPE_HANDLE)
Gen`1<string> (TYPE_HANDLE)
Gen`1<System.Guid> (TYPE_HANDLE)
Gen`1<ValX1`1<string>> (TYPE_HANDLE)
int (TYPE_HANDLE)
int[] (TYPE_HANDLE)
object (TYPE_HANDLE)
object[][] (TYPE_HANDLE)
RefX1`1<int> (TYPE_HANDLE)
string (TYPE_HANDLE)
string[...,...] (TYPE_HANDLE)
System.Guid (TYPE_HANDLE)
ValX1`1<string> (TYPE_HANDLE)
int Test.Main()
Size: 764 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0006
CountOfUnwindCodes: 3
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0006 FrameOffset 0x0000 NextOffset 0x0 Op 40
UnwindCode[2]: CodeOffset 0x0001 FrameOffset 0x0000 NextOffset 0x0 Op RDI(7)
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0006, Source Types: SourceTypeInvalid
IL Offset: 0x002f, Source Types: SourceTypeInvalid
IL Offset: 0x004a, Source Types: StackEmpty
IL Offset: 0x0054, Source Types: SourceTypeInvalid
IL Offset: 0x005a, Source Types: StackEmpty
IL Offset: 0x006f, Source Types: StackEmpty
IL Offset: 0x0079, Source Types: SourceTypeInvalid
IL Offset: 0x007f, Source Types: StackEmpty
IL Offset: 0x00a3, Source Types: SourceTypeInvalid
IL Offset: 0x00c0, Source Types: StackEmpty
IL Offset: 0x00ca, Source Types: SourceTypeInvalid
IL Offset: 0x00d1, Source Types: StackEmpty
IL Offset: 0x00f6, Source Types: SourceTypeInvalid
IL Offset: 0x00fd, Source Types: StackEmpty
IL Offset: 0x0113, Source Types: StackEmpty
IL Offset: 0x011e, Source Types: SourceTypeInvalid
IL Offset: 0x0125, Source Types: StackEmpty
IL Offset: 0x013b, Source Types: StackEmpty
IL Offset: 0x0147, Source Types: SourceTypeInvalid
IL Offset: 0x014e, Source Types: StackEmpty
IL Offset: 0x0164, Source Types: StackEmpty
IL Offset: 0x016f, Source Types: SourceTypeInvalid
IL Offset: 0x0176, Source Types: StackEmpty
IL Offset: 0x018c, Source Types: StackEmpty
IL Offset: 0x0193, Source Types: StackEmpty
IL Offset: 0x019d, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
IL Offset: 0x01a0, Source Types: StackEmpty
IL Offset: 0x01aa, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x14
End Offset: 0x24
Loc Type: VLT_REG
Register: RSI
Variable Number: 1
Start Offset: 0x54
End Offset: 0x64
Loc Type: VLT_REG
Register: RSI
Variable Number: 2
Start Offset: 0x99
End Offset: 0xA9
Loc Type: VLT_REG
Register: RDI
Variable Number: 3
Start Offset: 0xE1
End Offset: 0xF1
Loc Type: VLT_REG
Register: RDI
Variable Number: 4
Start Offset: 0x11A
End Offset: 0x12A
Loc Type: VLT_REG
Register: RSI
Variable Number: 5
Start Offset: 0x15E
End Offset: 0x16E
Loc Type: VLT_REG
Register: RDI
Variable Number: 6
Start Offset: 0x195
End Offset: 0x1A5
Loc Type: VLT_REG
Register: RSI
Variable Number: 7
Start Offset: 0x1E2
End Offset: 0x1F2
Loc Type: VLT_REG
Register: RDI
Variable Number: 8
Start Offset: 0x242
End Offset: 0x252
Loc Type: VLT_REG
Register: RDI
Variable Number: 9
Start Offset: 0x28F
End Offset: 0x29F
Loc Type: VLT_REG
Register: RDI
0000: push rdi
UWOP_PUSH_NONVOL RDI(7) 0
0001: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0002: sub rsp, 40
UWOP_ALLOC_SMALL 40 0
0006: call qword ptr [Gen`1<int> (NEW_OBJECT)]
000c: mov rsi, rax
000f: xor ecx, ecx
0011: mov dword ptr [rsi + 8], ecx
0014: mov rcx, qword ptr [int (TYPE_HANDLE)]
001b: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
0021: mov rdx, rax
0024: lea rcx, [rsi + 8]
0028: cmp dword ptr [rcx], ecx
002a: call qword ptr [bool Gen`1<int>.InstVerify(System.Type) (METHOD_ENTRY)]
0030: movzx ecx, al
0033: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0039: xorps xmm0, xmm0
003c: movsd qword ptr [rsp + 32], xmm0
0042: call qword ptr [Gen`1<double> (NEW_OBJECT)]
0048: mov rsi, rax
004b: mov rcx, qword ptr [rsp + 32]
0050: mov qword ptr [rsi + 8], rcx
0054: mov rcx, qword ptr [double (TYPE_HANDLE)]
005b: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
0061: mov rdx, rax
0064: lea rcx, [rsi + 8]
0068: cmp dword ptr [rcx], ecx
006a: call qword ptr [bool Gen`1<double>.InstVerify(System.Type) (METHOD_ENTRY)]
0070: movzx ecx, al
0073: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0079: mov rax, qword ptr ["string" (STRING_HANDLE)]
0080: mov rsi, qword ptr [rax]
0083: call qword ptr [Gen`1<string> (NEW_OBJECT)]
0089: mov rdi, rax
008c: lea rcx, [rdi + 8]
0090: mov rdx, rsi
0093: call qword ptr [WRITE_BARRIER (HELPER)]
0099: mov rcx, qword ptr [string (TYPE_HANDLE)]
00a0: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
00a6: mov rdx, rax
00a9: mov rcx, rdi
00ac: lea r11, [Outer+IGen`1<string> #0 (VIRTUAL_ENTRY_SLOT)]
00b3: call qword ptr [Outer+IGen`1<string> #0 (VIRTUAL_ENTRY_SLOT)]
00b9: movzx ecx, al
00bc: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
00c2: call qword ptr [object (NEW_OBJECT)]
00c8: mov rsi, rax
00cb: call qword ptr [Gen`1<object> (NEW_OBJECT)]
00d1: mov rdi, rax
00d4: lea rcx, [rdi + 8]
00d8: mov rdx, rsi
00db: call qword ptr [WRITE_BARRIER (HELPER)]
00e1: mov rcx, qword ptr [object (TYPE_HANDLE)]
00e8: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
00ee: mov rdx, rax
00f1: mov rcx, rdi
00f4: lea r11, [Outer+IGen`1<object> #0 (VIRTUAL_ENTRY_SLOT)]
00fb: call qword ptr [Outer+IGen`1<object> #0 (VIRTUAL_ENTRY_SLOT)]
0101: movzx ecx, al
0104: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
010a: call qword ptr [Gen`1<System.Guid> (NEW_OBJECT)]
0110: mov rsi, rax
0113: xorps xmm0, xmm0
0116: movups xmmword ptr [rsi + 8], xmm0
011a: mov rcx, qword ptr [System.Guid (TYPE_HANDLE)]
0121: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
0127: mov rdx, rax
012a: lea rcx, [rsi + 8]
012e: cmp dword ptr [rcx], ecx
0130: call qword ptr [bool Gen`1<System.Guid>.InstVerify(System.Type) (METHOD_ENTRY)]
0136: movzx ecx, al
0139: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
013f: call qword ptr [RefX1`1<int> (NEW_OBJECT)]
0145: mov rsi, rax
0148: call qword ptr [Gen`1<RefX1`1<int>> (NEW_OBJECT)]
014e: mov rdi, rax
0151: lea rcx, [rdi + 8]
0155: mov rdx, rsi
0158: call qword ptr [WRITE_BARRIER (HELPER)]
015e: mov rcx, qword ptr [RefX1`1<int> (TYPE_HANDLE)]
0165: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
016b: mov rdx, rax
016e: mov rcx, rdi
0171: lea r11, [Outer+IGen`1<RefX1`1<int>> #0 (VIRTUAL_ENTRY_SLOT)]
0178: call qword ptr [Outer+IGen`1<RefX1`1<int>> #0 (VIRTUAL_ENTRY_SLOT)]
017e: movzx ecx, al
0181: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
0187: call qword ptr [Gen`1<ValX1`1<string>> (NEW_OBJECT)]
018d: mov rsi, rax
0190: xor ecx, ecx
0192: mov byte ptr [rsi + 8], cl
0195: mov rcx, qword ptr [ValX1`1<string> (TYPE_HANDLE)]
019c: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
01a2: mov rdx, rax
01a5: mov rcx, rsi
01a8: lea r11, [Outer+IGen`1<ValX1`1<string>> #0 (VIRTUAL_ENTRY_SLOT)]
01af: call qword ptr [Outer+IGen`1<ValX1`1<string>> #0 (VIRTUAL_ENTRY_SLOT)]
01b5: movzx ecx, al
01b8: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
01be: mov ecx, 1
01c3: call qword ptr [int[] (NEW_ARRAY)]
01c9: mov rsi, rax
01cc: call qword ptr [Gen`1<int[]> (NEW_OBJECT)]
01d2: mov rdi, rax
01d5: lea rcx, [rdi + 8]
01d9: mov rdx, rsi
01dc: call qword ptr [WRITE_BARRIER (HELPER)]
01e2: mov rcx, qword ptr [int[] (TYPE_HANDLE)]
01e9: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
01ef: mov rdx, rax
01f2: mov rcx, rdi
01f5: lea r11, [Outer+IGen`1<int[]> #0 (VIRTUAL_ENTRY_SLOT)]
01fc: call qword ptr [Outer+IGen`1<int[]> #0 (VIRTUAL_ENTRY_SLOT)]
0202: movzx ecx, al
0205: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
020b: mov rcx, qword ptr [string[...,...] (TYPE_HANDLE)]
0212: mov edx, 2
0217: mov r8d, 1
021d: mov r9d, 1
0223: call qword ptr [NEW_MULTI_DIM_ARR (HELPER)]
0229: mov rsi, rax
022c: call qword ptr [Gen`1<string[...,...]> (NEW_OBJECT)]
0232: mov rdi, rax
0235: lea rcx, [rdi + 8]
0239: mov rdx, rsi
023c: call qword ptr [WRITE_BARRIER (HELPER)]
0242: mov rcx, qword ptr [string[...,...] (TYPE_HANDLE)]
0249: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
024f: mov rdx, rax
0252: mov rcx, rdi
0255: lea r11, [Outer+IGen`1<string[...,...]> #0 (VIRTUAL_ENTRY_SLOT)]
025c: call qword ptr [Outer+IGen`1<string[...,...]> #0 (VIRTUAL_ENTRY_SLOT)]
0262: movzx ecx, al
0265: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
026b: mov ecx, 1
0270: call qword ptr [object[][] (NEW_ARRAY)]
0276: mov rsi, rax
0279: call qword ptr [Gen`1<object[][]> (NEW_OBJECT)]
027f: mov rdi, rax
0282: lea rcx, [rdi + 8]
0286: mov rdx, rsi
0289: call qword ptr [WRITE_BARRIER (HELPER)]
028f: mov rcx, qword ptr [object[][] (TYPE_HANDLE)]
0296: call qword ptr [GET_RUNTIME_TYPE_HANDLE (HELPER)]
029c: mov rdx, rax
029f: mov rcx, rdi
02a2: lea r11, [Outer+IGen`1<object[][]> #0 (VIRTUAL_ENTRY_SLOT)]
02a9: call qword ptr [Outer+IGen`1<object[][]> #0 (VIRTUAL_ENTRY_SLOT)]
02af: movzx ecx, al
02b2: call qword ptr [void Test.Eval(bool) (METHOD_ENTRY)]
02b8: call qword ptr [Test (STATIC_BASE_NON_GC)]
02be: cmp byte ptr [rax + 76], 0
02c2: je 0x02e0
02c4: mov rcx, qword ptr ["Test Passed" (STRING_HANDLE)]
02cb: mov rcx, qword ptr [rcx]
02ce: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
02d4: mov eax, 100
02d9: add rsp, 40
02dd: pop rsi
02de: pop rdi
02df: ret
02e0: mov rcx, qword ptr ["Test Failed" (STRING_HANDLE)]
02e7: mov rcx, qword ptr [rcx]
02ea: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
02f0: mov eax, 1
02f5: add rsp, 40
02f9: pop rsi
02fa: pop rdi
02fb: ret
_______________________________________________
void Gen`1<__Canon>..ctor(!0)
Handle: 0x0600000A
Rid: 10
Number of RuntimeFunctions: 1
void Gen`1<__Canon>..ctor(!0)
Size: 11 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0007, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: R8
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: R8
Variable Number: 4294967293
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RDX
0000: mov rdx, r8
0003: call qword ptr [CHECKED_WRITE_BARRIER (HELPER)]
0009: nop
000a: ret
_______________________________________________
void Gen`1<double>..ctor(!0)
Handle: 0x0600000A
Rid: 10
Number of RuntimeFunctions: 1
void Gen`1<double>..ctor(!0)
Size: 5 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0007, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: 17
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG_FP
Register: 17
0000: movsd qword ptr [rcx], xmm1
0004: ret
_______________________________________________
void Gen`1<int>..ctor(!0)
Handle: 0x0600000A
Rid: 10
Number of RuntimeFunctions: 1
void Gen`1<int>..ctor(!0)
Size: 3 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0007, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RDX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RDX
0000: mov dword ptr [rcx], edx
0002: ret
_______________________________________________
void Gen`1<System.Guid>..ctor(!0)
Handle: 0x0600000A
Rid: 10
Number of RuntimeFunctions: 1
void Gen`1<System.Guid>..ctor(!0)
Size: 7 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0007, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RDX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RDX
0000: movups xmm0, xmmword ptr [rdx]
0003: movups xmmword ptr [rcx], xmm0
0006: ret
_______________________________________________
void Gen`1<ValX1`1<__Canon>>..ctor(!0)
Handle: 0x0600000A
Rid: 10
Number of RuntimeFunctions: 1
void Gen`1<ValX1`1<__Canon>>..ctor(!0)
Size: 12 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0007, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x5
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x5
End Offset: 0x6
Loc Type: VLT_REG
Register: RCX
Variable Number: 1
Start Offset: 0x0
End Offset: 0x5
Loc Type: VLT_REG
Register: R8
Variable Number: 1
Start Offset: 0x5
End Offset: 0xB
Loc Type: VLT_STK
Base Register: 17
Stack Offset: 24
Variable Number: 4294967293
Start Offset: 0x0
End Offset: 0x5
Loc Type: VLT_REG
Register: RDX
0000: mov qword ptr [rsp + 24], r8
0005: mov al, byte ptr [rsp + 24]
0009: mov byte ptr [rcx], al
000b: ret
_______________________________________________
void Outer..ctor()
Handle: 0x06000009
Rid: 9
Number of RuntimeFunctions: 1
void Outer..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX0..ctor()
Handle: 0x06000001
Rid: 1
Number of RuntimeFunctions: 1
void RefX0..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX1`1<__Canon>..ctor()
Handle: 0x06000003
Rid: 3
Number of RuntimeFunctions: 1
void RefX1`1<__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX1`1<int>..ctor()
Handle: 0x06000003
Rid: 3
Number of RuntimeFunctions: 1
void RefX1`1<int>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX2`2<__Canon,__Canon>..ctor()
Handle: 0x06000005
Rid: 5
Number of RuntimeFunctions: 1
void RefX2`2<__Canon,__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefX3`3<__Canon,__Canon,__Canon>..ctor()
Handle: 0x06000007
Rid: 7
Number of RuntimeFunctions: 1
void RefX3`3<__Canon,__Canon,__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefY0..ctor()
Handle: 0x06000002
Rid: 2
Number of RuntimeFunctions: 1
void RefY0..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefY1`1<__Canon>..ctor()
Handle: 0x06000004
Rid: 4
Number of RuntimeFunctions: 1
void RefY1`1<__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefY2`2<__Canon,__Canon>..ctor()
Handle: 0x06000006
Rid: 6
Number of RuntimeFunctions: 1
void RefY2`2<__Canon,__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void RefY3`3<__Canon,__Canon,__Canon>..ctor()
Handle: 0x06000008
Rid: 8
Number of RuntimeFunctions: 1
void RefY3`3<__Canon,__Canon,__Canon>..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void Test..cctor()
Handle: 0x0600000F
Rid: 15
Number of RuntimeFunctions: 1
void Test..cctor()
Size: 24 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0004
CountOfUnwindCodes: 1
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0004 FrameOffset 0x0000 NextOffset 0x0 Op 40
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x0006, Source Types: StackEmpty
IL Offset: 0x000c, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
0000: sub rsp, 40
UWOP_ALLOC_SMALL 40 0
0004: call qword ptr [Test (STATIC_BASE_NON_GC)]
000a: xor edx, edx
000c: mov dword ptr [rax + 72], edx
000f: mov byte ptr [rax + 76], 1
0013: add rsp, 40
0017: ret
_______________________________________________
void Test..ctor()
Handle: 0x0600000E
Rid: 14
Number of RuntimeFunctions: 1
void Test..ctor()
Size: 1 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0000
CountOfUnwindCodes: 0
FrameRegister: None
FrameOffset: 0x0
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x1
Loc Type: VLT_REG
Register: RCX
0000: ret
_______________________________________________
void Test.Eval(bool)
Handle: 0x0600000C
Rid: 12
Number of RuntimeFunctions: 1
Number of fixups: 1
"Test Failed at location: " (STRING_HANDLE)
void Test.Eval(bool)
Size: 76 bytes
Version: 1
Flags: 0x03 EHANDLER UHANDLER
SizeOfProlog: 0x0005
CountOfUnwindCodes: 2
FrameRegister: None
FrameOffset: 0x0
UnwindCode[0]: CodeOffset 0x0005 FrameOffset 0x0000 NextOffset 0x0 Op 32
Debug Info
Bounds:
Prolog, Source Types: StackEmpty
IL Offset: 0x0000, Source Types: StackEmpty
IL Offset: 0x000c, Source Types: StackEmpty
IL Offset: 0x000f, Source Types: StackEmpty
IL Offset: 0x0015, Source Types: StackEmpty
IL Offset: 0x002e, Source Types: StackEmpty
Epilog, Source Types: StackEmpty
Variable Locations:
Variable Number: 0
Start Offset: 0x0
End Offset: 0x7
Loc Type: VLT_REG
Register: RCX
Variable Number: 0
Start Offset: 0x7
End Offset: 0x18
Loc Type: VLT_REG
Register: RSI
0000: push rsi
UWOP_PUSH_NONVOL RSI(6) 0
0001: sub rsp, 32
UWOP_ALLOC_SMALL 32 0
0005: mov esi, ecx
0007: call qword ptr [Test (STATIC_BASE_NON_GC)]
000d: mov rcx, rax
0010: inc dword ptr [rcx + 72]
0013: test sil, sil
0016: jne 0x0045
0018: mov byte ptr [rcx + 76], sil
001c: mov rax, qword ptr ["Test Failed at location: " (STRING_HANDLE)]
0023: mov rsi, qword ptr [rax]
0026: add rcx, 72
002a: call qword ptr [string System.Int32.ToString() (METHOD_ENTRY)]
0030: mov rdx, rax
0033: mov rcx, rsi
0036: call qword ptr [string System.String.Concat(string, string) (METHOD_ENTRY)]
003c: mov rcx, rax
003f: call qword ptr [void System.Console.WriteLine(string) (METHOD_ENTRY)]
0045: nop
0046: add rsp, 32
004a: pop rsi
004b: ret
=========== Eager fixup counts across all methods ===========
=============================================================
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment