KdpReadPhysicalMemoryLong
UINT64 __fastcall KdpReadPhysicalMemoryLong(INT64 a1, _WORD *a2, UINT64 a3){
UINT64 result;
unsigned int v4;
__int64 v6;
int v8;
unsigned int v9;
INT64 v10[7];
void *retaddr;
result = (UINT64)&retaddr;
v4 = *(_DWORD *)(a1 + 24);
v6 = *(_QWORD *)(a1 + 16);
v8 = *(_DWORD *)(a1 + 28);
v10[2] = qword_140C42DF0;
for( *(_OWORD *)v10 = *(_OWORD *)&KdpContext; v4; v4 -= result )
{
*(_QWORD *)(a1 + 16) = v6;
*(_DWORD *)(a1 + 24) = v4;
*(_DWORD *)(a1 + 28) = v8;
*a2 = 0;
*(_DWORD *)(a1 + 8) = 0;
HIWORD(v10[0]) = 13;
KdpReadPhysicalMemory(a1, (INT64)a2, a3, (INT64)v10);
result = *(_DWORD *)(a1 + 28) & 0xC0000000;
v9 = 4 * *(_DWORD *)(a1 + 28);
if( (_DWORD)result != 0x40000000 )
v9 = *(_DWORD *)(a1 + 28);
if( *(int *)(a1 + 8) < 0 || !v9 )
break;
result = v4;
if( v9 <= v4 )
result = v9;
v6 += result;
}
return result;
}Referenced by:
KdpSendWaitContinue