I get the same result adding those two functions in, it just comes back immediately now instead of lagging out for 15 secs like the old script did. Here's what it looks like:

1. I'm running version 2010 or 4.51 as the executable reads
2. My script works for the first computer, then it goes to the second one and errors out...

Code:
Break ON
$ = SetOption("WrapAtEOL","ON")
Global $BIOSArray[4]

$LogFile = "C:\computer_list.txt"
$OutputFile = "C:\output_file.txt"
$OpenListFile = OPEN(4,$LogFile,2)
$OpenLogFile = OPEN(5,$OutputFile,5)


If $OpenListFile = 0
$CurrentPC = ReadLine(4)
If $OpenLogFile = 0
DO
? $CurrentPC
$ = WRITELINE(5,"$CurrentPC, ")
$ping = Ping($CurrentPC)
IF $ping
$WMICheck = ConfirmWMI($CurrentPC)
IF $WMICheck >= '1085.0005'
$MyBIOSInfo = GetBIOSInfo("$CurrentPC")
$ = WRITELINE(5, $MyBIOSInfo[3] + @CRLF)
Else
$ = WRITELINE(5, "WMI not responding." + @CRLF)
Endif
ELSE
$ = WRITELINE(5, "Did not respond." + @CRLF)
ENDIF

$CurrentPC = ReadLine(4)
UNTIL @ERROR = -1
ENDIF
ENDIF

CLOSE(4)
CLOSE(5)

Sleep 5


Function GetBIOSInfo($Computer)
Dim $Computer, $WMIService, $BIOSItems, $BIOSName, $BIOSVersion, $SMBIOSVersion
Dim $Item, $SerialNumber, $Manufacturer
;$Computer = "."
$WMIService = GetObject("winmgmts:\\" + $Computer + "\root\cimv2")
$BIOSItems = $WMIService.ExecQuery( "Select * from Win32_BIOS where PrimaryBIOS = true", , 48 )
For Each $Item in $BIOSItems
$BIOSName = Trim($Item.Name)
$BIOSVersion = Trim($Item.Version)
$SMBIOSVersion = Trim($Item.SMBIOSBIOSVersion)
$SerialNumber = Trim($Item.SerialNumber)
$Manufacturer = Trim($Item.Manufacturer)
Next
$BIOSArray[0]=$BIOSName $BIOSArray[1]=$BIOSVersion $BIOSArray[2]=$SMBIOSVersion $BIOSArray[3]=$SerialNumber
$BIOSArray[4]=$Manufacturer
$GetBIOSInfo=$BIOSArray
EndFunction


Function Ping($PC)
Shell'%comspec% /c ping -n 1 '+$PC+' >nul'
$Ping = NOT @ERROR
EndFunction


Function ConfirmWMI(optional $sComputer)
Dim $objWMIService,$objWMISetting,$colWMISettings
$sComputer=IIf(Not $sComputer,'','\\'+Join(Split($sComputer,'\'),'',3)+'\')
$objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!"+$sComputer+'root\cimv2')
If @ERROR
$ConfirmWMI = Val("&"+Right(DecToHex(@ERROR),4))
Exit $ConfirmWMI
EndIf
$colWMISettings = $objWMIService.ExecQuery("Select * from Win32_WMISetting")
For Each $objWMISetting In $colWMISettings
$ConfirmWMI = $objWMISetting.BuildVersion
Next
Exit $ConfirmWMI
EndFunction