CcAsyncReadWorkerThread

CHAR __fastcall CcAsyncReadWorkerThread(INT64 *a1){
  void **v1; 
  __int64 v2; 
  _QWORD *v4; 
  INT64 v5; 
  __int64 v6; 
  INT64 **v7; 
  void *retaddr; 
  v1 = &retaddr;
  v2 = *((unsigned int *)a1 + 9);
  v4 = (_QWORD *)a1[7];
  v5 = v4[105] + 16 * v2;
  if( *((_DWORD *)a1 + 8) == 3 )
  {
    v6 = v4[111] + 404 * v2;
    *(_DWORD *)(v6 + 4i64 * *((unsigned int *)a1 + 10)) = 0;
    CcAsyncReadWorker(a1);
    *(_DWORD *)(v6 + 4i64 * *((unsigned int *)a1 + 10)) = -1;
    ExAcquirePushLockExclusiveEx((UINT64)(v4 + 112), 0i64);
    v7 = *(INT64 ***)(v5 + 8);
    if( *v7 != (INT64 *)v5 )
      __fastfail(3u);
    *a1 = v5;
    a1[1] = (INT64)v7;
    *v7 = a1;
    *(_QWORD *)(v5 + 8) = a1;
    --*(_DWORD *)(v4[106] + 4 * v2);
    ExReleasePushLockEx((UINT64)(v4 + 112), 0i64);
    LOBYTE(v1) = CcDereferencePartition((INT64)v4);
  }
  return(char)v1;
}

Referenced by:

No references.