Esme Povirk (@madewokherd) commented about dlls/scrrun/filesystem.c:
if(!source || !source[0] || !destination || !destination[0]) return E_INVALIDARG;
if (!GetFullPathNameW(source, MAX_PATH, src_path, &filename))
return E_FAIL;
len = SysStringLen(source); lstrcpyW(src_path, source); if (source[len-1] != '\' && source[len-1] != '/') wcscat(src_path, L"\");
dst_len = lstrlenW(destination);
if (destination[dst_len-1] == '\' || destination[dst_len-1] == '/') {
lstrcpyW(dst_path, destination);
lstrcatW(dst_path, filename);
TRACE("move %s to %s\n", debugstr_w(src_path), debugstr_w(dst_path));
return MoveFileW(src_path, dst_path) ? S_OK : create_error(GetLastError());
This should probably be using create_movefolder_error?