Need help understanding reset button script

local coreCall do
	local MAX_RETRIES = 8

	local StarterGui = game:GetService('StarterGui')
	local RunService = game:GetService('RunService')

	function coreCall(method, ...)
		local result = {}
		for retries = 1, MAX_RETRIES do
			result = {pcall(StarterGui[method], StarterGui, ...)} -- Need explaination on this part
			if result[1] then
				break
			end
			RunService.Stepped:Wait()
		end
		return unpack(result)
	end
end

assert(coreCall('SetCore', 'ResetButtonCallback', false)) -- Confused why we use assert here, there isnt a second parameter which is supposed to be a error message 

-- also why do we even need the unpack(result) stuff

result = {pcall(StarterGui[method], StarterGui, ...)} -- don't understand
-- is it just a different version of this?
StarterGui:SetCore("ResetButtonCallback", resetBindable)

from here