Unfortunately, it's a little hard to say - it looks like a hardware (CPU or RAM) issue, but I can't give it a 100% backing as a hardware problem either:
Code:
// This should call loopne on that cng function and offset, which would
// decrement ECX over and over and test for 0 until it got there:
2: kd> u fffff880`014f232d
cng!SHA512Transform+0xb5e:
fffff880`014f232d e00f loopne cng!SHA512Transform+0xb6f (fffff880`014f233e)
fffff880`014f232f 4c8b04c4 mov r8,qword ptr [rsp+rax*8]
fffff880`014f2333 418d45fe lea eax,[r13-2]
fffff880`014f2337 83e00f and eax,0Fh
fffff880`014f233a 488b0cc4 mov rcx,qword ptr [rsp+rax*8]
fffff880`014f233e 488bd1 mov rdx,rcx
fffff880`014f2341 488bc1 mov rax,rcx
fffff880`014f2344 48c1e906 shr rcx,6
// The stack indeed does appear to go into ECX (and then crash, of course):
2: kd> kn
*** Stack trace for last set context - .thread/.cxr resets it
# Child-SP RetAddr Call Site
00 fffff880`08ed5f98 fffff880`014f232d 0xfffff87f`844f232d
01 fffff880`08ed5fa0 fffff880`014f169c cng!SHA512Transform+0xb5e
02 fffff880`08ed6080 fffff880`014f155f cng!SHA512Update+0x6c
03 fffff880`08ed60c0 fffff880`014f7b03 cng!SHA512Final+0xc5
04 fffff880`08ed61a0 fffff880`014f79ec cng!GetHashInterface+0xffffffff`fffffd93
05 fffff880`08ed6310 fffff880`014f7994 cng!GetHashInterface+0xffffffff`fffffefc
06 fffff880`08ed6350 fffff880`014ffe09 cng!GetHashInterface+0xffffffff`ffffffd4
07 fffff880`08ed6390 fffff880`015198d9 cng! ?? ::FNODOBFM::`string'+0x212a
08 fffff880`08ed6460 fffff880`015005c9 cng!CngEncryptMemoryInitialize+0x29
09 fffff880`08ed64d0 fffff880`014f5ce5 cng! ?? ::FNODOBFM::`string'+0x2939
0a fffff880`08ed6880 fffff880`012121bb cng!CngDeviceControl+0x405
0b fffff880`08ed6980 fffff880`012120aa ksecdd!KsecDeviceControl+0x5b
0c fffff880`08ed69d0 fffff800`01fa6a97 ksecdd!KsecDispatch+0x9a
0d fffff880`08ed6a10 fffff800`01fa72f6 nt!IopXxxControlFile+0x607
0e fffff880`08ed6b40 fffff800`01c8aed3 nt!NtDeviceIoControlFile+0x56
0f fffff880`08ed6bb0 00000000`00000000 nt!KiSystemServiceCopyEnd+0x13
// The registers we're talking about do match:
2: kd> r
Last set context:
rax=0000000000000017 rbx=0000000000000000 rcx=291926708afbbdb0
rdx=9227d4e6ce53e9f6 rsi=0000000000000000 rdi=0000000000000000
rip=fffff87f844f232d rsp=fffff88008ed5f98 rbp=0a85a6e821f555d2
r8=00f01927fa685b46 r9=0000000000000007 r10=fffff88008ed62a0
r11=dcc12238842347df r12=0000000000000000 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
iopl=0 nv up ei pl zr na po nc
cs=0010 ss=0018 ds=5870 es=01bc fs=f880 gs=ffff efl=00010246
fffff87f`844f232d ?? ???
// We can easily see the value that will show up in ECX when looking at
// the rcx register, the 64bit version of this register:
2: kd> r @ecx
Last set context:
ecx=8afbbdb0
// Is this really an invalid address? Given it's a minidump I can't say for
// certain, but since it's listed as an invalid address in !analyze -v and as
// the reason for the crash, it would at least seem to be true:
2: kd> dc 8afbbdb0 L1
ffffffff`8afbbdb0 ???????? ????
I would suggest making a few changes, even if these aren't related entirely. First, you have the Asus ASCAPI.sys from March 2005 on your system, which is well known to cause all kinds of oddball corruption and BSOD's (see
here for instructions on what to do to update it). Second, it's probably worth putting your hardware (both CPU and RAM) through some hardware testing to see what you come up with, to make sure it's not a hardware issue. Otherwise, the binaries check out OK, and other than making sure you test without PowerISO or SmartDefrag installed (and perhaps Avast as well, as all 3 appear to use filter drivers at the kernel level), there's not much else I can say at this point.