KdpCloseRemoteFile

INT64 __fastcall KdpCloseRemoteFile(VOID *Handle){
  __int64 v1; 
  UINT8 v3; 
  __int64 v4; 
  int v5; 
  int v6; 
  int v7[2]; 
  int *p_result; 
  __int128 v9; 
  int result; 
  unsigned int result_4; 
  __int64 i; 
  v1 = (unsigned int)((_DWORD)Handle - 1);
  memset((INT64)&result, 0i64);
  if( (unsigned int)v1 >= 0x10 )
    return 3221225485i64;
  v3 = KdEnterDebugger(0i64, 0i64);
  if( KdpRemoteFiles[v1] )
  {
    for( i = KdpRemoteFiles[v1]; ; i = v4 )
    {
      v7[1] = 0;
      v6 = 0;
      result = 13363;
      v7[0] = 4194368;
      p_result = &result;
      v9 = 0i64;
      KdSendPacket(11i64, v7, 0i64, &KdpContext);
      if( (_BYTE)KdDebuggerNotPresent )
      {
        v5 = -1073740972;
        result_4 = -1073740972;
        goto LABEL_10;
      }
      WORD1(v9) = 4096;
      *((_QWORD *)&v9 + 1) = KdpMessageBuffer;
      if( !(unsigned int)KdReceivePacket(11i64, v7, &v9, &v6, &KdpContext) )
        break;
      v4 = KdpRemoteFiles[v1];
      result_4 = 0;
    }
    v5 = result_4;
LABEL_10:
    if( v5 >= 0 )
      KdpRemoteFiles[v1] = 0i64;
  }
  else
  {
    result_4 = -1073741811;
  }
  KdExitDebugger(v3);
  return result_4;
}

Referenced by:

KdPullRemoteFileEx