Untitled Diff

Created Diff never expires
14 removals
548 lines
18 additions
553 lines
G_M60723_IG01:
G_M60723_IG01:
push rbp
push rbp
push r15
push r15
push r14
push r14
push r13
push r13
push r12
push r12
push rdi
push rdi
push rsi
push rsi
push rbx
push rbx
sub rsp, 200
sub rsp, 200
lea rbp, [rsp+20H]
lea rbp, [rsp+20H]
xor eax, eax
xor eax, eax
mov qword ptr [rbp+38H], rax
mov qword ptr [rbp+38H], rax
vxorps xmm4, xmm4
vxorps xmm4, xmm4
mov rax, -96
mov rax, -96
vmovdqa xmmword ptr [rbp+rax+A0H], xmm4
vmovdqa xmmword ptr [rbp+rax+A0H], xmm4
vmovdqa xmmword ptr [rbp+rax+B0H], xmm4
vmovdqa xmmword ptr [rbp+rax+B0H], xmm4
vmovdqa xmmword ptr [rbp+rax+C0H], xmm4
vmovdqa xmmword ptr [rbp+rax+C0H], xmm4
add rax, 48
add rax, 48
jne SHORT -5 instr
jne SHORT -5 instr
mov qword ptr [rbp+A0H], rax
mov qword ptr [rbp+A0H], rax
mov rax, 0xD1FFAB1E
mov rax, 0xD1FFAB1E
mov qword ptr [rbp+08H], rax
mov qword ptr [rbp+08H], rax
mov rsi, rcx
mov rsi, rcx
mov edi, r8d
mov edi, r8d
;; size=104 bbWeight=1 PerfScore 20.58
;; size=104 bbWeight=1 PerfScore 20.58
G_M60723_IG02:
G_M60723_IG02:
mov rbx, gword ptr [rdx]
mov rbx, gword ptr [rdx]
mov r14d, dword ptr [rdx+08H]
mov r14d, dword ptr [rdx+08H]
test edi, edi
test edi, edi
jne SHORT G_M60723_IG06
jne SHORT G_M60723_IG06
;; size=11 bbWeight=1 PerfScore 5.25
;; size=11 bbWeight=1 PerfScore 5.25
G_M60723_IG03:
G_M60723_IG03:
mov rcx, rsi
mov rcx, rsi
mov rdx, rbx
mov rdx, rbx
call CORINFO_HELP_CHECKED_ASSIGN_REF
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov dword ptr [rsi+08H], r14d
mov dword ptr [rsi+08H], r14d
mov rax, rsi
mov rax, rsi
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp qword ptr [rbp+08H], rcx
cmp qword ptr [rbp+08H], rcx
je SHORT G_M60723_IG04
je SHORT G_M60723_IG04
call CORINFO_HELP_FAIL_FAST
call CORINFO_HELP_FAIL_FAST
;; size=39 bbWeight=0.50 PerfScore 3.50
;; size=39 bbWeight=0.50 PerfScore 3.50
G_M60723_IG04:
G_M60723_IG04:
nop
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG05:
G_M60723_IG05:
lea rsp, [rbp+A8H]
lea rsp, [rbp+A8H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=20 bbWeight=0.50 PerfScore 2.75
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60723_IG06:
G_M60723_IG06:
cmp edi, 0xD1FFAB1E
cmp edi, 0xD1FFAB1E
jne SHORT G_M60723_IG09
jne SHORT G_M60723_IG09
mov gword ptr [rbp+58H], rbx
mov gword ptr [rbp+58H], rbx
mov dword ptr [rbp+60H], r14d
mov dword ptr [rbp+60H], r14d
lea rdx, [rbp+58H]
lea rdx, [rbp+58H]
lea rcx, [rbp+78H]
lea rcx, [rbp+78H]
mov r8d, 0xD1FFAB1E
mov r8d, 0xD1FFAB1E
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
mov rcx, gword ptr [rbp+78H]
mov rcx, gword ptr [rbp+78H]
mov gword ptr [rbp+58H], rcx
mov gword ptr [rbp+58H], rcx
mov ecx, dword ptr [rbp+80H]
mov ecx, dword ptr [rbp+80H]
mov dword ptr [rbp+60H], ecx
mov dword ptr [rbp+60H], ecx
mov rcx, rsi
mov rcx, rsi
lea rdx, [rbp+58H]
lea rdx, [rbp+58H]
mov r8d, 1
mov r8d, 1
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
mov rax, rsi
mov rax, rsi
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp qword ptr [rbp+08H], rcx
cmp qword ptr [rbp+08H], rcx
je SHORT G_M60723_IG07
je SHORT G_M60723_IG07
call CORINFO_HELP_FAIL_FAST
call CORINFO_HELP_FAIL_FAST
;; size=96 bbWeight=0.50 PerfScore 10.00
;; size=96 bbWeight=0.50 PerfScore 10.00
G_M60723_IG07:
G_M60723_IG07:
nop
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG08:
G_M60723_IG08:
lea rsp, [rbp+A8H]
lea rsp, [rbp+A8H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=20 bbWeight=0.50 PerfScore 2.75
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60723_IG09:
G_M60723_IG09:
test edi, edi
test edi, edi
jge SHORT G_M60723_IG12
jge SHORT G_M60723_IG12
mov gword ptr [rbp+58H], rbx
mov gword ptr [rbp+58H], rbx
mov dword ptr [rbp+60H], r14d
mov dword ptr [rbp+60H], r14d
mov rcx, rsi
mov rcx, rsi
lea rdx, [rbp+58H]
lea rdx, [rbp+58H]
mov r8d, edi
mov r8d, edi
neg r8d
neg r8d
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
call [System.Numerics.BigInteger:op_LeftShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger]
mov rax, rsi
mov rax, rsi
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp qword ptr [rbp+08H], rcx
cmp qword ptr [rbp+08H], rcx
je SHORT G_M60723_IG10
je SHORT G_M60723_IG10
call CORINFO_HELP_FAIL_FAST
call CORINFO_HELP_FAIL_FAST
;; size=55 bbWeight=0.50 PerfScore 6.00
;; size=55 bbWeight=0.50 PerfScore 6.00
G_M60723_IG10:
G_M60723_IG10:
nop
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG11:
G_M60723_IG11:
lea rsp, [rbp+A8H]
lea rsp, [rbp+A8H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=20 bbWeight=0.50 PerfScore 2.75
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60723_IG12:
G_M60723_IG12:
mov r15d, edi
mov r15d, edi
sar r15d, 31
sar r15d, 31
and r15d, 31
and r15d, 31
add r15d, edi
add r15d, edi
sar r15d, 5
sar r15d, 5
mov ecx, r15d
mov ecx, r15d
shl ecx, 5
shl ecx, 5
mov r12d, edi
mov r12d, edi
sub r12d, ecx
sub r12d, ecx
xor r13, r13
xor r13, r13
mov rcx, rbx
mov rcx, rbx
test rcx, rcx
test rcx, rcx
jne SHORT G_M60723_IG13
jne SHORT G_M60723_IG13
mov eax, 1
mov eax, 1
jmp SHORT G_M60723_IG14
jmp SHORT G_M60723_IG14
align [3 bytes for IG36]
align [0 bytes for IG36]
;; size=51 bbWeight=0.50 PerfScore 3.50
;; size=48 bbWeight=0.50 PerfScore 3.50
G_M60723_IG13:
G_M60723_IG13:
mov eax, dword ptr [rbx+08H]
mov eax, dword ptr [rbx+08H]
;; size=3 bbWeight=0.50 PerfScore 1.00
;; size=3 bbWeight=0.50 PerfScore 1.00
G_M60723_IG14:
G_M60723_IG14:
mov dword ptr [rbp+94H], eax
mov dword ptr [rbp+94H], eax
cmp eax, 64
cmp eax, 64
jg SHORT G_M60723_IG15
jg SHORT G_M60723_IG15
test dword ptr [rsp], esp
test dword ptr [rsp], esp
sub rsp, 256
sub rsp, 256
lea r8, [rsp+20H]
lea r8, [rsp+20H]
mov r9d, 64
mov r9d, 64
jmp SHORT G_M60723_IG17
jmp SHORT G_M60723_IG17
;; size=34 bbWeight=0.50 PerfScore 4.12
;; size=34 bbWeight=0.50 PerfScore 4.12
G_M60723_IG15:
G_M60723_IG15:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 69
mov edx, 69
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov edx, dword ptr [rbp+94H]
mov edx, dword ptr [rbp+94H]
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this]
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this]
mov r13, rax
mov r13, rax
test r13, r13
test r13, r13
jne SHORT G_M60723_IG16
jne SHORT G_M60723_IG16
xor r8, r8
xor r8, r8
xor r9d, r9d
xor r9d, r9d
jmp SHORT G_M60723_IG17
jmp SHORT G_M60723_IG17
;; size=63 bbWeight=0.50 PerfScore 7.38
;; size=63 bbWeight=0.50 PerfScore 7.38
G_M60723_IG16:
G_M60723_IG16:
lea r8, bword ptr [r13+10H]
lea r8, bword ptr [r13+10H]
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+28H], r13
mov r9d, dword ptr [r13+08H]
mov r9d, dword ptr [r13+08H]
mov r13, gword ptr [rbp+28H]
mov r13, gword ptr [rbp+28H]
;; size=16 bbWeight=0.50 PerfScore 2.25
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M60723_IG17:
G_M60723_IG17:
mov eax, dword ptr [rbp+94H]
mov eax, dword ptr [rbp+94H]
cmp eax, r9d
cmp eax, r9d
ja G_M60723_IG56
ja G_M60723_IG56
mov r9, r8
mov r9, r8
mov bword ptr [rbp+18H], r9
mov bword ptr [rbp+18H], r9
mov dword ptr [rbp+6CH], eax
mov dword ptr [rbp+6CH], eax
test rbx, rbx
test rbx, rbx
jne SHORT G_M60723_IG20
jne SHORT G_M60723_IG20
test eax, eax
test eax, eax
je G_M60723_IG57
je G_M60723_IG57
test r14d, r14d
test r14d, r14d
jl SHORT G_M60723_IG18
jl SHORT G_M60723_IG18
mov r8d, r14d
mov r8d, r14d
jmp SHORT G_M60723_IG19
jmp SHORT G_M60723_IG19
;; size=48 bbWeight=0.50 PerfScore 5.25
;; size=48 bbWeight=0.50 PerfScore 5.25
G_M60723_IG18:
G_M60723_IG18:
mov r8d, r14d
mov r8d, r14d
neg r8d
neg r8d
;; size=6 bbWeight=0.50 PerfScore 0.25
;; size=6 bbWeight=0.50 PerfScore 0.25
G_M60723_IG19:
G_M60723_IG19:
mov dword ptr [r9], r8d
mov dword ptr [r9], r8d
jmp SHORT G_M60723_IG21
jmp SHORT G_M60723_IG21
;; size=5 bbWeight=0.50 PerfScore 1.50
;; size=5 bbWeight=0.50 PerfScore 1.50
G_M60723_IG20:
G_M60723_IG20:
lea rdx, bword ptr [rbx+10H]
lea rdx, bword ptr [rbx+10H]
mov r8d, dword ptr [rbx+08H]
mov r8d, dword ptr [rbx+08H]
cmp r8d, eax
cmp r8d, eax
ja G_M60723_IG55
ja G_M60723_IG55
mov r8d, r8d
mov r8d, r8d
shl r8, 2
shl r8, 2
mov rcx, r9
mov rcx, r9
call [System.Buffer:Memmove(byref,byref,ulong)]
call [System.Buffer:Memmove(byref,byref,ulong)]
mov eax, dword ptr [rbp+94H]
mov eax, dword ptr [rbp+94H]
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
;; size=43 bbWeight=0.50 PerfScore 4.88
;; size=43 bbWeight=0.50 PerfScore 4.88
G_M60723_IG21:
G_M60723_IG21:
mov ebx, r14d
mov ebx, r14d
shr ebx, 31
shr ebx, 31
xor r14d, r14d
xor r14d, r14d
test ebx, ebx
test ebx, ebx
je SHORT G_M60723_IG25
je G_M60723_IG25
movsxd rcx, edi
movsxd rcx, edi
mov edx, eax
mov edx, eax
shl rdx, 5
shl rdx, 5
cmp rcx, rdx
cmp rcx, rdx
jl SHORT G_M60723_IG22
jl SHORT G_M60723_IG22
lea rcx, [rbp+98H]
mov r9, 0xD1FFAB1E ; box for System.Numerics.BigInteger:s_bnMinusOneInt
call [System.Numerics.BigInteger:get_MinusOne():System.Numerics.BigInteger]
mov rax, gword ptr [r9]
add rax, 8
mov rcx, gword ptr [rax]
mov gword ptr [rbp+98H], rcx
mov ecx, dword ptr [rax+08H]
mov dword ptr [rbp+A0H], ecx
jmp G_M60723_IG49
jmp G_M60723_IG49
;; size=45 bbWeight=0.50 PerfScore 5.00
;; size=72 bbWeight=0.50 PerfScore 7.50
G_M60723_IG22:
G_M60723_IG22:
mov bword ptr [rbp+48H], r9
mov bword ptr [rbp+48H], r9
mov dword ptr [rbp+50H], eax
mov dword ptr [rbp+50H], eax
lea rcx, [rbp+48H]
lea rcx, [rbp+48H]
call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])]
call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])]
test r12d, r12d
test r12d, r12d
jne SHORT G_M60723_IG23
jne SHORT G_M60723_IG23
mov r14d, dword ptr [rbp+94H]
mov r14d, dword ptr [rbp+94H]
lea edi, [r14-01H]
lea edi, [r14-01H]
cmp edi, r14d
cmp edi, r14d
jae G_M60723_IG57
jae G_M60723_IG57
mov ecx, edi
mov ecx, edi
mov rdi, bword ptr [rbp+18H]
mov rdi, bword ptr [rbp+18H]
cmp dword ptr [rdi+4*rcx], 0
cmp dword ptr [rdi+4*rcx], 0
sete cl
sete cl
movzx rcx, cl
movzx rcx, cl
jmp SHORT G_M60723_IG24
jmp SHORT G_M60723_IG24
;; size=60 bbWeight=0.50 PerfScore 8.50
;; size=60 bbWeight=0.50 PerfScore 8.50
G_M60723_IG23:
G_M60723_IG23:
xor ecx, ecx
xor ecx, ecx
;; size=2 bbWeight=0.50 PerfScore 0.12
;; size=2 bbWeight=0.50 PerfScore 0.12
G_M60723_IG24:
G_M60723_IG24:
movzx r14, cl
movzx r14, cl
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
;; size=8 bbWeight=0.50 PerfScore 0.62
;; size=8 bbWeight=0.50 PerfScore 0.62
G_M60723_IG25:
G_M60723_IG25:
xor rdi, rdi
xor rdi, rdi
mov r10d, dword ptr [rbp+6CH]
mov r10d, dword ptr [rbp+6CH]
mov eax, r10d
mov eax, r10d
sub eax, r15d
sub eax, r15d
jns SHORT G_M60723_IG26
jns SHORT G_M60723_IG26
xor r8d, r8d
xor r8d, r8d
jmp SHORT G_M60723_IG27
jmp SHORT G_M60723_IG27
;; size=19 bbWeight=0.50 PerfScore 2.50
;; size=19 bbWeight=0.50 PerfScore 2.50
G_M60723_IG26:
G_M60723_IG26:
mov r8d, eax
mov r8d, eax
;; size=3 bbWeight=0.50 PerfScore 0.12
;; size=3 bbWeight=0.50 PerfScore 0.12
G_M60723_IG27:
G_M60723_IG27:
mov dword ptr [rbp+90H], r14d
mov dword ptr [rbp+90H], r14d
test r14d, r14d
test r14d, r14d
jne SHORT G_M60723_IG28
jne SHORT G_M60723_IG28
xor eax, eax
xor eax, eax
jmp SHORT G_M60723_IG29
jmp SHORT G_M60723_IG29
;; size=16 bbWeight=0.50 PerfScore 2.25
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M60723_IG28:
G_M60723_IG28:
mov eax, 1
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
;; size=5 bbWeight=0.50 PerfScore 0.12
G_M60723_IG29:
G_M60723_IG29:
add eax, r8d
add eax, r8d
mov dword ptr [rbp+8CH], eax
mov dword ptr [rbp+8CH], eax
cmp eax, 64
cmp eax, 64
ja SHORT G_M60723_IG30
ja SHORT G_M60723_IG30
test dword ptr [rsp], esp
test dword ptr [rsp], esp
sub rsp, 256
sub rsp, 256
lea r8, [rsp+20H]
lea r8, [rsp+20H]
mov r11d, 64
mov r11d, 64
jmp SHORT G_M60723_IG33
jmp SHORT G_M60723_IG33
;; size=37 bbWeight=0.50 PerfScore 4.25
;; size=37 bbWeight=0.50 PerfScore 4.25
G_M60723_IG30:
G_M60723_IG30:
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 69
mov edx, 69
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov edx, dword ptr [rbp+8CH]
mov edx, dword ptr [rbp+8CH]
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this]
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Rent(int):uint[]:this]
mov rdi, rax
mov rdi, rax
test rdi, rdi
test rdi, rdi
jne SHORT G_M60723_IG31
jne SHORT G_M60723_IG31
xor r8, r8
xor r8, r8
xor r11d, r11d
xor r11d, r11d
jmp SHORT G_M60723_IG32
jmp SHORT G_M60723_IG32
;; size=63 bbWeight=0.50 PerfScore 7.38
;; size=63 bbWeight=0.50 PerfScore 7.38
G_M60723_IG31:
G_M60723_IG31:
lea r8, bword ptr [rdi+10H]
lea r8, bword ptr [rdi+10H]
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
mov r11d, dword ptr [rdi+08H]
mov r11d, dword ptr [rdi+08H]
mov rdi, gword ptr [rbp+20H]
mov rdi, gword ptr [rbp+20H]
;; size=16 bbWeight=0.50 PerfScore 2.25
;; size=16 bbWeight=0.50 PerfScore 2.25
G_M60723_IG32:
G_M60723_IG32:
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
;; size=4 bbWeight=0.50 PerfScore 0.50
;; size=4 bbWeight=0.50 PerfScore 0.50
G_M60723_IG33:
G_M60723_IG33:
mov eax, dword ptr [rbp+8CH]
mov eax, dword ptr [rbp+8CH]
cmp eax, r11d
cmp eax, r11d
ja G_M60723_IG56
ja G_M60723_IG56
mov r11, r8
mov r11, r8
mov rcx, r11
mov rcx, r11
mov bword ptr [rbp+10H], rcx
mov bword ptr [rbp+10H], rcx
mov dword ptr [rbp+68H], eax
mov dword ptr [rbp+68H], eax
mov edx, eax
mov edx, eax
shl rdx, 2
shl rdx, 2
mov qword ptr [rbp+70H], rdx
mov qword ptr [rbp+70H], rdx
test rdx, rdx
test rdx, rdx
je SHORT G_M60723_IG35
je SHORT G_M60723_IG35
cmp rdx, 768
cmp rdx, 768
ja SHORT G_M60723_IG34
ja SHORT G_M60723_IG34
xor edx, edx
xor edx, edx
mov r8d, dword ptr [rbp+70H]
mov r8d, dword ptr [rbp+70H]
call CORINFO_HELP_MEMSET
call CORINFO_HELP_MEMSET
mov rcx, bword ptr [rbp+10H]
mov rcx, bword ptr [rbp+10H]
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
jmp SHORT G_M60723_IG35
jmp SHORT G_M60723_IG35
;; size=73 bbWeight=0.50 PerfScore 7.62
;; size=73 bbWeight=0.50 PerfScore 7.62
G_M60723_IG34:
G_M60723_IG34:
mov rdx, qword ptr [rbp+70H]
mov rdx, qword ptr [rbp+70H]
call [System.Buffer:_ZeroMemory(byref,ulong)]
call [System.Buffer:_ZeroMemory(byref,ulong)]
mov rcx, bword ptr [rbp+10H]
mov rcx, bword ptr [rbp+10H]
mov r9, bword ptr [rbp+18H]
mov r9, bword ptr [rbp+18H]
;; size=18 bbWeight=0.50 PerfScore 3.00
;; size=18 bbWeight=0.50 PerfScore 3.00
G_M60723_IG35:
G_M60723_IG35:
test r12d, r12d
test r12d, r12d
jne SHORT G_M60723_IG39
jne SHORT G_M60723_IG39
mov r10d, dword ptr [rbp+6CH]
mov r10d, dword ptr [rbp+6CH]
lea edx, [r10-01H]
lea edx, [r10-01H]
cmp edx, r15d
cmp edx, r15d
jl SHORT G_M60723_IG38
jl SHORT G_M60723_IG38
;; size=18 bbWeight=0.50 PerfScore 2.00
;; size=18 bbWeight=0.50 PerfScore 2.00
G_M60723_IG36:
G_M60723_IG36:
mov r8d, edx
mov r8d, edx
sub r8d, r15d
sub r8d, r15d
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
cmp r8d, eax
cmp r8d, eax
jae G_M60723_IG57
jae G_M60723_IG57
mov r8d, r8d
mov r8d, r8d
cmp edx, r10d
cmp edx, r10d
jae G_M60723_IG57
jae G_M60723_IG57
mov r11d, edx
mov r11d, edx
mov r11d, dword ptr [r9+4*r11]
mov r11d, dword ptr [r9+4*r11]
mov dword ptr [rcx+4*r8], r11d
mov dword ptr [rcx+4*r8], r11d
dec edx
dec edx
cmp edx, r15d
cmp edx, r15d
jge SHORT G_M60723_IG36
jge SHORT G_M60723_IG36
;; size=48 bbWeight=4 PerfScore 36.00
;; size=48 bbWeight=4 PerfScore 36.00
G_M60723_IG37:
G_M60723_IG37:
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
jmp G_M60723_IG46
jmp G_M60723_IG46
;; size=16 bbWeight=0.50 PerfScore 2.50
;; size=16 bbWeight=0.50 PerfScore 2.50
G_M60723_IG38:
G_M60723_IG38:
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
jmp G_M60723_IG46
jmp G_M60723_IG46
align [0 bytes for IG40]
align [0 bytes for IG40]
;; size=16 bbWeight=0.25 PerfScore 1.25
;; size=16 bbWeight=0.25 PerfScore 1.25
G_M60723_IG39:
G_M60723_IG39:
mov edx, r12d
mov edx, r12d
neg edx
neg edx
add edx, 32
add edx, 32
xor r8d, r8d
xor r8d, r8d
mov r10d, dword ptr [rbp+6CH]
mov r10d, dword ptr [rbp+6CH]
lea r11d, [r10-01H]
lea r11d, [r10-01H]
mov r14d, r11d
mov r14d, r11d
cmp r14d, r15d
cmp r14d, r15d
mov gword ptr [rbp+28H], r13
mov gword ptr [rbp+28H], r13
jl SHORT G_M60723_IG43
jl SHORT G_M60723_IG43
;; size=31 bbWeight=0.50 PerfScore 2.50
;; size=31 bbWeight=0.50 PerfScore 2.50
G_M60723_IG40:
G_M60723_IG40:
cmp r14d, r10d
cmp r14d, r10d
jae G_M60723_IG57
jae G_M60723_IG57
mov r13d, r14d
mov r13d, r14d
mov r13d, dword ptr [r9+4*r13]
mov r13d, dword ptr [r9+4*r13]
test ebx, ebx
test ebx, ebx
je SHORT G_M60723_IG42
je SHORT G_M60723_IG42
;; size=20 bbWeight=4 PerfScore 19.00
;; size=20 bbWeight=4 PerfScore 19.00
G_M60723_IG41:
G_M60723_IG41:
mov dword ptr [rbp+34H], r11d
mov dword ptr [rbp+34H], r11d
cmp r14d, r11d
cmp r14d, r11d
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
jne SHORT G_M60723_IG44
jne SHORT G_M60723_IG44
mov r8d, r14d
mov r8d, r14d
sub r8d, r15d
sub r8d, r15d
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
cmp r8d, eax
cmp r8d, eax
jae G_M60723_IG57
jae G_M60723_IG57
mov r8d, r8d
mov r8d, r8d
shrx edi, r13d, r12d
shrx edi, r13d, r12d
mov r11d, -1
mov r11d, -1
shlx r11d, r11d, edx
shlx r11d, r11d, edx
or r11d, edi
or r11d, edi
mov dword ptr [rcx+4*r8], r11d
mov dword ptr [rcx+4*r8], r11d
jmp SHORT G_M60723_IG45
jmp SHORT G_M60723_IG45
;; size=59 bbWeight=2 PerfScore 21.50
;; size=59 bbWeight=2 PerfScore 21.50
G_M60723_IG42:
G_M60723_IG42:
mov dword ptr [rbp+34H], r11d
mov dword ptr [rbp+34H], r11d
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
jmp SHORT G_M60723_IG44
jmp SHORT G_M60723_IG44
;; size=10 bbWeight=2 PerfScore 8.00
;; size=10 bbWeight=2 PerfScore 8.00
G_M60723_IG43:
G_M60723_IG43:
mov gword ptr [rbp+20H], rdi
mov gword ptr [rbp+20H], rdi
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
jmp SHORT G_M60723_IG46
jmp SHORT G_M60723_IG46
;; size=9 bbWeight=0.25 PerfScore 1.00
;; size=9 bbWeight=0.25 PerfScore 1.00
G_M60723_IG44:
G_M60723_IG44:
mov edi, r14d
mov edi, r14d
sub edi, r15d
sub edi, r15d
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
cmp edi, eax
cmp edi, eax
jae G_M60723_IG57
jae G_M60723_IG57
mov edi, edi
mov edi, edi
shrx r11d, r13d, r12d
shrx r11d, r13d, r12d
or r8d, r11d
or r8d, r11d
mov dword ptr [rcx+4*rdi], r8d
mov dword ptr [rcx+4*rdi], r8d
;; size=31 bbWeight=2 PerfScore 9.50
;; size=31 bbWeight=2 PerfScore 9.50
G_M60723_IG45:
G_M60723_IG45:
shlx r8d, r13d, edx
shlx r8d, r13d, edx
dec r14d
dec r14d
cmp r14d, r15d
cmp r14d, r15d
mov r11d, dword ptr [rbp+34H]
mov r11d, dword ptr [rbp+34H]
jge G_M60723_IG54
jge G_M60723_IG54
;; size=21 bbWeight=4 PerfScore 12.00
;; size=21 bbWeight=4 PerfScore 12.00
G_M60723_IG46:
G_M60723_IG46:
test ebx, ebx
test ebx, ebx
je SHORT G_M60723_IG48
je SHORT G_M60723_IG48
cmp dword ptr [rbp+90H], 0
cmp dword ptr [rbp+90H], 0
je SHORT G_M60723_IG47
je SHORT G_M60723_IG47
lea edx, [rax-01H]
lea edx, [rax-01H]
cmp edx, eax
cmp edx, eax
jae G_M60723_IG57
jae G_M60723_IG57
mov edx, edx
mov edx, edx
mov dword ptr [rcx+4*rdx], -1
mov dword ptr [rcx+4*rdx], -1
;; size=33 bbWeight=0.50 PerfScore 3.62
;; size=33 bbWeight=0.50 PerfScore 3.62
G_M60723_IG47:
G_M60723_IG47:
mov bword ptr [rbp+48H], rcx
mov bword ptr [rbp+48H], rcx
mov dword ptr [rbp+50H], eax
mov dword ptr [rbp+50H], eax
lea rcx, [rbp+48H]
lea rcx, [rbp+48H]
call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])]
call [System.Numerics.NumericsHelpers:DangerousMakeTwosComplement(System.Span`1[uint])]
mov eax, dword ptr [rbp+68H]
mov eax, dword ptr [rbp+68H]
mov rcx, bword ptr [rbp+10H]
mov rcx, bword ptr [rbp+10H]
;; size=24 bbWeight=0.50 PerfScore 3.75
;; size=24 bbWeight=0.50 PerfScore 3.75
G_M60723_IG48:
G_M60723_IG48:
mov bword ptr [rbp+38H], rcx
mov bword ptr [rbp+38H], rcx
mov dword ptr [rbp+40H], eax
mov dword ptr [rbp+40H], eax
lea rdx, [rbp+38H]
lea rdx, [rbp+38H]
lea rcx, [rbp+98H]
lea rcx, [rbp+98H]
mov r8d, ebx
mov r8d, ebx
call [System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],bool):this]
call [System.Numerics.BigInteger:.ctor(System.ReadOnlySpan`1[uint],bool):this]
mov rdi, gword ptr [rbp+20H]
mov rdi, gword ptr [rbp+20H]
test rdi, rdi
test rdi, rdi
je G_M60723_IG53
je G_M60723_IG53
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 69
mov edx, 69
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov rdx, rdi
mov rdx, rdi
xor r8d, r8d
xor r8d, r8d
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this]
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this]
mov r13, gword ptr [rbp+28H]
mov r13, gword ptr [rbp+28H]
;; size=91 bbWeight=0.50 PerfScore 9.88
;; size=91 bbWeight=0.50 PerfScore 9.88
G_M60723_IG49:
G_M60723_IG49:
test r13, r13
test r13, r13
je SHORT G_M60723_IG50
je SHORT G_M60723_IG50
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
mov edx, 69
mov edx, 69
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, 0xD1FFAB1E ; data for System.Buffers.ArrayPool`1[uint]:s_shared
mov rcx, gword ptr [rcx]
mov rcx, gword ptr [rcx]
mov rdx, r13
mov rdx, r13
xor r8d, r8d
xor r8d, r8d
cmp dword ptr [rcx], ecx
cmp dword ptr [rcx], ecx
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this]
call [System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1[uint]:Return(uint[],bool):this]
;; size=52 bbWeight=0.50 PerfScore 5.75
;; size=52 bbWeight=0.50 PerfScore 5.75
G_M60723_IG50:
G_M60723_IG50:
mov rdx, gword ptr [rbp+98H]
mov rdx, gword ptr [rbp+98H]
mov rcx, rsi
mov rcx, rsi
call CORINFO_HELP_CHECKED_ASSIGN_REF
call CORINFO_HELP_CHECKED_ASSIGN_REF
mov eax, dword ptr [rbp+A0H]
mov eax, dword ptr [rbp+A0H]
mov dword ptr [rsi+08H], eax
mov dword ptr [rsi+08H], eax
mov rax, rsi
mov rax, rsi
mov rcx, 0xD1FFAB1E
mov rcx, 0xD1FFAB1E
cmp qword ptr [rbp+08H], rcx
cmp qword ptr [rbp+08H], rcx
je SHORT G_M60723_IG51
je SHORT G_M60723_IG51
call CORINFO_HELP_FAIL_FAST
call CORINFO_HELP_FAIL_FAST
;; size=48 bbWeight=0.50 PerfScore 4.38
;; size=48 bbWeight=0.50 PerfScore 4.38
G_M60723_IG51:
G_M60723_IG51:
nop
nop
;; size=1 bbWeight=0.50 PerfScore 0.12
;; size=1 bbWeight=0.50 PerfScore 0.12
G_M60723_IG52:
G_M60723_IG52:
lea rsp, [rbp+A8H]
lea rsp, [rbp+A8H]
pop rbx
pop rbx
pop rsi
pop rsi
pop rdi
pop rdi
pop r12
pop r12
pop r13
pop r13
pop r14
pop r14
pop r15
pop r15
pop rbp
pop rbp
ret
ret
;; size=20 bbWeight=0.50 PerfScore 2.75
;; size=20 bbWeight=0.50 PerfScore 2.75
G_M60723_IG53:
G_M60723_IG53:
mov r13, gword ptr [rbp+28H]
mov r13, gword ptr [rbp+28H]
jmp SHORT G_M60723_IG49
jmp SHORT G_M60723_IG49
;; size=6 bbWeight=0.25 PerfScore 0.75
;; size=6 bbWeight=0.25 PerfScore 0.75
G_M60723_IG54:
G_M60723_IG54:
mov rdi, gword ptr [rbp+20H]
mov rdi, gword ptr [rbp+20H]
jmp G_M60723_IG40
jmp G_M60723_IG40
;; size=9 bbWeight=2 PerfScore 6.00
;; size=9 bbWeight=2 PerfScore 6.00
G_M60723_IG55:
G_M60723_IG55:
call [System.ThrowHelper:ThrowArgumentException_DestinationTooShort()]
call [System.ThrowHelper:ThrowArgumentException_DestinationTooShort()]
int3
int3
;; size=7 bbWeight=0 PerfScore 0.00
;; size=7 bbWeight=0 PerfScore 0.00
G_M60723_IG56:
G_M60723_IG56:
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
call [System.ThrowHelper:ThrowArgumentOutOfRangeException()]
int3
int3
;; size=7 bbWeight=0 PerfScore 0.00
;; size=7 bbWeight=0 PerfScore 0.00
G_M60723_IG57:
G_M60723_IG57:
call CORINFO_HELP_RNGCHKFAIL
call CORINFO_HELP_RNGCHKFAIL
int3
int3
;; size=6 bbWeight=0 PerfScore 0.00
;; size=6 bbWeight=0 PerfScore 0.00


; Total bytes of code 1589, prolog size 104, PerfScore 439.48, instruction count 431, allocated bytes for code 1589 (MethodHash=874c12cc) for method System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
; Total bytes of code 1613, prolog size 104, PerfScore 444.38, instruction count 436, allocated bytes for code 1613 (MethodHash=874c12cc) for method System.Numerics.BigInteger:op_RightShift(System.Numerics.BigInteger,int):System.Numerics.BigInteger
; ============================================================
; ============================================================