Skip to content

Instantly share code, notes, and snippets.

@Alan-FGR
Created February 28, 2019 17:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Alan-FGR/192c27433210a899e95fa6856f09b72c to your computer and use it in GitHub Desktop.
Save Alan-FGR/192c27433210a899e95fa6856f09b72c to your computer and use it in GitHub Desktop.
.method public hidebysig instance int32 First() cil managed
{
.custom instance void [BenchmarkDotNet]BenchmarkDotNet.Attributes.BenchmarkAttribute::.ctor() = ( 01 00 00 00 )
// Code size 80 (0x50)
.maxstack 2
.locals init (int32 V_0,
int32 V_1,
int32 V_2,
int32 V_3,
int32 V_4)
IL_0000: ldc.i4.0
IL_0001: stloc.0
IL_0002: ldc.i4 0xffffff
IL_0007: stloc.1
IL_0008: ldc.i4.1
IL_0009: stloc.2
IL_000a: ldc.i4.1
IL_000b: stloc.3
IL_000c: ldc.i4.0
IL_000d: stloc.s V_4
IL_000f: br.s IL_0043
IL_0011: ldloc.0
IL_0012: ldloc.s V_4
IL_0014: add
IL_0015: stloc.0
IL_0016: ldloc.0
IL_0017: ldloc.2
IL_0018: sub
IL_0019: stloc.0
IL_001a: ldloc.0
IL_001b: ldloc.2
IL_001c: ble.s IL_0022
IL_001e: ldloc.2
IL_001f: ldc.i4.1
IL_0020: add
IL_0021: stloc.2
IL_0022: ldloc.0
IL_0023: ldloc.2
IL_0024: bge.s IL_002a
IL_0026: ldloc.3
IL_0027: ldc.i4.1
IL_0028: sub
IL_0029: stloc.3
IL_002a: ldloc.0
IL_002b: ldloc.2
IL_002c: bne.un.s IL_0030
IL_002e: ldc.i4.5
IL_002f: stloc.3
IL_0030: ldloc.1
IL_0031: ldc.i4.1
IL_0032: sub
IL_0033: stloc.1
IL_0034: ldloc.1
IL_0035: ldloc.s V_4
IL_0037: bne.un.s IL_003d
IL_0039: ldloc.2
IL_003a: ldc.i4.1
IL_003b: add
IL_003c: stloc.2
IL_003d: ldloc.s V_4
IL_003f: ldc.i4.1
IL_0040: add
IL_0041: stloc.s V_4
IL_0043: ldloc.s V_4
IL_0045: ldc.i4 0xffffff
IL_004a: blt.s IL_0011
IL_004c: ldloc.2
IL_004d: ldloc.3
IL_004e: add
IL_004f: ret
} // end of method Repro::First
L0000: push ebp
L0001: mov ebp, esp
L0003: sub esp, 0x30
L0006: mov [ebp-0x4], ecx
L0009: cmp dword [0x2b481578], 0x0
L0010: jz L0017
L0012: call 0x73864330
L0017: xor edx, edx
L0019: mov [ebp-0x10], edx
L001c: xor edx, edx
L001e: mov [ebp-0x8], edx
L0021: xor edx, edx
L0023: mov [ebp-0x18], edx
L0026: xor edx, edx
L0028: mov [ebp-0x14], edx
L002b: xor edx, edx
L002d: mov [ebp-0xc], edx
L0030: mov dword [ebp-0x1c], 0x0
L0037: mov dword [ebp-0x20], 0x0
L003e: mov dword [ebp-0x24], 0x0
L0045: mov dword [ebp-0x28], 0x0
L004c: mov dword [ebp-0x2c], 0x0
L0053: xor edx, edx
L0055: mov [ebp-0x30], edx
L0058: nop
L0059: xor edx, edx
L005b: mov [ebp-0x8], edx
L005e: mov dword [ebp-0xc], 0xffffff
L0065: mov dword [ebp-0x10], 0x1
L006c: mov dword [ebp-0x14], 0x1
L0073: xor edx, edx
L0075: mov [ebp-0x18], edx
L0078: nop
L0079: jmp L00f3
L007b: nop
L007c: mov eax, [ebp-0x18]
L007f: add [ebp-0x8], eax
L0082: mov eax, [ebp-0x10]
L0085: sub [ebp-0x8], eax
L0088: mov eax, [ebp-0x8]
L008b: cmp eax, [ebp-0x10]
L008e: setg al
L0091: movzx eax, al
L0094: mov [ebp-0x1c], eax
L0097: cmp dword [ebp-0x1c], 0x0
L009b: jz L00a0
L009d: inc dword [ebp-0x10]
L00a0: mov eax, [ebp-0x8]
L00a3: cmp eax, [ebp-0x10]
L00a6: setl al
L00a9: movzx eax, al
L00ac: mov [ebp-0x20], eax
L00af: cmp dword [ebp-0x20], 0x0
L00b3: jz L00b8
L00b5: dec dword [ebp-0x14]
L00b8: mov eax, [ebp-0x8]
L00bb: cmp eax, [ebp-0x10]
L00be: setz al
L00c1: movzx eax, al
L00c4: mov [ebp-0x24], eax
L00c7: cmp dword [ebp-0x24], 0x0
L00cb: jz L00d4
L00cd: mov dword [ebp-0x14], 0x5
L00d4: dec dword [ebp-0xc]
L00d7: mov eax, [ebp-0xc]
L00da: cmp eax, [ebp-0x18]
L00dd: setz al
L00e0: movzx eax, al
L00e3: mov [ebp-0x28], eax
L00e6: cmp dword [ebp-0x28], 0x0
L00ea: jz L00ef
L00ec: inc dword [ebp-0x10]
L00ef: nop
L00f0: inc dword [ebp-0x18]
L00f3: cmp dword [ebp-0x18], 0xffffff
L00fa: setl al
L00fd: movzx eax, al
L0100: mov [ebp-0x2c], eax
L0103: cmp dword [ebp-0x2c], 0x0
L0107: jnz Repro.First()
L010d: mov eax, [ebp-0x10]
L0110: add eax, [ebp-0x14]
L0113: mov [ebp-0x30], eax
L0116: nop
L0117: jmp L0119
L0119: mov eax, [ebp-0x30]
L011c: mov esp, ebp
L011e: pop ebp
L011f: ret
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment