Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Auto Zmieniacz Bonów


StraiGht

Rekomendowane odpowiedzi

Opublikowano

wersja na xenox ktora zatrzymuje ustalone bony

 

 

 

 

 

 

 

 

 

skan:

 

Wszystko dobrze smiga, u mnie w miescie ten program wymiata ;)

 

 

 

 

Mam z tym mały problem........ Otóż tak, Avast wykrywa to jako Trojana :D

 

 

 

Infection Details

URL: http://www14.speedyshare.com/files/30015808/download/AutoBon By CrosSie upload By StriGht.rar|%3EAutoBon By CrosSie upload By StriGht/Boni-Switcher V2.7.2.5 by CroSSie.exe

Process: file://C:\Program Files (x86)\Programy\Mozilla Firefox\firefox.exe

Infection: win32:Ardamax-NV [Drp]

 

 

 

 

 

 

Dobra, pare " wspomagaczy" już mi tak wykrywał, wiec avast off.....

 

zasysam..... i Pliku " .... " nie mozna otworzyć jako archiwum, gdyż jest uszkodzone :/

 

 

Zatem moja naprawdę gorąca prośba żeby ktoś podał link do wersji działającej na polskich privach ( na niemieckim nie da się grać nie znając języka - a przynajmniej bardzo ciężko ) , lub jeśli ta podana w temacie jest działająca, to prosza o link do pliczku który trzeba było podmienić, gdyż niestety jest wygasły :(

Venienti ocurrite morbo

  • Odpowiedzi 376
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Ja tam wole sam sobie zmieniać. A może akurat trafią ci sie takie zajebiste że szok ? ! ; >

 

 

 

O to chodzi ze ustawiasz pro bony jakie ci sie podobają i cieszysz sie z eq ;]

  • 2 tygodnie później...
Opublikowano

to ja dodam takie bardziej wazne :P

 

Dolchverteidigung - sztylety

Pfeilwiderstand- strzaly

Schwertverteidigung- miecze

Zweihandverteidigung- 2 reka

Glockenverteidigung- dzwony

Fächerverteidigung- wachlarze

Opublikowano

Uruchomiłem tego bota na kliencie ze zmienionym locale na de wiec nazwy bonów są po niemiecki ale mimo to nie zatrzymywał się tylko mieszał do końca :/. Zna ktoś rozwiązanie tego problemu?

Kocham mpcforum.pl!!!

18706.png

  • 3 tygodnie później...
Opublikowano

Gdyby ktoś chciał przetłumaczyć:

 

 

#NoTrayIcon
#RequireAdmin

Func _WINAPI_GETLASTERROR($CURERR = @error, $CUREXT = @extended)
Local $ARESULT = DllCall("kernel32.dll", "dword", "GetLastError")
Return SetError($CURERR, $CUREXT, $ARESULT[0])
EndFunc


Func _WINAPI_SETLASTERROR($IERRCODE, $CURERR = @error, $CUREXT = @extended)
DllCall("kernel32.dll", "none", "SetLastError", "dword", $IERRCODE)
Return SetError($CURERR, $CUREXT)
EndFunc

#region Header
#endregion Header
#region Global Variables and Constants
Global Const $IEAU3VERSIONINFO[6] = ["V", 2, 4, 0, "20071231", "V2.4-0"]
Global Const $LSFW_LOCK = 1, $LSFW_UNLOCK = 2
Global $__IELOADWAITTIMEOUT = 300000
Global $__IEAU3DEBUG = False
Global $__IEAU3V1COMPATIBILITY
Global $__IEAU3DEBUG_USEOLDDLLCALL = False
Global $_IEERRORNOTIFY = True
Global $OIEERRORHANDLER, $SIEUSERERRORHANDLER
Global $IECOMERRORNUMBER, $IECOMERRORNUMBERHEX, $IECOMERRORDESCRIPTION, $IECOMERRORSCRIPTLINE, $IECOMERRORWINDESCRIPTION, $IECOMERRORSOURCE, $IECOMERRORHELPFILE, $IECOMERRORHELPCONTEXT, $IECOMERRORLASTDLLERROR, $IECOMERRORCOMOBJ, $IECOMERROROUTPUT
Global Enum $_IESTATUS_SUCCESS = 0, $_IESTATUS_GENERALERROR, $_IESTATUS_COMERROR, $_IESTATUS_INVALIDDATATYPE, $_IESTATUS_INVALIDOBJECTTYPE, $_IESTATUS_INVALIDVALUE, $_IESTATUS_LOADWAITTIMEOUT, $_IESTATUS_NOMATCH, $_IESTATUS_ACCESSISDENIED, $_IESTATUS_CLIENTDISCONNECTED
Global Enum Step* 2 $_IENOTIFYLEVEL_NONE = 0, $_IENOTIFYNOTIFYLEVEL_WARNING = 1, $_IENOTIFYNOTIFYLEVEL_ERROR, $_IENOTIFYNOTIFYLEVEL_COMERROR
Global Enum Step* 2 $_IENOTIFYMETHOD_SILENT = 0, $_IENOTIFYMETHOD_CONSOLE = 1, $_IENOTIFYMETHOD_TOOLTIP, $_IENOTIFYMETHOD_MSGBOX
#endregion Global Variables and Constants
#region Core functions

Func _IECREATE($S_URL = "about:blank", $F_TRYATTACH = 0, $F_VISIBLE = 1, $F_WAIT = 1, $F_TAKEFOCUS = 1)
If $__IEAU3V1COMPATIBILITY Then
	Switch String($S_URL)
		Case "0"
			$S_URL = "about:blank"
			$F_VISIBLE = 0
			__IEERRORNOTIFY("Warning", "_IECreate", "", "Using deprecated behavior - $f_visible is now parameter 3 instead of parameter 1")
		Case "1"
			$S_URL = "about:blank"
			$F_VISIBLE = 1
			__IEERRORNOTIFY("Warning", "_IECreate", "", "Using deprecated behavior - $f_visible is now parameter 3 instead of parameter 1")
	EndSwitch
EndIf
If Not $F_VISIBLE Then $F_TAKEFOCUS = 0
If $F_TRYATTACH Then
	Local $ORESULT = _IEATTACH($S_URL, "url")
	If IsObj($ORESULT) Then
		If $F_TAKEFOCUS Then WinActivate(HWnd($ORESULT.HWND))
		Return SetError($_IESTATUS_SUCCESS, 1, $ORESULT)
	EndIf
EndIf
Local $F_MUSTUNLOCK = 0
If Not $F_VISIBLE And __IELOCKSETFOREGROUNDWINDOW($LSFW_LOCK) Then $F_MUSTUNLOCK = 1
Local $O_OBJECT = ObjCreate("InternetExplorer.Application")
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IECreate", "", "Browser Object Creation Failed")
	Return SetError($_IESTATUS_GENERALERROR, 0, 0)
EndIf
$O_OBJECT.visible = $F_VISIBLE
If $F_MUSTUNLOCK And Not __IELOCKSETFOREGROUNDWINDOW($LSFW_UNLOCK) Then __IEERRORNOTIFY("Warning", "_IECreate", "", "Foreground Window Unlock Failed!")
_IENAVIGATE($O_OBJECT, $S_URL, $F_WAIT)
Return SetError(@error, 0, $O_OBJECT)
EndFunc


Func _IECREATEEMBEDDED()
Local $O_OBJECT = ObjCreate("Shell.Explorer.2")
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IECreateEmbedded", "", "WebBrowser Object Creation Failed")
	Return SetError($_IESTATUS_GENERALERROR, 0, 0)
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)
EndFunc


Func _IENAVIGATE(ByRef $O_OBJECT, $S_URL, $F_WAIT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IENavigate", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
	__IEERRORNOTIFY("Error", "_IENavigate", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$O_OBJECT.navigate($S_URL)
If $F_WAIT Then
	_IELOADWAIT($O_OBJECT)
	Return SetError(@error, 0, -1)
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, -1)
EndFunc


Func _IEATTACH($S_STRING, $S_MODE = "Title", $I_INSTANCE = 1)
$S_MODE = StringLower($S_MODE)
$I_INSTANCE = Int($I_INSTANCE)
If $I_INSTANCE < 1 Then
	__IEERRORNOTIFY("Error", "_IEAttach", "$_IEStatus_InvalidValue", "$i_instance < 1")
	Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
EndIf
If $S_MODE = "embedded" Or $S_MODE = "dialogbox" Then
	Local $IWINTITLEMATCHMODE = Opt("WinTitleMatchMode", 2)
	If $S_MODE = "dialogbox" And $I_INSTANCE > 1 Then
		If IsHWnd($S_STRING) Then
			$I_INSTANCE = 1
			__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_GeneralError", "$i_instance > 1 invalid with HWnd and DialogBox.  Setting to 1.")
		Else
			Local $A_WINLIST = WinList($S_STRING, "")
			If $I_INSTANCE <= $A_WINLIST[0][0] Then
				$S_STRING = $A_WINLIST[$I_INSTANCE][1]
				$I_INSTANCE = 1
			Else
				__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_NoMatch")
				Opt("WinTitleMatchMode", $IWINTITLEMATCHMODE)
				Return SetError($_IESTATUS_NOMATCH, 1, 0)
			EndIf
		EndIf
	EndIf
	Local $H_CONTROL = ControlGetHandle($S_STRING, "", "[CLASS:Internet Explorer_Server; INSTANCE:" & $I_INSTANCE & "]")
	Local $ORESULT = __IECONTROLGETOBJFROMHWND($H_CONTROL)
	Opt("WinTitleMatchMode", $IWINTITLEMATCHMODE)
	If IsObj($ORESULT) Then
		Return SetError($_IESTATUS_SUCCESS, 0, $ORESULT)
	Else
		__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 1, 0)
	EndIf
EndIf
Local $O_SHELL = ObjCreate("Shell.Application")
Local $O_SHELLWINDOWS = $O_SHELL.Windows()
Local $I_TMP = 1
Local $F_NOTIFYSTATUS, $STATUS, $F_ISBROWSER, $S_TMP
For $O_WINDOW In $O_SHELLWINDOWS
	$F_ISBROWSER = True
	$STATUS = __IEINTERNALERRORHANDLERREGISTER()
	If Not $STATUS Then __IEERRORNOTIFY("Warning", "_IEAttach", "Cannot register internal error handler, cannot trap COM errors", "Use _IEErrorHandlerRegister() to register a user error handler")
	$F_NOTIFYSTATUS = _IEERRORNOTIFY()
	_IEERRORNOTIFY(False)
	If $F_ISBROWSER Then
		$S_TMP = $O_WINDOW.type
		If @error Then $F_ISBROWSER = False
	EndIf
	If $F_ISBROWSER Then
		$S_TMP = $O_WINDOW.document.title
		If @error Then $F_ISBROWSER = False
	EndIf
	_IEERRORNOTIFY($F_NOTIFYSTATUS)
	__IEINTERNALERRORHANDLERDEREGISTER()
	If $F_ISBROWSER Then
		Switch $S_MODE
			Case "title"
				If StringInStr($O_WINDOW.document.title, $S_STRING) > 0 Then
					If $I_INSTANCE = $I_TMP Then
						Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)
					Else
						$I_TMP += 1
					EndIf
				EndIf
			Case "instance"
				If $I_INSTANCE = $I_TMP Then
					Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)
				Else
					$I_TMP += 1
				EndIf
			Case "windowtitle"
				Local $F_FOUND = False
				$S_TMP = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\", "Window Title")
				If Not @error Then
					If StringInStr($O_WINDOW.document.title & " - " & $S_TMP, $S_STRING) Then $F_FOUND = True
				Else
					If StringInStr($O_WINDOW.document.title & " - Microsoft Internet Explorer", $S_STRING) Then $F_FOUND = True
					If StringInStr($O_WINDOW.document.title & " - Windows Internet Explorer", $S_STRING) Then $F_FOUND = True
				EndIf
				If $F_FOUND Then
					If $I_INSTANCE = $I_TMP Then
						Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)
					Else
						$I_TMP += 1
					EndIf
				EndIf
			Case "url"
				If StringInStr($O_WINDOW.LocationURL, $S_STRING) > 0 Then
					If $I_INSTANCE = $I_TMP Then
						Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)
					Else
						$I_TMP += 1
					EndIf
				EndIf
			Case "text"
				If StringInStr($O_WINDOW.document.body.innerText, $S_STRING) > 0 Then
					If $I_INSTANCE = $I_TMP Then
						Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)
					Else
						$I_TMP += 1
					EndIf
				EndIf
			Case "html"
				If StringInStr($O_WINDOW.document.body.innerHTML, $S_STRING) > 0 Then
					If $I_INSTANCE = $I_TMP Then
						Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)
					Else
						$I_TMP += 1
					EndIf
				EndIf
			Case "hwnd"
				If $I_INSTANCE > 1 Then
					$I_INSTANCE = 1
					__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_GeneralError", "$i_instance > 1 invalid with HWnd.  Setting to 1.")
				EndIf
				If _IEPROPERTYGET($O_WINDOW, "hwnd") = $S_STRING Then
					Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)
				EndIf
			Case Else
				__IEERRORNOTIFY("Error", "_IEAttach", "$_IEStatus_InvalidValue", "Invalid Mode Specified")
				Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
		EndSwitch
	EndIf
Next
__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_NoMatch")
Return SetError($_IESTATUS_NOMATCH, 1, 0)
EndFunc


Func _IELOADWAIT(ByRef $O_OBJECT, $I_DELAY = 0, $I_TIMEOUT = -1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IELoadWait", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IELoadWait", "$_IEStatus_InvalidObjectType", ObjName($O_OBJECT))
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Local $OTEMP, $F_ABORT = False, $I_ERRORSTATUSCODE = $_IESTATUS_SUCCESS
Local $STATUS = __IEINTERNALERRORHANDLERREGISTER()
If Not $STATUS Then __IEERRORNOTIFY("Warning", "_IELoadWait", "Cannot register internal error handler, cannot trap COM errors", "Use _IEErrorHandlerRegister() to register a user error handler")
Local $F_NOTIFYSTATUS = _IEERRORNOTIFY()
_IEERRORNOTIFY(False)
Sleep($I_DELAY)
Local $IELOADWAITTIMER = TimerInit()
If $I_TIMEOUT = -1 Then $I_TIMEOUT = $__IELOADWAITTIMEOUT
Switch ObjName($O_OBJECT)
	Case "IWebBrowser2"
		While Not (String($O_OBJECT.readyState) = "complete" Or $O_OBJECT.readyState = 4 Or $F_ABORT)
			If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
				$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
				$F_ABORT = True
			EndIf
			If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
				$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
				$F_ABORT = True
			EndIf
			Sleep(100)
		WEnd
		While Not (String($O_OBJECT.document.readyState) = "complete" Or $O_OBJECT.document.readyState = 4 Or $F_ABORT)
			If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
				$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
				$F_ABORT = True
			EndIf
			If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
				$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
				$F_ABORT = True
			EndIf
			Sleep(100)
		WEnd
	Case "DispHTMLWindow2"
		While Not (String($O_OBJECT.document.readyState) = "complete" Or $O_OBJECT.document.readyState = 4 Or $F_ABORT)
			If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
				$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
				$F_ABORT = True
			EndIf
			If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
				$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
				$F_ABORT = True
			EndIf
			Sleep(100)
		WEnd
		While Not (String($O_OBJECT.top.document.readyState) = "complete" Or $O_OBJECT.top.document.readyState = 4 Or $F_ABORT)
			If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
				$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
				$F_ABORT = True
			EndIf
			If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
				$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
				$F_ABORT = True
			EndIf
			Sleep(100)
		WEnd
	Case "DispHTMLDocument"
		$OTEMP = $O_OBJECT.parentWindow
		While Not (String($OTEMP.document.readyState) = "complete" Or $OTEMP.document.readyState = 4 Or $F_ABORT)
			If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
				$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
				$F_ABORT = True
			EndIf
			If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
				$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
				$F_ABORT = True
			EndIf
			Sleep(100)
		WEnd
		While Not (String($OTEMP.top.document.readyState) = "complete" Or $OTEMP.top.document.readyState = 4 Or $F_ABORT)
			If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
				$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
				$F_ABORT = True
			EndIf
			If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
				$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
				$F_ABORT = True
			EndIf
			Sleep(100)
		WEnd
	Case Else
		$OTEMP = $O_OBJECT.document.parentWindow
		While Not (String($OTEMP.document.readyState) = "complete" Or $OTEMP.document.readyState = 4 Or $F_ABORT)
			If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
				$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
				$F_ABORT = True
			EndIf
			If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
				$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
				$F_ABORT = True
			EndIf
			Sleep(100)
		WEnd
		While Not (String($OTEMP.top.document.readyState) = "complete" Or $O_OBJECT.top.document.readyState = 4 Or $F_ABORT)
			If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
				$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
				$F_ABORT = True
			EndIf
			If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
				$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
				$F_ABORT = True
			EndIf
			Sleep(100)
		WEnd
EndSwitch
_IEERRORNOTIFY($F_NOTIFYSTATUS)
__IEINTERNALERRORHANDLERDEREGISTER()
Switch $I_ERRORSTATUSCODE
	Case $_IESTATUS_SUCCESS
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $_IESTATUS_LOADWAITTIMEOUT
		__IEERRORNOTIFY("Warning", "_IELoadWait", "$_IEStatus_LoadWaitTimeout")
		Return SetError($_IESTATUS_LOADWAITTIMEOUT, 3, 0)
	Case $_IESTATUS_ACCESSISDENIED
		__IEERRORNOTIFY("Warning", "_IELoadWait", "$_IEStatus_AccessIsDenied", "Cannot verify readyState.  Likely casue: cross-site scripting security restriction.")
		Return SetError($_IESTATUS_ACCESSISDENIED, 0, 0)
	Case $_IESTATUS_CLIENTDISCONNECTED
		__IEERRORNOTIFY("Error", "_IELoadWait", "$_IEStatus_ClientDisconnected", "Browser has been deleted prior to operation.")
		Return SetError($_IESTATUS_CLIENTDISCONNECTED, 0, 0)
	Case Else
		__IEERRORNOTIFY("Error", "_IELoadWait", "$_IEStatus_GeneralError", "Invalid Error Status - Notify IE.au3 developer")
		Return SetError($_IESTATUS_GENERALERROR, 0, 0)
EndSwitch
EndFunc


Func _IELOADWAITTIMEOUT($I_TIMEOUT = -1)
If $I_TIMEOUT = -1 Then
	Return SetError($_IESTATUS_SUCCESS, 0, $__IELOADWAITTIMEOUT)
Else
	$__IELOADWAITTIMEOUT = $I_TIMEOUT
	Return SetError($_IESTATUS_SUCCESS, 0, 1)
EndIf
EndFunc

#endregion Core functions
#region Frame Functions

Func _IEISFRAMESET(ByRef $O_OBJECT)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEIsFrameSet", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If String($O_OBJECT.document.body.tagName) = "FRAMESET" Then
	Return SetError($_IESTATUS_SUCCESS, 0, 1)
Else
	Return SetError($_IESTATUS_SUCCESS, 0, 0)
EndIf
EndFunc


Func _IEFRAMEGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFrameGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
$I_INDEX = Number($I_INDEX)
Select
	Case $I_INDEX = -1
		Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.parentwindow.frames.length, $O_OBJECT.document.parentwindow.frames)
	Case $I_INDEX > -1 And $I_INDEX < $O_OBJECT.document.parentwindow.frames.length
		Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.parentwindow.frames.length, $O_OBJECT.document.parentwindow.frames.item($I_INDEX))
	Case $I_INDEX < -1
		__IEERRORNOTIFY("Error", "_IEFrameGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
	Case Else
		__IEERRORNOTIFY("Warning", "_IEFrameGetCollection", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 2, 0)
EndSelect
EndFunc


Func _IEFRAMEGETOBJBYNAME(ByRef $O_OBJECT, $S_NAME)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFrameGetObjByName", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $OTEMP, $OFRAMES
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IEFrameGetObjByName", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
If __IEISOBJTYPE($O_OBJECT, "document") Then
	$OTEMP = $O_OBJECT.parentWindow
Else
	$OTEMP = $O_OBJECT.document.parentWindow
EndIf
If _IEISFRAMESET($OTEMP) Then
	$OFRAMES = _IETAGNAMEGETCOLLECTION($OTEMP, "frame")
Else
	$OFRAMES = _IETAGNAMEGETCOLLECTION($OTEMP, "iframe")
EndIf
If $OFRAMES.length Then
	For $OFRAME In $OFRAMES
		If $OFRAME.name = $S_NAME Then Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.frames($S_NAME))
	Next
	__IEERRORNOTIFY("Warning", "_IEFrameGetObjByName", "$_IEStatus_NoMatch", "No frames matching name")
	Return SetError($_IESTATUS_NOMATCH, 2, 0)
Else
	__IEERRORNOTIFY("Warning", "_IEFrameGetObjByName", "$_IEStatus_NoMatch", "No Frames found")
	Return SetError($_IESTATUS_NOMATCH, 2, 0)
EndIf
EndFunc

#endregion Frame Functions
#region Link functions

Func _IELINKCLICKBYTEXT(ByRef $O_OBJECT, $S_LINKTEXT, $I_INDEX = 0, $F_WAIT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IELinkClickByText", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $FOUND = 0, $LINKTEXT, $LINKS = $O_OBJECT.document.links
$I_INDEX = Number($I_INDEX)
For $LINK In $LINKS
	$LINKTEXT = $LINK.outerText & ""
	If $LINKTEXT = $S_LINKTEXT Then
		If ($FOUND = $I_INDEX) Then
			$LINK.click
			If $F_WAIT Then
				_IELOADWAIT($O_OBJECT)
				Return SetError(@error, 0, -1)
			EndIf
			Return SetError($_IESTATUS_SUCCESS, 0, -1)
		EndIf
		$FOUND = $FOUND + 1
	EndIf
Next
__IEERRORNOTIFY("Warning", "_IELinkClickByText", "$_IEStatus_NoMatch")
Return SetError($_IESTATUS_NOMATCH, 0, 0)
EndFunc


Func _IELINKCLICKBYINDEX(ByRef $O_OBJECT, $I_INDEX, $F_WAIT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IELinkClickByIndex", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $OLINKS = $O_OBJECT.document.links, $OLINK
$I_INDEX = Number($I_INDEX)
If ($I_INDEX >= 0) And ($I_INDEX <= $OLINKS.length - 1) Then
	$OLINK = $OLINKS($I_INDEX)
	$OLINK.click
	If $F_WAIT Then
		_IELOADWAIT($O_OBJECT)
		Return SetError(@error, 0, -1)
	EndIf
	Return SetError($_IESTATUS_SUCCESS, 0, -1)
Else
	__IEERRORNOTIFY("Warning", "_IELinkClickByIndex", "$_IEStatus_NoMatch")
	Return SetError($_IESTATUS_NOMATCH, 2, 0)
EndIf
EndFunc


Func _IELINKGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IELinkGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
$I_INDEX = Number($I_INDEX)
Select
	Case $I_INDEX = -1
		Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.links.length, $O_OBJECT.document.links)
	Case $I_INDEX > -1 And $I_INDEX < $O_OBJECT.document.links.length
		Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.links.length, $O_OBJECT.document.links.item($I_INDEX))
	Case $I_INDEX < -1
		__IEERRORNOTIFY("Error", "_IELinkGetCollection", "$_IEStatus_InvalidValue")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
	Case Else
		__IEERRORNOTIFY("Warning", "_IELinkGetCollection", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 2, 0)
EndSelect
EndFunc

#endregion Link functions
#region Image functions

Func _IEIMGCLICK(ByRef $O_OBJECT, $S_LINKTEXT, $S_MODE = "src", $I_INDEX = 0, $F_WAIT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEImgClick", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $LINKTEXT, $FOUND = 0, $IMGS = $O_OBJECT.document.images
$S_MODE = StringLower($S_MODE)
$I_INDEX = Number($I_INDEX)
For $IMG In $IMGS
	Select
		Case $S_MODE = "alt"
			$LINKTEXT = $IMG.alt
		Case $S_MODE = "name"
			$LINKTEXT = $IMG.name
		Case $S_MODE = "src"
			$LINKTEXT = $IMG.src
		Case Else
			__IEERRORNOTIFY("Error", "_IEImgClick", "$_IEStatus_InvalidValue", "Invalid mode: " & $S_MODE)
			Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
	EndSelect
	If StringInStr($LINKTEXT, $S_LINKTEXT) Then
		If ($FOUND = $I_INDEX) Then
			$IMG.click
			If $F_WAIT Then
				_IELOADWAIT($O_OBJECT)
				Return SetError(@error, 0, -1)
			EndIf
			Return SetError($_IESTATUS_SUCCESS, 0, -1)
		EndIf
		$FOUND = $FOUND + 1
	EndIf
Next
__IEERRORNOTIFY("Warning", "_IEImgClick", "$_IEStatus_NoMatch")
Return SetError($_IESTATUS_NOMATCH, 0, 0)
EndFunc


Func _IEIMGGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEImgGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)
$I_INDEX = Number($I_INDEX)
Select
	Case $I_INDEX = -1
		Return SetError($_IESTATUS_SUCCESS, $OTEMP.images.length, $OTEMP.images)
	Case $I_INDEX > -1 And $I_INDEX < $OTEMP.images.length
		Return SetError($_IESTATUS_SUCCESS, $OTEMP.images.length, $OTEMP.images.item($I_INDEX))
	Case $I_INDEX < -1
		__IEERRORNOTIFY("Error", "_IEImgGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
	Case Else
		__IEERRORNOTIFY("Warning", "_IEImgGetCollection", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 1, 0)
EndSelect
EndFunc

#endregion Image functions
#region Form functions

Func _IEFORMGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)
$I_INDEX = Number($I_INDEX)
Select
	Case $I_INDEX = -1
		Return SetError($_IESTATUS_SUCCESS, $OTEMP.forms.length, $OTEMP.forms)
	Case $I_INDEX > -1 And $I_INDEX < $OTEMP.forms.length
		Return SetError($_IESTATUS_SUCCESS, $OTEMP.forms.length, $OTEMP.forms.item($I_INDEX))
	Case $I_INDEX < -1
		__IEERRORNOTIFY("Error", "_IEFormGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
	Case Else
		__IEERRORNOTIFY("Warning", "_IEFormGetCollection", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 1, 0)
EndSelect
EndFunc


Func _IEFORMGETOBJBYNAME(ByRef $O_OBJECT, $S_NAME, $I_INDEX = 0)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormGetObjByName", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $I_LENGTH = 0
Local $O_COL = $O_OBJECT.document.forms.item($S_NAME)
If IsObj($O_COL) Then
	If __IEISOBJTYPE($O_COL, "elementcollection") Then
		$I_LENGTH = $O_COL.length
	Else
		$I_LENGTH = 1
	EndIf
EndIf
$I_INDEX = Number($I_INDEX)
If $I_INDEX = -1 Then
	Return SetError($_IESTATUS_SUCCESS, $I_LENGTH, $O_OBJECT.document.forms.item($S_NAME))
Else
	If IsObj($O_OBJECT.document.forms.item($S_NAME, $I_INDEX)) Then
		Return SetError($_IESTATUS_SUCCESS, $I_LENGTH, $O_OBJECT.document.forms.item($S_NAME, $I_INDEX))
	Else
		__IEERRORNOTIFY("Warning", "_IEFormGetObjByName", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 0, 0)
	EndIf
EndIf
EndFunc


Func _IEFORMELEMENTGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormElementGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "form") Then
	__IEERRORNOTIFY("Error", "_IEFormElementGetCollection", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$I_INDEX = Number($I_INDEX)
Select
	Case $I_INDEX = -1
		Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.elements.length, $O_OBJECT.elements)
	Case $I_INDEX > -1 And $I_INDEX < $O_OBJECT.elements.length
		Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.elements.length, $O_OBJECT.elements.item($I_INDEX))
	Case $I_INDEX < -1
		__IEERRORNOTIFY("Error", "_IEFormElementGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
	Case Else
		Return SetError($_IESTATUS_NOMATCH, 1, 0)
EndSelect
EndFunc


Func _IEFORMELEMENTGETOBJBYNAME(ByRef $O_OBJECT, $S_NAME, $I_INDEX = 0)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormElementGetObjByName", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "form") Then
	__IEERRORNOTIFY("Error", "_IEFormElementGetObjByName", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Local $I_LENGTH = 0
Local $O_COL = $O_OBJECT.elements.item($S_NAME)
If IsObj($O_COL) Then
	If __IEISOBJTYPE($O_COL, "elementcollection") Then
		$I_LENGTH = $O_COL.length
	Else
		$I_LENGTH = 1
	EndIf
EndIf
$I_INDEX = Number($I_INDEX)
If $I_INDEX = -1 Then
	Return SetError($_IESTATUS_SUCCESS, $I_LENGTH, $O_OBJECT.elements.item($S_NAME))
Else
	If IsObj($O_OBJECT.elements.item($S_NAME, $I_INDEX)) Then
		Return SetError($_IESTATUS_SUCCESS, $I_LENGTH, $O_OBJECT.elements.item($S_NAME, $I_INDEX))
	Else
		__IEERRORNOTIFY("Warning", "_IEFormElementGetObjByName", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 0, 0)
	EndIf
EndIf
EndFunc


Func _IEFORMELEMENTGETVALUE(ByRef $O_OBJECT)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormElementGetValue", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "forminputelement") Then
	__IEERRORNOTIFY("Error", "_IEFormElementGetValue", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
SetError($_IESTATUS_SUCCESS)
If $O_OBJECT.value Then
	Return $O_OBJECT.value
Else
	Return ""
EndIf
EndFunc


Func _IEFORMELEMENTSETVALUE(ByRef $O_OBJECT, $S_NEWVALUE, $F_FIREEVENT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "forminputelement") Then
	__IEERRORNOTIFY("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
If String($O_OBJECT.type) = "file" Then
	__IEERRORNOTIFY("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidObjectType", "Browser securuty prevents SetValue of TYPE=FILE")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$O_OBJECT.value = $S_NEWVALUE
If $F_FIREEVENT Then
	$O_OBJECT.fireEvent("OnChange")
	$O_OBJECT.fireEvent("OnClick")
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, 1)
EndFunc


Func _IEFORMELEMENTOPTIONSELECT(ByRef $O_OBJECT, $S_STRING, $F_SELECT = 1, $S_MODE = "byValue", $F_FIREEVENT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "formselectelement") Then
	__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Local $OITEMS = $O_OBJECT.options, $INUMITEMS = $O_OBJECT.options.length, $F_ISMULTIPLE = $O_OBJECT.multiple
Switch $S_MODE
	Case "byValue"
		For $OITEM In $OITEMS
			If $OITEM.value = $S_STRING Then
				Switch $F_SELECT
					Case - 1
						Return SetError($_IESTATUS_SUCCESS, 0, $OITEM.selected)
					Case 0
						If Not $F_ISMULTIPLE Then
							__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "$f_select=0 only valid for type=select multiple")
							SetError($_IESTATUS_INVALIDVALUE, 3)
						EndIf
						If $OITEM.selected Then
							$OITEM.selected = False
							If $F_FIREEVENT Then
								$O_OBJECT.fireEvent("onChange")
								$O_OBJECT.fireEvent("OnClick")
							EndIf
						EndIf
						Return SetError($_IESTATUS_SUCCESS, 0, 1)
					Case 1
						If Not $OITEM.selected Then
							$OITEM.selected = True
							If $F_FIREEVENT Then
								$O_OBJECT.fireEvent("onChange")
								$O_OBJECT.fireEvent("OnClick")
							EndIf
						EndIf
						Return SetError($_IESTATUS_SUCCESS, 0, 1)
					Case Else
						__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")
						Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
				EndSwitch
				__IEERRORNOTIFY("Warning", "_IEFormElementOptionSelect", "$_IEStatus_NoMatch", "Value not matched")
				Return SetError($_IESTATUS_NOMATCH, 2, 0)
			EndIf
		Next
	Case "byText"
		For $OITEM In $OITEMS
			If String($OITEM.text) = $S_STRING Then
				Switch $F_SELECT
					Case - 1
						Return SetError($_IESTATUS_SUCCESS, 0, $OITEM.selected)
					Case 0
						If Not $F_ISMULTIPLE Then
							__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "$f_select=0 only valid for type=select multiple")
							SetError($_IESTATUS_INVALIDVALUE, 3)
						EndIf
						If $OITEM.selected Then
							$OITEM.selected = False
							If $F_FIREEVENT Then
								$O_OBJECT.fireEvent("onChange")
								$O_OBJECT.fireEvent("OnClick")
							EndIf
						EndIf
						Return SetError($_IESTATUS_SUCCESS, 0, 1)
					Case 1
						If Not $OITEM.selected Then
							$OITEM.selected = True
							If $F_FIREEVENT Then
								$O_OBJECT.fireEvent("onChange")
								$O_OBJECT.fireEvent("OnClick")
							EndIf
						EndIf
						Return SetError($_IESTATUS_SUCCESS, 0, 1)
					Case Else
						__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")
						Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
				EndSwitch
				__IEERRORNOTIFY("Warning", "_IEFormElementOptionSelect", "$_IEStatus_NoMatch", "Text not matched")
				Return SetError($_IESTATUS_NOMATCH, 2, 0)
			EndIf
		Next
	Case "byIndex"
		Local $I_INDEX = Number($S_STRING)
		If $I_INDEX < 0 Or $I_INDEX >= $INUMITEMS Then
			__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid index value, " & $I_INDEX)
			Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
		EndIf
		$OITEM = $OITEMS.item($I_INDEX)
		Switch $F_SELECT
			Case - 1
				Return SetError($_IESTATUS_SUCCESS, 0, $OITEMS.item($I_INDEX).selected)
			Case 0
				If Not $F_ISMULTIPLE Then
					__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "$f_select=0 only valid for type=select multiple")
					SetError($_IESTATUS_INVALIDVALUE, 3)
				EndIf
				If $OITEM.selected Then
					$OITEMS.item($I_INDEX).selected = False
					If $F_FIREEVENT Then
						$O_OBJECT.fireEvent("onChange")
						$O_OBJECT.fireEvent("OnClick")
					EndIf
				EndIf
				Return SetError($_IESTATUS_SUCCESS, 0, 1)
			Case 1
				If Not $OITEM.selected Then
					$OITEMS.item($I_INDEX).selected = True
					If $F_FIREEVENT Then
						$O_OBJECT.fireEvent("onChange")
						$O_OBJECT.fireEvent("OnClick")
					EndIf
				EndIf
				Return SetError($_IESTATUS_SUCCESS, 0, 1)
			Case Else
				__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")
				Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
		EndSwitch
	Case Else
		__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid Mode")
		Return SetError($_IESTATUS_INVALIDVALUE, 4, 0)
EndSwitch
EndFunc


Func _IEFORMELEMENTCHECKBOXSELECT(ByRef $O_OBJECT, $S_STRING, $S_NAME = "", $F_SELECT = 1, $S_MODE = "byValue", $F_FIREEVENT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "form") Then
	__IEERRORNOTIFY("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$S_STRING = String($S_STRING)
$S_NAME = String($S_NAME)
Local $OITEMS
If $S_NAME = "" Then
	$OITEMS = _IETAGNAMEGETCOLLECTION($O_OBJECT, "input")
Else
	$OITEMS = Execute("$o_object.elements('" & $S_NAME & "')")
EndIf
If Not IsObj($OITEMS) Then
	__IEERRORNOTIFY("Warning", "_IEFormElementCheckboxSelect", "$_IEStatus_NoMatch")
	Return SetError($_IESTATUS_NOMATCH, 3, 0)
EndIf
Local $OITEM, $F_FOUND = False
Switch $S_MODE
	Case "byValue"
		If __IEISOBJTYPE($OITEMS, "forminputelement") Then
			$OITEM = $OITEMS
			If String($OITEM.type) = "checkbox" And String($OITEM.value) = $S_STRING Then $F_FOUND = True
		Else
			For $OITEM In $OITEMS
				If String($OITEM.type) = "checkbox" And String($OITEM.value) = $S_STRING Then
					$F_FOUND = True
					ExitLoop
				EndIf
			Next
		EndIf
	Case "byIndex"
		If __IEISOBJTYPE($OITEMS, "forminputelement") Then
			$OITEM = $OITEMS
			If String($OITEM.type) = "checkbox" And Number($S_STRING) = 0 Then $F_FOUND = True
		Else
			Local $ICOUNT = 0
			For $OITEM In $OITEMS
				If String($OITEM.type) = "checkbox" And Number($S_STRING) = $ICOUNT Then
					$F_FOUND = True
					ExitLoop
				Else
					If String($OITEM.type) = "checkbox" Then $ICOUNT += 1
				EndIf
			Next
		EndIf
	Case Else
		__IEERRORNOTIFY("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidValue", "Invalid Mode")
		Return SetError($_IESTATUS_INVALIDVALUE, 5, 0)
EndSwitch
If Not $F_FOUND Then
	__IEERRORNOTIFY("Warning", "_IEFormElementCheckboxSelect", "$_IEStatus_NoMatch")
	Return SetError($_IESTATUS_NOMATCH, 2, 0)
EndIf
Switch $F_SELECT
	Case - 1
		Return SetError($_IESTATUS_SUCCESS, 0, $OITEM.checked)
	Case 0
		If $OITEM.checked Then
			$OITEM.checked = False
			If $F_FIREEVENT Then
				$OITEM.fireEvent("onChange")
				$OITEM.fireEvent("OnClick")
			EndIf
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case 1
		If Not $OITEM.checked Then
			$OITEM.checked = True
			If $F_FIREEVENT Then
				$OITEM.fireEvent("onChange")
				$OITEM.fireEvent("OnClick")
			EndIf
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case Else
		__IEERRORNOTIFY("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")
		Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
EndSwitch
EndFunc


Func _IEFORMELEMENTRADIOSELECT(ByRef $O_OBJECT, $S_STRING, $S_NAME, $F_SELECT = 1, $S_MODE = "byValue", $F_FIREEVENT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "form") Then
	__IEERRORNOTIFY("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$S_STRING = String($S_STRING)
$S_NAME = String($S_NAME)
Local $OITEMS = Execute("$o_object.elements('" & $S_NAME & "')")
If Not IsObj($OITEMS) Then
	__IEERRORNOTIFY("Warning", "_IEFormElementRadioSelect", "$_IEStatus_NoMatch")
	Return SetError($_IESTATUS_NOMATCH, 3, 0)
EndIf
Local $OITEM, $F_FOUND = False
Switch $S_MODE
	Case "byValue"
		If __IEISOBJTYPE($OITEMS, "forminputelement") Then
			$OITEM = $OITEMS
			If String($OITEM.type) = "radio" And String($OITEM.value) = $S_STRING Then $F_FOUND = True
		Else
			For $OITEM In $OITEMS
				If String($OITEM.type) = "radio" And String($OITEM.value) = $S_STRING Then
					$F_FOUND = True
					ExitLoop
				EndIf
			Next
		EndIf
	Case "byIndex"
		If __IEISOBJTYPE($OITEMS, "forminputelement") Then
			$OITEM = $OITEMS
			If String($OITEM.type) = "radio" And Number($S_STRING) = 0 Then $F_FOUND = True
		Else
			Local $ICOUNT = 0
			For $OITEM In $OITEMS
				If String($OITEM.type) = "radio" And Number($S_STRING) = $ICOUNT Then
					$F_FOUND = True
					ExitLoop
				Else
					$ICOUNT += 1
				EndIf
			Next
		EndIf
	Case Else
		__IEERRORNOTIFY("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidValue", "Invalid Mode")
		Return SetError($_IESTATUS_INVALIDVALUE, 5, 0)
EndSwitch
If Not $F_FOUND Then
	__IEERRORNOTIFY("Warning", "_IEFormElementRadioSelect", "$_IEStatus_NoMatch")
	Return SetError($_IESTATUS_NOMATCH, 2, 0)
EndIf
Switch $F_SELECT
	Case - 1
		Return SetError($_IESTATUS_SUCCESS, 0, $OITEM.checked)
	Case 0
		If $OITEM.checked Then
			$OITEM.checked = False
			If $F_FIREEVENT Then
				$OITEM.fireEvent("onChange")
				$OITEM.fireEvent("OnClick")
			EndIf
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case 1
		If Not $OITEM.checked Then
			$OITEM.checked = True
			If $F_FIREEVENT Then
				$OITEM.fireEvent("onChange")
				$OITEM.fireEvent("OnClick")
			EndIf
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case Else
		__IEERRORNOTIFY("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidValue", "$f_select value invalid")
		Return SetError($_IESTATUS_INVALIDVALUE, 4, 0)
EndSwitch
EndFunc


Func _IEFORMIMAGECLICK(ByRef $O_OBJECT, $S_LINKTEXT, $S_MODE = "src", $I_INDEX = 0, $F_WAIT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormImageClick", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $LINKTEXT, $FOUND = 0
Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)
Local $IMGS = _IETAGNAMEGETCOLLECTION($OTEMP, "input")
$S_MODE = StringLower($S_MODE)
$I_INDEX = Number($I_INDEX)
For $IMG In $IMGS
	If String($IMG.type) = "image" Then
		Select
			Case $S_MODE = "alt"
				$LINKTEXT = $IMG.alt
			Case $S_MODE = "name"
				$LINKTEXT = $IMG.name
			Case $S_MODE = "src"
				$LINKTEXT = $IMG.src
			Case Else
				__IEERRORNOTIFY("Error", "_IEFormImageClick", "$_IEStatus_InvalidValue", "Invalid mode: " & $S_MODE)
				Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
		EndSelect
		If StringInStr($LINKTEXT, $S_LINKTEXT) Then
			If ($FOUND = $I_INDEX) Then
				$IMG.click
				If $F_WAIT Then
					_IELOADWAIT($O_OBJECT)
					Return SetError(@error, 0, -1)
				EndIf
				Return SetError($_IESTATUS_SUCCESS, 0, -1)
			EndIf
			$FOUND = $FOUND + 1
		EndIf
	EndIf
Next
__IEERRORNOTIFY("Warning", "_IEFormImageClick", "$_IEStatus_NoMatch")
Return SetError($_IESTATUS_NOMATCH, 2, 0)
EndFunc


Func _IEFORMSUBMIT(ByRef $O_OBJECT, $F_WAIT = 1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormSubmit", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "form") Then
	__IEERRORNOTIFY("Error", "_IEFormSubmit", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Local $O_WINDOW = $O_OBJECT.document.parentWindow
$O_OBJECT.submit
If $F_WAIT Then
	_IELOADWAIT($O_WINDOW)
	Return SetError(@error, 0, -1)
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, -1)
EndFunc


Func _IEFORMRESET(ByRef $O_OBJECT)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEFormReset", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "form") Then
	__IEERRORNOTIFY("Error", "_IEFormReset", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$O_OBJECT.reset
Return SetError($_IESTATUS_SUCCESS, 0, 1)
EndFunc

#endregion Form functions
#region Table functions

Func _IETABLEGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IETableGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
$I_INDEX = Number($I_INDEX)
Select
	Case $I_INDEX = -1
		Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.GetElementsByTagName("table" ).length, $O_OBJECT.document.GetElementsByTagName("table"))
	Case $I_INDEX > -1 And $I_INDEX < $O_OBJECT.document.GetElementsByTagName("table" ).length
		Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.GetElementsByTagName("table" ).length, $O_OBJECT.document.GetElementsByTagName("table" ).item($I_INDEX))
	Case $I_INDEX < -1
		__IEERRORNOTIFY("Error", "_IETableGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
	Case Else
		__IEERRORNOTIFY("Warning", "_IETableGetCollection", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 1, 0)
EndSelect
EndFunc


Func _IETABLEWRITETOARRAY(ByRef $O_OBJECT, $F_TRANSPOSE = False)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IETableWriteToArray", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "table") Then
	__IEERRORNOTIFY("Error", "_IETableWriteToArray", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Local $I_COLS = 0, $TDS, $I_COL
Local $TRS = $O_OBJECT.rows
For $TR In $TRS
	$TDS = $TR.cells
	$I_COL = 0
	For $TD In $TDS
		$I_COL = $I_COL + $TD.colSpan
	Next
	If $I_COL > $I_COLS Then $I_COLS = $I_COL
Next
Local $I_ROWS = $TRS.length
Local $A_TABLECELLS[$I_COLS][$I_ROWS]
Local $COL, $ROW = 0
For $TR In $TRS
	$TDS = $TR.cells
	$COL = 0
	For $TD In $TDS
		$A_TABLECELLS[$COL][$ROW] = $TD.innerText
		$COL = $COL + $TD.colSpan
	Next
	$ROW = $ROW + 1
Next
If $F_TRANSPOSE Then
	Local $I_D1 = UBound($A_TABLECELLS, 1), $I_D2 = UBound($A_TABLECELLS, 2), $ATMP[$I_D2][$I_D1]
	For $I = 0 To $I_D2 - 1
		For $J = 0 To $I_D1 - 1
			$ATMP[$I][$J] = $A_TABLECELLS[$J][$I]
		Next
	Next
	$A_TABLECELLS = $ATMP
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, $A_TABLECELLS)
EndFunc

#endregion Table functions
#region Read/Write functions

Func _IEBODYREADHTML(ByRef $O_OBJECT)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEBodyReadHTML", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.body.innerHTML)
EndFunc


Func _IEBODYREADTEXT(ByRef $O_OBJECT)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEBodyReadText", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IEBodyReadText", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.body.innerText)
EndFunc


Func _IEBODYWRITEHTML(ByRef $O_OBJECT, $S_HTML)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEBodyWriteHTML", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IEBodyWriteHTML", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$O_OBJECT.document.body.innerHTML = $S_HTML
Local $OTEMP = $O_OBJECT.document
_IELOADWAIT($OTEMP)
Return SetError(@error, 0, -1)
EndFunc


Func _IEDOCREADHTML(ByRef $O_OBJECT)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEDocReadHTML", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IEDocReadHTML", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.documentElement.outerHTML)
EndFunc


Func _IEDOCWRITEHTML(ByRef $O_OBJECT, $S_HTML)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEDocWriteHTML", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IEDocWriteHTML", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$O_OBJECT.document.Write($S_HTML)
$O_OBJECT.document.close()
Local $OTEMP = $O_OBJECT.document
_IELOADWAIT($OTEMP)
Return SetError(@error, 0, -1)
EndFunc


Func _IEDOCINSERTTEXT(ByRef $O_OBJECT, $S_STRING, $S_WHERE = "beforeend")
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEDocInsertText", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Or __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
	__IEERRORNOTIFY("Error", "_IEDocInsertText", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$S_WHERE = StringLower($S_WHERE)
Select
	Case $S_WHERE = "beforebegin"
		$O_OBJECT.insertAdjacentText($S_WHERE, $S_STRING)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_WHERE = "afterbegin"
		$O_OBJECT.insertAdjacentText($S_WHERE, $S_STRING)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_WHERE = "beforeend"
		$O_OBJECT.insertAdjacentText($S_WHERE, $S_STRING)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_WHERE = "afterend"
		$O_OBJECT.insertAdjacentText($S_WHERE, $S_STRING)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case Else
		__IEERRORNOTIFY("Error", "_IEDocInsertText", "$_IEStatus_InvalidValue", "Invalid where value")
		Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
EndSelect
EndFunc


Func _IEDOCINSERTHTML(ByRef $O_OBJECT, $S_STRING, $S_WHERE = "beforeend")
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEDocInsertHTML", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Or __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
	__IEERRORNOTIFY("Error", "_IEDocInsertHTML", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$S_WHERE = StringLower($S_WHERE)
Select
	Case $S_WHERE = "beforebegin"
		$O_OBJECT.insertAdjacentHTML($S_WHERE, $S_STRING)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_WHERE = "afterbegin"
		$O_OBJECT.insertAdjacentHTML($S_WHERE, $S_STRING)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_WHERE = "beforeend"
		$O_OBJECT.insertAdjacentHTML($S_WHERE, $S_STRING)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_WHERE = "afterend"
		$O_OBJECT.insertAdjacentHTML($S_WHERE, $S_STRING)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case Else
		__IEERRORNOTIFY("Error", "_IEDocInsertHTML", "$_IEStatus_InvalidValue", "Invalid where value")
		Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
EndSelect
EndFunc


Func _IEHEADINSERTEVENTSCRIPT(ByRef $O_OBJECT, $S_HTMLFOR, $S_EVENT, $S_SCRIPT)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEHeadInsertEventScript", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $O_HEAD = $O_OBJECT.document.all.tags("HEAD" ).Item(0)
Local $O_SCRIPT = $O_OBJECT.document.createElement("script")
With $O_SCRIPT
	.defer = True
	.language = "jscript"
	.type = "text/javascript"
	.htmlFor = $S_HTMLFOR
	.event = $S_EVENT
	.text = $S_SCRIPT
EndWith
$O_HEAD.appendChild($O_SCRIPT)
Return SetError($_IESTATUS_SUCCESS, 0, 1)
EndFunc

#endregion Read/Write functions
#region Utility functions

Func _IEDOCGETOBJ(ByRef $O_OBJECT)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEDocGetObj", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Switch __IEISOBJTYPE($O_OBJECT, "document")
	Case True
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)
	Case False
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document)
EndSwitch
EndFunc


Func _IETAGNAMEGETCOLLECTION(ByRef $O_OBJECT, $S_TAGNAME, $I_INDEX = -1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IETagNameGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IETagNameGetCollection", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Local $OTEMP
If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Then
	$OTEMP = _IEDOCGETOBJ($O_OBJECT)
Else
	$OTEMP = $O_OBJECT
EndIf
$I_INDEX = Number($I_INDEX)
Select
	Case $I_INDEX = -1
		Return SetError($_IESTATUS_SUCCESS, $OTEMP.GetElementsByTagName($S_TAGNAME).length, $OTEMP.GetElementsByTagName($S_TAGNAME))
	Case $I_INDEX > -1 And $I_INDEX < $OTEMP.GetElementsByTagName($S_TAGNAME).length
		Return SetError($_IESTATUS_SUCCESS, $OTEMP.GetElementsByTagName($S_TAGNAME).length, $OTEMP.GetElementsByTagName($S_TAGNAME).item($I_INDEX))
	Case $I_INDEX < -1
		__IEERRORNOTIFY("Error", "_IETagNameGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)
	Case Else
		__IEERRORNOTIFY("Error", "_IETagNameGetCollection", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 0, 0)
EndSelect
EndFunc


Func _IETAGNAMEALLGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IETagNameAllGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IETagNameAllGetCollection", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Local $OTEMP
If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Then
	$OTEMP = _IEDOCGETOBJ($O_OBJECT)
Else
	$OTEMP = $O_OBJECT
EndIf
$I_INDEX = Number($I_INDEX)
Select
	Case $I_INDEX = -1
		Return SetError($_IESTATUS_SUCCESS, $OTEMP.all.length, $OTEMP.all)
	Case $I_INDEX > -1 And $I_INDEX < $OTEMP.all.length
		Return SetError($_IESTATUS_SUCCESS, $OTEMP.all.length, $OTEMP.all.item($I_INDEX))
	Case $I_INDEX < -1
		__IEERRORNOTIFY("Error", "_IETagNameAllGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
	Case Else
		__IEERRORNOTIFY("Error", "_IETagNameAllGetCollection", "$_IEStatus_NoMatch")
		Return SetError($_IESTATUS_NOMATCH, 1, 0)
EndSelect
EndFunc


Func _IEGETOBJBYNAME(ByRef $O_OBJECT, $S_ID, $I_INDEX = 0)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEGetObjByName", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
$I_INDEX = Number($I_INDEX)
If $I_INDEX = -1 Then
	Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.GetElementsByName($S_ID).length, $O_OBJECT.document.GetElementsByName($S_ID))
Else
	If IsObj($O_OBJECT.document.GetElementsByName($S_ID).item($I_INDEX)) Then
		Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.GetElementsByName($S_ID).length, $O_OBJECT.document.GetElementsByName($S_ID).item($I_INDEX))
	Else
		__IEERRORNOTIFY("Warning", "_IEGetObjByName", "$_IEStatus_NoMatch", "Name: " & $S_ID & ", Index: " & $I_INDEX)
		Return SetError($_IESTATUS_NOMATCH, 0, 0)
	EndIf
EndIf
EndFunc


Func _IEGETOBJBYID(ByRef $O_OBJECT, $S_ID)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEGetObjById", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IEGetObById", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
If IsObj($O_OBJECT.document.getElementById($S_ID)) Then
	Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.getElementById($S_ID))
Else
	__IEERRORNOTIFY("Warning", "_IEGetObjById", "$_IEStatus_NoMatch", $S_ID)
	Return SetError($_IESTATUS_NOMATCH, 2, 0)
EndIf
EndFunc


Func _IEACTION(ByRef $O_OBJECT, $S_ACTION)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
$S_ACTION = StringLower($S_ACTION)
Select
	Case $S_ACTION = "click"
		If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.Click()
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "disable"
		If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.disabled = True
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "enable"
		If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.disabled = False
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "focus"
		If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.Focus()
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "copy"
		$O_OBJECT.document.execCommand("Copy")
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "cut"
		$O_OBJECT.document.execCommand("Cut")
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "paste"
		$O_OBJECT.document.execCommand("Paste")
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "delete"
		$O_OBJECT.document.execCommand("Delete")
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "saveas"
		$O_OBJECT.document.execCommand("SaveAs")
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "refresh"
		$O_OBJECT.document.execCommand("Refresh")
		_IELOADWAIT($O_OBJECT)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "selectall"
		$O_OBJECT.document.execCommand("SelectAll")
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "unselect"
		$O_OBJECT.document.execCommand("Unselect")
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "print"
		$O_OBJECT.document.parentwindow.Print()
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "printdefault"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.execWB(6, 2)
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "back"
		If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.GoBack()
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "blur"
		$O_OBJECT.Blur()
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "forward"
		If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.GoForward()
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "home"
		If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.GoHome()
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "invisible"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.visible = 0
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "visible"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.visible = 1
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "search"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.GoSearch()
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "stop"
		If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.Stop()
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_ACTION = "quit"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.Quit()
		$O_OBJECT = 0
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case Else
		__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidValue", "Invalid Action")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
EndSelect
EndFunc


Func _IEPROPERTYGET(ByRef $O_OBJECT, $S_PROPERTY)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then
	__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
Local $OTEMP, $ITEMP
$S_PROPERTY = StringLower($S_PROPERTY)
Select
	Case $S_PROPERTY = "browserx"
		If __IEISOBJTYPE($O_OBJECT, "browsercontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$OTEMP = $O_OBJECT
		$ITEMP = 0
		While IsObj($OTEMP)
			$ITEMP += $OTEMP.offsetLeft
			$OTEMP = $OTEMP.offsetParent
		WEnd
		Return SetError($_IESTATUS_SUCCESS, 0, $ITEMP)
	Case $S_PROPERTY = "browsery"
		If __IEISOBJTYPE($O_OBJECT, "browsercontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$OTEMP = $O_OBJECT
		$ITEMP = 0
		While IsObj($OTEMP)
			$ITEMP += $OTEMP.offsetTop
			$OTEMP = $OTEMP.offsetParent
		WEnd
		Return SetError($_IESTATUS_SUCCESS, 0, $ITEMP)
	Case $S_PROPERTY = "screenx"
		If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		If __IEISOBJTYPE($O_OBJECT, "browser") Then
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.left())
		Else
			$OTEMP = $O_OBJECT
			$ITEMP = 0
			While IsObj($OTEMP)
				$ITEMP += $OTEMP.offsetLeft
				$OTEMP = $OTEMP.offsetParent
			WEnd
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $ITEMP + $O_OBJECT.document.parentWindow.screenLeft)
	Case $S_PROPERTY = "screeny"
		If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		If __IEISOBJTYPE($O_OBJECT, "browser") Then
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.top())
		Else
			$OTEMP = $O_OBJECT
			$ITEMP = 0
			While IsObj($OTEMP)
				$ITEMP += $OTEMP.offsetTop
				$OTEMP = $OTEMP.offsetParent
			WEnd
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $ITEMP + $O_OBJECT.document.parentWindow.screenTop)
	Case $S_PROPERTY = "height"
		If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		If __IEISOBJTYPE($O_OBJECT, "browser") Then
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Height())
		Else
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.offsetHeight)
		EndIf
	Case $S_PROPERTY = "width"
		If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		If __IEISOBJTYPE($O_OBJECT, "browser") Then
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Width())
		Else
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.offsetWidth)
		EndIf
	Case $S_PROPERTY = "isdisabled"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.isDisabled())
	Case $S_PROPERTY = "addressbar"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.AddressBar())
	Case $S_PROPERTY = "busy"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Busy())
	Case $S_PROPERTY = "fullscreen"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.fullScreen())
	Case $S_PROPERTY = "hwnd"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, HWnd($O_OBJECT.HWnd()))
	Case $S_PROPERTY = "left"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Left())
	Case $S_PROPERTY = "locationname"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.LocationName())
	Case $S_PROPERTY = "locationurl"
		If __IEISOBJTYPE($O_OBJECT, "browser") Then
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.locationURL())
		EndIf
		If __IEISOBJTYPE($O_OBJECT, "window") Then
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.location.href())
		EndIf
		If __IEISOBJTYPE($O_OBJECT, "document") Then
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.parentwindow.location.href())
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentwindow.location.href())
	Case $S_PROPERTY = "menubar"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.MenuBar())
	Case $S_PROPERTY = "offline"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.OffLine())
	Case $S_PROPERTY = "readystate"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.ReadyState())
	Case $S_PROPERTY = "resizable"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Resizable())
	Case $S_PROPERTY = "silent"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Silent())
	Case $S_PROPERTY = "statusbar"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.StatusBar())
	Case $S_PROPERTY = "statustext"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.StatusText())
	Case $S_PROPERTY = "top"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Top())
	Case $S_PROPERTY = "visible"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Visible())
	Case $S_PROPERTY = "appcodename"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.appCodeName())
	Case $S_PROPERTY = "appminorversion"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.appMinorVersion())
	Case $S_PROPERTY = "appname"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.appName())
	Case $S_PROPERTY = "appversion"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.appVersion())
	Case $S_PROPERTY = "browserlanguage"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.browserLanguage())
	Case $S_PROPERTY = "cookieenabled"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.cookieEnabled())
	Case $S_PROPERTY = "cpuclass"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.cpuClass())
	Case $S_PROPERTY = "javaenabled"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.javaEnabled())
	Case $S_PROPERTY = "online"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.onLine())
	Case $S_PROPERTY = "platform"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.platform())
	Case $S_PROPERTY = "systemlanguage"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.systemLanguage())
	Case $S_PROPERTY = "useragent"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.userAgent())
	Case $S_PROPERTY = "userlanguage"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.userLanguage())
	Case $S_PROPERTY = "vcard"
		Local $AVCARD[1][29]
		$AVCARD[0][0] = "Business.City"
		$AVCARD[0][1] = "Business.Country"
		$AVCARD[0][2] = "Business.Fax"
		$AVCARD[0][3] = "Business.Phone"
		$AVCARD[0][4] = "Business.State"
		$AVCARD[0][5] = "Business.StreetAddress"
		$AVCARD[0][6] = "Business.URL"
		$AVCARD[0][7] = "Business.Zipcode"
		$AVCARD[0][8] = "Cellular"
		$AVCARD[0][9] = "Company"
		$AVCARD[0][10] = "Department"
		$AVCARD[0][11] = "DisplayName"
		$AVCARD[0][12] = "Email"
		$AVCARD[0][13] = "FirstName"
		$AVCARD[0][14] = "Gender"
		$AVCARD[0][15] = "Home.City"
		$AVCARD[0][16] = "Home.Country"
		$AVCARD[0][17] = "Home.Fax"
		$AVCARD[0][18] = "Home.Phone"
		$AVCARD[0][19] = "Home.State"
		$AVCARD[0][20] = "Home.StreetAddress"
		$AVCARD[0][21] = "Home.Zipcode"
		$AVCARD[0][22] = "Homepage"
		$AVCARD[0][23] = "JobTitle"
		$AVCARD[0][24] = "LastName"
		$AVCARD[0][25] = "MiddleName"
		$AVCARD[0][26] = "Notes"
		$AVCARD[0][27] = "Office"
		$AVCARD[0][28] = "Pager"
		For $I = 0 To 28
			$AVCARD[1][$I] = Execute('$o_object.document.parentWindow.top.navigator.userProfile.getAttribute("' & $AVCARD[0][$I] & '")')
		Next
		Return SetError($_IESTATUS_SUCCESS, 0, $AVCARD)
	Case $S_PROPERTY = "referrer"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.referrer)
	Case $S_PROPERTY = "theatermode"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.TheaterMode)
	Case $S_PROPERTY = "toolbar"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.ToolBar)
	Case $S_PROPERTY = "contenteditable"
		If __IEISOBJTYPE($O_OBJECT, "browser") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.isContentEditable)
	Case $S_PROPERTY = "innertext"
		If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.innerText)
	Case $S_PROPERTY = "outertext"
		If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.outerText)
	Case $S_PROPERTY = "innerhtml"
		If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.innerHTML)
	Case $S_PROPERTY = "outerhtml"
		If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.outerHTML)
	Case $S_PROPERTY = "title"
		Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.title)
	Case $S_PROPERTY = "uniqueid"
		If __IEISOBJTYPE($O_OBJECT, "window") Then
			__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		Else
			Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.uniqueID)
		EndIf
	Case Else
		__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidValue", "Invalid Property")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
EndSelect
EndFunc


Func _IEPROPERTYSET(ByRef $O_OBJECT, $S_PROPERTY, $NEWVALUE)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $OTEMP
#forceref $oTemp
$S_PROPERTY = StringLower($S_PROPERTY)
Select
	Case $S_PROPERTY = "addressbar"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.AddressBar = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "height"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.Height = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "left"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.Left = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "menubar"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.MenuBar = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "offline"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.OffLine = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "resizable"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.Resizable = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "statusbar"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.StatusBar = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "statustext"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.StatusText = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "top"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.Top = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "width"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		$O_OBJECT.Width = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "theatermode"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		If $NEWVALUE Then
			$O_OBJECT.TheaterMode = True
		Else
			$O_OBJECT.TheaterMode = False
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "toolbar"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		If $NEWVALUE Then
			$O_OBJECT.ToolBar = True
		Else
			$O_OBJECT.ToolBar = False
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "contenteditable"
		If __IEISOBJTYPE($O_OBJECT, "browser") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		If $NEWVALUE Then
			$OTEMP.contentEditable = "true"
		Else
			$OTEMP.contentEditable = "false"
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "innertext"
		If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		$OTEMP.innerText = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "outertext"
		If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		$OTEMP.outerText = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "innerhtml"
		If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		$OTEMP.innerHTML = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "outerhtml"
		If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then
			$OTEMP = $O_OBJECT.document.body
		Else
			$OTEMP = $O_OBJECT
		EndIf
		$OTEMP.outerHTML = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "title"
		$O_OBJECT.document.title = $NEWVALUE
		Return SetError($_IESTATUS_SUCCESS, 0, 1)
	Case $S_PROPERTY = "silent"
		If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
			__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
		EndIf
		If $NEWVALUE Then
			$O_OBJECT.silent = True
		Else
			$O_OBJECT.silent = False
		EndIf
		Return SetError($_IESTATUS_SUCCESS, 0, 0)
	Case Else
		__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidValue", "Invalid Property")
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
EndSelect
EndFunc


Func _IEERRORNOTIFY($F_NOTIFY = -1)
Switch Number($F_NOTIFY)
	Case - 1
		Return $_IEERRORNOTIFY
	Case 0
		$_IEERRORNOTIFY = False
		Return 1
	Case 1
		$_IEERRORNOTIFY = True
		Return 1
	Case Else
		__IEERRORNOTIFY("Error", "_IEErrorNotify", "$_IEStatus_InvalidValue")
		Return 0
EndSwitch
EndFunc


Func _IEERRORHANDLERREGISTER($S_FUNCTIONNAME = "__IEInternalErrorHandler")
$SIEUSERERRORHANDLER = $S_FUNCTIONNAME
$OIEERRORHANDLER = ""
$OIEERRORHANDLER = ObjEvent("AutoIt.Error", $S_FUNCTIONNAME)
If IsObj($OIEERRORHANDLER) Then
	Return SetError($_IESTATUS_SUCCESS, 0, 1)
Else
	__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_GeneralError", "Error Handler Not Registered - Check existance of error function")
	Return SetError($_IESTATUS_GENERALERROR, 1, 0)
EndIf
EndFunc


Func _IEERRORHANDLERDEREGISTER()
$SIEUSERERRORHANDLER = ""
$OIEERRORHANDLER = ""
Return SetError($_IESTATUS_SUCCESS, 0, 1)
EndFunc


Func _IEQUIT(ByRef $O_OBJECT)
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "_IEQuit", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "browser") Then
	__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$O_OBJECT.quit()
$O_OBJECT = 0
Return SetError($_IESTATUS_SUCCESS, 0, 1)
EndFunc

#endregion Utility functions
#region General

Func _IE_INTRODUCTION($S_MODULE = "basic")
Local $S_HTML = ""
Switch $S_MODULE
	Case "basic"
		$S_HTML &= "<HTML>" & @CR
		$S_HTML &= "<HEAD>" & @CR
		$S_HTML &= "<TITLE>_IE_Introduction ('basic')</TITLE>" & @CR
		$S_HTML &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR
		$S_HTML &= "</HEAD>" & @CR
		$S_HTML &= "<BODY>" & @CR
		$S_HTML &= "<table border=1 width=600 id='table1' cellspacing=6 cellpadding=6>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<h1>Welcome to IE.au3</h1>" & @CR
		$S_HTML &= "IE.au3 is a UDF (User Defined Function) library for the " & @CR
		$S_HTML &= "<a href='http://www.autoitscript.com'>AutoIt</a> scripting language." & @CR
		$S_HTML &= "<p>  " & @CR
		$S_HTML &= "IE.au3 allows you to either create or attach to an Internet Explorer browser and do " & @CR
		$S_HTML &= "just about anything you could do with it interactively with the mouse and " & @CR
		$S_HTML &= "keyboard, but do it through script." & @CR
		$S_HTML &= "<p>" & @CR
		$S_HTML &= "You can navigate to pages, click links, fill and submit forms etc. You can " & @CR
		$S_HTML &= "also do things you cannot do interactively like change or rewrite page " & @CR
		$S_HTML &= "content and JavaScripts, read, parse and save page content and monitor and act " & @CR
		$S_HTML &= "upon browser 'events'.<p>" & @CR
		$S_HTML &= "IE.au3 uses the COM interface in AutoIt to interact with the Internet Explorer " & @CR
		$S_HTML &= "object model and the DOM (Document Object Model) supported by the browser." & @CR
		$S_HTML &= "<p>" & @CR
		$S_HTML &= "Here are some links for more information and helpful tools:<p>" & @CR
		$S_HTML &= "Reference Material: " & @CR
		$S_HTML &= "<ul>" & @CR
		$S_HTML &= "<li><a href='http://msdn1.microsoft.com/'>MSDN (Microsoft Developer Network)</a></li>" & @CR
		$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/library/aa752084.aspx' target='_blank'>InternetExplorer Object</a></li>" & @CR
		$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/library/ms531073.aspx' target='_blank'>Document Object</a></li>" & @CR
		$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/ie/aa740473.aspx' target='_blank'>Overviews and Tutorials</a></li>" & @CR
		$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/library/ms533029.aspx' target='_blank'>DHTML Objects</a></li>" & @CR
		$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/library/ms533051.aspx' target='_blank'>DHTML Events</a></li>" & @CR
		$S_HTML &= "</ul><p>" & @CR
		$S_HTML &= "Helpful Tools: " & @CR
		$S_HTML &= "<ul>" & @CR
		$S_HTML &= "<li><a href='http://www.autoitscript.com/forum/index.php?showtopic=19368' target='_blank'>AutoIt IE Builder</a> (build IE scripts interactively)</li>" & @CR
		$S_HTML &= "<li><a href='http://www.debugbar.com/' target='_blank'>DebugBar</a> (DOM inspector, HTTP inspector, HTML validator and more - free for personal use) Recommended</li>" & @CR
		$S_HTML &= "<li><a href='http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en' target='_blank'>IE Developer Toolbar</a> (comprehensive DOM analysis tool)</li>" & @CR
		$S_HTML &= "<li><a href='http://slayeroffice.com/tools/modi/v2.0/modi_help.html' target='_blank'>MODIV2</a> (view the DOM of a web page by mousing around)</li>" & @CR
		$S_HTML &= "<li><a href='http://validator.w3.org/' target='_blank'>HTML Validator</a> (verify HTML follows format rules)</li>" & @CR
		$S_HTML &= "<li><a href='http://www.fiddlertool.com/fiddler/' target='_blank'>Fiddler</a> (examine HTTP traffic)</li>" & @CR
		$S_HTML &= "</ul>" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "</table>" & @CR
		$S_HTML &= "</BODY>" & @CR
		$S_HTML &= "</HTML>"
	Case Else
		__IEERRORNOTIFY("Error", "_IE_Introduction", "$_IEStatus_InvalidValue")
		Return SetError($_IESTATUS_INVALIDVALUE, 1, 0)
EndSwitch
Local $O_OBJECT = _IECREATE()
_IEDOCWRITEHTML($O_OBJECT, $S_HTML)
Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)
EndFunc


Func _IE_EXAMPLE($S_MODULE = "basic")
Local $S_HTML = "", $O_OBJECT
Switch $S_MODULE
	Case "basic"
		$S_HTML &= "<HEAD>" & @CR
		$S_HTML &= "<TITLE>_IE_Example('basic')</TITLE>" & @CR
		$S_HTML &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR
		$S_HTML &= "</HEAD>" & @CR
		$S_HTML &= "<BODY>" & @CR
		$S_HTML &= "<a href='http://www.autoitscript.com'><img src='http://www.autoitscript.com/images/autoit_6_240x100.jpg' name='AutoItImage' alt='AutoIt Homepage Image'></a>" & @CR
		$S_HTML &= "<p>" & @CR
		$S_HTML &= "<div id=line1>This is a simple HTML page with text, links and images.</div>" & @CR
		$S_HTML &= "<p>" & @CR
		$S_HTML &= "<div id=line2><a href='http://www.autoitscript.com'>AutoIt</a> is a wonderful automation scripting language.</div>" & @CR
		$S_HTML &= "<p>" & @CR
		$S_HTML &= "<div id=line3>It is supported by a very active and supporting <a href='http://www.autoitscript.com/forum/'>user forum</a>.</div>" & @CR
		$S_HTML &= "<p>" & @CR
		$S_HTML &= "<div id=IEAu3Data></div>" & @CR
		$S_HTML &= "</BODY>" & @CR
		$S_HTML &= "</HTML>"
		$O_OBJECT = _IECREATE()
		_IEDOCWRITEHTML($O_OBJECT, $S_HTML)
	Case "table"
		$S_HTML &= "<HTML>" & @CR
		$S_HTML &= "<HEAD>" & @CR
		$S_HTML &= "<TITLE>_IE_Example('table')</TITLE>" & @CR
		$S_HTML &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR
		$S_HTML &= "</HEAD>" & @CR
		$S_HTML &= "<BODY>" & @CR
		$S_HTML &= "$oTableOne = _IETableGetObjByName($oIE, "tableOne")<br>" & @CR
		$S_HTML &= "<table border=1 id='tableOne'><p>" & @CR
		$S_HTML &= "<table border=1 id='tableOne'>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>AutoIt</td>" & @CR
		$S_HTML &= "		<td>is</td>" & @CR
		$S_HTML &= "		<td>really</td>" & @CR
		$S_HTML &= "		<td>great</td>" & @CR
		$S_HTML &= "		<td>with</td>" & @CR
		$S_HTML &= "		<td>IE.au3</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>1</td>" & @CR
		$S_HTML &= "		<td>2</td>" & @CR
		$S_HTML &= "		<td>3</td>" & @CR
		$S_HTML &= "		<td>4</td>" & @CR
		$S_HTML &= "		<td>5</td>" & @CR
		$S_HTML &= "		<td>6</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>the</td>" & @CR
		$S_HTML &= "		<td>quick</td>" & @CR
		$S_HTML &= "		<td>red</td>" & @CR
		$S_HTML &= "		<td>fox</td>" & @CR
		$S_HTML &= "		<td>jumped</td>" & @CR
		$S_HTML &= "		<td>over</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>the</td>" & @CR
		$S_HTML &= "		<td>lazy</td>" & @CR
		$S_HTML &= "		<td>brown</td>" & @CR
		$S_HTML &= "		<td>dog</td>" & @CR
		$S_HTML &= "		<td>the</td>" & @CR
		$S_HTML &= "		<td>time</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>has</td>" & @CR
		$S_HTML &= "		<td>come</td>" & @CR
		$S_HTML &= "		<td>for</td>" & @CR
		$S_HTML &= "		<td>all</td>" & @CR
		$S_HTML &= "		<td>good</td>" & @CR
		$S_HTML &= "		<td>men</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>to</td>" & @CR
		$S_HTML &= "		<td>come</td>" & @CR
		$S_HTML &= "		<td>to</td>" & @CR
		$S_HTML &= "		<td>the</td>" & @CR
		$S_HTML &= "		<td>aid</td>" & @CR
		$S_HTML &= "		<td>of</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "</table>" & @CR
		$S_HTML &= "<p>" & @CR
		$S_HTML &= "$oTableTwo = _IETableGetObjByName($oIE, "tableTwo")<br>" & @CR
		$S_HTML &= "<table border="1" id='tableTwo'><p>" & @CR
		$S_HTML &= "<table border=1 id='tableTwo'>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td colspan='4'>Table Top</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>One</td>" & @CR
		$S_HTML &= "		<td colspan='3'>Two</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>Three</td>" & @CR
		$S_HTML &= "		<td>Four</td>" & @CR
		$S_HTML &= "		<td colspan='2'>Five</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>Six</td>" & @CR
		$S_HTML &= "		<td colspan='3'>Seven</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "	<tr>" & @CR
		$S_HTML &= "		<td>Eight</td>" & @CR
		$S_HTML &= "		<td>Nine</td>" & @CR
		$S_HTML &= "		<td>Ten</td>" & @CR
		$S_HTML &= "		<td>Eleven</td>" & @CR
		$S_HTML &= "	</tr>" & @CR
		$S_HTML &= "</table>" & @CR
		$S_HTML &= "</BODY>" & @CR
		$S_HTML &= "</HTML>"
		$O_OBJECT = _IECREATE()
		_IEDOCWRITEHTML($O_OBJECT, $S_HTML)
	Case "form"
		$S_HTML &= "<HTML>" & @CR
		$S_HTML &= "<HEAD>" & @CR
		$S_HTML &= "<TITLE>_IE_Example('form')</TITLE>" & @CR
		$S_HTML &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR
		$S_HTML &= "</HEAD>" & @CR
		$S_HTML &= "<BODY>" & @CR
		$S_HTML &= "<form name='ExampleForm' onSubmit='javascript:alert(""ExampleFormSubmitted"");' method='post'>" & @CR
		$S_HTML &= "<table cellspacing=6 cellpadding=6 border=1>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>ExampleForm</td>" & @CR
		$S_HTML &= "<td><form name='ExampleForm' onSubmit='javascript:alert(""ExampleFormSubmitted"");' method='post'></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>Hidden Input Element<input type='hidden' name='hiddenExample' value='secret value'></td>" & @CR
		$S_HTML &= "<td><input type='hidden' name='hiddenExample' value='secret value'></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<input type='text' name='textExample' value='http://' size='20' maxlength='30'>" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "<td><input type='text' name='textExample' value='http://' size='20' maxlength='30'></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<input type='password' name='passwordExample' size='10'>" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "<td><input type='password' name='passwordExample' size='10'></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<input type='file' name='fileExample'>" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "<td><input type='file' name='fileExample'></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<input type='image' name='imageExample' alt='AutoIt Homepage' src='http://www.autoitscript.com/images/autoit_6_240x100.jpg'>" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "<td><input type='image' name='imageExample' alt='AutoIt Homepage' src='http://www.autoitscript.com/images/autoit_6_240x100.jpg'></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<textarea name='textareaExample' rows='5' cols='15'>Hello!</textarea>" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "<td><textarea name='textareaExample' rows='5' cols='15'>Hello!</textarea></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<input type='checkbox' name='checkboxG1Example' value='gameBasketball'>Basketball<br>" & @CR
		$S_HTML &= "<input type='checkbox' name='checkboxG1Example' value='gameFootball'>Football<br>" & @CR
		$S_HTML &= "<input type='checkbox' name='checkboxG2Example' value='gameTennis' checked>Tennis<br>" & @CR
		$S_HTML &= "<input type='checkbox' name='checkboxG2Example' value='gameBaseball'>Baseball" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "<td><input type='checkbox' name='checkboxG1Example' value='gameBasketball'>Basketball<br><br>" & @CR
		$S_HTML &= "<input type='checkbox' name='checkboxG1Example' value='gameFootball'>Football<br><br>" & @CR
		$S_HTML &= "<input type='checkbox' name='checkboxG2Example' value='gameTennis' checked>Tennis<br><br>" & @CR
		$S_HTML &= "<input type='checkbox' name='checkboxG2Example' value='gameBaseball'>Baseball</td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<input type='radio' name='radioExample' value='vehicleAirplane'>Airplane<br>" & @CR
		$S_HTML &= "<input type='radio' name='radioExample' value='vehicleTrain' checked>Train<br>" & @CR
		$S_HTML &= "<input type='radio' name='radioExample' value='vehicleBoat'>Boat<br>" & @CR
		$S_HTML &= "<input type='radio' name='radioExample' value='vehicleCar'>Car</td>" & @CR
		$S_HTML &= "<td><input type='radio' name='radioExample' value='vehicleAirplane'>Airplane<br><br>" & @CR
		$S_HTML &= "<input type='radio' name='radioExample' value='vehicleTrain' checked>Train<br><br>" & @CR
		$S_HTML &= "<input type='radio' name='radioExample' value='vehicleBoat'>Boat<br><br>" & @CR
		$S_HTML &= "<input type='radio' name='radioExample' value='vehicleCar'>Car<br></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<select name='selectExample'>" & @CR
		$S_HTML &= "<option value='homepage.html'>Homepage" & @CR
		$S_HTML &= "<option value='midipage.html'>Midipage" & @CR
		$S_HTML &= "<option value='freepage.html'>Freepage" & @CR
		$S_HTML &= "</select>" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "<td><select name='selectExample'><br>" & @CR
		$S_HTML &= "<option value='homepage.html'>Homepage<br>" & @CR
		$S_HTML &= "<option value='midipage.html'>Midipage<br>" & @CR
		$S_HTML &= "<option value='freepage.html'>Freepage<br>" & @CR
		$S_HTML &= "</select></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<select name='multipleSelectExample' size='6' multiple>" & @CR
		$S_HTML &= "<option value='Name1'>Aaron" & @CR
		$S_HTML &= "<option value='Name2'>Bruce" & @CR
		$S_HTML &= "<option value='Name3'>Carlos" & @CR
		$S_HTML &= "<option value='Name4'>Denis" & @CR
		$S_HTML &= "<option value='Name5'>Ed" & @CR
		$S_HTML &= "<option value='Name6'>Freddy" & @CR
		$S_HTML &= "</select>" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "<td><select name='multipleSelectExample' size='6' multiple><br>" & @CR
		$S_HTML &= "<option value='Name1'>Aaron<br>" & @CR
		$S_HTML &= "<option value='Name2'>Bruce<br>" & @CR
		$S_HTML &= "<option value='Name3'>Carlos<br>" & @CR
		$S_HTML &= "<option value='Name4'>Denis<br>" & @CR
		$S_HTML &= "<option value='Name5'>Ed<br>" & @CR
		$S_HTML &= "<option value='Name6'>Freddy<br>" & @CR
		$S_HTML &= "</select></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td>" & @CR
		$S_HTML &= "<input name='submitExample' type='submit' value='Submit'>" & @CR
		$S_HTML &= "<input name='resetExample' type='reset' value='Reset'>" & @CR
		$S_HTML &= "</td>" & @CR
		$S_HTML &= "<td><input name='submitExample' type='submit' value='Submit'><br>" & @CR
		$S_HTML &= "<input name='resetExample' type='reset' value='Reset'></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "</table>" & @CR
		$S_HTML &= "<input type='hidden' name='hiddenExample' value='secret value'>" & @CR
		$S_HTML &= "</FORM>" & @CR
		$S_HTML &= "</BODY>" & @CR
		$S_HTML &= "</HTML>"
		$O_OBJECT = _IECREATE()
		_IEDOCWRITEHTML($O_OBJECT, $S_HTML)
	Case "frameset"
		$S_HTML &= "<HTML>" & @CR
		$S_HTML &= "<HEAD>" & @CR
		$S_HTML &= "<TITLE>_IE_Example('frameset')</TITLE>" & @CR
		$S_HTML &= "</HEAD>" & @CR
		$S_HTML &= "<FRAMESET rows='25,200'>" & @CR
		$S_HTML &= "	<FRAME NAME=Top SRC=about:blank>" & @CR
		$S_HTML &= "	<FRAMESET cols='100,500'>" & @CR
		$S_HTML &= "		<FRAME NAME=Menu SRC=about:blank>" & @CR
		$S_HTML &= "		<FRAME NAME=Main SRC=about:blank>" & @CR
		$S_HTML &= "	</FRAMESET>" & @CR
		$S_HTML &= "</FRAMESET>" & @CR
		$S_HTML &= "</HTML>"
		$O_OBJECT = _IECREATE()
		_IEDOCWRITEHTML($O_OBJECT, $S_HTML)
		_IEACTION($O_OBJECT, "refresh")
		Local $OFRAMETOP = _IEFRAMEGETOBJBYNAME($O_OBJECT, "Top")
		Local $OFRAMEMENU = _IEFRAMEGETOBJBYNAME($O_OBJECT, "Menu")
		Local $OFRAMEMAIN = _IEFRAMEGETOBJBYNAME($O_OBJECT, "Main")
		_IEBODYWRITEHTML($OFRAMETOP, '$oFrameTop = _IEFrameGetObjByName($oIE, "Top")')
		_IEBODYWRITEHTML($OFRAMEMENU, '$oFrameMenu = _IEFrameGetObjByName($oIE, "Menu")')
		_IEBODYWRITEHTML($OFRAMEMAIN, '$oFrameMain = _IEFrameGetObjByName($oIE, "Main")')
	Case "iframe"
		$S_HTML &= "<HTML>" & @CR
		$S_HTML &= "<HEAD>" & @CR
		$S_HTML &= "<TITLE>_IE_Example('iframe')</TITLE>" & @CR
		$S_HTML &= "</HEAD>" & @CR
		$S_HTML &= "<BODY>" & @CR
		$S_HTML &= "<table cellspacing=6 cellpadding=6 border=1>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td><iframe name='iFrameOne' src='about:blank' title='iFrameOne'></iframe></td>" & @CR
		$S_HTML &= "<td><iframe name="iFrameOne" src="about:blank" title="iFrameOne"></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "<tr>" & @CR
		$S_HTML &= "<td><iframe name='iFrameTwo' src='about:blank' title='iFrameTwo'></iframe></td>" & @CR
		$S_HTML &= "<td><iframe name="iFrameTwo" src="about:blank" title="iFrameTwo"></td>" & @CR
		$S_HTML &= "</tr>" & @CR
		$S_HTML &= "</table>" & @CR
		$S_HTML &= "</BODY>" & @CR
		$S_HTML &= "</HTML>"
		$O_OBJECT = _IECREATE()
		_IEDOCWRITEHTML($O_OBJECT, $S_HTML)
		_IEACTION($O_OBJECT, "refresh")
		Local $OIFRAMEONE = _IEFRAMEGETOBJBYNAME($O_OBJECT, "iFrameOne")
		Local $OIFRAMETWO = _IEFRAMEGETOBJBYNAME($O_OBJECT, "iFrameTwo")
		_IEBODYWRITEHTML($OIFRAMEONE, '$oIFrameOne = _IEFrameGetObjByName($oIE, "iFrameOne")')
		_IEBODYWRITEHTML($OIFRAMETWO, '$oIFrameTwo = _IEFrameGetObjByName($oIE, "iFrameTwo")')
	Case Else
		__IEERRORNOTIFY("Error", "_IE_Example", "$_IEStatus_InvalidValue")
		Return SetError($_IESTATUS_INVALIDVALUE, 1, 0)
EndSwitch
Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)
EndFunc


Func _IE_VERSIONINFO()
__IEERRORNOTIFY("Information", "_IE_VersionInfo", "version " & $IEAU3VERSIONINFO[0] & $IEAU3VERSIONINFO[1] & "." & $IEAU3VERSIONINFO[2] & "-" & $IEAU3VERSIONINFO[3], "Release date: " & $IEAU3VERSIONINFO[4])
Return SetError($_IESTATUS_SUCCESS, 0, $IEAU3VERSIONINFO)
EndFunc

#endregion General
#region Internal functions

Func __IELOCKSETFOREGROUNDWINDOW($NLOCKCODE)
Local $ARET = DllCall("user32.dll", "bool", "LockSetForegroundWindow", "uint", $NLOCKCODE)
If @error Or $ARET[0] Then Return SetError(1, _WINAPI_GETLASTERROR(), 0)
Return $ARET[0]
EndFunc


Func __IECONTROLGETOBJFROMHWND(ByRef $HWIN)
DllCall("ole32.dll", "long", "CoInitialize", "ptr", 0)
If @error Then Return SetError(2, @error, 0)
Local Const $WM_HTML_GETOBJECT = __IEREGISTERWINDOWMESSAGE("WM_HTML_GETOBJECT")
Local Const $SMTO_ABORTIFHUNG = 2
Local $LRESULT
__IESENDMESSAGETIMEOUT($HWIN, $WM_HTML_GETOBJECT, 0, 0, $SMTO_ABORTIFHUNG, 1000, $LRESULT)
Local $TYPUUID = DllStructCreate("int;short;short;byte[8]")
DllStructSetData($TYPUUID, 1, 1651492128)
DllStructSetData($TYPUUID, 2, 42014)
DllStructSetData($TYPUUID, 3, 4559)
DllStructSetData($TYPUUID, 4, 167, 1)
DllStructSetData($TYPUUID, 4, 49, 2)
DllStructSetData($TYPUUID, 4, 0, 3)
DllStructSetData($TYPUUID, 4, 160, 4)
DllStructSetData($TYPUUID, 4, 201, 5)
DllStructSetData($TYPUUID, 4, 8, 6)
DllStructSetData($TYPUUID, 4, 38, 7)
DllStructSetData($TYPUUID, 4, 55, 8)
Local $ARET = DllCall("oleacc.dll", "long", "ObjectFromLresult", "lresult", $LRESULT, "ptr", DllStructGetPtr($TYPUUID), "wparam", 0, "idispatch*", 0)
If @error Then Return SetError(3, @error, 0)
If IsObj($ARET[4]) Then
	Local $OIE = $ARET[4] .Script()
	Return $OIE.Document.parentwindow
Else
	Return SetError(1, $ARET[0], 0)
EndIf
EndFunc


Func __IEREGISTERWINDOWMESSAGE($SMSG)
Local $ARET = DllCall("user32.dll", "uint", "RegisterWindowMessageW", "wstr", $SMSG)
If @error Then Return SetError(@error, @extended, 0)
If $ARET[0] = 0 Then Return SetError(10, _WINAPI_GETLASTERROR(), 0)
Return $ARET[0]
EndFunc


Func __IESENDMESSAGETIMEOUT($HWND, $MSG, $WPARAM, $LPARAM, $NFLAGS, $NTIMEOUT, ByRef $VOUT, $R = 0, $T1 = "int", $T2 = "int")
Local $ARET = DllCall("user32.dll", "lresult", "SendMessageTimeout", "hwnd", $HWND, "uint", $MSG, $T1, $WPARAM, $T2, $LPARAM, "uint", $NFLAGS, "uint", $NTIMEOUT, "dword_ptr*", "")
If @error Or $ARET[0] = 0 Then
	$VOUT = 0
	Return SetError(1, _WINAPI_GETLASTERROR(), 0)
EndIf
$VOUT = $ARET[7]
If $R >= 0 And $R <= 4 Then Return $ARET[$R]
Return $ARET
EndFunc


Func __IEISOBJTYPE(ByRef $O_OBJECT, $S_TYPE)
If Not IsObj($O_OBJECT) Then
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
Local $STATUS = __IEINTERNALERRORHANDLERREGISTER()
If Not $STATUS Then __IEERRORNOTIFY("Warning", "internal function __IEIsObjType", "Cannot register internal error handler, cannot trap COM errors", "Use _IEErrorHandlerRegister() to register a user error handler")
Local $F_NOTIFYSTATUS = _IEERRORNOTIFY()
_IEERRORNOTIFY(False)
Local $S_NAME = String(ObjName($O_OBJECT)), $OBJECTOK = False
Switch $S_TYPE
	Case "browserdom"
		Local $OTEMP = $O_OBJECT.document
		If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Then
			$OBJECTOK = True
		ElseIf __IEISOBJTYPE($O_OBJECT, "document") Then
			$OBJECTOK = True
		ElseIf __IEISOBJTYPE($OTEMP, "document") Then
			$OBJECTOK = True
		EndIf
	Case "browser"
		If ($S_NAME = "IWebBrowser2") Or ($S_NAME = "IWebBrowser") Then $OBJECTOK = True
	Case "window"
		If $S_NAME = "DispHTMLWindow2" Then $OBJECTOK = True
	Case "documentContainer"
		If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "browser") Then $OBJECTOK = True
	Case "document"
		If $S_NAME = "DispHTMLDocument" Then $OBJECTOK = True
	Case "table"
		If $S_NAME = "DispHTMLTable" Then $OBJECTOK = True
	Case "form"
		If $S_NAME = "DispHTMLFormElement" Then $OBJECTOK = True
	Case "forminputelement"
		If ($S_NAME = "DispHTMLInputElement") Or ($S_NAME = "DispHTMLSelectElement") Or ($S_NAME = "DispHTMLTextAreaElement") Then $OBJECTOK = True
	Case "elementcollection"
		If ($S_NAME = "DispHTMLElementCollection") Then $OBJECTOK = True
	Case "formselectelement"
		If $S_NAME = "DispHTMLSelectElement" Then $OBJECTOK = True
	Case Else
		Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)
EndSwitch
_IEERRORNOTIFY($F_NOTIFYSTATUS)
__IEINTERNALERRORHANDLERDEREGISTER()
If $OBJECTOK Then
	Return SetError($_IESTATUS_SUCCESS, 0, 1)
Else
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
EndFunc


Func __IEERRORNOTIFY($S_SEVERITY, $S_FUNC, $S_STATUS = "", $S_MESSAGE = "")
If $_IEERRORNOTIFY Or $__IEAU3DEBUG Then
	Local $SSTR = "--> IE.au3 " & $IEAU3VERSIONINFO[5] & " " & $S_SEVERITY & " from function " & $S_FUNC
	If Not String($S_STATUS) = "" Then $SSTR &= ", " & $S_STATUS
	If Not String($S_MESSAGE) = "" Then $SSTR &= " (" & $S_MESSAGE & ")"
	ConsoleWrite($SSTR & @CRLF)
EndIf
Return 1
EndFunc


Func __IEINTERNALERRORHANDLERREGISTER()
Local $SCURRENTERRORHANDLER = ObjEvent("AutoIt.Error")
If $SCURRENTERRORHANDLER <> "" And Not IsObj($OIEERRORHANDLER) Then
	Return SetError($_IESTATUS_GENERALERROR, 0, 0)
EndIf
$OIEERRORHANDLER = ""
$OIEERRORHANDLER = ObjEvent("AutoIt.Error", "__IEInternalErrorHandler")
If IsObj($OIEERRORHANDLER) Then
	Return SetError($_IESTATUS_SUCCESS, 0, 1)
Else
	Return SetError($_IESTATUS_GENERALERROR, 0, 0)
EndIf
EndFunc


Func __IEINTERNALERRORHANDLERDEREGISTER()
$OIEERRORHANDLER = ""
If $SIEUSERERRORHANDLER <> "" Then
	$OIEERRORHANDLER = ObjEvent("AutoIt.Error", $SIEUSERERRORHANDLER)
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, 1)
EndFunc


Func __IEINTERNALERRORHANDLER()
$IECOMERRORSCRIPTLINE = $OIEERRORHANDLER.scriptline
$IECOMERRORNUMBER = $OIEERRORHANDLER.number
$IECOMERRORNUMBERHEX = Hex($OIEERRORHANDLER.number, 8)
$IECOMERRORDESCRIPTION = StringStripWS($OIEERRORHANDLER.description, 2)
$IECOMERRORWINDESCRIPTION = StringStripWS($OIEERRORHANDLER.WinDescription, 2)
$IECOMERRORSOURCE = $OIEERRORHANDLER.Source
$IECOMERRORHELPFILE = $OIEERRORHANDLER.HelpFile
$IECOMERRORHELPCONTEXT = $OIEERRORHANDLER.HelpContext
$IECOMERRORLASTDLLERROR = $OIEERRORHANDLER.LastDllError
$IECOMERROROUTPUT = ""
$IECOMERROROUTPUT &= "--> COM Error Encountered in " & @ScriptName & @CRLF
$IECOMERROROUTPUT &= "----> $IEComErrorScriptline = " & $IECOMERRORSCRIPTLINE & @CRLF
$IECOMERROROUTPUT &= "----> $IEComErrorNumberHex = " & $IECOMERRORNUMBERHEX & @CRLF
$IECOMERROROUTPUT &= "----> $IEComErrorNumber = " & $IECOMERRORNUMBER & @CRLF
$IECOMERROROUTPUT &= "----> $IEComErrorWinDescription = " & $IECOMERRORWINDESCRIPTION & @CRLF
$IECOMERROROUTPUT &= "----> $IEComErrorDescription = " & $IECOMERRORDESCRIPTION & @CRLF
$IECOMERROROUTPUT &= "----> $IEComErrorSource = " & $IECOMERRORSOURCE & @CRLF
$IECOMERROROUTPUT &= "----> $IEComErrorHelpFile = " & $IECOMERRORHELPFILE & @CRLF
$IECOMERROROUTPUT &= "----> $IEComErrorHelpContext = " & $IECOMERRORHELPCONTEXT & @CRLF
$IECOMERROROUTPUT &= "----> $IEComErrorLastDllError = " & $IECOMERRORLASTDLLERROR & @CRLF
If $_IEERRORNOTIFY Or $__IEAU3DEBUG Then ConsoleWrite($IECOMERROROUTPUT & @CRLF)
SetError($_IESTATUS_COMERROR)
Return
EndFunc


Func __IECOMERRORUNRECOVERABLE()
Select
	Case ($IECOMERRORNUMBER = -2147352567) Or (String($IECOMERRORDESCRIPTION) = "Access is denied.")
		Return $_IESTATUS_ACCESSISDENIED
	Case ($IECOMERRORNUMBER = -2147417848) Or (String($IECOMERRORWINDESCRIPTION) = "The object invoked has disconnected from its clients.")
		Return $_IESTATUS_CLIENTDISCONNECTED
	Case Else
		Return $_IESTATUS_SUCCESS
EndSelect
EndFunc

#endregion Internal functions
#region ProtoType Functions

Func __IENAVIGATE(ByRef $O_OBJECT, $S_URL, $F_WAIT = 1, $I_FLAGS = 0, $S_TARGET = "", $S_POSTDATA = "", $S_HEADERS = "")
__IEERRORNOTIFY("Warning", "__IENavigate", "Unsupported function called. Not fully tested.")
If Not IsObj($O_OBJECT) Then
	__IEERRORNOTIFY("Error", "__IENavigate", "$_IEStatus_InvalidDataType")
	Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)
EndIf
If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then
	__IEERRORNOTIFY("Error", "__IENavigate", "$_IEStatus_InvalidObjectType")
	Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)
EndIf
$O_OBJECT.navigate($S_URL, $I_FLAGS, $S_TARGET, $S_POSTDATA, $S_HEADERS)
If $F_WAIT Then
	_IELOADWAIT($O_OBJECT)
	Return SetError(@error, 0, $O_OBJECT)
EndIf
Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)
EndFunc


Func __IESTRINGTOBSTR($S_STRING, $S_CHARSET = "us-ascii")
Local Const $ADTYPEBINARY = 1, $ADTYPETEXT = 2
Local $O_STREAM = ObjCreate("ADODB.Stream")
$O_STREAM.Type = $ADTYPETEXT
$O_STREAM.CharSet = $S_CHARSET
$O_STREAM.Open
$O_STREAM.WriteText($S_STRING)
$O_STREAM.Position = 0
$O_STREAM.Type = $ADTYPEBINARY
$O_STREAM.Position = 0
Return $O_STREAM.Read
EndFunc


Func __IEBSTRTOSTRING($O_BSTR, $S_CHARSET = "us-ascii")
Local Const $ADTYPEBINARY = 1, $ADTYPETEXT = 2
Local $O_STREAM = ObjCreate("ADODB.Stream")
$O_STREAM.Type = $ADTYPEBINARY
$O_STREAM.Open
$O_STREAM.Write($O_BSTR)
$O_STREAM.Position = 0
$O_STREAM.Type = $ADTYPETEXT
$O_STREAM.CharSet = $S_CHARSET
$O_STREAM.Position = 0
Return $O_STREAM.ReadText
EndFunc


Func __IECREATENEWIE($S_TITLE, $S_HEAD = "", $S_BODY = "")
Local $S_TEMP = __IETEMPFILE("", "~IE~", ".htm")
If @error Then
	__IEERRORNOTIFY("Error", "_IECreateHTA", "", "Error creating temporary file in @TempDir or @ScriptDir")
	Return SetError($_IESTATUS_GENERALERROR, 1, 0)
EndIf
Local $S_HTML = ""
$S_HTML &= "<HTML>" & @CR
$S_HTML &= "<HEAD>" & @CR
$S_HTML &= "<TITLE>" & $S_TEMP & "</TITLE>" & @CR & $S_HEAD & @CR
$S_HTML &= "</HEAD>" & @CR
$S_HTML &= "<BODY>" & @CR & $S_BODY & @CR
$S_HTML &= "</BODY>" & @CR
$S_HTML &= "</HTML>"
Local $H_FILE = FileOpen($S_TEMP, 2)
FileWrite($H_FILE, $S_HTML)
FileClose($H_FILE)
If @error Then
	__IEERRORNOTIFY("Error", "_IECreateNewIE", "", "Error creating temporary file in @TempDir or @ScriptDir")
	Return SetError($_IESTATUS_GENERALERROR, 2, 0)
EndIf
Run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe " & $S_TEMP)
Local $S_PID
If WinWait($S_TEMP, "", 60) Then
	$S_PID = WinGetProcess($S_TEMP)
Else
	__IEERRORNOTIFY("Error", "_IECreateNewIE", "", "Timeout waiting for new IE window creation")
	Return SetError($_IESTATUS_GENERALERROR, 3, 0)
EndIf
If Not FileDelete($S_TEMP) Then
	__IEERRORNOTIFY("Warning", "_IECreateNewIE", "", "Could not delete temporary file " & FileGetLongName($S_TEMP))
EndIf
Local $O_OBJECT = _IEATTACH($S_TEMP)
_IELOADWAIT($O_OBJECT)
_IEPROPERTYSET($O_OBJECT, "title", $S_TITLE)
Return SetError($_IESTATUS_SUCCESS, $S_PID, $O_OBJECT)
EndFunc


Func __IETEMPFILE($S_DIRECTORYNAME = @TempDir, $S_FILEPREFIX = "~", $S_FILEEXTENSION = ".tmp", $I_RANDOMLENGTH = 7)
Local $S_TEMPNAME, $I_TMP = 0
If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @TempDir
If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @ScriptDir
If StringRight($S_DIRECTORYNAME, 1) <> "\" Then $S_DIRECTORYNAME = $S_DIRECTORYNAME & "\"
Do
	$S_TEMPNAME = ""
	While StringLen($S_TEMPNAME) < $I_RANDOMLENGTH
		$S_TEMPNAME = $S_TEMPNAME & Chr(Random(97, 122, 1))
	WEnd
	$S_TEMPNAME = $S_DIRECTORYNAME & $S_FILEPREFIX & $S_TEMPNAME & $S_FILEEXTENSION
	$I_TMP += 1
	If $I_TMP > 200 Then
		Return SetError($_IESTATUS_GENERALERROR, 1, 0)
	EndIf
Until Not FileExists($S_TEMPNAME)
Return $S_TEMPNAME
EndFunc

#endregion ProtoType Functions
Global Const $VAR0000 = -3
Global Const $VAR0001 = -4
Global Const $VAR0002 = -5
Global Const $VAR0003 = -6
Global Const $VAR0004 = -7
Global Const $VAR0005 = -8
Global Const $VAR0006 = -9
Global Const $VAR0007 = -10
Global Const $VAR0008 = -11
Global Const $VAR0009 = -12
Global Const $VAR000A = -13
Global Const $VAR000B = "GUI_RUNDEFMSG"
Global Const $VAR000C = 0
Global Const $VAR000D = 1
Global Const $VAR000E = 2
Global Const $VAR000F = 1
Global Const $VAR0010 = 2
Global Const $VAR0011 = 4
Global Const $VAR0012 = 8
Global Const $VAR0013 = 4096
Global Const $VAR0014 = $VAR0012
Global Const $VAR0015 = 16
Global Const $VAR0016 = 32
Global Const $VAR0017 = 64
Global Const $VAR0018 = 128
Global Const $VAR0019 = 256
Global Const $VAR001A = 8192
Global Const $VAR001B = 512
Global Const $VAR001C = 1024
Global Const $VAR001D = 2048
Global Const $VAR001E = 2
Global Const $VAR001F = 4
Global Const $VAR0020 = 8
Global Const $VAR0021 = 1
Global Const $VAR0022 = 2
Global Const $VAR0023 = 4
Global Const $VAR0024 = 8
Global Const $VAR0025 = 32
Global Const $VAR0026 = 64
Global Const $VAR0027 = 128
Global Const $VAR0028 = 256
Global Const $VAR0029 = 512
Global Const $VAR002A = 768
Global Const $VAR002B = 544
Global Const $VAR002C = 576
Global Const $VAR002D = 802
Global Const $VAR002E = 102
Global Const $VAR002F = 1
Global Const $VAR0030 = 2
Global Const $VAR0031 = 4
Global Const $VAR0032 = 6
Global Const $VAR0033 = 8
Global Const $VAR0034 = 10
Global Const $VAR0035 = 12
Global Const $VAR0036 = 14
Global Const $VAR0037 = 16
Global Const $VAR0038 = 18
Global Const $VAR0039 = 20
Global Const $VAR003A = 22
Global Const $VAR003B = 24
Global Const $VAR003C = -2
Global Const $VAR003D = -1
Global Const $VAR003E = -2
Global Const $VAR003F = -33554432
Global Const $VAR0040 = 1048576
Global Const $VAR0041 = 0
Global Const $VAR0042 = 1
Global Const $VAR0043 = 0
Global Const $VAR0044 = 1
Global Const $VAR0045 = 2
Global Const $VAR0046 = 0
Global Const $VAR0047 = 1
Global Const $VAR0048 = 2
Global Const $VAR0049 = 16
Global Const $VAR004A = 32
Global Const $VAR004B = 32
Global Const $VAR004C = 64
Global Const $VAR004D = 128
Global Const $VAR004E = 256
Global Const $VAR004F = -1
Global Const $VAR0050 = 1
Global Const $VAR0051 = 2
Global Const $VAR0052 = 4
Global Const $VAR0053 = 8
Global Const $VAR0054 = 16
Global Const $VAR0055 = 1
Global Const $VAR0056 = 2
Global Const $VAR0057 = 3
Global Const $VAR0058 = 4
Global Const $VAR0059 = 5
Global Const $VAR005A = -1
Global Const $VAR005B = 0
Global Const $VAR005C = 1
Global Const $VAR005D = 2
Global Const $VAR005E = 1
Global Const $VAR005F = 2
Global Const $VAR0060 = 4
Global Const $VAR0061 = 16
Global Const $VAR0062 = 32
Global Const $VAR0063 = 64
Global Const $VAR0064 = 128
Global Const $VAR0065 = 256
Global Const $VAR0066 = 512
Global Const $VAR0067 = 1024
Global Const $VAR0068 = 2048
Global Const $VAR0069 = 4096
Global Const $VAR006A = 8192
Global Const $VAR006B = 16384
Global Const $VAR006C = 1
Global Const $VAR006D = 2
Global Const $VAR006E = 4
Global Const $VAR006F = 268435456
Global Const $VAR0070 = 536870912
Global Const $VAR0071 = 1073741824
Global Const $VAR0072 = -2147483648

Func FN0000($ARG00)
Local $LOCAL0000 = FileOpen($ARG00, $VAR0046)
If $LOCAL0000 = -1 Then Return SetError(1, 0, 0)
Local $LOCAL0001 = StringStripWS(FileRead($LOCAL0000), 2)
FileClose($LOCAL0000)
Local $VAR0073
If StringInStr($LOCAL0001, @LF) Then
	$VAR0073 = StringSplit(StringStripCR($LOCAL0001), @LF)
ElseIf StringInStr($LOCAL0001, @CR) Then
	$VAR0073 = StringSplit($LOCAL0001, @CR)
Else
	If StringLen($LOCAL0001) Then
		Return 1
	Else
		Return SetError(2, 0, 0)
	EndIf
EndIf
Return $VAR0073[0]
EndFunc


Func FN0001($ARG00)
Local $LOCAL0002 = FileOpen($ARG00, $VAR0048)
If $LOCAL0002 = -1 Then Return SetError(1, 0, 0)
Local $LOCAL0003 = FileWrite($LOCAL0002, "")
FileClose($LOCAL0002)
If $LOCAL0003 = -1 Then Return SetError(2, 0, 0)
Return 1
EndFunc


Func FN0002($ARG00, $ARGOPT01 = "*", $ARGOPT02 = 0)
Local $VAR0074, $VAR0075, $VAR0076, $VAR0077 = "|"
$ARG00 = StringRegExpReplace($ARG00, "[\\/]+\z", "") & "\"
If Not FileExists($ARG00) Then Return SetError(1, 1, "")
If StringRegExp($ARGOPT01, "[\\/:><\|]|(?s)\A\s*\z") Then Return SetError(2, 2, "")
If Not ($ARGOPT02 = 0 Or $ARGOPT02 = 1 Or $ARGOPT02 = 2) Then Return SetError(3, 3, "")
$VAR0074 = FileFindFirstFile($ARG00 & $ARGOPT01)
If @error Then Return SetError(4, 4, "")
While 1
	$VAR0075 = FileFindNextFile($VAR0074)
	If @error Then ExitLoop
	If ($ARGOPT02 + @extended = 2) Then ContinueLoop
	$VAR0076 &= $VAR0077 & $VAR0075
WEnd
FileClose($VAR0074)
If Not $VAR0076 Then Return SetError(4, 4, "")
Return StringSplit(StringTrimLeft($VAR0076, 1), "|")
EndFunc


Func FN0003($ARG00, $ARGOPT01 = @SW_HIDE)
Local $LOCAL0004 = DllCall("shell32.dll", "int", "ShellExecuteW", "hwnd", 0, "wstr", "print", "wstr", $ARG00, "wstr", "", "wstr", "", "int", $ARGOPT01)
If @error Then Return SetError(@error, @extended, 0)
If $LOCAL0004[0] <= 32 Then Return SetError(10, $LOCAL0004[0], 0)
Return 1
EndFunc


Func FN0004($ARG00, ByRef $ARGREF01)
Local $LOCAL0000 = FileOpen($ARG00, $VAR0046)
If $LOCAL0000 = -1 Then Return SetError(1, 0, 0)
Local $LOCAL0005 = FileRead($LOCAL0000, FileGetSize($ARG00))
If StringRight($LOCAL0005, 1) = @LF Then $LOCAL0005 = StringTrimRight($LOCAL0005, 1)
If StringRight($LOCAL0005, 1) = @CR Then $LOCAL0005 = StringTrimRight($LOCAL0005, 1)
FileClose($LOCAL0000)
If StringInStr($LOCAL0005, @LF) Then
	$ARGREF01 = StringSplit(StringStripCR($LOCAL0005), @LF)
ElseIf StringInStr($LOCAL0005, @CR) Then
	$ARGREF01 = StringSplit($LOCAL0005, @CR)
Else
	If StringLen($LOCAL0005) Then
		Dim $ARGREF01[2] = [1, $LOCAL0005]
	Else
		Return SetError(2, 0, 0)
	EndIf
EndIf
Return 1
EndFunc


Func FN0005($ARG00, $ARG01, $ARGOPT02 = 0, $ARGOPT03 = 0)
If Not IsArray($ARG01) Then Return SetError(2, 0, 0)
Local $LOCAL0006 = UBound($ARG01) - 1
If $ARGOPT03 < 1 Or $ARGOPT03 > $LOCAL0006 Then $ARGOPT03 = $LOCAL0006
If $ARGOPT02 < 0 Or $ARGOPT02 > $LOCAL0006 Then $ARGOPT02 = 0
Local $LOCAL0000
If IsString($ARG00) Then
	$LOCAL0000 = FileOpen($ARG00, $VAR0048)
Else
	$LOCAL0000 = $ARG00
EndIf
If $LOCAL0000 = -1 Then Return SetError(1, 0, 0)
Local $LOCAL0007 = 0
For $VAR0078 = $ARGOPT02 To $ARGOPT03
	If FileWrite($LOCAL0000, $ARG01[$VAR0078] & @CRLF) = 0 Then
		$LOCAL0007 = 3
		ExitLoop
	EndIf
Next
If IsString($ARG00) Then FileClose($LOCAL0000)
If $LOCAL0007 Then Return SetError($LOCAL0007, 0, 0)
Return 1
EndFunc


Func FN0006($ARG00, $ARG01, $ARGOPT02 = -1)
Local $LOCAL0008 = $VAR0047
Local $LOCAL0009 = @YEAR & "-" & @MON & "-" & @MDAY
Local $LOCAL000A = @HOUR & ":" & @MIN & ":" & @SEC
Local $LOCAL000B = $LOCAL0009 & " " & $LOCAL000A & " : " & $ARG01
If $ARGOPT02 <> -1 Then
	$LOCAL000B &= @CRLF & FileRead($ARG00)
	$LOCAL0008 = $VAR0048
EndIf
Local $LOCAL0002 = FileOpen($ARG00, $LOCAL0008)
If $LOCAL0002 = -1 Then Return SetError(1, 0, 0)
Local $LOCAL000C = FileWriteLine($LOCAL0002, $LOCAL000B)
Local $LOCAL000D = FileClose($LOCAL0002)
If $LOCAL000C = -1 Then Return SetError(2, $LOCAL000D, 0)
Return $LOCAL000D
EndFunc


Func FN0007($ARG00, $ARG01, $ARG02, $ARGOPT03 = 0)
If $ARG01 <= 0 Then Return SetError(4, 0, 0)
If Not IsString($ARG02) Then
	$ARG02 = String($ARG02)
	If $ARG02 = "" Then Return SetError(6, 0, 0)
EndIf
If $ARGOPT03 <> 0 And $ARGOPT03 <> 1 Then Return SetError(5, 0, 0)
If Not FileExists($ARG00) Then Return SetError(2, 0, 0)
Local $LOCAL000E = FileRead($ARG00)
Local $LOCAL000F = StringSplit(StringStripCR($LOCAL000E), @LF)
If UBound($LOCAL000F) < $ARG01 Then Return SetError(1, 0, 0)
Local $LOCAL0000 = FileOpen($ARG00, $VAR0048)
If $LOCAL0000 = -1 Then Return SetError(3, 0, 0)
$LOCAL000E = ""
For $LOCAL0017 = 1 To $LOCAL000F[0]
	If $LOCAL0017 = $ARG01 Then
		If $ARGOPT03 = 1 Then
			If $ARG02 <> "" Then $LOCAL000E &= $ARG02 & @CRLF
		Else
			$LOCAL000E &= $ARG02 & @CRLF & $LOCAL000F[$LOCAL0017] & @CRLF
		EndIf
	ElseIf $LOCAL0017 < $LOCAL000F[0] Then
		$LOCAL000E &= $LOCAL000F[$LOCAL0017] & @CRLF
	ElseIf $LOCAL0017 = $LOCAL000F[0] Then
		$LOCAL000E &= $LOCAL000F[$LOCAL0017]
	EndIf
Next
FileWrite($LOCAL0000, $LOCAL000E)
FileClose($LOCAL0000)
Return 1
EndFunc


Func FN0008($ARG00, $ARGOPT01 = @WorkingDir)
If Not $ARG00 Or $ARG00 = "." Then Return $ARGOPT01
Local $LOCAL0010 = StringReplace($ARG00, "/", "\")
Local Const $VAR0079 = $LOCAL0010
Local $VAR007A
Local $LOCAL0011 = StringLeft($LOCAL0010, 1) = "\" And StringMid($LOCAL0010, 2, 1) <> "\"
For $LOCAL0017 = 1 To 2
	$VAR007A = StringLeft($LOCAL0010, 2)
	If $VAR007A = "\\" Then
		$LOCAL0010 = StringTrimLeft($LOCAL0010, 2)
		Local $LOCAL0012 = StringInStr($LOCAL0010, "\") - 1
		$VAR007A = "\\" & StringLeft($LOCAL0010, $LOCAL0012)
		$LOCAL0010 = StringTrimLeft($LOCAL0010, $LOCAL0012)
		ExitLoop
	ElseIf StringRight($VAR007A, 1) = ":" Then
		$LOCAL0010 = StringTrimLeft($LOCAL0010, 2)
		ExitLoop
	Else
		$LOCAL0010 = $ARGOPT01 & "\" & $LOCAL0010
	EndIf
Next
If $LOCAL0017 = 3 Then Return ""
If StringLeft($LOCAL0010, 1) <> "\" Then
	If StringLeft($VAR0079, 2) = StringLeft($ARGOPT01, 2) Then
		$LOCAL0010 = $ARGOPT01 & "\" & $LOCAL0010
	Else
		$LOCAL0010 = "\" & $LOCAL0010
	EndIf
EndIf
Local $LOCAL0013 = StringSplit($LOCAL0010, "\")
Local $LOCAL0014[$LOCAL0013[0]], $VAR007B = 0
For $LOCAL0017 = 2 To $LOCAL0013[0]
	If $LOCAL0013[$LOCAL0017] = ".." Then
		If $VAR007B Then $VAR007B -= 1
	ElseIf Not ($LOCAL0013[$LOCAL0017] = "" And $LOCAL0017 <> $LOCAL0013[0]) And $LOCAL0013[$LOCAL0017] <> "." Then
		$LOCAL0014[$VAR007B] = $LOCAL0013[$LOCAL0017]
		$VAR007B += 1
	EndIf
Next
$LOCAL0010 = $VAR007A
If Not $LOCAL0011 Then
	For $LOCAL0017 = 0 To $VAR007B - 1
		$LOCAL0010 &= "\" & $LOCAL0014[$LOCAL0017]
	Next
Else
	$LOCAL0010 &= $VAR0079
	If StringInStr($LOCAL0010, "..") Then $LOCAL0010 = FN0008($LOCAL0010)
EndIf
While StringInStr($LOCAL0010, ".\")
	$LOCAL0010 = StringReplace($LOCAL0010, ".\", "\")
WEnd
Return $LOCAL0010
EndFunc


Func FN0009($ARG00, $ARG01)
If StringRight($ARG00, 1) <> "\" Then $ARG00 &= "\"
If StringRight($ARG01, 1) <> "\" Then $ARG01 &= "\"
If $ARG00 = $ARG01 Then Return SetError(1, 0, StringTrimRight($ARG01, 1))
Local $LOCAL0015 = StringSplit($ARG00, "\")
Local $LOCAL0016 = StringSplit($ARG01, "\")
If $LOCAL0015[1] <> $LOCAL0016[1] Then Return SetError(2, 0, StringTrimRight($ARG01, 1))
Local $LOCAL0017 = 2
Local $LOCAL0018 = 1
While 1
	If $LOCAL0015[$LOCAL0017] <> $LOCAL0016[$LOCAL0017] Then
		$LOCAL0018 = $LOCAL0017
		ExitLoop
	EndIf
	$LOCAL0017 += 1
WEnd
$LOCAL0017 = 1
Local $LOCAL0019 = ""
For $VAR007B = 1 To $LOCAL0016[0]
	If $LOCAL0017 >= $LOCAL0018 Then
		$LOCAL0019 &= "\" & $LOCAL0016[$LOCAL0017]
	EndIf
	$LOCAL0017 += 1
Next
$LOCAL0019 = StringTrimLeft($LOCAL0019, 1)
$LOCAL0017 = 1
For $VAR007B = 1 To $LOCAL0015[0]
	If $LOCAL0017 > $LOCAL0018 Then
		$LOCAL0019 = "..\" & $LOCAL0019
	EndIf
	$LOCAL0017 += 1
Next
If StringRight($LOCAL0019, 1) == "\" Then $LOCAL0019 = StringTrimRight($LOCAL0019, 1)
Return $LOCAL0019
EndFunc


Func FN000A($ARG00, $ARG01, $ARG02, $ARG03)
If StringLen($ARG00) Then
	If Not (StringLeft($ARG00, 2) = "\\") Then $ARG00 = StringLeft($ARG00, 1) & ":"
EndIf
If StringLen($ARG01) Then
	If Not (StringRight($ARG01, 1) = "\") And Not (StringRight($ARG01, 1) = "/") Then $ARG01 = $ARG01 & "\"
EndIf
If StringLen($ARG03) Then
	If Not (StringLeft($ARG03, 1) = ".") Then $ARG03 = "." & $ARG03
EndIf
Return $ARG00 & $ARG01 & $ARG02 & $ARG03
EndFunc


Func FN000B($ARG00, ByRef $ARGREF01, ByRef $ARGREF02, ByRef $ARGREF03, ByRef $ARGREF04)
Local $LOCAL001A = ""
Local $LOCAL001B = ""
Local $LOCAL001C = ""
Local $LOCAL001D = ""
Local $VAR007C
Local $LOCAL001E[5]
$LOCAL001E[0] = $ARG00
If StringMid($ARG00, 2, 1) = ":" Then
	$LOCAL001A = StringLeft($ARG00, 2)
	$ARG00 = StringTrimLeft($ARG00, 2)
ElseIf StringLeft($ARG00, 2) = "\\" Then
	$ARG00 = StringTrimLeft($ARG00, 2)
	$VAR007C = StringInStr($ARG00, "\")
	If $VAR007C = 0 Then $VAR007C = StringInStr($ARG00, "/")
	If $VAR007C = 0 Then
		$LOCAL001A = "\\" & $ARG00
		$ARG00 = ""
	Else
		$LOCAL001A = "\\" & StringLeft($ARG00, $VAR007C - 1)
		$ARG00 = StringTrimLeft($ARG00, $VAR007C - 1)
	EndIf
EndIf
Local $LOCAL001F = StringInStr($ARG00, "/", 0, -1)
Local $LOCAL0020 = StringInStr($ARG00, "\", 0, -1)
If $LOCAL001F >= $LOCAL0020 Then
	$VAR007C = $LOCAL001F
Else
	$VAR007C = $LOCAL0020
EndIf
$LOCAL001B = StringLeft($ARG00, $VAR007C)
$LOCAL001C = StringRight($ARG00, StringLen($ARG00) - $VAR007C)
If StringLen($LOCAL001B) = 0 Then $LOCAL001C = $ARG00
$VAR007C = StringInStr($LOCAL001C, ".", 0, -1)
If $VAR007C Then
	$LOCAL001D = StringRight($LOCAL001C, StringLen($LOCAL001C) - ($VAR007C - 1))
	$LOCAL001C = StringLeft($LOCAL001C, $VAR007C - 1)
EndIf
$ARGREF01 = $LOCAL001A
$ARGREF02 = $LOCAL001B
$ARGREF03 = $LOCAL001C
$ARGREF04 = $LOCAL001D
$LOCAL001E[1] = $LOCAL001A
$LOCAL001E[2] = $LOCAL001B
$LOCAL001E[3] = $LOCAL001C
$LOCAL001E[4] = $LOCAL001D
Return $LOCAL001E
EndFunc


Func FN000C($ARG00, $ARG01, $ARG02, $ARGOPT03 = 0, $ARGOPT04 = 1)
Local $LOCAL0021 = 0
Local $LOCAL009C, $VAR007D
If StringInStr(FileGetAttrib($ARG00), "R") Then Return SetError(6, 0, -1)
Local $LOCAL0000 = FileOpen($ARG00, $VAR0046)
If $LOCAL0000 = -1 Then Return SetError(1, 0, -1)
Local $LOCAL0022 = FileRead($LOCAL0000, FileGetSize($ARG00))
If StringRight($LOCAL0022, 2) = @CRLF Then
	$VAR007D = @CRLF
ElseIf StringRight($LOCAL0022, 1) = @CR Then
	$VAR007D = @CR
ElseIf StringRight($LOCAL0022, 1) = @LF Then
	$VAR007D = @LF
Else
	$VAR007D = ""
EndIf
Local $LOCAL0023 = StringSplit(StringStripCR($LOCAL0022), @LF)
FileClose($LOCAL0000)
Local $LOCAL0024 = FileOpen($ARG00, $VAR0048)
If $LOCAL0024 = -1 Then Return SetError(2, 0, -1)
For $LOCAL009C = 1 To $LOCAL0023[0]
	If StringInStr($LOCAL0023[$LOCAL009C], $ARG01, $ARGOPT03) Then
		$LOCAL0023[$LOCAL009C] = StringReplace($LOCAL0023[$LOCAL009C], $ARG01, $ARG02, 1 - $ARGOPT04, $ARGOPT03)
		$LOCAL0021 = $LOCAL0021 + 1
		If $ARGOPT04 = 0 Then
			$LOCAL0021 = 1
			ExitLoop
		EndIf
	EndIf
Next
For $LOCAL009C = 1 To $LOCAL0023[0] - 1
	If FileWriteLine($LOCAL0024, $LOCAL0023[$LOCAL009C]) = 0 Then
		FileClose($LOCAL0024)
		Return SetError(3, 0, -1)
	EndIf
Next
If $LOCAL0023[$LOCAL009C] <> "" Then FileWrite($LOCAL0024, $LOCAL0023[$LOCAL009C] & $VAR007D)
FileClose($LOCAL0024)
Return $LOCAL0021
EndFunc


Func FN000D($ARGOPT00 = @TempDir, $ARGOPT01 = "~", $ARGOPT02 = ".tmp", $ARGOPT03 = 7)
If Not FileExists($ARGOPT00) Then $ARGOPT00 = @TempDir
If Not FileExists($ARGOPT00) Then $ARGOPT00 = @ScriptDir
If StringRight($ARGOPT00, 1) <> "\" Then $ARGOPT00 = $ARGOPT00 & "\"
Local $VAR007E
Do
	$VAR007E = ""
	While StringLen($VAR007E) < $ARGOPT03
		$VAR007E = $VAR007E & Chr(Random(97, 122, 1))
	WEnd
	$VAR007E = $ARGOPT00 & $ARGOPT01 & $VAR007E & $ARGOPT02
Until Not FileExists($VAR007E)
Return $VAR007E
EndFunc

Global Const $VAR007F = 1229204781

Func FN000E($ARG00)
If Not FileExists($ARG00) Then Return SetError(2, 0, 0)
Local $LOCAL0025[4]
For $LOCAL0017 = 1 To 10
	$LOCAL0025[0] &= Chr(Random(97, 122, 1))
Next
Local $VAR0080, $VAR0081, $VAR0082, $VAR0083
FN000B($ARG00, $VAR0080, $VAR0081, $VAR0082, $VAR0083)
Local $VAR0084
If $VAR0080 = "" Then
	$VAR0084 = @WorkingDir & "\"
Else
	$VAR0084 = $VAR0080 & $VAR0081
EndIf
Local $LOCAL0026 = $VAR0082 & $VAR0083
Local $LOCAL0027 = FileGetShortName($VAR0084, 1)
FN0019("open " & FileGetShortName($ARG00) & " alias " & $LOCAL0025[0])
If @error Then Return SetError(1, @error, 0)
Local $VAR0085, $VAR0086 = False
Local $LOCAL0028 = ObjCreate("shell.application")
If IsObj($LOCAL0028) Then
	Local $LOCAL0029 = $LOCAL0028.NameSpace($LOCAL0027)
	If IsObj($LOCAL0029) Then
		Local $LOCAL002A = $LOCAL0029.Parsename($LOCAL0026)
		If IsObj($LOCAL002A) Then
			Local $LOCAL002B = $LOCAL0029.GetDetailsOf($LOCAL002A, -1)
			Local $LOCAL002C = StringRegExp($LOCAL002B, ": ([0-9]{2}:[0-9]{2}:[0-9]{2})", 3)
			If Not IsArray($LOCAL002C) Then
				$VAR0086 = True
			Else
				$VAR0085 = $LOCAL002C[0]
			EndIf
		Else
			$VAR0086 = True
		EndIf
	Else
		$VAR0086 = True
	EndIf
Else
	$VAR0086 = True
EndIf
Local $VAR0087
If $VAR0086 Then
	$VAR0086 = False
	If $VAR0083 = ".mp3" Then
		Local $LOCAL0000 = FileOpen(FileGetShortName($VAR0084 & $LOCAL0026), 4)
		$VAR0087 = FileRead($LOCAL0000, 5156)
		FileClose($LOCAL0000)
		$VAR0085 = FN001B($VAR0087)
		If @error Then $VAR0086 = True
	Else
		$VAR0086 = True
	EndIf
EndIf
If $VAR0086 Then
	$VAR0086 = False
	If $VAR0083 = ".mp3" Then
		$VAR0085 = FN001A($VAR0087)
		If @error Then $VAR0086 = True
	Else
		$VAR0086 = True
	EndIf
EndIf
If $VAR0086 Then
	$VAR0086 = False
	FN0019("set " & $LOCAL0025[0] & " time format miliseconds")
	Local $LOCAL002D = FN0019("status " & $LOCAL0025[0] & " length", 255)
	Local $VAR0088, $VAR0089, $VAR008A
	FN001C($LOCAL002D, $VAR0089, $VAR0088, $VAR008A)
	$VAR0085 = StringFormat("%02i:%02i:%02i", $VAR0089, $VAR0088, $VAR008A)
EndIf
Local $LOCAL002E = StringSplit($VAR0085, ":")
Local $LOCAL002F = FN001D($LOCAL002E[1], $LOCAL002E[2], $LOCAL002E[3])
FN0019("set " & $LOCAL0025[0] & " time format miliseconds")
Local $LOCAL0030 = FN0019("status " & $LOCAL0025[0] & " length", 255)
Local $VAR008B
If Abs($LOCAL0030 - $LOCAL002F) < 1000 Then
	$VAR008B = 0
Else
	$VAR008B = $LOCAL0030 / $LOCAL002F
EndIf
$LOCAL0025[1] = $VAR008B
$LOCAL0025[2] = 0
$LOCAL0025[3] = $VAR007F
Return $LOCAL0025
EndFunc


Func FN000F($ARG00)
If Not IsArray($ARG00) Or Not FN0018($ARG00) Then Return SetError(3, 0, 0)
FN0019("close " & $ARG00[0])
If @error Then Return SetError(1, @error, 0)
Return 1
EndFunc


Func FN0010($ARG00, $ARGOPT01 = 0)
If $ARGOPT01 <> 0 And $ARGOPT01 <> 1 Then Return SetError(2, 0, 0)
If Not FN0018($ARG00) Then Return SetError(3, 0, 0)
If FN0017($ARG00, 2) = FN0014($ARG00, 2) Then FN0019("seek " & $ARG00[0] & " to start")
If $ARGOPT01 = 1 Then
	FN0019("play " & $ARG00[0] & " wait")
Else
	FN0019("play " & $ARG00[0])
EndIf
If @error Then Return SetError(1, @error, 0)
Return 1
EndFunc


Func FN0011(ByRef $ARGREF00)
Local $LOCAL0031 = $ARGREF00
If Not FN0018($LOCAL0031) Then Return SetError(3, 0, 0)
If IsArray($ARGREF00) Then $ARGREF00[2] = 0
FN0019("stop " & $LOCAL0031[0])
If @error Then Return SetError(2, @error, 0)
FN0019("seek " & $LOCAL0031[0] & " to start")
If @error Then Return SetError(1, @error, 0)
Return 1
EndFunc


Func FN0012($ARG00)
If Not FN0018($ARG00) Then Return SetError(3, 0, 0)
FN0019("pause " & $ARG00[0])
If @error Then Return SetError(1, @error, 0)
Return 1
EndFunc


Func FN0013($ARG00)
If Not FN0018($ARG00) Then Return SetError(3, 0, 0)
FN0019("resume " & $ARG00[0])
If @error Then Return SetError(1, @error, 0)
Return 1
EndFunc


Func FN0014($ARG00, $ARGOPT01 = 1)
If $ARGOPT01 <> 1 And $ARGOPT01 <> 2 Then Return SetError(1, 0, 0)
Local $LOCAL0032 = False
If Not IsArray($ARG00) Then
	If Not FileExists($ARG00) Then Return SetError(3, 0, 0)
	$LOCAL0032 = True
	$ARG00 = FN000E($ARG00)
Else
	If Not FN0018($ARG00) Then Return SetError(3, 0, 0)
EndIf
FN0019("set " & $ARG00[0] & " time format miliseconds")
Local $LOCAL002D = Number(FN0019("status " & $ARG00[0] & " length", 255))
If $ARG00[1] <> 0 Then $LOCAL002D = Round($LOCAL002D / $ARG00[1])
If $LOCAL0032 Then FN000F($ARG00)
If $ARGOPT01 = 2 Then Return $LOCAL002D
Local $VAR0088, $VAR0089, $VAR008A
FN001C($LOCAL002D, $VAR0089, $VAR0088, $VAR008A)
Local $LOCAL0033 = StringFormat("%02i:%02i:%02i", $VAR0089, $VAR0088, $VAR008A)
Return $LOCAL0033
EndFunc


Func FN0015(ByRef $ARGREF00, $ARG01, $ARG02, $ARG03)
If Not IsArray($ARGREF00) Or Not FN0018($ARGREF00) Then Return SetError(3, 0, 0)
FN0019("set " & $ARGREF00[0] & " time format miliseconds")
Local $LOCAL0034 = $ARG03 * 1000
$LOCAL0034 += $ARG02 * 60 * 1000
$LOCAL0034 += $ARG01 * 60 * 60 * 1000
If $ARGREF00[1] <> 0 Then
	$ARGREF00[2] = Round($LOCAL0034 * $ARGREF00[1]) - $LOCAL0034
	$LOCAL0034 = Round($LOCAL0034 * $ARGREF00[1])
EndIf
FN0019("seek " & $ARGREF00[0] & " to " & $LOCAL0034)
Local $LOCAL0035 = @error
If FN0017($ARGREF00, 2) < 0 Then $ARGREF00[2] = 0
If $LOCAL0035 Then Return SetError(1, $LOCAL0035, 0)
Return 1
EndFunc


Func FN0016($ARG00)
If Not FN0018($ARG00) Then Return SetError(3, 0, 0)
Return FN0019("status " & $ARG00[0] & " mode", 255)
EndFunc


Func FN0017($ARG00, $ARGOPT01 = 1)
If $ARGOPT01 <> 1 And $ARGOPT01 <> 2 Then Return SetError(1, 0, 0)
If Not FN0018($ARG00) Then Return SetError(3, 0, 0)
FN0019("set " & $ARG00[0] & " time format miliseconds")
Local $LOCAL0036 = Number(FN0019("status " & $ARG00[0] & " position", 255))
If $ARG00[1] <> 0 Then
	$LOCAL0036 -= $ARG00[2]
EndIf
If $ARGOPT01 = 2 Then Return $LOCAL0036
Local $VAR008C, $VAR008D, $VAR008E
FN001C($LOCAL0036, $VAR008D, $VAR008C, $VAR008E)
Local $LOCAL0037 = StringFormat("%02i:%02i:%02i", $VAR008D, $VAR008C, $VAR008E)
Return $LOCAL0037
EndFunc


Func FN0018(ByRef $ARGREF00)
If Not IsArray($ARGREF00) Then
	If Not FileExists($ARGREF00) Then Return 0
	Local $LOCAL0031 = FileGetShortName($ARGREF00)
	Dim $ARGREF00[4] = [$LOCAL0031, 0, 0, $VAR007F]
Else
	If UBound($ARGREF00) <> 4 And $ARGREF00[3] <> $VAR007F Then Return 0
EndIf
Return 1
EndFunc


Func FN0019($ARG00, $ARGOPT01 = 0)
Local $LOCAL000D = DllCall("winmm.dll", "dword", "mciSendStringW", "wstr", $ARG00, "wstr", "", "uint", $ARGOPT01, "ptr", 0)
If @error Then Return SetError(@error, @extended, "")
If $LOCAL000D[0] Then Return SetError(10, $LOCAL000D[0], $LOCAL000D[2])
Return $LOCAL000D[2]
EndFunc


Func FN001A($ARG00)
If StringLeft($ARG00, 10) <> "0x49443303" Then Return SetError(1, 0, 0)
Local $LOCAL0038 = StringInStr($ARG00, "544C454E") + 21
$ARG00 = StringTrimLeft($ARG00, $LOCAL0038)
Local $LOCAL0039 = ""
For $LOCAL0017 = 1 To 32 Step 2
	If StringMid($ARG00, $LOCAL0017, 2) = "00" Then
		ExitLoop
	Else
		$LOCAL0039 &= StringMid($ARG00, $LOCAL0017, 2)
	EndIf
Next
Local $LOCAL003A = Number(BinaryToString("0x" & $LOCAL0039))
If $LOCAL003A <= 0 Then Return SetError(1, 0, 0)
Local $VAR008F, $VAR0090, $VAR0091
FN001C($LOCAL003A, $VAR008F, $VAR0090, $VAR0091)
Return StringFormat("%02i:%02i:%02i", $VAR008F, $VAR0090, $VAR0091)
EndFunc


Func FN001B($ARG00)
Local $LOCAL003B = StringInStr($ARG00, "58696E67")
If $LOCAL003B = 0 Then Return SetError(1, 0, 0)
Local $VAR0092, $VAR0093 = Number("0x" & StringMid($ARG00, $LOCAL003B + 14, 2))
If BitAND($VAR0093, 1) = 1 Then
	$VAR0092 = Number("0x" & StringMid($ARG00, $LOCAL003B + 16, 8))
Else
	Return SetError(1, 0, 0)
EndIf
Local $LOCAL003C = StringMid($ARG00, $LOCAL003B - 72, 8)
Local $LOCAL003D = Number("0x" & StringMid($LOCAL003C, 4, 1))
Local $LOCAL003E = Number("0x" & StringMid($LOCAL003C, 6, 1))
Local $LOCAL003F = BitAND($LOCAL003D, 8)
Local $LOCAL0040 = BitAND($LOCAL003D, 6)
Local $VAR0094
Switch $LOCAL0040
	Case 6
		$VAR0094 = 384
	Case 4
		$VAR0094 = 1152
	Case 2
		Switch $LOCAL003F
			Case 8
				$VAR0094 = 1152
			Case 0
				$VAR0094 = 576
			Case Else
				$VAR0094 = 0
		EndSwitch
	Case Else
		$VAR0094 = 0
EndSwitch
If $VAR0094 = 0 Then Return SetError(1, 0, 0)
Local $VAR0095, $VAR0096 = BitAND($LOCAL003E, 12)
Switch $VAR0096
	Case 0
		$VAR0095 = 44100
	Case 4
		$VAR0095 = 48000
	Case 8
		$VAR0095 = 32000
	Case Else
		$VAR0095 = 0
EndSwitch
If $VAR0095 = 0 Then Return SetError(1, 0, 0)
If $LOCAL003F = 0 Then $VAR0095 = $VAR0095 / 2
Local $LOCAL003A = Int(($VAR0092 * $VAR0094 / $VAR0095) * 1000)
Local $VAR0097, $VAR0098, $VAR0091
FN001C($LOCAL003A, $VAR0097, $VAR0098, $VAR0091)
Return StringFormat("%02i:%02i:%02i", $VAR0097, $VAR0098, $VAR0091)
EndFunc


Func FN001C($ARG00, ByRef $ARGREF01, ByRef $ARGREF02, ByRef $ARGREF03)
If Number($ARG00) < 0 Then Return SetError(1, 0, 0)
If Number($ARG00) = 0 Then
	$ARGREF01 = 0
	$ARG00 = 0
	$ARGREF02 = 0
	$ARGREF03 = 0
	Return 1
EndIf
$ARG00 = Round($ARG00 / 1000)
$ARGREF01 = Int($ARG00 / 3600)
$ARG00 = Mod($ARG00, 3600)
$ARGREF02 = Int($ARG00 / 60)
$ARGREF03 = Round(Mod($ARG00, 60))
Return 1
EndFunc


Func FN001D($ARGOPT00 = @HOUR, $ARGOPT01 = @MIN, $ARGOPT02 = @SEC)
If Not (StringIsInt($ARGOPT00) And StringIsInt($ARGOPT01) And StringIsInt($ARGOPT02)) Then Return SetError(1, 0, 0)
Return 1000 * ((3600 * $ARGOPT00) + (60 * $ARGOPT01) + $ARGOPT02)
EndFunc

Global Const $VAR0099 = 0
Global Const $VAR009A = 100
Global Const $VAR009B = 200
Global Const $VAR009C = 200
Global Const $VAR009D = 300
Global Const $VAR009E = 400
Global Const $VAR009F = 400
Global Const $VAR00A0 = 500
Global Const $VAR00A1 = 600
Global Const $VAR00A2 = 600
Global Const $VAR00A3 = 700
Global Const $VAR00A4 = 800
Global Const $VAR00A5 = 800
Global Const $VAR00A6 = 900
Global Const $VAR00A7 = 900
Global Const $VAR00A8 = 256
Global Const $VAR00A9 = 2
Global Const $VAR00AA = 1
Global Const $VAR00AB = 8388608
Global Const $VAR00AC = 64
Global Const $VAR00AD = 88
Global Const $VAR00AE = 90
Global Const $VAR00AF = 0
Global Const $VAR00B0 = 186
Global Const $VAR00B1 = 136
Global Const $VAR00B2 = 1
Global Const $VAR00B3 = 238
Global Const $VAR00B4 = 134
Global Const $VAR00B5 = 161
Global Const $VAR00B6 = 129
Global Const $VAR00B7 = 77
Global Const $VAR00B8 = 255
Global Const $VAR00B9 = 204
Global Const $VAR00BA = 128
Global Const $VAR00BB = 2
Global Const $VAR00BC = 162
Global Const $VAR00BD = 163
Global Const $VAR00BE = 2
Global Const $VAR00BF = 0
Global Const $VAR00C0 = 5
Global Const $VAR00C1 = 8
Global Const $VAR00C2 = 10
Global Const $VAR00C3 = 6
Global Const $VAR00C4 = 1
Global Const $VAR00C5 = 3
Global Const $VAR00C6 = 7
Global Const $VAR00C7 = 4
Global Const $VAR00C8 = 1
Global Const $VAR00C9 = 0
Global Const $VAR00CA = 128
Global Const $VAR00CB = 16
Global Const $VAR00CC = 15
Global Const $VAR00CD = 2
Global Const $VAR00CE = 32
Global Const $VAR00CF = 4
Global Const $VAR00D0 = 0
Global Const $VAR00D1 = 1
Global Const $VAR00D2 = 3
Global Const $VAR00D3 = 2
Global Const $VAR00D4 = 0
Global Const $VAR00D5 = 1
Global Const $VAR00D6 = 2
Global Const $VAR00D7 = 80
Global Const $VAR00D8 = 0
Global Const $VAR00D9 = 48
Global Const $VAR00DA = 16
Global Const $VAR00DB = 64
Global Const $VAR00DC = 32
Global Const $VAR00DD = "long X;long Y"
Global Const $VAR00DE = "long Left;long Top;long Right;long Bottom"
Global Const $VAR00DF = "long X;long Y"
Global Const $VAR00E0 = "int cxLeftWidth;int cxRightWidth;int cyTopHeight;int cyBottomHeight"
Global Const $VAR00E1 = "dword Lo;dword Hi"
Global Const $VAR00E2 = "word Year;word Month;word Dow;word Day;word Hour;word Minute;word Second;word MSeconds"
Global Const $VAR00E3 = "long Bias;wchar StdName[32];word StdDate[8];long StdBias;wchar DayName[32];word DayDate[8];long DayBias"
Global Const $VAR00E4 = "hwnd hWndFrom;uint_ptr IDFrom;INT Code"
Global Const $VAR00E5 = "uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;int SelectedImage;int OverlayImage;" & "int Indent;lparam Param"
Global Const $VAR00E6 = $VAR00E4 & ";int ItemID;ptr szText"
Global Const $VAR00E7 = $VAR00E4 & ";bool fChanged;int NewSelection;ptr szText;int Why"
Global Const $VAR00E8 = $VAR00E4 & ";uint Mask;int_ptr Item;ptr Text;int TextMax;int Image;" & "int SelectedImage;int OverlayImage;int Indent;lparam Param"
Global Const $VAR00E9 = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;" & "word MinSecond;word MinMSecond;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;" & "word MaxMinute;word MaxSecond;word MaxMSecond;bool MinValid;bool MaxValid"
Global Const $VAR00EA = $VAR00E4 & ";dword Flag;" & $VAR00E2
Global Const $VAR00EB = $VAR00E4 & ";ptr Format;" & $VAR00E2 & ";ptr pDisplay;wchar Display[64]"
Global Const $VAR00EC = $VAR00E4 & ";ptr Format;long SizeX;long SizeY"
Global Const $VAR00ED = $VAR00E4 & ";int VirtKey;ptr Format;" & $VAR00E2
Global Const $VAR00EE = $VAR00E4 & ";ptr UserString;" & $VAR00E2 & ";dword Flags"
Global Const $VAR00EF = "dword Length;dword Reserved;dword RecordNumber;dword TimeGenerated;dword TimeWritten;dword EventID;" & "word EventType;word NumStrings;word EventCategory;word ReservedFlags;dword ClosingRecordNumber;dword StringOffset;" & "dword UserSidLength;dword UserSidOffset;dword DataLength;dword DataOffset"
Global Const $VAR00F0 = "uint Width;uint Height;int Stride;int Format;ptr Scan0;uint_ptr Reserved"
Global Const $VAR00F1 = "byte GUID[16];dword Count;dword Type;ptr Values"
Global Const $VAR00F2 = "dword Count;byte Params[0]"
Global Const $VAR00F3 = "float X;float Y;float Width;float Height"
Global Const $VAR00F4 = "uint Version;ptr Callback;bool NoThread;bool NoCodecs"
Global Const $VAR00F5 = "ptr HookProc;ptr UnhookProc"
Global Const $VAR00F6 = "byte CLSID[16];byte FormatID[16];ptr CodecName;ptr DllName;ptr FormatDesc;ptr FileExt;" & "ptr MimeType;dword Flags;dword Version;dword SigCount;dword SigSize;ptr SigPattern;ptr SigMask"
Global Const $VAR00F7 = "dword Count;byte Params[0]"
Global Const $VAR00F8 = "uint Mask;int XY;ptr Text;handle hBMP;int TextMax;int Fmt;lparam Param;int Image;int Order;uint Type;ptr pFilter;uint State"
Global Const $VAR00F9 = $VAR00E4 & ";int Item;uint Mask;ptr Text;int TextMax;int Image;lparam lParam"
Global Const $VAR00FA = $VAR00E4 & ";int Item;" & $VAR00DE
Global Const $VAR00FB = $VAR00E4 & ";int Item;int Button;ptr pItem"
Global Const $VAR00FC = "byte Field4;byte Field3;byte Field2;byte Field1"
Global Const $VAR00FD = $VAR00E4 & ";int Field;int Value"
Global Const $VAR00FE = "uint Flags;ptr Text;lparam Param;" & $VAR00DD & ";uint Direction"
Global Const $VAR00FF = $VAR00DD & ";uint Flags;int Item;int SubItem"
Global Const $VAR0100 = "uint Mask;int Item;int SubItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;lparam Param;" & "int Indent;int GroupID;uint Columns;ptr pColumns"
Global Const $VAR0101 = $VAR00E4 & ";int Item;int SubItem;uint NewState;uint OldState;uint Changed;" & "long ActionX;long ActionY;lparam Param"
Global Const $VAR0102 = $VAR00E4 & ";dword dwDrawStage;handle hdc;long Left;long Top;long Right;long Bottom;" & "dword_ptr dwItemSpec;uint uItemState;lparam lItemlParam" & ";dword clrText;dword clrTextBk;int iSubItem;dword dwItemType;dword clrFace;int iIconEffect;" & "int iIconPhase;int iPartId;int iStateId;long TextLeft;long TextTop;long TextRight;long TextBottom;uint uAlign"
Global Const $VAR0103 = $VAR00E4 & ";" & $VAR0100
Global Const $VAR0104 = $VAR00E4 & ";" & $VAR00FE
Global Const $VAR0105 = $VAR00E4 & ";dword Flags;ptr Text;int TextMax;int Item;int SubItem;lparam lParam"
Global Const $VAR0106 = $VAR00E4 & ";int Index;int SubItem;uint NewState;uint OldState;uint Changed;" & $VAR00DD & ";lparam lParam;uint KeyFlags"
Global Const $VAR0107 = $VAR00E4 & ";align 1;word VKey;uint Flags"
Global Const $VAR0108 = $VAR00E4 & ";int DX;int DY"
Global Const $VAR0109 = "uint Size;" & $VAR00DD & ";uint Hit;" & $VAR00E2
Global Const $VAR010A = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short Span"
Global Const $VAR010B = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds;short MinSet;short MaxSet"
Global Const $VAR010C = "word MinYear;word MinMonth;word MinDOW;word MinDay;word MinHour;word MinMinute;word MinSecond;" & "word MinMSeconds;word MaxYear;word MaxMonth;word MaxDOW;word MaxDay;word MaxHour;word MaxMinute;word MaxSecond;" & "word MaxMSeconds"
Global Const $VAR010D = $VAR00E4 & ";" & $VAR00E2 & ";int DayState;ptr pDayState"
Global Const $VAR010E = $VAR00E4 & ";word BegYear;word BegMonth;word BegDOW;word BegDay;" & "word BegHour;word BegMinute;word BegSecond;word BegMSeconds;word EndYear;word EndMonth;word EndDOW;" & "word EndDay;word EndHour;word EndMinute;word EndSecond;word EndMSeconds"
Global Const $VAR010F = $VAR00E4 & ";int Item;ptr piid;ptr pObject;long Result"
Global Const $VAR0110 = $VAR00E4 & ";word VKey;uint Flags"
Global Const $VAR0111 = "uint Mask;handle hItem;uint State;uint StateMask;ptr Text;int TextMax;int Image;int SelectedImage;" & "int Children;lparam Param"
Global Const $VAR0112 = $VAR0111 & ";int Integral"
Global Const $VAR0113 = $VAR00E4 & ";uint Action;uint OldMask;handle OldhItem;uint OldState;uint OldStateMask;" & "ptr OldText;int OldTextMax;int OldImage;int OldSelectedImage;int OldChildren;lparam OldParam;uint NewMask;handle NewhItem;" & "uint NewState;uint NewStateMask;ptr NewText;int NewTextMax;int NewImage;int NewSelectedImage;int NewChildren;" & "lparam NewParam;long PointX;long PointY"
Global Const $VAR0114 = $VAR00E4 & ";dword DrawStage;handle HDC;long Left;long Top;long Right;long Bottom;" & "dword_ptr ItemSpec;uint ItemState;lparam ItemParam;dword ClrText;dword ClrTextBk;int Level"
Global Const $VAR0115 = $VAR00E4 & ";" & $VAR0111
Global Const $VAR0116 = $VAR00E4 & ";ptr Text;int TextMax;handle hItem;lparam lParam"
Global Const $VAR0117 = $VAR00DD & ";uint Flags;handle Item"
Global Const $VAR0118 = $VAR00E4 & ";word VKey;uint Flags"
Global Const $VAR0119 = $VAR00E4 & ";dword_ptr ItemSpec;dword_ptr ItemData;" & $VAR00DD & ";lparam HitInfo"
Global Const $VAR011A = "dword Count;int64 LUID;dword Attributes"
Global Const $VAR011B = "handle hBitmap;handle hMask;int Unused1;int Unused2;" & $VAR00DE
Global Const $VAR011C = "dword Size;INT Mask;dword Style;uint YMax;handle hBack;dword ContextHelpID;ulong_ptr MenuData"
Global Const $VAR011D = "uint Size;uint Mask;uint Type;uint State;uint ID;handle SubMenu;handle BmpChecked;handle BmpUnchecked;" & "ulong_ptr ItemData;ptr TypeData;uint CCH;handle BmpItem"
Global Const $VAR011E = "uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;" & "int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;" & "uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader"
Global Const $VAR011F = $VAR00E4 & ";uint uBand;uint wID;lparam lParam;uint uMsg;uint fStyleCurrent;bool fAutoBreak"
Global Const $VAR0120 = $VAR00E4 & ";bool fChanged;long TargetLeft;long TargetTop;long TargetRight;long TargetBottom;" & "long ActualLeft;long ActualTop;long ActualRight;long ActualBottom"
Global Const $VAR0121 = $VAR00E4 & ";dword dwMask;uint uBand;uint fStyle;uint wID;laram lParam"
Global Const $VAR0122 = $VAR00E4 & ";uint uBand;uint wID;lparam lParam;" & $VAR00DE & ";lparam lParamNM"
Global Const $VAR0123 = $VAR00E4 & ";uint uBand;uint wID;long CLeft;long CTop;long CRight;long CBottom;" & "long BLeft;long BTop;long BRight;long BBottom"
Global Const $VAR0124 = "dword Size;dword BtnHighlight;dword BtnShadow"
Global Const $VAR0125 = $VAR00E4 & ";int iItem;" & "int iBitmap;int idCommand;byte fsState;byte fsStyle;align;dword_ptr dwData;int_ptr iString" & ";int cchText;ptr pszText;" & $VAR00DE
Global Const $VAR0126 = $VAR00E4 & ";int idOld;int idNew;dword dwFlags"
Global Const $VAR0127 = "int Bitmap;int Command;byte State;byte Style;align;dword_ptr Param;int_ptr String"
Global Const $VAR0128 = "uint Size;dword Mask;int Command;int Image;byte State;byte Style;word CX;dword_ptr Param;ptr Text;int TextMax"
Global Const $VAR0129 = "dword Scope;dword Type;dword DisplayType;dword Usage;ptr LocalName;ptr RemoteName;ptr Comment;ptr Provider"
Global Const $VAR012A = "ulong_ptr Internal;ulong_ptr InternalHigh;dword Offset;dword OffsetHigh;handle hEvent"
Global Const $VAR012B = "dword StructSize;hwnd hwndOwner;handle hInstance;ptr lpstrFilter;ptr lpstrCustomFilter;" & "dword nMaxCustFilter;dword nFilterIndex;ptr lpstrFile;dword nMaxFile;ptr lpstrFileTitle;dword nMaxFileTitle;" & "ptr lpstrInitialDir;ptr lpstrTitle;dword Flags;word nFileOffset;word nFileExtension;ptr lpstrDefExt;lparam lCustData;" & "ptr lpfnHook;ptr lpTemplateName;ptr pvReserved;dword dwReserved;dword FlagsEx"
Global Const $VAR012C = "dword Size;long Width;long Height;word Planes;word BitCount;dword Compression;dword SizeImage;" & "long XPelsPerMeter;long YPelsPerMeter;dword ClrUsed;dword ClrImportant;dword RGBQuad"
Global Const $VAR012D = "byte Op;byte Flags;byte Alpha;byte Format"
Global Const $VAR012E = "dword Data1;word Data2;word Data3;byte Data4[8]"
Global Const $VAR012F = "uint length; uint flags;uint showCmd;long ptMinPosition[2];long ptMaxPosition[2];long rcNormalPosition[4]"
Global Const $VAR0130 = "hwnd hWnd;hwnd InsertAfter;int X;int Y;int CX;int CY;uint Flags"
Global Const $VAR0131 = "uint cbSize;uint fMask;int  nMin;int  nMax;uint nPage;int  nPos;int  nTrackPos"
Global Const $VAR0132 = "dword cbSize;" & $VAR00DE & ";int dxyLineButton;int xyThumbTop;" & "int xyThumbBottom;int reserved;dword rgstate[6]"
Global Const $VAR0133 = "long Height;long Width;long Escapement;long Orientation;long Weight;byte Italic;byte Underline;" & "byte Strikeout;byte CharSet;byte OutPrecision;byte ClipPrecision;byte Quality;byte PitchAndFamily;wchar FaceName[32]"
Global Const $VAR0134 = "dword vkCode;dword scanCode;dword flags;dword time;ulong_ptr dwExtraInfo"
Global Const $VAR0135 = "handle hProcess;handle hThread;dword ProcessID;dword ThreadID"
Global Const $VAR0136 = "dword Size;ptr Reserved1;ptr Desktop;ptr Title;dword X;dword Y;dword XSize;dword YSize;dword XCountChars;" & "dword YCountChars;dword FillAttribute;dword Flags;word ShowWindow;word Reserved2;ptr Reserved3;handle StdInput;" & "handle StdOutput;handle StdError"
Global Const $VAR0137 = "dword Length;ptr Descriptor;bool InheritHandle"
Global Const $VAR0138 = "dword dwFileAttributes; dword ftCreationTime[2]; dword ftLastAccessTime[2]; dword ftLastWriteTime[2]; dword nFileSizeHigh; dword nFileSizeLow; dword dwReserved0; dword dwReserved1; wchar cFileName[260]; wchar cAlternateFileName[14]"

Func FN001E($ARGOPT00 = @error, $ARGOPT01 = @extended)
Local $LOCAL0041 = DllCall("kernel32.dll", "dword", "GetLastError")
Return SetError($ARGOPT00, $ARGOPT01, $LOCAL0041[0])
EndFunc


Func FN001F($ARG00, $ARGOPT01 = @error, $ARGOPT02 = @extended)
DllCall("kernel32.dll", "none", "SetLastError", "dword", $ARG00)
Return SetError($ARGOPT01, $ARGOPT02)
EndFunc

Global Const $VAR0139 = 256
Global Const $VAR013A = 2
Global Const $VAR013B = 1
Global Const $VAR013C = "dword Size;hwnd hWndOwnder;handle hInstance;dword rgbResult;ptr CustColors;dword Flags;lparam lCustData;" & "ptr lpfnHook;ptr lpTemplateName"
Global Const $VAR013D = "dword Size;hwnd hWndOwner;handle hDC;ptr LogFont;int PointSize;dword Flags;dword rgbColors;lparam CustData;" & "ptr fnHook;ptr TemplateName;handle hInstance;ptr szStyle;word FontType;int SizeMin;int SizeMax"

Func FN0020($ARGOPT00 = 0, $ARGOPT01 = 0, $ARGOPT02 = 0, $ARGOPT03 = 0)
Local $LOCAL0042 = "dword[16]"
Local $LOCAL0043 = DllStructCreate($VAR013C)
Local $LOCAL0044 = DllStructCreate($LOCAL0042)
If $ARGOPT02 = 1 Then
	$ARGOPT01 = Int($ARGOPT01)
ElseIf $ARGOPT02 = 2 Then
	$ARGOPT01 = Hex(String($ARGOPT01), 6)
	$ARGOPT01 = "0x" & StringMid($ARGOPT01, 5, 2) & StringMid($ARGOPT01, 3, 2) & StringMid($ARGOPT01, 1, 2)
EndIf
DllStructSetData($LOCAL0043, "Size", DllStructGetSize($LOCAL0043))
DllStructSetData($LOCAL0043, "hWndOwnder", $ARGOPT03)
DllStructSetData($LOCAL0043, "rgbResult", $ARGOPT01)
DllStructSetData($LOCAL0043, "CustColors", DllStructGetPtr($LOCAL0044))
DllStructSetData($LOCAL0043, "Flags", BitOR($VAR0139, $VAR013A, $VAR013B))
Local $LOCAL0041 = DllCall("comdlg32.dll", "bool", "ChooseColor", "ptr", DllStructGetPtr($LOCAL0043))
If @error Then Return SetError(@error, @extended, -1)
If $LOCAL0041[0] = 0 Then Return SetError(-3, -3, -1)
Local $LOCAL0045 = DllStructGetData($LOCAL0043, "rgbResult")
If $ARGOPT00 = 1 Then
	Return "0x" & Hex(String($LOCAL0045), 6)
ElseIf $ARGOPT00 = 2 Then
	$LOCAL0045 = Hex(String($LOCAL0045), 6)
	Return "0x" & StringMid($LOCAL0045, 5, 2) & StringMid($LOCAL0045, 3, 2) & StringMid($LOCAL0045, 1, 2)
ElseIf $ARGOPT00 = 0 Then
	Return $LOCAL0045
Else
	Return SetError(-4, -4, -1)
EndIf
EndFunc


Func FN0021($ARGOPT00 = "Courier New", $ARGOPT01 = 10, $ARGOPT02 = 0, $ARGOPT03 = 0, $ARGOPT04 = False, $ARGOPT05 = False, $ARGOPT06 = False, $ARGOPT07 = 0)
Local $LOCAL0046 = 0, $VAR013E = 0, $VAR013F = 0
Local $LOCAL0047 = FN0028(0)
Local $LOCAL0048 = Round(($ARGOPT01 * FN0029($LOCAL0047, $VAR00AD)) / 72, 0)
FN002A(0, $LOCAL0047)
Local $LOCAL0049 = DllStructCreate($VAR013D)
Local $LOCAL004A = DllStructCreate($VAR0133)
DllStructSetData($LOCAL0049, "Size", DllStructGetSize($LOCAL0049))
DllStructSetData($LOCAL0049, "hWndOwner", $ARGOPT07)
DllStructSetData($LOCAL0049, "LogFont", DllStructGetPtr($LOCAL004A))
DllStructSetData($LOCAL0049, "PointSize", $ARGOPT01)
DllStructSetData($LOCAL0049, "Flags", BitOR($VAR00AA, $VAR00A9, $VAR00A8, $VAR00AC, $VAR00AB))
DllStructSetData($LOCAL0049, "rgbColors", $ARGOPT02)
DllStructSetData($LOCAL0049, "FontType", 0)
DllStructSetData($LOCAL004A, "Height", $LOCAL0048)
DllStructSetData($LOCAL004A, "Weight", $ARGOPT03)
DllStructSetData($LOCAL004A, "Italic", $ARGOPT04)
DllStructSetData($LOCAL004A, "Underline", $ARGOPT05)
DllStructSetData($LOCAL004A, "Strikeout", $ARGOPT06)
DllStructSetData($LOCAL004A, "FaceName", $ARGOPT00)
Local $LOCAL0041 = DllCall("comdlg32.dll", "bool", "ChooseFontW", "ptr", DllStructGetPtr($LOCAL0049))
If @error Then Return SetError(@error, @extended, -1)
If $LOCAL0041[0] = 0 Then Return SetError(-3, -3, -1)
Local $LOCAL004B = DllStructGetData($LOCAL004A, "FaceName")
If StringLen($LOCAL004B) = 0 And StringLen($ARGOPT00) > 0 Then $LOCAL004B = $ARGOPT00
If DllStructGetData($LOCAL004A, "Italic") Then $LOCAL0046 = 2
If DllStructGetData($LOCAL004A, "Underline") Then $VAR013E = 4
If DllStructGetData($LOCAL004A, "Strikeout") Then $VAR013F = 8
Local $LOCAL004C = BitOR($LOCAL0046, $VAR013E, $VAR013F)
Local $LOCAL004D = DllStructGetData($LOCAL0049, "PointSize") / 10
Local $LOCAL004E = DllStructGetData($LOCAL0049, "rgbColors")
Local $LOCAL004F = DllStructGetData($LOCAL004A, "Weight")
Local $LOCAL0045 = Hex(String($LOCAL004E), 6)
Return StringSplit($LOCAL004C & "," & $LOCAL004B & "," & $LOCAL004D & "," & $LOCAL004F & "," & $LOCAL004E & "," & "0x" & $LOCAL0045 & "," & "0x" & StringMid($LOCAL0045, 5, 2) & StringMid($LOCAL0045, 3, 2) & StringMid($LOCAL0045, 1, 2), ",")
EndFunc


Func FN0022($ARG00, $ARGOPT01 = "|")
Local Const $VAR0140 = 2, $VAR0141 = 15
$ARG00 &= $ARGOPT01 & $ARGOPT01
Local $LOCAL0050 = (StringLen($ARG00) + 20)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "OpenClipboard", "hwnd", 0)
If @error Or $LOCAL0041[0] = 0 Then Return SetError(1, FN001E(), False)
Local $LOCAL0035 = 0, $LOCAL007A = 0
$LOCAL0041 = DllCall("user32.dll", "bool", "EmptyClipboard")
If @error Or Not $LOCAL0041[0] Then
	$LOCAL0035 = 2
	$LOCAL007A = FN001E()
Else
	$LOCAL0041 = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", $VAR0140, "ulong_ptr", $LOCAL0050)
	If @error Or Not $LOCAL0041[0] Then
		$LOCAL0035 = 3
		$LOCAL007A = FN001E()
	Else
		Local $LOCAL0051 = $LOCAL0041[0]
		$LOCAL0041 = DllCall("kernel32.dll", "ptr", "GlobalLock", "handle", $LOCAL0051)
		If @error Or Not $LOCAL0041[0] Then
			$LOCAL0035 = 4
			$LOCAL007A = FN001E()
		Else
			Local $LOCAL0052 = $LOCAL0041[0]
			Local $LOCAL0053 = DllStructCreate("dword;ptr;int;int;int;char[" & StringLen($ARG00) + 1 & "]", $LOCAL0052)
			If @error Then Return SetError(5, 6, False)
			Local $LOCAL0054 = DllStructCreate("dword;ptr;int;int;int")
			DllStructSetData($LOCAL0053, 1, DllStructGetSize($LOCAL0054))
			DllStructSetData($LOCAL0053, 2, 0)
			DllStructSetData($LOCAL0053, 3, 0)
			DllStructSetData($LOCAL0053, 4, 0)
			DllStructSetData($LOCAL0053, 5, 0)
			DllStructSetData($LOCAL0053, 6, $ARG00)
			For $LOCAL0017 = 1 To StringLen($ARG00)
				If DllStructGetData($LOCAL0053, 6, $LOCAL0017) = $ARGOPT01 Then DllStructSetData($LOCAL0053, 6, Chr(0), $LOCAL0017)
			Next
			$LOCAL0041 = DllCall("user32.dll", "handle", "SetClipboardData", "uint", $VAR0141, "handle", $LOCAL0051)
			If @error Or Not $LOCAL0041[0] Then
				$LOCAL0035 = 6
				$LOCAL007A = FN001E()
			EndIf
			$LOCAL0041 = DllCall("kernel32.dll", "bool", "GlobalUnlock", "handle", $LOCAL0051)
			If (@error Or Not $LOCAL0041[0]) And Not $LOCAL0035 And FN001E() Then
				$LOCAL0035 = 8
				$LOCAL007A = FN001E()
			EndIf
		EndIf
		$LOCAL0041 = DllCall("kernel32.dll", "ptr", "GlobalFree", "handle", $LOCAL0051)
		If (@error Or Not $LOCAL0041[0]) And Not $LOCAL0035 Then
			$LOCAL0035 = 9
			$LOCAL007A = FN001E()
		EndIf
	EndIf
EndIf
$LOCAL0041 = DllCall("user32.dll", "bool", "CloseClipboard")
If (@error Or Not $LOCAL0041[0]) And Not $LOCAL0035 Then Return SetError(7, FN001E(), False)
If $LOCAL0035 Then Return SetError($LOCAL0035, $LOCAL007A, False)
Return True
EndFunc


Func FN0023($ARG00, $ARG01, $ARG02)
If $ARG00 Then
	Return $ARG01
Else
	Return $ARG02
EndIf
EndFunc


Func FN0024($ARGOPT00 = 0, $ARGOPT01 = 0, $ARGOPT02 = 0, $ARGOPT03 = 0)
Local $LOCAL0041
If @NumParams == 0 Then
	$LOCAL0041 = DllCall("user32.dll", "bool", "ClipCursor", "ptr", 0)
	If @error Or Not $LOCAL0041[0] Then Return SetError(1, FN001E(), False)
Else
	If @NumParams == 2 Then
		$ARGOPT02 = $ARGOPT00 + 1
		$ARGOPT03 = $ARGOPT01 + 1
	EndIf
	Local $LOCAL0055 = DllStructCreate($VAR00DE)
	DllStructSetData($LOCAL0055, "Left", $ARGOPT00)
	DllStructSetData($LOCAL0055, "Top", $ARGOPT01)
	DllStructSetData($LOCAL0055, "Right", $ARGOPT02)
	DllStructSetData($LOCAL0055, "Bottom", $ARGOPT03)
	$LOCAL0041 = DllCall("user32.dll", "bool", "ClipCursor", "ptr", DllStructGetPtr($LOCAL0055))
	If @error Or Not $LOCAL0041[0] Then Return SetError(2, FN001E(), False)
EndIf
Return True
EndFunc


Func FN0025($ARG00, $ARGOPT01 = 0)
Local Const $VAR0142 = 183
Local Const $VAR0143 = 1
Local $LOCAL0056 = 0
If BitAND($ARGOPT01, 2) Then
	Local $LOCAL0057 = DllStructCreate("dword[5]")
	Local $LOCAL0058 = DllStructGetPtr($LOCAL0057)
	Local $LOCAL0059 = DllCall("advapi32.dll", "bool", "InitializeSecurityDescriptor", "ptr", $LOCAL0058, "dword", $VAR0143)
	If @error Then Return SetError(@error, @extended, 0)
	If $LOCAL0059[0] Then
		$LOCAL0059 = DllCall("advapi32.dll", "bool", "SetSecurityDescriptorDacl", "ptr", $LOCAL0058, "bool", 1, "ptr", 0, "bool", 0)
		If @error Then Return SetError(@error, @extended, 0)
		If $LOCAL0059[0] Then
			Local $LOCAL005A = DllStructCreate($VAR0137)
			DllStructSetData($LOCAL005A, 1, DllStructGetSize($LOCAL005A))
			DllStructSetData($LOCAL005A, 2, $LOCAL0058)
			DllStructSetData($LOCAL005A, 3, 0)
			$LOCAL0056 = DllStructGetPtr($LOCAL005A)
		EndIf
	EndIf
EndIf
Local $LOCAL005B = DllCall("kernel32.dll", "handle", "CreateMutexW", "ptr", $LOCAL0056, "bool", 1, "wstr", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Local $LOCAL005C = DllCall("kernel32.dll", "dword", "GetLastError")
If @error Then Return SetError(@error, @extended, 0)
If $LOCAL005C[0] = $VAR0142 Then
	If BitAND($ARGOPT01, 1) Then
		Return SetError($LOCAL005C[0], $LOCAL005C[0], 0)
	Else
		Exit -1
	EndIf
EndIf
Return $LOCAL005B[0]
EndFunc


Func FN0026($ARG00, $ARGOPT01 = "user32.dll")
Local $LOCAL005D = DllCall($ARGOPT01, "short", "GetAsyncKeyState", "int", "0x" & $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return BitAND($LOCAL005D[0], 32768) <> 0
EndFunc


Func FN0027($ARG00, $ARG01)
If $ARG00 = $ARG01 Then Return 0
Local $LOCAL005E = "."
If StringInStr($ARG00, $LOCAL005E) = 0 Then $LOCAL005E = ","
Local $LOCAL005F = StringSplit($ARG00, $LOCAL005E)
Local $LOCAL0060 = StringSplit($ARG01, $LOCAL005E)
If UBound($LOCAL005F) <> UBound($LOCAL0060) Or UBound($LOCAL005F) = 0 Then
	SetExtended(1)
	If $ARG00 > $ARG01 Then
		Return 1
	ElseIf $ARG00 < $ARG01 Then
		Return -1
	EndIf
Else
	For $LOCAL0017 = 1 To UBound($LOCAL005F) - 1
		If StringIsDigit($LOCAL005F[$LOCAL0017]) And StringIsDigit($LOCAL0060[$LOCAL0017]) Then
			If Number($LOCAL005F[$LOCAL0017]) > Number($LOCAL0060[$LOCAL0017]) Then
				Return 1
			ElseIf Number($LOCAL005F[$LOCAL0017]) < Number($LOCAL0060[$LOCAL0017]) Then
				Return -1
			EndIf
		Else
			SetExtended(1)
			If $LOCAL005F[$LOCAL0017] > $LOCAL0060[$LOCAL0017] Then
				Return 1
			ElseIf $LOCAL005F[$LOCAL0017] < $LOCAL0060[$LOCAL0017] Then
				Return -1
			EndIf
		EndIf
	Next
EndIf
Return SetError(2, 0, 0)
EndFunc


Func FN0028($ARG00)
Local $LOCAL0041 = DllCall("User32.dll", "handle", "GetDC", "hwnd", $ARG00)
If @error Or Not $LOCAL0041[0] Then Return SetError(1, FN001E(), 0)
Return $LOCAL0041[0]
EndFunc


Func FN0029($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("GDI32.dll", "int", "GetDeviceCaps", "handle", $ARG00, "int", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN002A($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("User32.dll", "int", "ReleaseDC", "hwnd", $ARG00, "handle", $ARG01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0] <> 0
EndFunc

Global Const $VAR0144 = 0
Global Const $VAR0145 = 1
Global Const $VAR0146 = 2
Global Const $VAR0147 = 4
Global Const $VAR0148 = 8
Global Const $VAR0149 = 16
Global Const $VAR014A = 32
Global Const $VAR014B = 64
Global Const $VAR014C = 128
Global Const $VAR014D = 256
Global Const $VAR014E = 1024
Global Const $VAR014F = 2048
Global Const $VAR0150 = 4096
Global Const $VAR0151 = 8192
Global Const $VAR0152 = -1
Global Const $VAR0153 = 5376
Global Const $VAR0154 = 198
Global Const $VAR0155 = 215
Global Const $VAR0156 = 205
Global Const $VAR0157 = 200
Global Const $VAR0158 = ($VAR0153 + 2)
Global Const $VAR0159 = 206
Global Const $VAR015A = 189
Global Const $VAR015B = 217
Global Const $VAR015C = 213
Global Const $VAR015D = 196
Global Const $VAR015E = 186
Global Const $VAR015F = 212
Global Const $VAR0160 = 184
Global Const $VAR0161 = 210
Global Const $VAR0162 = 178
Global Const $VAR0163 = 176
Global Const $VAR0164 = 190
Global Const $VAR0165 = 209
Global Const $VAR0166 = ($VAR0153 + 4)
Global Const $VAR0167 = 197
Global Const $VAR0168 = 201
Global Const $VAR0169 = 187
Global Const $VAR016A = 193
Global Const $VAR016B = 182
Global Const $VAR016C = 214
Global Const $VAR016D = 194
Global Const $VAR016E = 181
Global Const $VAR016F = 183
Global Const $VAR0170 = ($VAR0153 + 1)
Global Const $VAR0171 = 188
Global Const $VAR0172 = 216
Global Const $VAR0173 = $VAR0167
Global Const $VAR0174 = 211
Global Const $VAR0175 = 185
Global Const $VAR0176 = 204
Global Const $VAR0177 = 207
Global Const $VAR0178 = 179
Global Const $VAR0179 = 180
Global Const $VAR017A = 177
Global Const $VAR017B = 203
Global Const $VAR017C = 208
Global Const $VAR017D = ($VAR0153 + 3)
Global Const $VAR017E = 199
Global Const $VAR017F = 1
Global Const $VAR0180 = 2
Global Const $VAR0181 = 65535
Global Const $VAR0182 = 1
Global Const $VAR0183 = 1
Global Const $VAR0184 = 2
Global Const $VAR0185 = 4
Global Const $VAR0186 = 1792
Global Const $VAR0187 = 1793
Global Const $VAR0188 = 768
Global Const $VAR0189 = 1280
Global Const $VAR018A = 1537
Global Const $VAR018B = 512
Global Const $VAR018C = 1281
Global Const $VAR018D = 256
Global Const $VAR018E = 1024
Global Const $VAR018F = 1538
Global Const $VAR0190 = 0
Global Const $VAR0191 = 1
Global Const $VAR0192 = 2
Global Const $VAR0193 = 3
Global Const $VAR0194 = 4
Global Const $VAR0195 = 5
Global Const $VAR0196 = 6
Global Const $VAR0197 = 2097152
Global Const $VAR0198 = 1048576
Global Const $VAR0199 = BitOR($VAR0150, $VAR0197, $VAR0198, $VAR014B, $VAR014C)
Global Const $VAR019A = BitOR($VAR0144, $VAR014C)
Global Const $VAR019B = 7
Global Const $VAR019C = 2048
Global Const $VAR019D = 768
Global Const $VAR019E = 1
Global Const $VAR019F = 256
Global Const $VAR01A0 = 8192
Global Const $VAR01A1 = 10
Global Const $VAR01A2 = 4096
Global Const $VAR01A3 = 512
Global Const $VAR01A4 = 32
Global Const $VAR01A5 = 1024
Global Const $VAR01A6 = 3072
Global Const $VAR01A7 = 32768
Global Const $VAR01A8 = 64
Global Const $VAR01A9 = 128
Global Const $VAR01AA = 16384
Global Const $VAR01AB = 12
Global Const $VAR01AC = 13
Global Const $VAR01AD = 14
Global Const $VAR01AE = 15
Global Const $VAR01AF = 1
Global Const $VAR01B0 = 2
Global Const $VAR01B1 = 4
Global Const $VAR01B2 = 8
Global Const $VAR01B3 = 1
Global Const $VAR01B4 = 2
Global Const $VAR01B5 = 4
Global Const $VAR01B6 = 8
Global Const $VAR01B7 = 0
Global Const $VAR01B8 = 1
Global Const $VAR01B9 = 2
Global Const $VAR01BA = 3
Global Const $VAR01BB = 4
Global Const $VAR01BC = 5
Global Const $VAR01BD = 6
Global Const $VAR01BE = 3
Global Const $VAR01BF = 2
Global Const $VAR01C0 = 4
Global Const $VAR01C1 = 9
Global Const $VAR01C2 = 11
Global Const $VAR01C3 = 0
Global Const $VAR01C4 = 0
Global Const $VAR01C5 = 0
Global Const $VAR01C6 = 0
Global Const $VAR01C7 = 5632
Global Const $VAR01C8 = ($VAR01C7 + 1)
Global Const $VAR01C9 = ($VAR01C7 + 3)
Global Const $VAR01CA = ($VAR01C7 + 10)
Global Const $VAR01CB = ($VAR01C7 + 11)
Global Const $VAR01CC = ($VAR01C7 + 8)
Global Const $VAR01CD = ($VAR01C7 + 5)
Global Const $VAR01CE = ($VAR01C7 + 6)
Global Const $VAR01CF = ($VAR01C7 + 2)
Global Const $VAR01D0 = ($VAR01C7 + 9)
Global Const $VAR01D1 = ($VAR01C7 + 12)
Global Const $VAR01D2 = ($VAR01C7 + 7)
Global Const $VAR01D3 = ($VAR01C7 + 4)
Global Const $VAR01D4 = 245
Global Const $VAR01D5 = 240
Global Const $VAR01D6 = 246
Global Const $VAR01D7 = 242
Global Const $VAR01D8 = 241
Global Const $VAR01D9 = 248
Global Const $VAR01DA = 247
Global Const $VAR01DB = 243
Global Const $VAR01DC = 244
Global Const $VAR01DD = -1250
Global Const $VAR01DE = ($VAR01DD + 2)
Global Const $VAR01DF = ($VAR01DD + 1)
Global Const $VAR01E0 = 0
Global Const $VAR01E1 = 1
Global Const $VAR01E2 = 2
Global Const $VAR01E3 = 3
Global Const $VAR01E4 = 4
Global Const $VAR01E5 = 5
Global Const $VAR01E6 = 6
Global Const $VAR01E7 = 7
Global Const $VAR01E8 = $VAR01E2
Global Const $VAR01E9 = $VAR01E3
Global Const $VAR01EA = $VAR01E5
Global Const $VAR01EB = 1
Global Const $VAR01EC = 2
Global Const $VAR01ED = 0
Global Const $VAR01EE = 8
Global Const $VAR01EF = 4
Global Const $VAR01F0 = 128
Global Const $VAR01F1 = 0
Global Const $VAR01F2 = 1
Global Const $VAR01F3 = 2
Global Const $VAR01F4 = 3
Global Const $VAR01F5 = 4
Global Const $VAR01F6 = 5
Global Const $VAR01F7 = 6
Global Const $VAR01F8 = 7
Global Const $VAR01F9 = 8
Global Const $VAR01FA = 9
Global Const $VAR01FB = 11
Global Const $VAR01FC = 12
Global Const $VAR01FD = 14
Global Const $VAR01FE = 16
Global Const $VAR01FF = 17
Global Const $VAR0200 = 18
Global Const $VAR0201 = 128
Global Const $VAR0202 = 256
Global Const $VAR0203 = 512
Global Const $VAR0204 = 1024
Global Const $VAR0205 = 4096
Global Const $VAR0206 = 0
Global Const $VAR0207 = 0
Global Const $VAR0208 = $VAR0202
Global Const $VAR0209 = $VAR0202
Global Const $VAR020A = 0
Global Const $VAR020B = 0
Global Const $VAR020C = 65536
Global Const $VAR020D = 131072
Global Const $VAR020E = 65536
Global Const $VAR020F = 131072
Global Const $VAR0210 = 262144
Global Const $VAR0211 = 262144
Global Const $VAR0212 = 524288
Global Const $VAR0213 = 1048576
Global Const $VAR0214 = 2097152
Global Const $VAR0215 = 4194304
Global Const $VAR0216 = 8388608
Global Const $VAR0217 = 12582912
Global Const $VAR0218 = 13565952
Global Const $VAR0219 = 13565952
Global Const $VAR021A = 16777216
Global Const $VAR021B = 33554432
Global Const $VAR021C = 67108864
Global Const $VAR021D = 134217728
Global Const $VAR021E = 268435456
Global Const $VAR021F = 536870912
Global Const $VAR0220 = 1073741824
Global Const $VAR0221 = -2147483648
Global Const $VAR0222 = -2138570752
Global Const $VAR0223 = 128
Global Const $VAR0224 = 512
Global Const $VAR0225 = 8192
Global Const $VAR0226 = 16
Global Const $VAR0227 = 64
Global Const $VAR0228 = 262144
Global Const $VAR0229 = 33554432
Global Const $VAR022A = 512
Global Const $VAR022B = 1024
Global Const $VAR022C = 1
Global Const $VAR022D = 16384
Global Const $VAR022E = 768
Global Const $VAR022F = 4096
Global Const $VAR0230 = 131072
Global Const $VAR0231 = 128
Global Const $VAR0232 = 8
Global Const $VAR0233 = 32
Global Const $VAR0234 = 256
Global Const $VAR0235 = 524288
Global Const $VAR0236 = 65536
Global Const $VAR0237 = 4194304
Global Const $VAR0238 = 8192
Global Const $VAR0239 = 14
Global Const $VAR023A = 13
Global Const $VAR023B = 5
Global Const $VAR023C = 532
Global Const $VAR023D = 1024
Global Const $VAR023E = 1
Global Const $VAR023F = 2
Global Const $VAR0240 = 3
Global Const $VAR0241 = 6
Global Const $VAR0242 = 7
Global Const $VAR0243 = 8
Global Const $VAR0244 = 10
Global Const $VAR0245 = 11
Global Const $VAR0246 = 12
Global Const $VAR0247 = 15
Global Const $VAR0248 = 16
Global Const $VAR0249 = 18
Global Const $VAR024A = 20
Global Const $VAR024B = 21
Global Const $VAR024C = 24
Global Const $VAR024D = 26
Global Const $VAR024E = 27
Global Const $VAR024F = 28
Global Const $VAR0250 = 29
Global Const $VAR0251 = 30
Global Const $VAR0252 = 31
Global Const $VAR0253 = 32
Global Const $VAR0254 = 33
Global Const $VAR0255 = 34
Global Const $VAR0256 = 35
Global Const $VAR0257 = 36
Global Const $VAR0258 = 38
Global Const $VAR0259 = 39
Global Const $VAR025A = 40
Global Const $VAR025B = 42
Global Const $VAR025C = 43
Global Const $VAR025D = 44
Global Const $VAR025E = 45
Global Const $VAR025F = 46
Global Const $VAR0260 = 47
Global Const $VAR0261 = 48
Global Const $VAR0262 = 49
Global Const $VAR0263 = 50
Global Const $VAR0264 = 51
Global Const $VAR0265 = 55
Global Const $VAR0266 = 57
Global Const $VAR0267 = 61
Global Const $VAR0268 = 65
Global Const $VAR0269 = 68
Global Const $VAR026A = 70
Global Const $VAR026B = 71
Global Const $VAR026C = 72
Global Const $VAR026D = 78
Global Const $VAR026E = 74
Global Const $VAR026F = 75
Global Const $VAR0270 = 80
Global Const $VAR0271 = 81
Global Const $VAR0272 = 82
Global Const $VAR0273 = 83
Global Const $VAR0274 = 84
Global Const $VAR0275 = 85
Global Const $VAR0276 = 768
Global Const $VAR0277 = 769
Global Const $VAR0278 = 770
Global Const $VAR0279 = 771
Global Const $VAR027A = 772
Global Const $VAR027B = 123
Global Const $VAR027C = 124
Global Const $VAR027D = 125
Global Const $VAR027E = 126
Global Const $VAR027F = 127
Global Const $VAR0280 = 128
Global Const $VAR0281 = 129
Global Const $VAR0282 = 130
Global Const $VAR0283 = 131
Global Const $VAR0284 = 132
Global Const $VAR0285 = 133
Global Const $VAR0286 = 134
Global Const $VAR0287 = 135
Global Const $VAR0288 = 136
Global Const $VAR0289 = 160
Global Const $VAR028A = 161
Global Const $VAR028B = 162
Global Const $VAR028C = 163
Global Const $VAR028D = 164
Global Const $VAR028E = 165
Global Const $VAR028F = 166
Global Const $VAR0290 = 167
Global Const $VAR0291 = 168
Global Const $VAR0292 = 169
Global Const $VAR0293 = 256
Global Const $VAR0294 = 257
Global Const $VAR0295 = 258
Global Const $VAR0296 = 259
Global Const $VAR0297 = 260
Global Const $VAR0298 = 261
Global Const $VAR0299 = 262
Global Const $VAR029A = 263
Global Const $VAR029B = 272
Global Const $VAR029C = 273
Global Const $VAR029D = 274
Global Const $VAR029E = 275
Global Const $VAR029F = 276
Global Const $VAR02A0 = 277
Global Const $VAR02A1 = 278
Global Const $VAR02A2 = 279
Global Const $VAR02A3 = 287
Global Const $VAR02A4 = 288
Global Const $VAR02A5 = 289
Global Const $VAR02A6 = 290
Global Const $VAR02A7 = 291
Global Const $VAR02A8 = 292
Global Const $VAR02A9 = 293
Global Const $VAR02AA = 294
Global Const $VAR02AB = 295
Global Const $VAR02AC = 296
Global Const $VAR02AD = 297
Global Const $VAR02AE = 306
Global Const $VAR02AF = 307
Global Const $VAR02B0 = 308
Global Const $VAR02B1 = 309
Global Const $VAR02B2 = 310
Global Const $VAR02B3 = 311
Global Const $VAR02B4 = 312
Global Const $VAR02B5 = 25
Global Const $VAR02B6 = 481
Global Const $VAR02B7 = 0
Global Const $VAR02B8 = $VAR02B7 - 1
Global Const $VAR02B9 = $VAR02B7 - 2
Global Const $VAR02BA = $VAR02B7 - 3
Global Const $VAR02BB = $VAR02B7 - 4
Global Const $VAR02BC = $VAR02B7 - 5
Global Const $VAR02BD = $VAR02B7 - 6
Global Const $VAR02BE = $VAR02B7 - 7
Global Const $VAR02BF = $VAR02B7 - 8
Global Const $VAR02C0 = $VAR02B7 - 12
Global Const $VAR02C1 = $VAR02B7 - 13
Global Const $VAR02C2 = $VAR02B7 - 14
Global Const $VAR02C3 = $VAR02B7 - 15
Global Const $VAR02C4 = $VAR02B7 - 16
Global Const $VAR02C5 = $VAR02B7 - 17
Global Const $VAR02C6 = $VAR02B7 - 18
Global Const $VAR02C7 = $VAR02B7 - 19
Global Const $VAR02C8 = $VAR02B7 - 20
Global Const $VAR02C9 = $VAR02B7 - 21
Global Const $VAR02CA = $VAR02B7 - 22
Global Const $VAR02CB = 512
Global Const $VAR02CC = 513
Global Const $VAR02CD = 514
Global Const $VAR02CE = 515
Global Const $VAR02CF = 516
Global Const $VAR02D0 = 517
Global Const $VAR02D1 = 518
Global Const $VAR02D2 = 519
Global Const $VAR02D3 = 520
Global Const $VAR02D4 = 521
Global Const $VAR02D5 = 522
Global Const $VAR02D6 = 523
Global Const $VAR02D7 = 524
Global Const $VAR02D8 = 525
Global Const $VAR02D9 = 526
Global Const $VAR02DA = 0
Global Const $VAR02DB = 1
Global Const $VAR02DC = 2
Global Const $VAR02DD = 3
Global Const $VAR02DE = 4
Global Const $VAR02DF = 5
Global Const $VAR02E0 = 6
Global Const $VAR02E1 = 2
Global Const $VAR02E2 = 1
Global Const $VAR02E3 = 1
Global Const $VAR02E4 = 2
Global Const $VAR02E5 = 3
Global Const $VAR02E6 = 4
Global Const $VAR02E7 = 5
Global Const $VAR02E8 = 0
Global Const $VAR02E9 = 1
Global Const $VAR02EA = 2
Global Const $VAR02EB = 3
Global Const $VAR02EC = 1
Global Const $VAR02ED = 2
Global Const $VAR02EE = 8192
Global Const $VAR02EF = ($VAR02EE + 6)
Global Const $VAR02F0 = ($VAR02EE + 5)
Global Const $VAR02F1 = $VAR02EE + 1
Global Const $VAR02F2 = $VAR02EE + 2
Global Const $VAR02F3 = $VAR02EE + 3
Global Const $VAR02F4 = $VAR02EE + 4
Global Const $VAR02F5 = $VAR02EE + 11
Global Const $VAR02F6 = 1
Global Const $VAR02F7 = 2
Global Const $VAR02F8 = 3
Global Const $VAR02F9 = 0
Global Const $VAR02FA = 1
Global Const $VAR02FB = 2
Global Const $VAR02FC = 3
Global Const $VAR02FD = 4
Global Const $VAR02FE = 5
Global Const $VAR02FF = 6
Global Const $VAR0300 = 7
Global Const $VAR0301 = 8
Global Const $VAR0302 = 9
Global Const $VAR0303 = 10
Global Const $VAR0304 = 11
Global Const $VAR0305 = 12
Global Const $VAR0306 = 13
Global Const $VAR0307 = 14
Global Const $VAR0308 = 15
Global Const $VAR0309 = 16
Global Const $VAR030A = 17
Global Const $VAR030B = 18
Global Const $VAR030C = 19
Global Const $VAR030D = 20
Global Const $VAR030E = 21
Global Const $VAR030F = 22
Global Const $VAR0310 = 23
Global Const $VAR0311 = 24
Global Const $VAR0312 = 25
Global Const $VAR0313 = 26
Global Const $VAR0314 = 27
Global Const $VAR0315 = 28
Global Const $VAR0316 = 29
Global Const $VAR0317 = 30
Global Const $VAR0318 = 31
Global Const $VAR0319 = 32
Global Const $VAR031A = 33
Global Const $VAR031B = 34
Global Const $VAR031C = 35
Global Const $VAR031D = 36
Global Const $VAR031E = 37
Global Const $VAR031F = 38
Global Const $VAR0320 = 39
Global Const $VAR0321 = 40
Global Const $VAR0322 = 41
Global Const $VAR0323 = 42
Global Const $VAR0324 = 43
Global Const $VAR0325 = 44
Global Const $VAR0326 = 45
Global Const $VAR0327 = 46
Global Const $VAR0328 = 47
Global Const $VAR0329 = 48
Global Const $VAR032A = 49
Global Const $VAR032B = 50
Global Const $VAR032C = 51
Global Const $VAR032D = 52
Global Const $VAR032E = 53
Global Const $VAR032F = 54
Global Const $VAR0330 = 55
Global Const $VAR0331 = 56
Global Const $VAR0332 = 57
Global Const $VAR0333 = 58
Global Const $VAR0334 = 59
Global Const $VAR0335 = 60
Global Const $VAR0336 = 61
Global Const $VAR0337 = 62
Global Const $VAR0338 = 63
Global Const $VAR0339 = 67
Global Const $VAR033A = 68
Global Const $VAR033B = 69
Global Const $VAR033C = 70
Global Const $VAR033D = 71
Global Const $VAR033E = 72
Global Const $VAR033F = 73
Global Const $VAR0340 = 74
Global Const $VAR0341 = 75
Global Const $VAR0342 = 76
Global Const $VAR0343 = 77
Global Const $VAR0344 = 78
Global Const $VAR0345 = 79
Global Const $VAR0346 = 80
Global Const $VAR0347 = 81
Global Const $VAR0348 = 82
Global Const $VAR0349 = 83
Global Const $VAR034A = 84
Global Const $VAR034B = 86
Global Const $VAR034C = 87
Global Const $VAR034D = 88
Global Const $VAR034E = 89
Global Const $VAR034F = 90
Global Const $VAR0350 = 4096
Global Const $VAR0351 = 8192
Global Const $VAR0352 = 8193
Global Const $VAR0353 = 8194
Global Const $VAR0354 = 66
Global Const $VAR0355 = 1073741824
Global Const $VAR0356 = 5570569
Global Const $VAR0357 = 12583114
Global Const $VAR0358 = 12255782
Global Const $VAR0359 = -2147483648
Global Const $VAR035A = 3342344
Global Const $VAR035B = 1114278
Global Const $VAR035C = 15728673
Global Const $VAR035D = 5898313
Global Const $VAR035E = 16452105
Global Const $VAR035F = 8913094
Global Const $VAR0360 = 13369376
Global Const $VAR0361 = 4457256
Global Const $VAR0362 = 6684742
Global Const $VAR0363 = 15597702
Global Const $VAR0364 = 16711778
Global Const $VAR0365 = 8
Global Const $VAR0366 = 1024
Global Const $VAR0367 = 1
Global Const $VAR0368 = 8192
Global Const $VAR0369 = 32768
Global Const $VAR036A = 64
Global Const $VAR036B = 512
Global Const $VAR036C = 1048576
Global Const $VAR036D = 4096
Global Const $VAR036E = 0
Global Const $VAR036F = 65536
Global Const $VAR0370 = 256
Global Const $VAR0371 = 524288
Global Const $VAR0372 = 2048
Global Const $VAR0373 = 16384
Global Const $VAR0374 = 2097152
Global Const $VAR0375 = 2
Global Const $VAR0376 = 131072
Global Const $VAR0377 = 32
Global Const $VAR0378 = 128
Global Const $VAR0379 = 0
Global Const $VAR037A = 4
Global Const $VAR037B = 16
Global Const $VAR037C = 262144
Global Const $VAR037D = 4
Global Const $VAR037E = 1024
Global Const $VAR037F = 2
Global Const $VAR0380 = 1
Global Const $VAR0381 = 32
Global Const $VAR0382 = 2048
Global Const $VAR0383 = 16
Global Const $VAR0384 = 8
Global Const $VAR0385 = 512
Global Const $VAR0386 = 256
Global Const $VAR0387 = 128
Global Const $VAR0388 = 64
Global Const $VAR0389 = 773
Global Const $VAR038A = 774
Global Const $VAR038B = 775
Global Const $VAR038C = 776
Global Const $VAR038D = 777
Global Const $VAR038E = 778
Global Const $VAR038F = 779
Global Const $VAR0390 = 780
Global Const $VAR0391 = 781
Global Const $VAR0392 = 782
Global Const $VAR0393 = -2
Global Const $VAR0394 = -1
Global Const $VAR0395 = 0
Global Const $VAR0396 = 1
Global Const $VAR0397 = 2
Global Const $VAR0398 = 3
Global Const $VAR0399 = 4
Global Const $VAR039A = $VAR0399
Global Const $VAR039B = 5
Global Const $VAR039C = 6
Global Const $VAR039D = 7
Global Const $VAR039E = 8
Global Const $VAR039F = 9
Global Const $VAR03A0 = 10
Global Const $VAR03A1 = 11
Global Const $VAR03A2 = 12
Global Const $VAR03A3 = 13
Global Const $VAR03A4 = 14
Global Const $VAR03A5 = 15
Global Const $VAR03A6 = 16
Global Const $VAR03A7 = 17
Global Const $VAR03A8 = 18
Global Const $VAR03A9 = $VAR039E
Global Const $VAR03AA = $VAR039F
Global Const $VAR03AB = $VAR03A0
Global Const $VAR03AC = $VAR03A7
Global Const $VAR03AD = 19
Global Const $VAR03AE = 20
Global Const $VAR03AF = 21
Global Const $VAR03B0 = 0
Global Const $VAR03B1 = 1
Global Const $VAR03B2 = 2
Global Const $VAR03B3 = 3
Global Const $VAR03B4 = 4
Global Const $VAR03B5 = 5
Global Const $VAR03B6 = 6
Global Const $VAR03B7 = 7
Global Const $VAR03B8 = 8
Global Const $VAR03B9 = 9
Global Const $VAR03BA = 10
Global Const $VAR03BB = 11
Global Const $VAR03BC = 12
Global Const $VAR03BD = 13
Global Const $VAR03BE = 14
Global Const $VAR03BF = 15
Global Const $VAR03C0 = 16
Global Const $VAR03C1 = 17
Global Const $VAR03C2 = 18
Global Const $VAR03C3 = 19
Global Const $VAR03C4 = 20
Global Const $VAR03C5 = 21
Global Const $VAR03C6 = 22
Global Const $VAR03C7 = 23
Global Const $VAR03C8 = 24
Global Const $VAR03C9 = 26
Global Const $VAR03CA = 27
Global Const $VAR03CB = 28
Global Const $VAR03CC = 29
Global Const $VAR03CD = 30
Global Const $VAR03CE = 1
Global Const $VAR03CF = 15
Global Const $VAR03D0 = 16
Global Const $VAR03D1 = 20
Global Const $VAR03D2 = 20
Global Const $VAR03D3 = 20
Global Const $VAR03D4 = -1
Global Const $VAR03D5 = 0
Global Const $VAR03D6 = 1
Global Const $VAR03D7 = 4
Global Const $VAR03D8 = 5
Global Const $VAR03D9 = 8
Global Const $VAR03DA = 9
Global Const $VAR03DB = 128
Global Const $VAR03DC = 64
Global Const $VAR03DD = 32
Global Const $VAR03DE = 8
Global Const $VAR03DF = 16
Global Const $VAR03E0 = 512
Global Const $VAR03E1 = 4
Global Const $VAR03E2 = 1
Global Const $VAR03E3 = 2
Global Const $VAR03E4 = 256
Global Const $VAR03E5 = 1
Global Const $VAR03E6 = 2
Global Const $VAR03E7 = 3
Global Const $VAR03E8 = 4
Global Const $VAR03E9 = 65536
Global Const $VAR03EA = 65537
Global Const $VAR03EB = 65538
Global Const $VAR03EC = 65539
Global Const $VAR03ED = 65540
Global Const $VAR03EE = 131072
Global Const $VAR03EF = 1
Global Const $VAR03F0 = 2
Global Const $VAR03F1 = 4
Global Const $VAR03F2 = 8
Global Const $VAR03F3 = 16
Global Const $VAR03F4 = 32
Global Const $VAR03F5 = 64
Global Const $VAR03F6 = 128
Global Const $VAR03F7 = 256
Global Const $VAR03F8 = 512
Global Const $VAR03F9 = 1024
Global Const $VAR03FA = 2048
Global Const $VAR03FB = 4096
Global Const $VAR03FC = 0
Global Const $VAR03FD = 2
Global Const $VAR03FE = 4
Global Const $VAR03FF = 16
Global Const $VAR0400 = 32
Global Const $VAR0401 = 32
Global Const $VAR0402 = 64
Global Const $VAR0403 = 8
Global Const $VAR0404 = 256
Global Const $VAR0405 = BitOR($VAR020D, $VAR0217, $VAR0221, $VAR0212)
Global Const $VAR0406 = 0
Global Const $VAR0140 = 2
Global Const $VAR0407 = 16
Global Const $VAR0408 = 32
Global Const $VAR0409 = 64
Global Const $VAR040A = 128
Global Const $VAR040B = 256
Global Const $VAR040C = 4096
Global Const $VAR040D = 8192
Global Const $VAR040E = 8192
Global Const $VAR040F = 16384
Global Const $VAR0410 = 4096
Global Const $VAR0411 = 32626
Global Const $VAR0412 = 32768
Global Const $VAR0413 = $VAR0406 + $VAR0409
Global Const $VAR0414 = $VAR0140 + $VAR0409
Global Const $VAR0415 = 4096
Global Const $VAR0416 = 8192
Global Const $VAR0417 = 1048576
Global Const $VAR0418 = 134217728
Global Const $VAR0419 = 1
Global Const $VAR041A = 2
Global Const $VAR041B = 4
Global Const $VAR041C = 16
Global Const $VAR041D = 32
Global Const $VAR041E = 64
Global Const $VAR041F = 256
Global Const $VAR0420 = 512
Global Const $VAR0421 = 16384
Global Const $VAR0422 = 32768
Global Const $VAR0423 = 1
Global Const $VAR0424 = 2
Global Const $VAR0425 = 4
Global Const $VAR0426 = 8
Global Const $VAR0427 = 16
Global Const $VAR0428 = 32
Global Const $VAR0429 = 64
Global Const $VAR042A = 128
Global Const $VAR042B = 256
Global Const $VAR042C = 512
Global Const $VAR042D = 1024
Global Const $VAR042E = 2048
Global Const $VAR042F = 2035711
Global Const $VAR0430 = 1008
Global Const $VAR0431 = "SeAssignPrimaryTokenPrivilege"
Global Const $VAR0432 = "SeAuditPrivilege"
Global Const $VAR0433 = "SeBackupPrivilege"
Global Const $VAR0434 = "SeChangeNotifyPrivilege"
Global Const $VAR0435 = "SeCreateGlobalPrivilege"
Global Const $VAR0436 = "SeCreatePagefilePrivilege"
Global Const $VAR0437 = "SeCreatePermanentPrivilege"
Global Const $VAR0438 = "SeCreateTokenPrivilege"
Global Const $VAR0439 = "SeDebugPrivilege"
Global Const $VAR043A = "SeEnableDelegationPrivilege"
Global Const $VAR043B = "SeImpersonatePrivilege"
Global Const $VAR043C = "SeIncreaseBasePriorityPrivilege"
Global Const $VAR043D = "SeIncreaseQuotaPrivilege"
Global Const $VAR043E = "SeLoadDriverPrivilege"
Global Const $VAR043F = "SeLockMemoryPrivilege"
Global Const $VAR0440 = "SeMachineAccountPrivilege"
Global Const $VAR0441 = "SeManageVolumePrivilege"
Global Const $VAR0442 = "SeProfileSingleProcessPrivilege"
Global Const $VAR0443 = "SeRemoteShutdownPrivilege"
Global Const $VAR0444 = "SeRestorePrivilege"
Global Const $VAR0445 = "SeSecurityPrivilege"
Global Const $VAR0446 = "SeShutdownPrivilege"
Global Const $VAR0447 = "SeSyncAgentPrivilege"
Global Const $VAR0448 = "SeSystemEnvironmentPrivilege"
Global Const $VAR0449 = "SeSystemProfilePrivilege"
Global Const $VAR044A = "SeSystemtimePrivilege"
Global Const $VAR044B = "SeTakeOwnershipPrivilege"
Global Const $VAR044C = "SeTcbPrivilege"
Global Const $VAR044D = "SeUnsolicitedInputPrivilege"
Global Const $VAR044E = "SeUndockPrivilege"
Global Const $VAR044F = 1
Global Const $VAR0450 = 2
Global Const $VAR0451 = 4
Global Const $VAR0452 = -2147483648
Global Const $VAR0453 = 1
Global Const $VAR0454 = 2
Global Const $VAR0455 = 3
Global Const $VAR0456 = 4
Global Const $VAR0457 = 5
Global Const $VAR0458 = 6
Global Const $VAR0459 = 7
Global Const $VAR045A = 8
Global Const $VAR045B = 9
Global Const $VAR045C = 10
Global Const $VAR045D = 11
Global Const $VAR045E = 12
Global Const $VAR045F = 13
Global Const $VAR0460 = 14
Global Const $VAR0461 = 15
Global Const $VAR0462 = 16
Global Const $VAR0463 = 17
Global Const $VAR0464 = 18
Global Const $VAR0465 = 19
Global Const $VAR0466 = 20
Global Const $VAR0467 = 21
Global Const $VAR0468 = 22
Global Const $VAR0469 = 23
Global Const $VAR046A = 24
Global Const $VAR046B = 25
Global Const $VAR046C = 26
Global Const $VAR046D = 27
Global Const $VAR046E = 28
Global Const $VAR046F = 1
Global Const $VAR0470 = 2
Global Const $VAR0471 = 4
Global Const $VAR0472 = 8
Global Const $VAR0473 = 16
Global Const $VAR0474 = 32
Global Const $VAR0475 = 64
Global Const $VAR0476 = 128
Global Const $VAR0477 = 256

Func FN002B($ARG00, $ARG01, $ARG02, $ARG03, $ARGOPT04 = 0, $ARGOPT05 = 0)
Local $LOCAL0041 = DllCall("advapi32.dll", "bool", "AdjustTokenPrivileges", "handle", $ARG00, "bool", $ARG01, "ptr", $ARG02, "dword", $ARG03, "ptr", $ARGOPT04, "ptr", $ARGOPT05)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN002C($ARG00, $ARGOPT01 = "")
Local $LOCAL0061 = FN0031($ARG00, $ARGOPT01)
If @error Then Return SetError(@error, 0, 0)
Return FN003A($LOCAL0061[0])
EndFunc


Func FN002D($ARG00)
If Not FN0030($ARG00) Then Return SetError(-1, 0, 0)
Local $LOCAL0041 = DllCall("advapi32.dll", "dword", "GetLengthSid", "ptr", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN002E($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $ARG00, "int", $ARG01, "ptr", 0, "dword", 0, "dword*", 0)
If @error Then Return SetError(@error, @extended, 0)
If Not $LOCAL0041[0] Then Return 0
Local $LOCAL0062 = DllStructCreate("byte[" & $LOCAL0041[5] & "]")
Local $LOCAL0063 = DllStructGetPtr($LOCAL0062)
$LOCAL0041 = DllCall("advapi32.dll", "bool", "GetTokenInformation", "handle", $ARG00, "int", $ARG01, "ptr", $LOCAL0063, "dword", $LOCAL0041[5], "dword*", 0)
If @error Then Return SetError(@error, @extended, 0)
If Not $LOCAL0041[0] Then Return 0
Return $LOCAL0062
EndFunc


Func FN002F($ARGOPT00 = 2)
Local $LOCAL0041 = DllCall("advapi32.dll", "bool", "ImpersonateSelf", "int", $ARGOPT00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0030($ARG00)
Local $LOCAL0041 = DllCall("advapi32.dll", "bool", "IsValidSid", "ptr", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0031($ARG00, $ARGOPT01 = "")
Local $LOCAL0064 = DllStructCreate("byte SID[256]")
Local $LOCAL0065 = DllStructGetPtr($LOCAL0064, "SID")
Local $LOCAL0041 = DllCall("advapi32.dll", "bool", "LookupAccountNameW", "wstr", $ARGOPT01, "wstr", $ARG00, "ptr", $LOCAL0065, "dword*", 256, "wstr", "", "dword*", 256, "int*", 0)
If @error Then Return SetError(@error, @extended, 0)
If Not $LOCAL0041[0] Then Return 0
Local $LOCAL0061[3]
$LOCAL0061[0] = FN0038($LOCAL0065)
$LOCAL0061[1] = $LOCAL0041[5]
$LOCAL0061[2] = $LOCAL0041[7]
Return $LOCAL0061
EndFunc


Func FN0032($ARG00)
Local $LOCAL0065, $LOCAL0061[3]
If IsString($ARG00) Then
	Local $LOCAL0066 = FN003A($ARG00)
	$LOCAL0065 = DllStructGetPtr($LOCAL0066)
Else
	$LOCAL0065 = $ARG00
EndIf
If Not FN0030($LOCAL0065) Then Return SetError(-1, 0, 0)
Local $LOCAL0041 = DllCall("advapi32.dll", "bool", "LookupAccountSidW", "ptr", 0, "ptr", $LOCAL0065, "wstr", "", "dword*", 256, "wstr", "", "dword*", 256, "int*", 0)
If @error Then Return SetError(@error, @extended, 0)
If Not $LOCAL0041[0] Then Return 0
Local $LOCAL0061[3]
$LOCAL0061[0] = $LOCAL0041[3]
$LOCAL0061[1] = $LOCAL0041[5]
$LOCAL0061[2] = $LOCAL0041[7]
Return $LOCAL0061
EndFunc


Func FN0033($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("advapi32.dll", "int", "LookupPrivilegeValueW", "wstr", $ARG00, "wstr", $ARG01, "int64*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetError(0, $LOCAL0041[0], $LOCAL0041[3])
EndFunc


Func FN0034($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("advapi32.dll", "int", "OpenProcessToken", "handle", $ARG00, "dword", $ARG01, "ptr", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetError(0, $LOCAL0041[0], $LOCAL0041[3])
EndFunc


Func FN0035($ARG00, $ARGOPT01 = 0, $ARGOPT02 = False)
If $ARGOPT01 = 0 Then $ARGOPT01 = DllCall("kernel32.dll", "handle", "GetCurrentThread")
If @error Then Return SetError(@error, @extended, 0)
Local $LOCAL0041 = DllCall("advapi32.dll", "bool", "OpenThreadToken", "handle", $ARGOPT01[0], "dword", $ARG00, "int", $ARGOPT02, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return SetError(0, $LOCAL0041[0], $LOCAL0041[4])
EndFunc


Func FN0036($ARG00, $ARGOPT01 = 0, $ARGOPT02 = False)
Local $LOCAL0067 = FN0035($ARG00, $ARGOPT01, $ARGOPT02)
If $LOCAL0067 = 0 Then
	If FN001E() <> $VAR0430 Then Return SetError(-3, FN001E(), 0)
	If Not FN002F() Then Return SetError(-1, FN001E(), 0)
	$LOCAL0067 = FN0035($ARG00, $ARGOPT01, $ARGOPT02)
	If $LOCAL0067 = 0 Then Return SetError(-2, FN001E(), 0)
EndIf
Return $LOCAL0067
EndFunc


Func FN0037($ARG00, $ARG01, $ARG02)
Local $LOCAL0068 = FN0033("", $ARG01)
If $LOCAL0068 = 0 Then Return SetError(-1, 0, False)
Local $LOCAL0069 = DllStructCreate($VAR011A)
Local $LOCAL006A = DllStructGetPtr($LOCAL0069)
Local $LOCAL006B = DllStructGetSize($LOCAL0069)
Local $LOCAL006C = DllStructCreate($VAR011A)
Local $LOCAL006D = DllStructGetPtr($LOCAL006C)
Local $LOCAL006E = DllStructGetSize($LOCAL006C)
Local $LOCAL006F = DllStructCreate("int Data")
Local $LOCAL0070 = DllStructGetPtr($LOCAL006F)
DllStructSetData($LOCAL0069, "Count", 1)
DllStructSetData($LOCAL0069, "LUID", $LOCAL0068)
If Not FN002B($ARG00, False, $LOCAL006A, $LOCAL006B, $LOCAL006D, $LOCAL0070) Then Return SetError(-2, @error, False)
DllStructSetData($LOCAL006C, "Count", 1)
DllStructSetData($LOCAL006C, "LUID", $LOCAL0068)
Local $LOCAL0071 = DllStructGetData($LOCAL006C, "Attributes")
If $ARG02 Then
	$LOCAL0071 = BitOR($LOCAL0071, $VAR0450)
Else
	$LOCAL0071 = BitAND($LOCAL0071, BitNOT($VAR0450))
EndIf
DllStructSetData($LOCAL006C, "Attributes", $LOCAL0071)
If Not FN002B($ARG00, False, $LOCAL006D, $LOCAL006E, $LOCAL006A, $LOCAL0070) Then Return SetError(-3, @error, False)
Return True
EndFunc


Func FN0038($ARG00)
If Not FN0030($ARG00) Then Return SetError(-1, 0, "")
Local $LOCAL0041 = DllCall("advapi32.dll", "int", "ConvertSidToStringSidW", "ptr", $ARG00, "ptr*", 0)
If @error Then Return SetError(@error, @extended, "")
If Not $LOCAL0041[0] Then Return ""
Local $LOCAL0062 = DllStructCreate("wchar Text[256]", $LOCAL0041[2])
Local $LOCAL0072 = DllStructGetData($LOCAL0062, "Text")
DllCall("Kernel32.dll", "ptr", "LocalFree", "ptr", $LOCAL0041[2])
Return $LOCAL0072
EndFunc


Func FN0039($ARG00)
Switch $ARG00
	Case 1
		Return "User"
	Case 2
		Return "Group"
	Case 3
		Return "Domain"
	Case 4
		Return "Alias"
	Case 5
		Return "Well Known Group"
	Case 6
		Return "Deleted Account"
	Case 7
		Return "Invalid"
	Case 8
		Return "Invalid"
	Case 9
		Return "Computer"
	Case Else
		Return "Unknown SID Type"
EndSwitch
EndFunc


Func FN003A($ARG00)
Local $LOCAL0041 = DllCall("advapi32.dll", "bool", "ConvertStringSidToSidW", "wstr", $ARG00, "ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
If Not $LOCAL0041[0] Then Return 0
Local $LOCAL0073 = FN002D($LOCAL0041[2])
Local $LOCAL0062 = DllStructCreate("byte Data[" & $LOCAL0073 & "]", $LOCAL0041[2])
Local $LOCAL0066 = DllStructCreate("byte Data[" & $LOCAL0073 & "]")
DllStructSetData($LOCAL0066, "Data", DllStructGetData($LOCAL0062, "Data"))
DllCall("kernel32.dll", "ptr", "LocalFree", "ptr", $LOCAL0041[2])
Return $LOCAL0066
EndFunc

Global Const $VAR0478 = "handle hProc;ulong_ptr Size;ptr Mem"

Func FN003B(ByRef $ARGREF00)
Local $LOCAL0074 = DllStructGetData($ARGREF00, "Mem")
Local $LOCAL0075 = DllStructGetData($ARGREF00, "hProc")
Local $LOCAL0076 = FN0048($LOCAL0075, $LOCAL0074, 0, $VAR0422)
DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $LOCAL0075)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0076
EndFunc


Func FN003C($ARG00, $ARGOPT01 = 0)
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "GlobalAlloc", "uint", $ARGOPT01, "ulong_ptr", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN003D($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "ptr", "GlobalFree", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN003E($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "ptr", "GlobalLock", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN003F($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "ulong_ptr", "GlobalSize", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0040($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "GlobalUnlock", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0041($ARG00, $ARG01, ByRef $ARGREF02)
Local $LOCAL0041 = DllCall("User32.dll", "dword", "GetWindowThreadProcessId", "hwnd", $ARG00, "dword*", 0)
If @error Then Return SetError(@error, @extended, 0)
Local $LOCAL0077 = $LOCAL0041[2]
If $LOCAL0077 = 0 Then Return SetError(1, 0, 0)
Local $LOCAL0078 = BitOR($VAR0426, $VAR0427, $VAR0428)
Local $LOCAL0075 = FN0049($LOCAL0078, False, $LOCAL0077, True)
Local $LOCAL0079 = BitOR($VAR0416, $VAR0415)
Local $LOCAL0074 = FN0046($LOCAL0075, 0, $ARG01, $LOCAL0079, $VAR041B)
If $LOCAL0074 = 0 Then Return SetError(2, 0, 0)
$ARGREF02 = DllStructCreate($VAR0478)
DllStructSetData($ARGREF02, "hProc", $LOCAL0075)
DllStructSetData($ARGREF02, "Size", $ARG01)
DllStructSetData($ARGREF02, "Mem", $LOCAL0074)
Return $LOCAL0074
EndFunc


Func FN0042($ARG00, $ARG01, $ARG02)
DllCall("kernel32.dll", "none", "RtlMoveMemory", "ptr", $ARG01, "ptr", $ARG00, "ulong_ptr", $ARG02)
If @error Then Return SetError(@error, @extended)
EndFunc


Func FN0043(ByRef $ARGREF00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", DllStructGetData($ARGREF00, "hProc"), "ptr", $ARG01, "ptr", $ARG02, "ulong_ptr", $ARG03, "ulong_ptr*", 0)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0044(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 0, $ARGOPT03 = 0, $ARGOPT04 = "ptr")
If $ARGOPT02 = 0 Then $ARGOPT02 = DllStructGetData($ARGREF00, "Mem")
If $ARGOPT03 = 0 Then $ARGOPT03 = DllStructGetData($ARGREF00, "Size")
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "WriteProcessMemory", "handle", DllStructGetData($ARGREF00, "hProc"), "ptr", $ARGOPT02, $ARGOPT04, $ARG01, "ulong_ptr", $ARGOPT03, "ulong_ptr*", 0)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0045($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("kernel32.dll", "ptr", "VirtualAlloc", "ptr", $ARG00, "ulong_ptr", $ARG01, "dword", $ARG02, "dword", $ARG03)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0046($ARG00, $ARG01, $ARG02, $ARG03, $ARG04)
Local $LOCAL0041 = DllCall("kernel32.dll", "ptr", "VirtualAllocEx", "handle", $ARG00, "ptr", $ARG01, "ulong_ptr", $ARG02, "dword", $ARG03, "dword", $ARG04)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0047($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "VirtualFree", "ptr", $ARG00, "ulong_ptr", $ARG01, "dword", $ARG02)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0048($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "VirtualFreeEx", "handle", $ARG00, "ptr", $ARG01, "ulong_ptr", $ARG02, "dword", $ARG03)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0049($ARG00, $ARG01, $ARG02, $ARGOPT03 = False)
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $ARG00, "bool", $ARG01, "dword", $ARG02)
If @error Then Return SetError(@error, @extended, 0)
If $LOCAL0041[0] Then Return $LOCAL0041[0]
If Not $ARGOPT03 Then Return 0
Local $LOCAL0067 = FN0036(BitOR($VAR0474, $VAR0472))
If @error Then Return SetError(@error, @extended, 0)
FN0037($LOCAL0067, "SeDebugPrivilege", True)
Local $LOCAL0035 = @error
Local $LOCAL007A = @extended
Local $LOCAL000D = 0
If Not @error Then
	$LOCAL0041 = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $ARG00, "bool", $ARG01, "dword", $ARG02)
	$LOCAL0035 = @error
	$LOCAL007A = @extended
	If $LOCAL0041[0] Then $LOCAL000D = $LOCAL0041[0]
	FN0037($LOCAL0067, "SeDebugPrivilege", False)
	If @error Then
		$LOCAL0035 = @error
		$LOCAL007A = @extended
	EndIf
EndIf
DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $LOCAL0067)
Return SetError($LOCAL0035, $LOCAL007A, $LOCAL000D)
EndFunc


Func FN004A($ARG00, $ARG01, $ARGOPT02 = 0, $ARGOPT03 = 0, $ARGOPT04 = 0, $ARGOPT05 = "wparam", $ARGOPT06 = "lparam", $ARGOPT07 = "lresult")
Local $LOCAL0041 = DllCall("user32.dll", $ARGOPT07, "SendMessageW", "hwnd", $ARG00, "uint", $ARG01, $ARGOPT05, $ARGOPT02, $ARGOPT06, $ARGOPT03)
If @error Then Return SetError(@error, @extended, "")
If $ARGOPT04 >= 0 And $ARGOPT04 <= 4 Then Return $LOCAL0041[$ARGOPT04]
Return $LOCAL0041
EndFunc


Func FN004B($ARG00, $ARG01, $ARGOPT02 = 0, $ARGOPT03 = 0, $ARGOPT04 = 0, $ARGOPT05 = "wparam", $ARGOPT06 = "lparam", $ARGOPT07 = "lresult")
Local $LOCAL0041 = DllCall("user32.dll", $ARGOPT07, "SendMessageA", "hwnd", $ARG00, "uint", $ARG01, $ARGOPT05, $ARGOPT02, $ARGOPT06, $ARGOPT03)
If @error Then Return SetError(@error, @extended, "")
If $ARGOPT04 >= 0 And $ARGOPT04 <= 4 Then Return $LOCAL0041[$ARGOPT04]
Return $LOCAL0041
EndFunc

Global $VAR0479[64][2] = [[0, 0]]
Global $VAR047A[64][2] = [[0, 0]]
Global Const $VAR047B = 48
Global Const $VAR047C = 400
Global Const $VAR047D = 1
Global Const $VAR047E = 0
Global Const $VAR047F = 0
Global Const $VAR0480 = 0
Global Const $VAR0481 = 256
Global Const $VAR0482 = 4096
Global Const $VAR0483 = 88
Global Const $VAR0484 = 90
Global Const $VAR0485 = PTR(-1)
Global Const $VAR0486 = PTR(-1)
Global Const $VAR0487 = -1
Global Const $VAR0488 = 1
Global Const $VAR0489 = 2
Global Const $VAR048A = 4
Global Const $VAR048B = 12
Global Const $VAR048C = 2
Global Const $VAR048D = 5
Global Const $VAR048E = 1
Global Const $VAR048F = 2
Global Const $VAR0490 = 3
Global Const $VAR0491 = 4
Global Const $VAR0492 = 8
Global Const $VAR0493 = 16
Global Const $VAR0494 = 1
Global Const $VAR0495 = 4
Global Const $VAR0496 = 8
Global Const $VAR0497 = 16
Global Const $VAR0498 = 32
Global Const $VAR0499 = 134217728
Global Const $VAR049A = 5
Global Const $VAR049B = 8
Global Const $VAR049C = 4
Global Const $VAR049D = 3
Global Const $VAR049E = 18
Global Const $VAR049F = 2
Global Const $VAR04A0 = $VAR049A
Global Const $VAR04A1 = 1
Global Const $VAR04A2 = 0
Global Const $VAR04A3 = 7
Global Const $VAR04A4 = 19
Global Const $VAR04A5 = 6
Global Const $VAR04A6 = 11
Global Const $VAR04A7 = 12
Global Const $VAR04A8 = 14
Global Const $VAR04A9 = 17
Global Const $VAR04AA = 10
Global Const $VAR04AB = 13
Global Const $VAR04AC = 16
Global Const $VAR04AD = 15
Global Const $VAR04AE = 1
Global Const $VAR04AF = 2
Global Const $VAR04B0 = 4
Global Const $VAR04B1 = 2
Global Const $VAR04B2 = 1
Global Const $VAR04B3 = 4
Global Const $VAR04B4 = 4
Global Const $VAR04B5 = 12
Global Const $VAR04B6 = 5
Global Const $VAR04B7 = 9
Global Const $VAR04B8 = 11
Global Const $VAR04B9 = 3
Global Const $VAR04BA = 1
Global Const $VAR04BB = 0
Global Const $VAR04BC = 2
Global Const $VAR04BD = 13
Global Const $VAR04BE = 7
Global Const $VAR04BF = 14
Global Const $VAR04C0 = -1
Global Const $VAR04C1 = 10
Global Const $VAR04C2 = 6
Global Const $VAR04C3 = 4
Global Const $VAR04C4 = 2
Global Const $VAR04C5 = 1
Global Const $VAR04C6 = 256
Global Const $VAR04C7 = 8192
Global Const $VAR04C8 = 32768
Global Const $VAR04C9 = BitShift($VAR04C6, 8)
Global Const $VAR04CA = 16
Global Const $VAR04CB = BitShift($VAR04C7, 8)
Global Const $VAR04CC = BitShift($VAR04C8, 8)
Global Const $VAR04CD = 512
Global Const $VAR04CE = 8192
Global Const $VAR04CF = 33554432
Global Const $VAR04D0 = 32
Global Const $VAR04D1 = 4194304
Global Const $VAR04D2 = 8388608
Global Const $VAR04D3 = 64
Global Const $VAR04D4 = 128
Global Const $VAR04D5 = 524288
Global Const $VAR04D6 = 1024
Global Const $VAR04D7 = 4096
Global Const $VAR04D8 = 268435456
Global Const $VAR04D9 = 4
Global Const $VAR04DA = 2097152
Global Const $VAR04DB = 8
Global Const $VAR04DC = 1048576
Global Const $VAR04DD = 262144
Global Const $VAR04DE = 131072
Global Const $VAR04DF = 32768
Global Const $VAR04E0 = 65536
Global Const $VAR04E1 = 256
Global Const $VAR04E2 = 2
Global Const $VAR04E3 = 2048
Global Const $VAR04E4 = 1
Global Const $VAR04E5 = 16384
Global Const $VAR04E6 = 16
Global Const $VAR04E7 = 1
Global Const $VAR04E8 = "dword Size;dword Flags;handle hCursor;" & $VAR00DD
Global Const $VAR04E9 = "dword Size;wchar Name[32];wchar String[128];dword Flags;wchar ID[128];wchar Key[128]"
Global Const $VAR04EA = "uint Size;hwnd hWnd;dword Flags;uint Count;dword TimeOut"
Global Const $VAR04EB = "bool Icon;dword XHotSpot;dword YHotSpot;handle hMask;handle hColor"
Global Const $VAR04EC = "dword Length;dword MemoryLoad;" & "uint64 TotalPhys;uint64 AvailPhys;uint64 TotalPageFile;uint64 AvailPageFile;" & "uint64 TotalVirtual;uint64 AvailVirtual;uint64 AvailExtendedVirtual"

Func FN004C($ARGOPT00 = -1)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "AttachConsole", "dword", $ARGOPT00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN004D($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "AttachThreadInput", "dword", $ARG00, "dword", $ARG01, "bool", $ARG02)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN004E($ARGOPT00 = 500, $ARGOPT01 = 1000)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "Beep", "dword", $ARGOPT00, "dword", $ARGOPT01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN004F($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05, $ARG06, $ARG07, $ARG08)
Local $LOCAL0041 = DllCall("gdi32.dll", "bool", "BitBlt", "handle", $ARG00, "int", $ARG01, "int", $ARG02, "int", $ARG03, "int", $ARG04, "handle", $ARG05, "int", $ARG06, "int", $ARG07, "dword", $ARG08)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0050($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("user32.dll", "lresult", "CallNextHookEx", "handle", $ARG00, "int", $ARG01, "wparam", $ARG02, "lparam", $ARG03)
If @error Then Return SetError(@error, @extended, -1)
Return $LOCAL0041[0]
EndFunc


Func FN0051($ARG00, $ARG01, $ARG02, $ARG03, $ARG04)
Local $LOCAL0041 = DllCall("user32.dll", "lresult", "CallWindowProc", "ptr", $ARG00, "hwnd", $ARG01, "uint", $ARG02, "wparam", $ARG03, "lparam", $ARG04)
If @error Then Return SetError(@error, @extended, -1)
Return $LOCAL0041[0]
EndFunc


Func FN0052($ARG00, ByRef $ARGREF01)
Local $LOCAL007B = DllStructGetPtr($ARGREF01)
DllCall("user32.dll", "bool", "ClientToScreen", "hwnd", $ARG00, "ptr", $LOCAL007B)
Return SetError(@error, @extended, $ARGREF01)
EndFunc


Func FN0053($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "CloseHandle", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0054($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("gdi32.dll", "int", "CombineRgn", "handle", $ARG00, "handle", $ARG01, "handle", $ARG02, "int", $ARG03)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0055()
Local Const $VAR04ED = 65535
Local Const $VAR04EE = 6
Local Const $VAR04EF = 2
Local Const $VAR04F0 = 7
Local Const $VAR04F1 = 5
Local Const $VAR04F2 = 8
Local Const $VAR04F3 = 9
Local Const $VAR04F4 = 10
Local Const $VAR04F5 = 4
Local Const $VAR04F6 = 11
Local Const $VAR04F7 = 3
Local Const $VAR04F8 = 12
Local Const $VAR04F9 = 1
Local Const $VAR04FA = 12291
Local Const $VAR04FB = 12290
Local Const $VAR04FC = 12289
Local $LOCAL0041 = DllCall("comdlg32.dll", "dword", "CommDlgExtendedError")
If @error Then Return SetError(@error, @extended, 0)
Switch $LOCAL0041[0]
	Case $VAR04ED
		Return SetError($LOCAL0041[0], 0, "The dialog box could not be created." & @LF & "The common dialog box function's call to the DialogBox function failed." & @LF & "For example, this error occurs if the common dialog box call specifies an invalid window handle.")
	Case $VAR04EE
		Return SetError($LOCAL0041[0], 0, "The common dialog box function failed to find a specified resource.")
	Case $VAR04EF
		Return SetError($LOCAL0041[0], 0, "The common dialog box function failed during initialization." & @LF & "This error often occurs when sufficient memory is not available.")
	Case $VAR04F0
		Return SetError($LOCAL0041[0], 0, "The common dialog box function failed to load a specified resource.")
	Case $VAR04F1
		Return SetError($LOCAL0041[0], 0, "The common dialog box function failed to load a specified string.")
	Case $VAR04F2
		Return SetError($LOCAL0041[0], 0, "The common dialog box function failed to lock a specified resource.")
	Case $VAR04F3
		Return SetError($LOCAL0041[0], 0, "The common dialog box function was unable to allocate memory for internal structures.")
	Case $VAR04F4
		Return SetError($LOCAL0041[0], 0, "The common dialog box function was unable to lock the memory associated with a handle.")
	Case $VAR04F5
		Return SetError($LOCAL0041[0], 0, "The ENABLETEMPLATE flag was set in the Flags member of the initialization structure for the corresponding common dialog box," & @LF & "but you failed to provide a corresponding instance handle.")
	Case $VAR04F6
		Return SetError($LOCAL0041[0], 0, "The ENABLEHOOK flag was set in the Flags member of the initialization structure for the corresponding common dialog box," & @LF & "but you failed to provide a pointer to a corresponding hook procedure.")
	Case $VAR04F7
		Return SetError($LOCAL0041[0], 0, "The ENABLETEMPLATE flag was set in the Flags member of the initialization structure for the corresponding common dialog box," & @LF & "but you failed to provide a corresponding template.")
	Case $VAR04F8
		Return SetError($LOCAL0041[0], 0, "The RegisterWindowMessage function returned an error code when it was called by the common dialog box function.")
	Case $VAR04F9
		Return SetError($LOCAL0041[0], 0, "The lStructSize member of the initialization structure for the corresponding common dialog box is invalid")
	Case $VAR04FA
		Return SetError($LOCAL0041[0], 0, "The buffer pointed to by the lpstrFile member of the OPENFILENAME structure is too small for the file name specified by the user." & @LF & "The first two bytes of the lpstrFile buffer contain an integer value specifying the size, in TCHARs, required to receive the full name.")
	Case $VAR04FB
		Return SetError($LOCAL0041[0], 0, "A file name is invalid.")
	Case $VAR04FC
		Return SetError($LOCAL0041[0], 0, "An attempt to subclass a list box failed because sufficient memory was not available.")
EndSwitch
Return Hex($LOCAL0041[0])
EndFunc


Func FN0056($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "handle", "CopyIcon", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0057($ARG00, $ARG01, $ARGOPT02 = 1, $ARGOPT03 = 1, $ARGOPT04 = 0)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "CreateBitmap", "int", $ARG00, "int", $ARG01, "uint", $ARGOPT02, "uint", $ARGOPT03, "ptr", $ARGOPT04)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0058($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "CreateCompatibleBitmap", "handle", $ARG00, "int", $ARG01, "int", $ARG02)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0059($ARG00)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "CreateCompatibleDC", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN005A($ARGOPT00 = 0, $ARGOPT01 = True, $ARGOPT02 = True, $ARGOPT03 = "")
Local $LOCAL007C = "wstr"
If $ARGOPT03 = "" Then
	$ARGOPT03 = 0
	$LOCAL007C = "ptr"
EndIf
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "CreateEventW", "ptr", $ARGOPT00, "bool", $ARGOPT01, "bool", $ARGOPT02, $LOCAL007C, $ARGOPT03)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN005B($ARG00, $ARG01, $ARGOPT02 = 4, $ARGOPT03 = 0, $ARGOPT04 = 0, $ARGOPT05 = 0)
Local $LOCAL007D = 0, $VAR04FD = 0, $VAR04FE = 0, $VAR04FF = 0
If BitAND($ARGOPT02, 1) <> 0 Then $LOCAL007D = BitOR($LOCAL007D, $VAR0070)
If BitAND($ARGOPT02, 2) <> 0 Then $LOCAL007D = BitOR($LOCAL007D, $VAR0072)
If BitAND($ARGOPT02, 4) <> 0 Then $LOCAL007D = BitOR($LOCAL007D, $VAR0071)
If BitAND($ARGOPT03, 1) <> 0 Then $VAR04FD = BitOR($VAR04FD, $VAR006E)
If BitAND($ARGOPT03, 2) <> 0 Then $VAR04FD = BitOR($VAR04FD, $VAR006C)
If BitAND($ARGOPT03, 4) <> 0 Then $VAR04FD = BitOR($VAR04FD, $VAR006D)
Switch $ARG01
	Case 0
		$VAR04FE = $VAR0055
	Case 1
		$VAR04FE = $VAR0056
	Case 2
		$VAR04FE = $VAR0057
	Case 3
		$VAR04FE = $VAR0058
	Case 4
		$VAR04FE = $VAR0059
EndSwitch
If BitAND($ARGOPT04, 1) <> 0 Then $VAR04FF = BitOR($VAR04FF, $VAR0062)
If BitAND($ARGOPT04, 2) <> 0 Then $VAR04FF = BitOR($VAR04FF, $VAR005F)
If BitAND($ARGOPT04, 4) <> 0 Then $VAR04FF = BitOR($VAR04FF, $VAR005E)
If BitAND($ARGOPT04, 8) <> 0 Then $VAR04FF = BitOR($VAR04FF, $VAR0060)
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "CreateFileW", "wstr", $ARG00, "dword", $LOCAL007D, "dword", $VAR04FD, "ptr", $ARGOPT05, "dword", $VAR04FE, "dword", $VAR04FF, "ptr", 0)
If @error Or $LOCAL0041[0] = PTR(-1) Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN005C($ARG00, $ARG01, $ARGOPT02 = 0, $ARGOPT03 = 0, $ARGOPT04 = $VAR047C, $ARGOPT05 = False, $ARGOPT06 = False, $ARGOPT07 = False, $ARGOPT08 = $VAR047D, $ARGOPT09 = $VAR047E, $ARGOPT0A = $VAR047F, $ARGOPT0B = $VAR0480, $ARGOPT0C = 0, $ARGOPT0D = "Arial")
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "CreateFontW", "int", $ARG00, "int", $ARG01, "int", $ARGOPT02, "int", $ARGOPT03, "int", $ARGOPT04, "dword", $ARGOPT05, "dword", $ARGOPT06, "dword", $ARGOPT07, "dword", $ARGOPT08, "dword", $ARGOPT09, "dword", $ARGOPT0A, "dword", $ARGOPT0B, "dword", $ARGOPT0C, "wstr", $ARGOPT0D)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN005D($ARG00)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "CreateFontIndirectW", "ptr", DllStructGetPtr($ARG00))
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN005E($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "CreatePen", "int", $ARG00, "int", $ARG01, "dword", $ARG02)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN005F($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05, $ARG06, $ARG07, $ARG08, $ARG09)
Local $LOCAL007E = 0
Local $LOCAL007F = "wstr", $VAR0500 = "wstr"
If $ARG00 = "" Then
	$LOCAL007F = "ptr"
	$ARG00 = 0
EndIf
If $ARG01 <> "" Then
	Local $LOCAL0080 = DllStructCreate("wchar Text[" & 260 + 1 & "]")
	$LOCAL007E = DllStructGetPtr($LOCAL0080)
	DllStructSetData($LOCAL0080, "Text", $ARG01)
EndIf
If $ARG07 = "" Then
	$VAR0500 = "ptr"
	$ARG07 = 0
EndIf
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "CreateProcessW", $LOCAL007F, $ARG00, "ptr", $LOCAL007E, "ptr", $ARG02, "ptr", $ARG03, "bool", $ARG04, "dword", $ARG05, "ptr", $ARG06, $VAR0500, $ARG07, "ptr", $ARG08, "ptr", $ARG09)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0060($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "CreateRectRgn", "int", $ARG00, "int", $ARG01, "int", $ARG02, "int", $ARG03)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0061($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "CreateRoundRectRgn", "int", $ARG00, "int", $ARG01, "int", $ARG02, "int", $ARG03, "int", $ARG04, "int", $ARG05)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0062($ARG00, $ARG01, $ARG02, $ARG03, $ARGOPT04 = 1)
Local $LOCAL0081 = FN0091($ARG00)
Local $LOCAL0082 = FN0059($LOCAL0081)
Local $LOCAL0083 = FN0058($LOCAL0081, $ARG02, $ARG03)
Local $LOCAL0084 = FN00E7($LOCAL0082, $LOCAL0083)
Local $LOCAL0055 = DllStructCreate($VAR00DE)
DllStructSetData($LOCAL0055, 1, 0)
DllStructSetData($LOCAL0055, 2, 0)
DllStructSetData($LOCAL0055, 3, $ARG02)
DllStructSetData($LOCAL0055, 4, $ARG03)
If $ARGOPT04 Then
	$ARG01 = BitOR(BitAND($ARG01, 65280), BitShift(BitAND($ARG01, 255), -16), BitShift(BitAND($ARG01, 16711680), 16))
EndIf
Local $LOCAL0085 = FN0063($ARG01)
FN007B($LOCAL0082, DllStructGetPtr($LOCAL0055), $LOCAL0085)
If @error Then
	FN0067($LOCAL0083)
	$LOCAL0083 = 0
EndIf
FN0067($LOCAL0085)
FN00E5($ARG00, $LOCAL0081)
FN00E7($LOCAL0082, $LOCAL0084)
FN0066($LOCAL0082)
If Not $LOCAL0083 Then Return SetError(1, 0, 0)
Return $LOCAL0083
EndFunc


Func FN0063($ARG00)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "CreateSolidBrush", "dword", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0064($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05, $ARG06, $ARG07, $ARG08, $ARGOPT09 = 0, $ARGOPT0A = 0, $ARGOPT0B = 0)
If $ARGOPT0A = 0 Then $ARGOPT0A = FN009E("")
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "CreateWindowExW", "dword", $ARG00, "wstr", $ARG01, "wstr", $ARG02, "dword", $ARG03, "int", $ARG04, "int", $ARG05, "int", $ARG06, "int", $ARG07, "hwnd", $ARG08, "handle", $ARGOPT09, "handle", $ARGOPT0A, "ptr", $ARGOPT0B)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0065($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("user32.dll", "lresult", "DefWindowProc", "hwnd", $ARG00, "uint", $ARG01, "wparam", $ARG02, "lparam", $ARG03)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0066($ARG00)
Local $LOCAL0041 = DllCall("gdi32.dll", "bool", "DeleteDC", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0067($ARG00)
Local $LOCAL0041 = DllCall("gdi32.dll", "bool", "DeleteObject", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0068($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "DestroyIcon", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0069($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "DestroyWindow", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN006A($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "DrawEdge", "handle", $ARG00, "ptr", $ARG01, "uint", $ARG02, "uint", $ARG03)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN006B($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "DrawFrameControl", "handle", $ARG00, "ptr", $ARG01, "uint", $ARG02, "uint", $ARG03)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN006C($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "DrawIcon", "handle", $ARG00, "int", $ARG01, "int", $ARG02, "handle", $ARG03)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN006D($ARG00, $ARG01, $ARG02, $ARG03, $ARGOPT04 = 0, $ARGOPT05 = 0, $ARGOPT06 = 0, $ARGOPT07 = 0, $ARGOPT08 = 3)
Local $VAR0501
Switch $ARGOPT08
	Case 1
		$VAR0501 = $VAR048E
	Case 2
		$VAR0501 = $VAR048F
	Case 3
		$VAR0501 = $VAR0490
	Case 4
		$VAR0501 = $VAR0491
	Case 5
		$VAR0501 = $VAR0492
	Case Else
		$VAR0501 = $VAR0493
EndSwitch
Local $LOCAL0041 = DllCall("user32.dll", "bool", "DrawIconEx", "handle", $ARG00, "int", $ARG01, "int", $ARG02, "handle", $ARG03, "int", $ARGOPT04, "int", $ARGOPT05, "uint", $ARGOPT06, "handle", $ARGOPT07, "uint", $VAR0501)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN006E($ARG00, $ARG01, $ARG02, $ARG03, $ARG04)
FN00D3($ARG00, $ARG01, $ARG02)
If @error Then Return SetError(@error, @extended, False)
FN00C3($ARG00, $ARG03, $ARG04)
If @error Then Return SetError(@error, @extended, False)
Return True
EndFunc


Func FN006F($ARG00, $ARG01, ByRef $ARGREF02, $ARG03)
Local $LOCAL0041 = DllCall("user32.dll", "int", "DrawTextW", "handle", $ARG00, "wstr", $ARG01, "int", -1, "ptr", DllStructGetPtr($ARGREF02), "uint", $ARG03)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0070($ARG00, $ARGOPT01 = True)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "EnableWindow", "hwnd", $ARG00, "bool", $ARGOPT01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0071($ARG00, $ARG01)
Local $LOCAL0086 = 0, $VAR0093 = 0, $VAR0502[5]
If $ARG00 <> "" Then
	Local $LOCAL0087 = DllStructCreate("wchar Text[" & StringLen($ARG00) + 1 & "]")
	$LOCAL0086 = DllStructGetPtr($LOCAL0087)
	DllStructSetData($LOCAL0087, "Text", $ARG00)
EndIf
Local $LOCAL0088 = DllStructCreate($VAR04E9)
Local $LOCAL0089 = DllStructGetPtr($LOCAL0088)
Local $LOCAL008A = DllStructGetSize($LOCAL0088)
DllStructSetData($LOCAL0088, "Size", $LOCAL008A)
DllCall("user32.dll", "bool", "EnumDisplayDevicesW", "ptr", $LOCAL0086, "dword", $ARG01, "ptr", $LOCAL0089, "dword", 1)
If @error Then Return SetError(@error, @extended, 0)
Local $LOCAL008B = DllStructGetData($LOCAL0088, "Flags")
If BitAND($LOCAL008B, $VAR0494) <> 0 Then $VAR0093 = BitOR($VAR0093, 1)
If BitAND($LOCAL008B, $VAR0495) <> 0 Then $VAR0093 = BitOR($VAR0093, 2)
If BitAND($LOCAL008B, $VAR0496) <> 0 Then $VAR0093 = BitOR($VAR0093, 4)
If BitAND($LOCAL008B, $VAR0497) <> 0 Then $VAR0093 = BitOR($VAR0093, 8)
If BitAND($LOCAL008B, $VAR0498) <> 0 Then $VAR0093 = BitOR($VAR0093, 16)
If BitAND($LOCAL008B, $VAR0499) <> 0 Then $VAR0093 = BitOR($VAR0093, 32)
$VAR0502[0] = True
$VAR0502[1] = DllStructGetData($LOCAL0088, "Name")
$VAR0502[2] = DllStructGetData($LOCAL0088, "String")
$VAR0502[3] = $VAR0093
$VAR0502[4] = DllStructGetData($LOCAL0088, "ID")
Return $VAR0502
EndFunc


Func FN0072($ARGOPT00 = True, $ARGOPT01 = Default)
FN0075()
If $ARGOPT01 = Default Then $ARGOPT01 = FN0092()
FN0074($ARGOPT01, $ARGOPT00)
Return $VAR047A
EndFunc


Func FN0073($ARG00, $ARGOPT01 = "")
If $ARGOPT01 = "" Then $ARGOPT01 = FN0088($ARG00)
$VAR047A[0][0] += 1
Local $LOCAL008C = $VAR047A[0][0]
If $LOCAL008C >= $VAR047A[0][1] Then
	ReDim $VAR047A[$LOCAL008C + 64][2]
	$VAR047A[0][1] += 64
EndIf
$VAR047A[$LOCAL008C][0] = $ARG00
$VAR047A[$LOCAL008C][1] = $ARGOPT01
EndFunc


Func FN0074($ARG00, $ARGOPT01 = True)
$ARG00 = FN00AE($ARG00, $VAR048D)
While $ARG00 <> 0
	If (Not $ARGOPT01) Or FN00C1($ARG00) Then
		FN0074($ARG00, $ARGOPT01)
		FN0073($ARG00)
	EndIf
	$ARG00 = FN00AE($ARG00, $VAR048C)
WEnd
EndFunc


Func FN0075()
ReDim $VAR047A[64][2]
$VAR047A[0][0] = 0
$VAR047A[0][1] = 64
EndFunc


Func FN0076()
FN0075()
Local $LOCAL008D = FN00AE(FN0092(), $VAR048D)
Local $VAR0503
While $LOCAL008D <> 0
	If FN00C1($LOCAL008D) Then
		$VAR0503 = FN0088($LOCAL008D)
		If $VAR0503 = "#32768" Then
			FN0073($LOCAL008D)
		ElseIf $VAR0503 = "ToolbarWindow32" Then
			FN0073($LOCAL008D)
		ElseIf $VAR0503 = "ToolTips_Class32" Then
			FN0073($LOCAL008D)
		ElseIf $VAR0503 = "BaseBar" Then
			FN0074($LOCAL008D)
		EndIf
	EndIf
	$LOCAL008D = FN00AE($LOCAL008D, $VAR048C)
WEnd
Return $VAR047A
EndFunc


Func FN0077()
FN0075()
Local $LOCAL008D = FN00AE(FN0092(), $VAR048D)
While $LOCAL008D <> 0
	If FN00C1($LOCAL008D) Then FN0073($LOCAL008D)
	$LOCAL008D = FN00AE($LOCAL008D, $VAR048C)
WEnd
Return $VAR047A
EndFunc


Func FN0078($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "dword", "ExpandEnvironmentStringsW", "wstr", $ARG00, "wstr", "", "dword", 4096)
If @error Then Return SetError(@error, @extended, "")
Return $LOCAL0041[2]
EndFunc


Func FN0079($ARG00, $ARG01, $ARG02, $ARG03, $ARG04)
Local $LOCAL0041 = DllCall("shell32.dll", "uint", "ExtractIconExW", "wstr", $ARG00, "int", $ARG01, "handle", $ARG02, "handle", $ARG03, "uint", $ARG04)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN007A($ARG00)
DllCall("kernel32.dll", "none", "FatalAppExitW", "uint", 0, "wstr", $ARG00)
If @error Then Return SetError(@error, @extended)
EndFunc


Func FN007B($ARG00, $ARG01, $ARG02)
Local $LOCAL0041
If ISPTR($ARG02) Then
	$LOCAL0041 = DllCall("user32.dll", "int", "FillRect", "handle", $ARG00, "ptr", $ARG01, "handle", $ARG02)
Else
	$LOCAL0041 = DllCall("user32.dll", "int", "FillRect", "handle", $ARG00, "ptr", $ARG01, "dword", $ARG02)
EndIf
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN007C($ARG00, $ARGOPT01 = "")
Local $LOCAL0041 = DllCall("shell32.dll", "INT", "FindExecutableW", "wstr", $ARG00, "wstr", $ARGOPT01, "wstr", "")
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL0041[3])
EndFunc


Func FN007D($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "FindWindowW", "wstr", $ARG00, "wstr", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN007E($ARG00, $ARGOPT01 = True)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "FlashWindow", "hwnd", $ARG00, "bool", $ARGOPT01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN007F($ARG00, $ARGOPT01 = 3, $ARGOPT02 = 3, $ARGOPT03 = 0)
Local $LOCAL008E = DllStructCreate($VAR04EA)
Local $LOCAL008F = DllStructGetPtr($LOCAL008E)
Local $LOCAL0090 = DllStructGetSize($LOCAL008E)
Local $LOCAL0091 = 0
If BitAND($ARGOPT01, 1) <> 0 Then $LOCAL0091 = BitOR($LOCAL0091, $VAR0488)
If BitAND($ARGOPT01, 2) <> 0 Then $LOCAL0091 = BitOR($LOCAL0091, $VAR0489)
If BitAND($ARGOPT01, 4) <> 0 Then $LOCAL0091 = BitOR($LOCAL0091, $VAR048A)
If BitAND($ARGOPT01, 8) <> 0 Then $LOCAL0091 = BitOR($LOCAL0091, $VAR048B)
DllStructSetData($LOCAL008E, "Size", $LOCAL0090)
DllStructSetData($LOCAL008E, "hWnd", $ARG00)
DllStructSetData($LOCAL008E, "Flags", $LOCAL0091)
DllStructSetData($LOCAL008E, "Count", $ARGOPT02)
DllStructSetData($LOCAL008E, "Timeout", $ARGOPT03)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "FlashWindowEx", "ptr", $LOCAL008F)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0080($ARG00)
Local $LOCAL0092 = DllStructCreate("float")
Local $LOCAL0093 = DllStructCreate("int", DllStructGetPtr($LOCAL0092))
DllStructSetData($LOCAL0092, 1, $ARG00)
Return DllStructGetData($LOCAL0093, 1)
EndFunc


Func FN0081($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "FlushFileBuffers", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0082($ARG00, $ARG01, $ARG02, $ARG03, ByRef $ARGREF04, $ARG05, $ARG06)
Local $LOCAL0094 = "ptr"
If IsString($ARGREF04) Then $LOCAL0094 = "wstr"
Local $LOCAL0041 = DllCall("Kernel32.dll", "dword", "FormatMessageW", "dword", $ARG00, "ptr", $ARG01, "dword", $ARG02, "dword", $ARG03, $LOCAL0094, $ARGREF04, "dword", $ARG05, "ptr", $ARG06)
If @error Then Return SetError(@error, @extended, 0)
If $LOCAL0094 = "wstr" Then $ARGREF04 = $LOCAL0041[5]
Return $LOCAL0041[0]
EndFunc


Func FN0083($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("user32.dll", "int", "FrameRect", "handle", $ARG00, "ptr", $ARG01, "handle", $ARG02)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0084($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "FreeLibrary", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0085($ARG00, $ARGOPT01 = 1)
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "GetAncestor", "hwnd", $ARG00, "uint", $ARGOPT01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0086($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "short", "GetAsyncKeyState", "int", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0087($ARG00)
Local $LOCAL0041 = DllCall("gdi32.dll", "int", "GetBkMode", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0088($ARG00)
If Not IsHWnd($ARG00) Then $ARG00 = GUICtrlGetHandle($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "int", "GetClassNameW", "hwnd", $ARG00, "wstr", "", "int", 4096)
If @error Then Return SetError(@error, @extended, False)
Return SetExtended($LOCAL0041[0], $LOCAL0041[2])
EndFunc


Func FN0089($ARG00)
Local $LOCAL0055 = FN008B($ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($LOCAL0055, "Bottom") - DllStructGetData($LOCAL0055, "Top")
EndFunc


Func FN008A($ARG00)
Local $LOCAL0055 = FN008B($ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($LOCAL0055, "Right") - DllStructGetData($LOCAL0055, "Left")
EndFunc


Func FN008B($ARG00)
Local $LOCAL0055 = DllStructCreate($VAR00DE)
DllCall("user32.dll", "bool", "GetClientRect", "hwnd", $ARG00, "ptr", DllStructGetPtr($LOCAL0055))
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0055
EndFunc


Func FN008C()
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "GetCurrentProcess")
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN008D()
Local $LOCAL0041 = DllCall("kernel32.dll", "dword", "GetCurrentProcessId")
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN008E()
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "GetCurrentThread")
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN008F()
Local $LOCAL0041 = DllCall("kernel32.dll", "dword", "GetCurrentThreadId")
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0090()
Local $LOCAL0095 = DllStructCreate($VAR04E8)
Local $LOCAL0096 = DllStructGetSize($LOCAL0095)
DllStructSetData($LOCAL0095, "Size", $LOCAL0096)
DllCall("user32.dll", "bool", "GetCursorInfo", "ptr", DllStructGetPtr($LOCAL0095))
If @error Then Return SetError(@error, @extended, 0)
Local $LOCAL0097[5]
$LOCAL0097[0] = True
$LOCAL0097[1] = DllStructGetData($LOCAL0095, "Flags") <> 0
$LOCAL0097[2] = DllStructGetData($LOCAL0095, "hCursor")
$LOCAL0097[3] = DllStructGetData($LOCAL0095, "X")
$LOCAL0097[4] = DllStructGetData($LOCAL0095, "Y")
Return $LOCAL0097
EndFunc


Func FN0091($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "handle", "GetDC", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0092()
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "GetDesktopWindow")
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0093($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("gdi32.dll", "int", "GetDeviceCaps", "handle", $ARG00, "int", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0094($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05, $ARG06)
Local $LOCAL0041 = DllCall("gdi32.dll", "int", "GetDIBits", "handle", $ARG00, "handle", $ARG01, "uint", $ARG02, "uint", $ARG03, "ptr", $ARG04, "ptr", $ARG05, "uint", $ARG06)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0095($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0096($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "GetDlgItem", "hwnd", $ARG00, "int", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0097()
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "GetFocus")
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0098()
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "GetForegroundWindow")
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0099($ARGOPT00 = 0, $ARGOPT01 = -1)
If $ARGOPT01 = -1 Then $ARGOPT01 = FN008C()
Local $LOCAL0041 = DllCall("user32.dll", "dword", "GetGuiResources", "handle", $ARGOPT01, "dword", $ARGOPT00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN009A($ARG00)
Local $LOCAL0098 = DllStructCreate($VAR04EB)
DllCall("user32.dll", "bool", "GetIconInfo", "handle", $ARG00, "ptr", DllStructGetPtr($LOCAL0098))
If @error Then Return SetError(@error, @extended, 0)
Local $LOCAL0099[6]
$LOCAL0099[0] = True
$LOCAL0099[1] = DllStructGetData($LOCAL0098, "Icon") <> 0
$LOCAL0099[2] = DllStructGetData($LOCAL0098, "XHotSpot")
$LOCAL0099[3] = DllStructGetData($LOCAL0098, "YHotSpot")
$LOCAL0099[4] = DllStructGetData($LOCAL0098, "hMask")
$LOCAL0099[5] = DllStructGetData($LOCAL0098, "hColor")
Return $LOCAL0099
EndFunc


Func FN009B($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "GetFileSizeEx", "handle", $ARG00, "int64*", 0)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[2]
EndFunc


Func FN009C()
Local $LOCAL009A = DllStructCreate("ptr")
Local $LOCAL009B = DllStructGetPtr($LOCAL009A)
Local $LOCAL009C = FN0082(BitOR($VAR0481, $VAR0482), 0, FN001E(), 0, $LOCAL009B, 0, 0)
If @error Then Return SetError(@error, 0, "")
Local $LOCAL009D = ""
Local $LOCAL0063 = DllStructGetData($LOCAL009A, 1)
If $LOCAL0063 Then
	If $LOCAL009C > 0 Then
		Local $LOCAL0062 = DllStructCreate("wchar[" & ($LOCAL009C + 1) & "]", $LOCAL0063)
		$LOCAL009D = DllStructGetData($LOCAL0062, 1)
	EndIf
	FN00CA($LOCAL0063)
EndIf
Return $LOCAL009D
EndFunc


Func FN009D($ARG00, ByRef $ARGREF01, ByRef $ARGREF02, $ARGOPT03 = False)
$ARGREF01 = -1
$ARGREF02 = -1
Local $LOCAL0041 = DllCall("user32.dll", "bool", "GetLayeredWindowAttributes", "hwnd", $ARG00, "dword*", $ARGREF01, "byte*", $ARGREF02, "dword*", 0)
If @error Then Return SetError(@error, @extended, 0)
If Not $ARGOPT03 Then
	$LOCAL0041[2] = Hex(String($LOCAL0041[2]), 6)
	$LOCAL0041[2] = "0x" & StringMid($LOCAL0041[2], 5, 2) & StringMid($LOCAL0041[2], 3, 2) & StringMid($LOCAL0041[2], 1, 2)
EndIf
$ARGREF01 = $LOCAL0041[2]
$ARGREF02 = $LOCAL0041[3]
Return $LOCAL0041[4]
EndFunc


Func FN009E($ARG00)
Local $LOCAL009E = "wstr"
If $ARG00 = "" Then
	$ARG00 = 0
	$LOCAL009E = "ptr"
EndIf
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "GetModuleHandleW", $LOCAL009E, $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN009F($ARGOPT00 = False, $ARGOPT01 = 0)
Local $LOCAL0091 = Opt("MouseCoordMode", 1)
Local $LOCAL009F = MouseGetPos()
Opt("MouseCoordMode", $LOCAL0091)
Local $LOCAL00A0 = DllStructCreate($VAR00DD)
DllStructSetData($LOCAL00A0, "X", $LOCAL009F[0])
DllStructSetData($LOCAL00A0, "Y", $LOCAL009F[1])
If $ARGOPT00 Then
	FN00E6($ARGOPT01, $LOCAL00A0)
	If @error Then Return SetError(@error, @extended, 0)
EndIf
Return $LOCAL00A0
EndFunc


Func FN00A0($ARGOPT00 = False, $ARGOPT01 = 0)
Local $LOCAL00A0 = FN009F($ARGOPT00, $ARGOPT01)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($LOCAL00A0, "X")
EndFunc


Func FN00A1($ARGOPT00 = False, $ARGOPT01 = 0)
Local $LOCAL00A0 = FN009F($ARGOPT00, $ARGOPT01)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($LOCAL00A0, "Y")
EndFunc


Func FN00A2($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("gdi32.dll", "int", "GetObject", "handle", $ARG00, "int", $ARG01, "ptr", $ARG02)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00A3($ARGOPT00 = "", $ARGOPT01 = "All files (*.*)", $VAR0504 = ".", $VAR0505 = "", $VAR0506 = "", $VAR0507 = 1, $VAR0093 = 0, $VAR0508 = 0, $VAR0509 = 0)
Local $LOCAL00A1 = 4096
Local $LOCAL00A2 = 0
Local $LOCAL00A3 = DllStructCreate($VAR012B)
Local $LOCAL00A4[1] = [0]
Local $LOCAL00A5 = $VAR0093
Local $LOCAL00A6 = StringSplit($ARGOPT01, "|")
Local $LOCAL00A7[$LOCAL00A6[0] * 2 + 1]
Local $VAR050A, $VAR050B, $VAR050C
$LOCAL00A7[0] = $LOCAL00A6[0] * 2
For $LOCAL0017 = 1 To $LOCAL00A6[0]
	$VAR050A = StringInStr($LOCAL00A6[$LOCAL0017], "(", 0, 1)
	$VAR050B = StringInStr($LOCAL00A6[$LOCAL0017], ")", 0, -1)
	$LOCAL00A7[$LOCAL0017 * 2 - 1] = StringStripWS(StringLeft($LOCAL00A6[$LOCAL0017], $VAR050A - 1), 3)
	$LOCAL00A7[$LOCAL0017 * 2] = StringStripWS(StringTrimRight(StringTrimLeft($LOCAL00A6[$LOCAL0017], $VAR050A), StringLen($LOCAL00A6[$LOCAL0017]) - $VAR050B + 1), 3)
	$VAR050C &= "wchar[" & StringLen($LOCAL00A7[$LOCAL0017 * 2 - 1]) + 1 & "];wchar[" & StringLen($LOCAL00A7[$LOCAL0017 * 2]) + 1 & "];"
Next
Local $LOCAL00A8 = DllStructCreate("wchar Title[" & StringLen($ARGOPT00) + 1 & "]")
Local $LOCAL00A9 = DllStructCreate("wchar InitDir[" & StringLen($VAR0504) + 1 & "]")
Local $LOCAL00AA = DllStructCreate($VAR050C & "wchar")
Local $LOCAL00AB = DllStructCreate("wchar Path[" & $LOCAL00A1 & "]")
Local $LOCAL00AC = DllStructCreate("wchar Extension[" & StringLen($VAR0506) + 1 & "]")
For $LOCAL0017 = 1 To $LOCAL00A7[0]
	DllStructSetData($LOCAL00AA, $LOCAL0017, $LOCAL00A7[$LOCAL0017])
Next
DllStructSetData($LOCAL00A8, "Title", $ARGOPT00)
DllStructSetData($LOCAL00A9, "InitDir", $VAR0504)
DllStructSetData($LOCAL00AB, "Path", $VAR0505)
DllStructSetData($LOCAL00AC, "Extension", $VAR0506)
DllStructSetData($LOCAL00A3, "StructSize", DllStructGetSize($LOCAL00A3))
DllStructSetData($LOCAL00A3, "hwndOwner", $VAR0509)
DllStructSetData($LOCAL00A3, "lpstrFilter", DllStructGetPtr($LOCAL00AA))
DllStructSetData($LOCAL00A3, "nFilterIndex", $VAR0507)
DllStructSetData($LOCAL00A3, "lpstrFile", DllStructGetPtr($LOCAL00AB))
DllStructSetData($LOCAL00A3, "nMaxFile", $LOCAL00A1)
DllStructSetData($LOCAL00A3, "lpstrInitialDir", DllStructGetPtr($LOCAL00A9))
DllStructSetData($LOCAL00A3, "lpstrTitle", DllStructGetPtr($LOCAL00A8))
DllStructSetData($LOCAL00A3, "Flags", $LOCAL00A5)
DllStructSetData($LOCAL00A3, "lpstrDefExt", DllStructGetPtr($LOCAL00AC))
DllStructSetData($LOCAL00A3, "FlagsEx", $VAR0508)
DllCall("comdlg32.dll", "bool", "GetOpenFileNameW", "ptr", DllStructGetPtr($LOCAL00A3))
If @error Then Return SetError(@error, @extended, $LOCAL00A4)
If BitAND($VAR0093, $VAR04CD) = $VAR04CD And BitAND($VAR0093, $VAR04D5) = $VAR04D5 Then
	For $VAR0078 = 1 To $LOCAL00A1
		If DllStructGetData($LOCAL00AB, "Path", $VAR0078) = Chr(0) Then
			DllStructSetData($LOCAL00AB, "Path", "|", $VAR0078)
			$LOCAL00A2 += 1
		Else
			$LOCAL00A2 = 0
		EndIf
		If $LOCAL00A2 = 2 Then ExitLoop
	Next
	DllStructSetData($LOCAL00AB, "Path", Chr(0), $VAR0078 - 1)
	$LOCAL00A4 = StringSplit(DllStructGetData($LOCAL00AB, "Path"), "|")
	If $LOCAL00A4[0] = 1 Then Return FN00D9(DllStructGetData($LOCAL00AB, "Path"))
	Return StringSplit(DllStructGetData($LOCAL00AB, "Path"), "|")
ElseIf BitAND($VAR0093, $VAR04CD) = $VAR04CD Then
	$LOCAL00A4 = StringSplit(DllStructGetData($LOCAL00AB, "Path"), " ")
	If $LOCAL00A4[0] = 1 Then Return FN00D9(DllStructGetData($LOCAL00AB, "Path"))
	Return StringSplit(StringReplace(DllStructGetData($LOCAL00AB, "Path"), " ", "|"), "|")
Else
	Return FN00D9(DllStructGetData($LOCAL00AB, "Path"))
EndIf
EndFunc


Func FN00A4($ARG00, $ARG01, ByRef $ARGREF02, $ARGOPT03 = False)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "GetOverlappedResult", "handle", $ARG00, "ptr", $ARG01, "dword*", 0, "bool", $ARGOPT03)
If @error Then Return SetError(@error, @extended, False)
$ARGREF02 = $LOCAL0041[3]
Return $LOCAL0041[0]
EndFunc


Func FN00A5($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "GetParent", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00A6($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "GetProcessAffinityMask", "handle", $ARG00, "dword_ptr*", 0, "dword_ptr*", 0)
If @error Then Return SetError(@error, @extended, 0)
Local $LOCAL00AD[3]
$LOCAL00AD[0] = True
$LOCAL00AD[1] = $LOCAL0041[2]
$LOCAL00AD[2] = $LOCAL0041[3]
Return $LOCAL00AD
EndFunc


Func FN00A7($ARGOPT00 = "", $ARGOPT01 = "All files (*.*)", $VAR0504 = ".", $VAR0505 = "", $VAR0506 = "", $VAR0507 = 1, $VAR0093 = 0, $VAR0508 = 0, $VAR0509 = 0)
Local $LOCAL00A1 = 4096
Local $LOCAL00A3 = DllStructCreate($VAR012B)
Local $LOCAL00A4[1] = [0]
Local $LOCAL00A5 = $VAR0093
Local $LOCAL00A6 = StringSplit($ARGOPT01, "|")
Local $LOCAL00A7[$LOCAL00A6[0] * 2 + 1]
Local $VAR050A, $VAR050B, $VAR050C
$LOCAL00A7[0] = $LOCAL00A6[0] * 2
For $LOCAL0017 = 1 To $LOCAL00A6[0]
	$VAR050A = StringInStr($LOCAL00A6[$LOCAL0017], "(", 0, 1)
	$VAR050B = StringInStr($LOCAL00A6[$LOCAL0017], ")", 0, -1)
	$LOCAL00A7[$LOCAL0017 * 2 - 1] = StringStripWS(StringLeft($LOCAL00A6[$LOCAL0017], $VAR050A - 1), 3)
	$LOCAL00A7[$LOCAL0017 * 2] = StringStripWS(StringTrimRight(StringTrimLeft($LOCAL00A6[$LOCAL0017], $VAR050A), StringLen($LOCAL00A6[$LOCAL0017]) - $VAR050B + 1), 3)
	$VAR050C &= "wchar[" & StringLen($LOCAL00A7[$LOCAL0017 * 2 - 1]) + 1 & "];wchar[" & StringLen($LOCAL00A7[$LOCAL0017 * 2]) + 1 & "];"
Next
Local $LOCAL00A8 = DllStructCreate("wchar Title[" & StringLen($ARGOPT00) + 1 & "]")
Local $LOCAL00A9 = DllStructCreate("wchar InitDir[" & StringLen($VAR0504) + 1 & "]")
Local $LOCAL00AA = DllStructCreate($VAR050C & "wchar")
Local $LOCAL00AB = DllStructCreate("wchar Path[" & $LOCAL00A1 & "]")
Local $LOCAL00AC = DllStructCreate("wchar Extension[" & StringLen($VAR0506) + 1 & "]")
For $LOCAL0017 = 1 To $LOCAL00A7[0]
	DllStructSetData($LOCAL00AA, $LOCAL0017, $LOCAL00A7[$LOCAL0017])
Next
DllStructSetData($LOCAL00A8, "Title", $ARGOPT00)
DllStructSetData($LOCAL00A9, "InitDir", $VAR0504)
DllStructSetData($LOCAL00AB, "Path", $VAR0505)
DllStructSetData($LOCAL00AC, "Extension", $VAR0506)
DllStructSetData($LOCAL00A3, "StructSize", DllStructGetSize($LOCAL00A3))
DllStructSetData($LOCAL00A3, "hwndOwner", $VAR0509)
DllStructSetData($LOCAL00A3, "lpstrFilter", DllStructGetPtr($LOCAL00AA))
DllStructSetData($LOCAL00A3, "nFilterIndex", $VAR0507)
DllStructSetData($LOCAL00A3, "lpstrFile", DllStructGetPtr($LOCAL00AB))
DllStructSetData($LOCAL00A3, "nMaxFile", $LOCAL00A1)
DllStructSetData($LOCAL00A3, "lpstrInitialDir", DllStructGetPtr($LOCAL00A9))
DllStructSetData($LOCAL00A3, "lpstrTitle", DllStructGetPtr($LOCAL00A8))
DllStructSetData($LOCAL00A3, "Flags", $LOCAL00A5)
DllStructSetData($LOCAL00A3, "lpstrDefExt", DllStructGetPtr($LOCAL00AC))
DllStructSetData($LOCAL00A3, "FlagsEx", $VAR0508)
DllCall("comdlg32.dll", "bool", "GetSaveFileNameW", "ptr", DllStructGetPtr($LOCAL00A3))
If @error Then Return SetError(@error, @extended, $LOCAL00A4)
Return FN00D9(DllStructGetData($LOCAL00AB, "Path"))
EndFunc


Func FN00A8($ARG00)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "GetStockObject", "int", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00A9($ARG00)
If $ARG00 < 0 Or $ARG00 > 2 Then Return SetError(2, 0, -1)
Local Const $VAR050D[3] = [-10, -11, -12]
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "GetStdHandle", "dword", $VAR050D[$ARG00])
If @error Then Return SetError(@error, @extended, -1)
Return $LOCAL0041[0]
EndFunc


Func FN00AA($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "dword", "GetSysColor", "int", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00AB($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "handle", "GetSysColorBrush", "int", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00AC($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00AD($ARG00, $ARG01)
Local $LOCAL00AE = DllStructCreate($VAR00DF)
Local $LOCAL0073 = StringLen($ARG01)
DllCall("gdi32.dll", "bool", "GetTextExtentPoint32W", "handle", $ARG00, "wstr", $ARG01, "int", $LOCAL0073, "ptr", DllStructGetPtr($LOCAL00AE))
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL00AE
EndFunc


Func FN00AE($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "GetWindow", "hwnd", $ARG00, "uint", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00AF($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "handle", "GetWindowDC", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00B0($ARG00)
Local $LOCAL0055 = FN00B3($ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($LOCAL0055, "Bottom") - DllStructGetData($LOCAL0055, "Top")
EndFunc


Func FN00B1($ARG00, $ARG01)
Local $LOCAL00AF = "GetWindowLongW"
If @AUTOITX64 Then $LOCAL00AF = "GetWindowLongPtrW"
Local $LOCAL0041 = DllCall("user32.dll", "long_ptr", $LOCAL00AF, "hwnd", $ARG00, "int", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00B2($ARG00)
Local $LOCAL00B0 = DllStructCreate($VAR012F)
DllStructSetData($LOCAL00B0, "length", DllStructGetSize($LOCAL00B0))
Local $LOCAL00B1 = DllStructGetPtr($LOCAL00B0)
DllCall("user32.dll", "bool", "GetWindowPlacement", "hwnd", $ARG00, "ptr", $LOCAL00B1)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL00B0
EndFunc


Func FN00B3($ARG00)
Local $LOCAL0055 = DllStructCreate($VAR00DE)
DllCall("user32.dll", "bool", "GetWindowRect", "hwnd", $ARG00, "ptr", DllStructGetPtr($LOCAL0055))
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0055
EndFunc


Func FN00B4($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("user32.dll", "int", "GetWindowRgn", "hwnd", $ARG00, "handle", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00B5($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "int", "GetWindowTextW", "hwnd", $ARG00, "wstr", "", "int", 4096)
If @error Then Return SetError(@error, @extended, "")
Return SetExtended($LOCAL0041[0], $LOCAL0041[2])
EndFunc


Func FN00B6($ARG00, ByRef $ARGREF01)
Local $LOCAL0041 = DllCall("user32.dll", "dword", "GetWindowThreadProcessId", "hwnd", $ARG00, "dword*", 0)
If @error Then Return SetError(@error, @extended, 0)
$ARGREF01 = $LOCAL0041[2]
Return $LOCAL0041[0]
EndFunc


Func FN00B7($ARG00)
Local $LOCAL0055 = FN00B3($ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return DllStructGetData($LOCAL0055, "Right") - DllStructGetData($LOCAL0055, "Left")
EndFunc


Func FN00B8(ByRef $ARGREF00, ByRef $ARGREF01, ByRef $ARGREF02)
$ARGREF01 = DllStructGetData($ARGREF00, "X")
$ARGREF02 = DllStructGetData($ARGREF00, "Y")
EndFunc


Func FN00B9()
Local $LOCAL00B2 = DllStructCreate($VAR04EC)
Local $LOCAL00B3 = DllStructGetPtr($LOCAL00B2)
Local $LOCAL00B4 = DllStructGetSize($LOCAL00B2)
DllStructSetData($LOCAL00B2, 1, $LOCAL00B4)
DllCall("kernel32.dll", "none", "GlobalMemoryStatusEx", "ptr", $LOCAL00B3)
If @error Then Return SetError(@error, @extended, 0)
Local $LOCAL00B5[7]
$LOCAL00B5[0] = DllStructGetData($LOCAL00B2, 2)
$LOCAL00B5[1] = DllStructGetData($LOCAL00B2, 3)
$LOCAL00B5[2] = DllStructGetData($LOCAL00B2, 4)
$LOCAL00B5[3] = DllStructGetData($LOCAL00B2, 5)
$LOCAL00B5[4] = DllStructGetData($LOCAL00B2, 6)
$LOCAL00B5[5] = DllStructGetData($LOCAL00B2, 7)
$LOCAL00B5[6] = DllStructGetData($LOCAL00B2, 8)
Return $LOCAL00B5
EndFunc


Func FN00BA($ARG00)
Local $LOCAL00B6 = DllStructCreate($VAR012E)
FN00BB($ARG00, DllStructGetPtr($LOCAL00B6))
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL00B6
EndFunc


Func FN00BB($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("ole32.dll", "long", "CLSIDFromString", "wstr", $ARG00, "ptr", $ARG01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00BC($ARG00)
Return BitShift($ARG00, 16)
EndFunc


Func FN00BD($ARG00, ByRef $ARGREF01)
If $ARG00 = $ARGREF01 Then Return True
For $VAR050E = $VAR0479[0][0] To 1 Step -1
	If $ARG00 = $VAR0479[$VAR050E][0] Then
		If $VAR0479[$VAR050E][1] Then
			$ARGREF01 = $ARG00
			Return True
		Else
			Return False
		EndIf
	EndIf
Next
Local $LOCAL0077
FN00B6($ARG00, $LOCAL0077)
Local $LOCAL008C = $VAR0479[0][0] + 1
If $LOCAL008C >= 64 Then $LOCAL008C = 1
$VAR0479[0][0] = $LOCAL008C
$VAR0479[$LOCAL008C][0] = $ARG00
$VAR0479[$LOCAL008C][1] = ($LOCAL0077 = @AutoItPID)
Return $VAR0479[$LOCAL008C][1]
EndFunc


Func FN00BE($ARG00)
Local $LOCAL0093 = DllStructCreate("int")
Local $LOCAL0092 = DllStructCreate("float", DllStructGetPtr($LOCAL0093))
DllStructSetData($LOCAL0093, 1, $ARG00)
Return DllStructGetData($LOCAL0092, 1)
EndFunc


Func FN00BF($ARG00, $ARG01)
Local $LOCAL00B7 = Opt("GUIDataSeparatorChar")
Local $LOCAL00B8 = StringSplit($ARG01, $LOCAL00B7)
If Not IsHWnd($ARG00) Then $ARG00 = GUICtrlGetHandle($ARG00)
Local $LOCAL00B9 = FN0088($ARG00)
For $VAR0078 = 1 To UBound($LOCAL00B8) - 1
	If StringUpper(StringMid($LOCAL00B9, 1, StringLen($LOCAL00B8[$VAR0078]))) = StringUpper($LOCAL00B8[$VAR0078]) Then Return True
Next
Return False
EndFunc


Func FN00C0($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "IsWindow", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00C1($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "IsWindowVisible", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00C2($ARG00, $ARGOPT01 = 0, $ARGOPT02 = True)
Local $LOCAL00BA = 0
If IsDllStruct($ARGOPT01) Then $LOCAL00BA = DllStructGetPtr($ARGOPT01)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "InvalidateRect", "hwnd", $ARG00, "ptr", $LOCAL00BA, "bool", $ARGOPT02)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00C3($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("gdi32.dll", "bool", "LineTo", "handle", $ARG00, "int", $ARG01, "int", $ARG02)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00C4($ARG00, $ARG01)
Local $LOCAL00BB = "int"
If IsString($ARG01) Then $LOCAL00BB = "wstr"
Local $LOCAL0041 = DllCall("user32.dll", "handle", "LoadBitmapW", "handle", $ARG00, $LOCAL00BB, $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00C5($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05)
Local $LOCAL0041, $VAR050F = "int"
If IsString($ARG01) Then $VAR050F = "wstr"
$LOCAL0041 = DllCall("user32.dll", "handle", "LoadImageW", "handle", $ARG00, $VAR050F, $ARG01, "uint", $ARG02, "int", $ARG03, "int", $ARG04, "uint", $ARG05)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00C6($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "LoadLibraryW", "wstr", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00C7($ARG00, $ARGOPT01 = 0)
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "LoadLibraryExW", "wstr", $ARG00, "ptr", 0, "dword", $ARGOPT01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00C8($ARG00)
Local $LOCAL00BC = DllStructCreate("ptr Data")
Local $LOCAL00BD = DllStructGetPtr($LOCAL00BC)
Local $LOCAL00BE = FN0079("shell32.dll", $ARG00, 0, $LOCAL00BD, 1)
If @error Then Return SetError(@error, @extended, 0)
If $LOCAL00BE <= 0 Then Return SetError(1, 0, 0)
Return DllStructGetData($LOCAL00BC, "Data")
EndFunc


Func FN00C9($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("user32.dll", "int", "LoadStringW", "handle", $ARG00, "uint", $ARG01, "wstr", "", "int", 4096)
If @error Then Return SetError(@error, @extended, "")
Return SetExtended($LOCAL0041[0], $LOCAL0041[3])
EndFunc


Func FN00CA($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "LocalFree", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00CB($ARG00)
Return BitAND($ARG00, 65535)
EndFunc


Func FN00CC($ARG00, $ARG01)
Return BitOR(BitShift($ARG01, -10), $ARG00)
EndFunc


Func FN00CD($ARG00, $ARG01)
Return BitOR(BitShift($ARG01, -16), $ARG00)
EndFunc


Func FN00CE($ARG00, $ARG01)
Return BitOR(BitShift($ARG01, -16), BitAND($ARG00, 65535))
EndFunc


Func FN00CF($ARG00, $ARG01)
Local $LOCAL00BF = DllStructCreate("uint64")
Local $LOCAL00C0 = DllStructCreate("dword;dword", DllStructGetPtr($LOCAL00BF))
DllStructSetData($LOCAL00C0, 1, $ARG00)
DllStructSetData($LOCAL00C0, 2, $ARG01)
Return DllStructGetData($LOCAL00BF, 1)
EndFunc


Func FN00D0($ARGOPT00 = 1)
Local $VAR0510
Switch $ARGOPT00
	Case 1
		$VAR0510 = 0
	Case 2
		$VAR0510 = 16
	Case 3
		$VAR0510 = 32
	Case 4
		$VAR0510 = 48
	Case 5
		$VAR0510 = 64
	Case Else
		$VAR0510 = -1
EndSwitch
Local $LOCAL0041 = DllCall("user32.dll", "bool", "MessageBeep", "uint", $VAR0510)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00D1($ARG00, $ARG01, $ARG02)
BlockInput(0)
MsgBox($ARG00, $ARG01, $ARG02 & "      ")
EndFunc


Func FN00D2($ARG00, $ARGOPT01 = 0, $ARGOPT02 = 0, $ARGOPT03 = 0, $ARGOPT04 = 0)
DllCall("user32.dll", "none", "mouse_event", "dword", $ARG00, "dword", $ARGOPT01, "dword", $ARGOPT02, "dword", $ARGOPT03, "ulong_ptr", $ARGOPT04)
If @error Then Return SetError(@error, @extended)
EndFunc


Func FN00D3($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("gdi32.dll", "bool", "MoveToEx", "handle", $ARG00, "int", $ARG01, "int", $ARG02, "ptr", 0)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00D4($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARGOPT05 = True)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "MoveWindow", "hwnd", $ARG00, "int", $ARG01, "int", $ARG02, "int", $ARG03, "int", $ARG04, "bool", $ARGOPT05)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00D5($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("kernel32.dll", "int", "MulDiv", "int", $ARG00, "int", $ARG01, "int", $ARG02)
If @error Then Return SetError(@error, @extended, -1)
Return $LOCAL0041[0]
EndFunc


Func FN00D6($ARG00, $ARGOPT01 = 0, $ARGOPT02 = 0, $ARGOPT03 = False)
Local $LOCAL00C1 = "ptr", $VAR0511 = $ARG00
If IsDllStruct($ARG00) Then
	$VAR0511 = DllStructGetPtr($ARG00)
Else
	If Not ISPTR($ARG00) Then $LOCAL00C1 = "STR"
EndIf
Local $LOCAL0041 = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $ARGOPT01, "dword", $ARGOPT02, $LOCAL00C1, $VAR0511, "int", -1, "ptr", 0, "int", 0)
If @error Then Return SetError(@error, @extended, 0)
Local $LOCAL00C2 = $LOCAL0041[0]
Local $LOCAL00C3 = DllStructCreate("wchar[" & $LOCAL00C2 & "]")
Local $LOCAL00C4 = DllStructGetPtr($LOCAL00C3)
$LOCAL0041 = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $ARGOPT01, "dword", $ARGOPT02, $LOCAL00C1, $VAR0511, "int", -1, "ptr", $LOCAL00C4, "int", $LOCAL00C2)
If @error Then Return SetError(@error, @extended, 0)
If $ARGOPT03 Then Return DllStructGetData($LOCAL00C3, 1)
Return $LOCAL00C3
EndFunc


Func FN00D7($ARG00, $ARG01, $ARGOPT02 = 0, $ARGOPT03 = 0)
Local $LOCAL0041 = DllCall("kernel32.dll", "int", "MultiByteToWideChar", "uint", $ARGOPT02, "dword", $ARGOPT03, "STR", $ARG00, "int", -1, "ptr", $ARG01, "int", (StringLen($ARG00) + 1) * 2)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00D8($ARG00, $ARG01, $ARG02, $ARGOPT03 = False)
Local $LOCAL0041 = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $ARG00, "bool", $ARG01, "dword", $ARG02)
If @error Then Return SetError(@error, @extended, 0)
If $LOCAL0041[0] Then Return $LOCAL0041[0]
If Not $ARGOPT03 Then Return 0
Local $LOCAL0067 = FN0036(BitOR($VAR0474, $VAR0472))
If @error Then Return SetError(@error, @extended, 0)
FN0037($LOCAL0067, "SeDebugPrivilege", True)
Local $LOCAL0035 = @error
Local $LOCAL007A = @extended
Local $LOCAL000D = 0
If Not @error Then
	$LOCAL0041 = DllCall("kernel32.dll", "handle", "OpenProcess", "dword", $ARG00, "bool", $ARG01, "dword", $ARG02)
	$LOCAL0035 = @error
	$LOCAL007A = @extended
	If $LOCAL0041[0] Then $LOCAL000D = $LOCAL0041[0]
	FN0037($LOCAL0067, "SeDebugPrivilege", False)
	If @error Then
		$LOCAL0035 = @error
		$LOCAL007A = @extended
	EndIf
EndIf
FN0053($LOCAL0067)
Return SetError($LOCAL0035, $LOCAL007A, $LOCAL000D)
EndFunc


Func FN00D9($ARG00)
Local $LOCAL00A4[3]
$LOCAL00A4[0] = 2
Local $LOCAL0039 = StringMid($ARG00, 1, StringInStr($ARG00, "\", 0, -1) - 1)
$LOCAL00A4[1] = $LOCAL0039
$LOCAL00A4[2] = StringMid($ARG00, StringInStr($ARG00, "\", 0, -1) + 1)
Return $LOCAL00A4
EndFunc


Func FN00DA(Const $ARGC00, $ARGOPT01 = "", Const $ARGCOPT02 = @LF)
Local $LOCAL00C5 = 0
If IsString($ARGOPT01) Then
	If StringLen($ARGOPT01) Then
		$ARGOPT01 = StringSplit($ARGOPT01, $ARGCOPT02, 1 + 2)
		$LOCAL00C5 = UBound($ARGOPT01, 1)
	EndIf
ElseIf IsArray($ARGOPT01) Then
	$LOCAL00C5 = UBound($ARGOPT01)
EndIf
Local $VAR0512, $VAR0513
If $LOCAL00C5 Then
	Local $LOCAL00C6 = ""
	For $VAR0514 In $ARGOPT01
		$LOCAL00C6 &= "wchar[" & StringLen($VAR0514) + 1 & "];"
	Next
	$VAR0512 = DllStructCreate($LOCAL00C6)
	$VAR0513 = DllStructCreate("ptr[" & $LOCAL00C5 + 1 & "]")
	For $LOCAL0017 = 1 To $LOCAL00C5
		DllStructSetData($VAR0512, $LOCAL0017, $ARGOPT01[$LOCAL0017 - 1])
		DllStructSetData($VAR0513, 1, DllStructGetPtr($VAR0512, $LOCAL0017), $LOCAL0017)
	Next
	DllStructSetData($VAR0513, 1, PTR(0), $LOCAL00C5 + 1)
EndIf
Local $LOCAL0041 = DllCall("shlwapi.dll", "bool", "PathFindOnPathW", "wstr", $ARGC00, "ptr", DllStructGetPtr($VAR0513))
If @error Then Return SetError(@error, @extended, False)
If $LOCAL0041[0] = 0 Then Return SetError(1, 0, $ARGC00)
Return $LOCAL0041[1]
EndFunc


Func FN00DB(ByRef $ARGREF00, $ARGOPT01 = True)
Local $LOCAL00C7 = DllStructGetData($ARGREF00, "Left")
Local $LOCAL00C8 = DllStructGetData($ARGREF00, "Top")
Local $LOCAL00C9 = DllStructGetData($ARGREF00, "Right")
Local $LOCAL00CA = DllStructGetData($ARGREF00, "Bottom")
If $ARGOPT01 Then
	$LOCAL00C7 = $LOCAL00C7 + (($LOCAL00C9 - $LOCAL00C7) / 2)
	$LOCAL00C8 = $LOCAL00C8 + (($LOCAL00CA - $LOCAL00C8) / 2)
EndIf
Local $LOCAL00A0 = DllStructCreate($VAR00DD)
DllStructSetData($LOCAL00A0, "X", $LOCAL00C7)
DllStructSetData($LOCAL00A0, "Y", $LOCAL00C8)
Return $LOCAL00A0
EndFunc


Func FN00DC($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "PostMessage", "hwnd", $ARG00, "uint", $ARG01, "wparam", $ARG02, "lparam", $ARG03)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00DD($ARG00)
Return BitAND($ARG00, 1023)
EndFunc


Func FN00DE(ByRef $ARGREF00, ByRef $ARGREF01)
Local $LOCAL00CB = DllStructGetData($ARGREF01, "X")
Local $LOCAL00CC = DllStructGetData($ARGREF01, "Y")
Local $LOCAL0041 = DllCall("user32.dll", "bool", "PtInRect", "ptr", DllStructGetPtr($ARGREF00), "long", $LOCAL00CB, "long", $LOCAL00CC)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00DF($ARG00, $ARG01, $ARG02, ByRef $ARGREF03, $ARGOPT04 = 0)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "ReadFile", "handle", $ARG00, "ptr", $ARG01, "dword", $ARG02, "dword*", 0, "ptr", $ARGOPT04)
If @error Then Return SetError(@error, @extended, False)
$ARGREF03 = $LOCAL0041[4]
Return $LOCAL0041[0]
EndFunc


Func FN00E0($ARG00, $ARG01, $ARG02, $ARG03, ByRef $ARGREF04)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "ReadProcessMemory", "handle", $ARG00, "ptr", $ARG01, "ptr", $ARG02, "ulong_ptr", $ARG03, "ulong_ptr*", 0)
If @error Then Return SetError(@error, @extended, False)
$ARGREF04 = $LOCAL0041[5]
Return $LOCAL0041[0]
EndFunc


Func FN00E1(ByRef $ARGREF00)
Return (DllStructGetData($ARGREF00, "Left") = 0) And (DllStructGetData($ARGREF00, "Top") = 0) And (DllStructGetData($ARGREF00, "Right") = 0) And (DllStructGetData($ARGREF00, "Bottom") = 0)
EndFunc


Func FN00E2($ARG00, $ARGOPT01 = 0, $ARGOPT02 = 0, $ARGOPT03 = 5)
Local $LOCAL00BA = 0
If $ARGOPT01 <> 0 Then $LOCAL00BA = DllStructGetPtr($ARGOPT01)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "RedrawWindow", "hwnd", $ARG00, "ptr", $LOCAL00BA, "handle", $ARGOPT02, "uint", $ARGOPT03)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00E3($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "uint", "RegisterWindowMessageW", "wstr", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00E4()
Local $LOCAL0041 = DllCall("user32.dll", "bool", "ReleaseCapture")
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00E5($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("user32.dll", "int", "ReleaseDC", "hwnd", $ARG00, "handle", $ARG01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00E6($ARG00, ByRef $ARGREF01)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "ScreenToClient", "hwnd", $ARG00, "ptr", DllStructGetPtr($ARGREF01))
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00E7($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("gdi32.dll", "handle", "SelectObject", "handle", $ARG00, "handle", $ARG01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00E8($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("gdi32.dll", "INT", "SetBkColor", "handle", $ARG00, "dword", $ARG01)
If @error Then Return SetError(@error, @extended, -1)
Return $LOCAL0041[0]
EndFunc


Func FN00E9($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("gdi32.dll", "int", "SetBkMode", "handle", $ARG00, "int", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00EA($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "SetCapture", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00EB($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "handle", "SetCursor", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00EC($ARG00)
Local $LOCAL0041 = DllCall("winspool.drv", "bool", "SetDefaultPrinterW", "wstr", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00ED($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05, $ARGOPT06 = 0)
Local $LOCAL0041 = DllCall("gdi32.dll", "int", "SetDIBits", "handle", $ARG00, "handle", $ARG01, "uint", $ARG02, "uint", $ARG03, "ptr", $ARG04, "ptr", $ARG05, "uint", $ARGOPT06)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00EE($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SetEndOfFile", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00EF($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SetEvent", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00F0($ARG00, $ARG01, $ARGOPT02 = 0)
Local $LOCAL0041 = DllCall("kernel32.dll", "INT", "SetFilePointer", "handle", $ARG00, "long", $ARG01, "ptr", 0, "long", $ARGOPT02)
If @error Then Return SetError(@error, @extended, -1)
Return $LOCAL0041[0]
EndFunc


Func FN00F1($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "SetFocus", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00F2($ARG00, $ARG01, $ARGOPT02 = True)
FN004A($ARG00, $VAR047B, $ARG01, $ARGOPT02, 0, "hwnd")
EndFunc


Func FN00F3($ARG00, $ARG01, $ARG02)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SetHandleInformation", "handle", $ARG00, "dword", $ARG01, "dword", $ARG02)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00F4($ARG00, $ARG01, $ARGOPT02 = 255, $ARGOPT03 = 3, $ARGOPT04 = False)
If $ARGOPT03 = Default Or $ARGOPT03 = "" Or $ARGOPT03 < 0 Then $ARGOPT03 = 3
If Not $ARGOPT04 Then
	$ARG01 = Hex(String($ARG01), 6)
	$ARG01 = Execute("0x00" & StringMid($ARG01, 5, 2) & StringMid($ARG01, 3, 2) & StringMid($ARG01, 1, 2))
EndIf
Local $LOCAL0041 = DllCall("user32.dll", "bool", "SetLayeredWindowAttributes", "hwnd", $ARG00, "dword", $ARG01, "byte", $ARGOPT02, "dword", $ARGOPT03)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00F5($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "SetParent", "hwnd", $ARG00, "hwnd", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00F6($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SetProcessAffinityMask", "handle", $ARG00, "ulong_ptr", $ARG01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00F7($ARG00, $ARG01)
Local $LOCAL00CD = IsArray($ARG00), $VAR0515 = IsArray($ARG01)
Local $VAR0516
If Not $VAR0515 And Not $LOCAL00CD Then
	$VAR0516 = 1
ElseIf $VAR0515 Or $LOCAL00CD Then
	If Not $VAR0515 Or Not $LOCAL00CD Then Return SetError(-1, -1, False)
	If UBound($ARG00) <> UBound($ARG01) Then Return SetError(-1, -1, False)
	$VAR0516 = UBound($ARG00)
EndIf
Local $LOCAL00CE = DllStructCreate("int Element[" & $VAR0516 & "]")
Local $LOCAL00CF = DllStructCreate("dword NewColor[" & $VAR0516 & "]")
Local $LOCAL00D0 = DllStructGetPtr($LOCAL00CE)
Local $LOCAL00D1 = DllStructGetPtr($LOCAL00CF)
If Not $LOCAL00CD Then
	DllStructSetData($LOCAL00CE, "Element", $ARG00, 1)
Else
	For $VAR0078 = 0 To $VAR0516 - 1
		DllStructSetData($LOCAL00CE, "Element", $ARG00[$VAR0078], $VAR0078 + 1)
	Next
EndIf
If Not $VAR0515 Then
	DllStructSetData($LOCAL00CF, "NewColor", $ARG01, 1)
Else
	For $VAR0078 = 0 To $VAR0516 - 1
		DllStructSetData($LOCAL00CF, "NewColor", $ARG01[$VAR0078], $VAR0078 + 1)
	Next
EndIf
Local $LOCAL0041 = DllCall("user32.dll", "bool", "SetSysColors", "int", $VAR0516, "ptr", $LOCAL00D0, "ptr", $LOCAL00D1)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00F8($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("gdi32.dll", "INT", "SetTextColor", "handle", $ARG00, "dword", $ARG01)
If @error Then Return SetError(@error, @extended, -1)
Return $LOCAL0041[0]
EndFunc


Func FN00F9($ARG00, $ARG01, $ARG02)
FN001F(0)
Local $LOCAL00AF = "SetWindowLongW"
If @AUTOITX64 Then $LOCAL00AF = "SetWindowLongPtrW"
Local $LOCAL0041 = DllCall("user32.dll", "long_ptr", $LOCAL00AF, "hwnd", $ARG00, "int", $ARG01, "long_ptr", $ARG02)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00FA($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "SetWindowPlacement", "hwnd", $ARG00, "ptr", $ARG01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00FB($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05, $ARG06)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "SetWindowPos", "hwnd", $ARG00, "hwnd", $ARG01, "int", $ARG02, "int", $ARG03, "int", $ARG04, "int", $ARG05, "uint", $ARG06)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00FC($ARG00, $ARG01, $ARGOPT02 = True)
Local $LOCAL0041 = DllCall("user32.dll", "int", "SetWindowRgn", "hwnd", $ARG00, "handle", $ARG01, "bool", $ARGOPT02)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00FD($ARG00, $ARG01, $ARG02, $ARGOPT03 = 0)
Local $LOCAL0041 = DllCall("user32.dll", "handle", "SetWindowsHookEx", "int", $ARG00, "ptr", $ARG01, "handle", $ARG02, "dword", $ARGOPT03)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN00FE($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "SetWindowTextW", "hwnd", $ARG00, "wstr", $ARG01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN00FF($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "int", "ShowCursor", "bool", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0100($ARG00, $ARGOPT01 = True)
FN00D1(266256, "Error", $ARG00)
If $ARGOPT01 Then Exit
EndFunc


Func FN0101($ARG00)
FN00D1(64 + 4096, "Information", $ARG00)
EndFunc


Func FN0102($ARG00, $ARGOPT01 = 5)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "ShowWindow", "hwnd", $ARG00, "int", $ARGOPT01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0103($ARG00)
Local $LOCAL0041 = DllCall("ole32.dll", "int", "StringFromGUID2", "ptr", $ARG00, "wstr", "", "int", 40)
If @error Then Return SetError(@error, @extended, "")
Return SetExtended($LOCAL0041[0], $LOCAL0041[2])
EndFunc


Func FN0104($ARG00)
Return BitShift($ARG00, 10)
EndFunc


Func FN0105($ARG00, $ARGOPT01 = 0, $ARGOPT02 = 0, $ARGOPT03 = 0)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "SystemParametersInfoW", "uint", $ARG00, "uint", $ARGOPT01, "ptr", $ARGOPT02, "uint", $ARGOPT03)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0106()
Local $LOCAL0047, $VAR0517
$LOCAL0047 = FN0091(0)
$VAR0517 = 1440 / FN0093($LOCAL0047, $VAR0483)
FN00E5(0, $LOCAL0047)
Return $VAR0517
EndFunc


Func FN0107()
Local $LOCAL0047, $VAR0518
$LOCAL0047 = FN0091(0)
$VAR0518 = 1440 / FN0093($LOCAL0047, $VAR0484)
FN00E5(0, $LOCAL0047)
Return $VAR0518
EndFunc


Func FN0108($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "UnhookWindowsHookEx", "handle", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0109($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05, $ARG06, $ARG07, $ARG08)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "UpdateLayeredWindow", "hwnd", $ARG00, "handle", $ARG01, "ptr", $ARG02, "ptr", $ARG03, "handle", $ARG04, "ptr", $ARG05, "dword", $ARG06, "ptr", $ARG07, "dword", $ARG08)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN010A($ARG00)
Local $LOCAL0041 = DllCall("user32.dll", "bool", "UpdateWindow", "hwnd", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN010B($ARG00, $ARGOPT01 = -1)
Local $LOCAL0041 = DllCall("user32.dll", "dword", "WaitForInputIdle", "handle", $ARG00, "dword", $ARGOPT01)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN010C($ARG00, $ARG01, $ARGOPT02 = False, $ARGOPT03 = -1)
Local $LOCAL0041 = DllCall("kernel32.dll", "INT", "WaitForMultipleObjects", "dword", $ARG00, "ptr", $ARG01, "bool", $ARGOPT02, "dword", $ARGOPT03)
If @error Then Return SetError(@error, @extended, -1)
Return $LOCAL0041[0]
EndFunc


Func FN010D($ARG00, $ARGOPT01 = -1)
Local $LOCAL0041 = DllCall("kernel32.dll", "INT", "WaitForSingleObject", "handle", $ARG00, "dword", $ARGOPT01)
If @error Then Return SetError(@error, @extended, -1)
Return $LOCAL0041[0]
EndFunc


Func FN010E($ARG00, $ARGOPT01 = 0, $ARGOPT02 = True)
Local $LOCAL00D2 = "ptr"
If IsDllStruct($ARG00) Then
	$ARG00 = DllStructGetPtr($ARG00)
Else
	If Not ISPTR($ARG00) Then $LOCAL00D2 = "wstr"
EndIf
Local $LOCAL0041 = DllCall("kernel32.dll", "int", "WideCharToMultiByte", "uint", $ARGOPT01, "dword", 0, $LOCAL00D2, $ARG00, "int", -1, "ptr", 0, "int", 0, "ptr", 0, "ptr", 0)
If @error Then Return SetError(@error, @extended, "")
Local $LOCAL00D3 = DllStructCreate("char[" & $LOCAL0041[0] & "]")
Local $LOCAL00D4 = DllStructGetPtr($LOCAL00D3)
$LOCAL0041 = DllCall("kernel32.dll", "int", "WideCharToMultiByte", "uint", $ARGOPT01, "dword", 0, $LOCAL00D2, $ARG00, "int", -1, "ptr", $LOCAL00D4, "int", $LOCAL0041[0], "ptr", 0, "ptr", 0)
If @error Then Return SetError(@error, @extended, "")
If $ARGOPT02 Then Return DllStructGetData($LOCAL00D3, 1)
Return $LOCAL00D3
EndFunc


Func FN010F(ByRef $ARGREF00)
Local $LOCAL00D5 = DllStructCreate("int64", DllStructGetPtr($ARGREF00))
Local $LOCAL0041 = DllCall("user32.dll", "hwnd", "WindowFromPoint", "int64", DllStructGetData($LOCAL00D5, 1))
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0110($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "WriteConsoleW", "handle", $ARG00, "wstr", $ARG01, "dword", StringLen($ARG01), "dword*", 0, "ptr", 0)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0111($ARG00, $ARG01, $ARG02, ByRef $ARGREF03, $ARGOPT04 = 0)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "WriteFile", "handle", $ARG00, "ptr", $ARG01, "dword", $ARG02, "dword*", 0, "ptr", $ARGOPT04)
If @error Then Return SetError(@error, @extended, False)
$ARGREF03 = $LOCAL0041[4]
Return $LOCAL0041[0]
EndFunc


Func FN0112($ARG00, $ARG01, $ARG02, $ARG03, ByRef $ARGREF04, $ARGOPT05 = "ptr")
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "WriteProcessMemory", "handle", $ARG00, "ptr", $ARG01, $ARGOPT05, $ARG02, "ulong_ptr", $ARG03, "ulong_ptr*", 0)
If @error Then Return SetError(@error, @extended, False)
$ARGREF04 = $LOCAL0041[5]
Return $LOCAL0041[0]
EndFunc


Func FN0113($ARG00, $ARG01, $ARG02)
Local $LOCAL00D6[4]
Local $LOCAL00D7[4]
Local $LOCAL00EB
$ARG00 = StringLeft($ARG00, 1)
If StringInStr("D,M,Y,w,h,n,s", $ARG00) = 0 Or $ARG00 = "" Then
	Return SetError(1, 0, 0)
EndIf
If Not StringIsInt($ARG01) Then
	Return SetError(2, 0, 0)
EndIf
If Not FN0119($ARG02) Then
	Return SetError(3, 0, 0)
EndIf
FN0122($ARG02, $LOCAL00D7, $LOCAL00D6)
If $ARG00 = "d" Or $ARG00 = "w" Then
	If $ARG00 = "w" Then $ARG01 = $ARG01 * 7
	$LOCAL00EB = FN0125($LOCAL00D7[1], $LOCAL00D7[2], $LOCAL00D7[3]) + $ARG01
	FN0127($LOCAL00EB, $LOCAL00D7[1], $LOCAL00D7[2], $LOCAL00D7[3])
EndIf
If $ARG00 = "m" Then
	$LOCAL00D7[2] = $LOCAL00D7[2] + $ARG01
	While $LOCAL00D7[2] > 12
		$LOCAL00D7[2] = $LOCAL00D7[2] - 12
		$LOCAL00D7[1] = $LOCAL00D7[1] + 1
	WEnd
	While $LOCAL00D7[2] < 1
		$LOCAL00D7[2] = $LOCAL00D7[2] + 12
		$LOCAL00D7[1] = $LOCAL00D7[1] - 1
	WEnd
EndIf
If $ARG00 = "y" Then
	$LOCAL00D7[1] = $LOCAL00D7[1] + $ARG01
EndIf
If $ARG00 = "h" Or $ARG00 = "n" Or $ARG00 = "s" Then
	Local $LOCAL00D8 = FN0132($LOCAL00D6[1], $LOCAL00D6[2], $LOCAL00D6[3]) / 1000
	If $ARG00 = "h" Then $LOCAL00D8 = $LOCAL00D8 + $ARG01 * 3600
	If $ARG00 = "n" Then $LOCAL00D8 = $LOCAL00D8 + $ARG01 * 60
	If $ARG00 = "s" Then $LOCAL00D8 = $LOCAL00D8 + $ARG01
	Local $LOCAL00D9 = Int($LOCAL00D8 / (24 * 60 * 60))
	$LOCAL00D8 = $LOCAL00D8 - $LOCAL00D9 * 24 * 60 * 60
	If $LOCAL00D8 < 0 Then
		$LOCAL00D9 = $LOCAL00D9 - 1
		$LOCAL00D8 = $LOCAL00D8 + 24 * 60 * 60
	EndIf
	$LOCAL00EB = FN0125($LOCAL00D7[1], $LOCAL00D7[2], $LOCAL00D7[3]) + $LOCAL00D9
	FN0127($LOCAL00EB, $LOCAL00D7[1], $LOCAL00D7[2], $LOCAL00D7[3])
	FN0131($LOCAL00D8 * 1000, $LOCAL00D6[1], $LOCAL00D6[2], $LOCAL00D6[3])
EndIf
Local $LOCAL00DA = FN0135($LOCAL00D7[1])
If $LOCAL00DA[$LOCAL00D7[2]] < $LOCAL00D7[3] Then $LOCAL00D7[3] = $LOCAL00DA[$LOCAL00D7[2]]
$ARG02 = $LOCAL00D7[1] & "/" & StringRight("0" & $LOCAL00D7[2], 2) & "/" & StringRight("0" & $LOCAL00D7[3], 2)
If $LOCAL00D6[0] > 0 Then
	If $LOCAL00D6[0] > 2 Then
		$ARG02 = $ARG02 & " " & StringRight("0" & $LOCAL00D6[1], 2) & ":" & StringRight("0" & $LOCAL00D6[2], 2) & ":" & StringRight("0" & $LOCAL00D6[3], 2)
	Else
		$ARG02 = $ARG02 & " " & StringRight("0" & $LOCAL00D6[1], 2) & ":" & StringRight("0" & $LOCAL00D6[2], 2)
	EndIf
EndIf
Return ($ARG02)
EndFunc


Func FN0114($ARG00, $ARGOPT01 = 0)
Local Const $VAR0519[8] = ["", "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
Select
	Case Not StringIsInt($ARG00) Or Not StringIsInt($ARGOPT01)
		Return SetError(1, 0, "")
	Case $ARG00 < 1 Or $ARG00 > 7
		Return SetError(1, 0, "")
	Case Else
		Select
			Case $ARGOPT01 = 0
				Return $VAR0519[$ARG00]
			Case $ARGOPT01 = 1
				Return StringLeft($VAR0519[$ARG00], 3)
			Case Else
				Return SetError(1, 0, "")
		EndSelect
EndSelect
EndFunc


Func FN0115($ARG00, $ARG01)
If FN0118($ARG01) And FN011A($ARG00) Then
	Local $LOCAL00DB = FN0135($ARG00)
	Return $LOCAL00DB[$ARG01]
EndIf
Return SetError(1, 0, 0)
EndFunc


Func FN0116($ARG00, $ARG01, $ARG02)
$ARG00 = StringLeft($ARG00, 1)
If StringInStr("d,m,y,w,h,n,s", $ARG00) = 0 Or $ARG00 = "" Then
	Return SetError(1, 0, 0)
EndIf
If Not FN0119($ARG01) Then
	Return SetError(2, 0, 0)
EndIf
If Not FN0119($ARG02) Then
	Return SetError(3, 0, 0)
EndIf
Local $LOCAL00DC[4], $VAR051A[4], $VAR051B[4], $VAR051C[4]
FN0122($ARG01, $LOCAL00DC, $VAR051A)
FN0122($ARG02, $VAR051B, $VAR051C)
Local $LOCAL00DD = FN0125($VAR051B[1], $VAR051B[2], $VAR051B[3]) - FN0125($LOCAL00DC[1], $LOCAL00DC[2], $LOCAL00DC[3])
Local $VAR051D, $VAR051E, $VAR051F, $VAR0520
If $VAR051A[0] > 1 And $VAR051C[0] > 1 Then
	$VAR051F = $VAR051A[1] * 3600 + $VAR051A[2] * 60 + $VAR051A[3]
	$VAR0520 = $VAR051C[1] * 3600 + $VAR051C[2] * 60 + $VAR051C[3]
	$VAR051D = $VAR0520 - $VAR051F
	If $VAR051D < 0 Then
		$LOCAL00DD = $LOCAL00DD - 1
		$VAR051D = $VAR051D + 24 * 60 * 60
	EndIf
Else
	$VAR051D = 0
EndIf
Select
	Case $ARG00 = "d"
		Return ($LOCAL00DD)
	Case $ARG00 = "m"
		$VAR051E = $VAR051B[1] - $LOCAL00DC[1]
		Local $LOCAL00DE = $VAR051B[2] - $LOCAL00DC[2] + $VAR051E * 12
		If $VAR051B[3] < $LOCAL00DC[3] Then $LOCAL00DE = $LOCAL00DE - 1
		$VAR051F = $VAR051A[1] * 3600 + $VAR051A[2] * 60 + $VAR051A[3]
		$VAR0520 = $VAR051C[1] * 3600 + $VAR051C[2] * 60 + $VAR051C[3]
		$VAR051D = $VAR0520 - $VAR051F
		If $VAR051B[3] = $LOCAL00DC[3] And $VAR051D < 0 Then $LOCAL00DE = $LOCAL00DE - 1
		Return ($LOCAL00DE)
	Case $ARG00 = "y"
		$VAR051E = $VAR051B[1] - $LOCAL00DC[1]
		If $VAR051B[2] < $LOCAL00DC[2] Then $VAR051E = $VAR051E - 1
		If $VAR051B[2] = $LOCAL00DC[2] And $VAR051B[3] < $LOCAL00DC[3] Then $VAR051E = $VAR051E - 1
		$VAR051F = $VAR051A[1] * 3600 + $VAR051A[2] * 60 + $VAR051A[3]
		$VAR0520 = $VAR051C[1] * 3600 + $VAR051C[2] * 60 + $VAR051C[3]
		$VAR051D = $VAR0520 - $VAR051F
		If $VAR051B[2] = $LOCAL00DC[2] And $VAR051B[3] = $LOCAL00DC[3] And $VAR051D < 0 Then $VAR051E = $VAR051E - 1
		Return ($VAR051E)
	Case $ARG00 = "w"
		Return (Int($LOCAL00DD / 7))
	Case $ARG00 = "h"
		Return ($LOCAL00DD * 24 + Int($VAR051D / 3600))
	Case $ARG00 = "n"
		Return ($LOCAL00DD * 24 * 60 + Int($VAR051D / 60))
	Case $ARG00 = "s"
		Return ($LOCAL00DD * 24 * 60 * 60 + $VAR051D)
EndSelect
EndFunc


Func FN0117($ARG00)
If StringIsInt($ARG00) Then
	Select
		Case Mod($ARG00, 4) = 0 And Mod($ARG00, 100) <> 0
			Return 1
		Case Mod($ARG00, 400) = 0
			Return 1
		Case Else
			Return 0
	EndSelect
EndIf
Return SetError(1, 0, 0)
EndFunc


Func FN0118($ARG00)
If StringIsInt($ARG00) Then
	If $ARG00 >= 1 And $ARG00 <= 12 Then
		Return 1
	Else
		Return 0
	EndIf
EndIf
Return 0
EndFunc


Func FN0119($ARG00)
Local $LOCAL00D7[4], $LOCAL00D6[4]
Local $LOCAL00DF = StringSplit($ARG00, " T")
If $LOCAL00DF[0] > 0 Then $LOCAL00D7 = StringSplit($LOCAL00DF[1], "/-.")
If UBound($LOCAL00D7) <> 4 Then Return (0)
If $LOCAL00D7[0] <> 3 Then Return (0)
If Not StringIsInt($LOCAL00D7[1]) Then Return (0)
If Not StringIsInt($LOCAL00D7[2]) Then Return (0)
If Not StringIsInt($LOCAL00D7[3]) Then Return (0)
$LOCAL00D7[1] = Number($LOCAL00D7[1])
$LOCAL00D7[2] = Number($LOCAL00D7[2])
$LOCAL00D7[3] = Number($LOCAL00D7[3])
Local $LOCAL00DA = FN0135($LOCAL00D7[1])
If $LOCAL00D7[1] < 1000 Or $LOCAL00D7[1] > 2999 Then Return (0)
If $LOCAL00D7[2] < 1 Or $LOCAL00D7[2] > 12 Then Return (0)
If $LOCAL00D7[3] < 1 Or $LOCAL00D7[3] > $LOCAL00DA[$LOCAL00D7[2]] Then Return (0)
If $LOCAL00DF[0] > 1 Then
	$LOCAL00D6 = StringSplit($LOCAL00DF[2], ":")
	If UBound($LOCAL00D6) < 4 Then ReDim $LOCAL00D6[4]
Else
	Dim $LOCAL00D6[4]
EndIf
If $LOCAL00D6[0] < 1 Then Return (1)
If $LOCAL00D6[0] < 2 Then Return (0)
If $LOCAL00D6[0] = 2 Then $LOCAL00D6[3] = "00"
If Not StringIsInt($LOCAL00D6[1]) Then Return (0)
If Not StringIsInt($LOCAL00D6[2]) Then Return (0)
If Not StringIsInt($LOCAL00D6[3]) Then Return (0)
$LOCAL00D6[1] = Number($LOCAL00D6[1])
$LOCAL00D6[2] = Number($LOCAL00D6[2])
$LOCAL00D6[3] = Number($LOCAL00D6[3])
If $LOCAL00D6[1] < 0 Or $LOCAL00D6[1] > 23 Then Return (0)
If $LOCAL00D6[2] < 0 Or $LOCAL00D6[2] > 59 Then Return (0)
If $LOCAL00D6[3] < 0 Or $LOCAL00D6[3] > 59 Then Return (0)
Return 1
EndFunc


Func FN011A($ARG00)
If StringIsInt($ARG00) Then
	If StringLen($ARG00) = 4 Then
		Return 1
	Else
		Return 0
	EndIf
EndIf
Return 0
EndFunc


Func FN011B($ARG00)
Select
	Case Not StringIsInt($ARG00)
		Return SetError(1, 0, 0)
	Case $ARG00 < 1 Or $ARG00 > 7
		Return SetError(1, 0, 0)
	Case Else
		Local $VAR0521
		If $ARG00 = 1 Then
			$VAR0521 = 7
		Else
			$VAR0521 = $ARG00 - 1
		EndIf
		Return $VAR0521
EndSelect
EndFunc


Func FN011C($ARG00)
Select
	Case Not StringIsInt($ARG00)
		Return SetError(1, 0, 0)
	Case $ARG00 < 1 Or $ARG00 > 12
		Return SetError(1, 0, 0)
	Case Else
		Local $VAR0522
		If $ARG00 = 1 Then
			$VAR0522 = 12
		Else
			$VAR0522 = $ARG00 - 1
		EndIf
		$VAR0522 = StringFormat("%02d", $VAR0522)
		Return $VAR0522
EndSelect
EndFunc


Func FN011D($ARG00, $ARG01)
Select
	Case Not StringIsInt($ARG00) Or Not StringIsInt($ARG01)
		Return SetError(1, 0, 0)
	Case $ARG00 < 1 Or $ARG00 > 12
		Return SetError(1, 0, 0)
	Case Else
		Local $VAR0523
		If $ARG00 = 1 Then
			$VAR0523 = $ARG01 - 1
		Else
			$VAR0523 = $ARG01
		EndIf
		$VAR0523 = StringFormat("%04d", $VAR0523)
		Return $VAR0523
EndSelect
EndFunc


Func FN011E($ARG00)
Select
	Case Not StringIsInt($ARG00)
		Return SetError(1, 0, 0)
	Case $ARG00 < 1 Or $ARG00 > 7
		Return SetError(1, 0, 0)
	Case Else
		Local $VAR0524
		If $ARG00 = 7 Then
			$VAR0524 = 1
		Else
			$VAR0524 = $ARG00 + 1
		EndIf
		Return $VAR0524
EndSelect
EndFunc


Func FN011F($ARG00)
Select
	Case Not StringIsInt($ARG00)
		Return SetError(1, 0, 0)
	Case $ARG00 < 1 Or $ARG00 > 12
		Return SetError(1, 0, 0)
	Case Else
		Local $VAR0525
		If $ARG00 = 12 Then
			$VAR0525 = 1
		Else
			$VAR0525 = $ARG00 + 1
		EndIf
		$VAR0525 = StringFormat("%02d", $VAR0525)
		Return $VAR0525
EndSelect
EndFunc


Func FN0120($ARG00, $ARG01)
Select
	Case Not StringIsInt($ARG00) Or Not StringIsInt($ARG01)
		Return SetError(1, 0, 0)
	Case $ARG00 < 1 Or $ARG00 > 12
		Return SetError(1, 0, 0)
	Case Else
		Local $VAR0526
		If $ARG00 = 12 Then
			$VAR0526 = $ARG01 + 1
		Else
			$VAR0526 = $ARG01
		EndIf
		$VAR0526 = StringFormat("%04d", $VAR0526)
		Return $VAR0526
EndSelect
EndFunc


Func FN0121($ARG00, $ARG01)
Local $LOCAL00D7[4], $LOCAL00D6[4]
Local $LOCAL00E0 = "", $VAR0527 = ""
Local $VAR0528, $VAR0529, $VAR052A
If Not FN0119($ARG00) Then
	Return SetError(1, 0, "")
EndIf
If $ARG01 < 0 Or $ARG01 > 5 Or Not IsInt($ARG01) Then
	Return SetError(2, 0, "")
EndIf
FN0122($ARG00, $LOCAL00D7, $LOCAL00D6)
Switch $ARG01
	Case 0
		$VAR052A = DllCall("kernel32.dll", "int", "GetLocaleInfoW", "dword", 1024, "dword", 31, "wstr", "", "int", 255)
		If Not @error And $VAR052A[0] <> 0 Then
			$LOCAL00E0 = $VAR052A[3]
		Else
			$LOCAL00E0 = "M/d/yyyy"
		EndIf
		If $LOCAL00D6[0] > 1 Then
			$VAR052A = DllCall("kernel32.dll", "int", "GetLocaleInfoW", "dword", 1024, "dword", 4099, "wstr", "", "int", 255)
			If Not @error And $VAR052A[0] <> 0 Then
				$VAR0527 = $VAR052A[3]
			Else
				$VAR0527 = "h:mm:ss tt"
			EndIf
		EndIf
	Case 1
		$VAR052A = DllCall("kernel32.dll", "int", "GetLocaleInfoW", "dword", 1024, "dword", 32, "wstr", "", "int", 255)
		If Not @error And $VAR052A[0] <> 0 Then
			$LOCAL00E0 = $VAR052A[3]
		Else
			$LOCAL00E0 = "dddd, MMMM dd, yyyy"
		EndIf
	Case 2
		$VAR052A = DllCall("kernel32.dll", "int", "GetLocaleInfoW", "dword", 1024, "dword", 31, "wstr", "", "int", 255)
		If Not @error And $VAR052A[0] <> 0 Then
			$LOCAL00E0 = $VAR052A[3]
		Else
			$LOCAL00E0 = "M/d/yyyy"
		EndIf
	Case 3
		If $LOCAL00D6[0] > 1 Then
			$VAR052A = DllCall("kernel32.dll", "int", "GetLocaleInfoW", "dword", 1024, "dword", 4099, "wstr", "", "int", 255)
			If Not @error And $VAR052A[0] <> 0 Then
				$VAR0527 = $VAR052A[3]
			Else
				$VAR0527 = "h:mm:ss tt"
			EndIf
		EndIf
	Case 4
		If $LOCAL00D6[0] > 1 Then
			$VAR0527 = "hh:mm"
		EndIf
	Case 5
		If $LOCAL00D6[0] > 1 Then
			$VAR0527 = "hh:mm:ss"
		EndIf
EndSwitch
If $LOCAL00E0 <> "" Then
	$VAR052A = DllCall("kernel32.dll", "int", "GetLocaleInfoW", "dword", 1024, "dword", 29, "wstr", "", "int", 255)
	If Not @error And $VAR052A[0] <> 0 Then
		$LOCAL00E0 = StringReplace($LOCAL00E0, "/", $VAR052A[3])
	EndIf
	Local $LOCAL00E1 = FN0123($LOCAL00D7[1], $LOCAL00D7[2], $LOCAL00D7[3])
	$LOCAL00D7[3] = StringRight("0" & $LOCAL00D7[3], 2)
	$LOCAL00D7[2] = StringRight("0" & $LOCAL00D7[2], 2)
	$LOCAL00E0 = StringReplace($LOCAL00E0, "d", "@")
	$LOCAL00E0 = StringReplace($LOCAL00E0, "m", "#")
	$LOCAL00E0 = StringReplace($LOCAL00E0, "y", "&")
	$LOCAL00E0 = StringReplace($LOCAL00E0, "@@@@", FN0114($LOCAL00E1, 0))
	$LOCAL00E0 = StringReplace($LOCAL00E0, "@@@", FN0114($LOCAL00E1, 1))
	$LOCAL00E0 = StringReplace($LOCAL00E0, "@@", $LOCAL00D7[3])
	$LOCAL00E0 = StringReplace($LOCAL00E0, "@", StringReplace(StringLeft($LOCAL00D7[3], 1), "0", "") & StringRight($LOCAL00D7[3], 1))
	$LOCAL00E0 = StringReplace($LOCAL00E0, "####", FN0126($LOCAL00D7[2], 0))
	$LOCAL00E0 = StringReplace($LOCAL00E0, "###", FN0126($LOCAL00D7[2], 1))
	$LOCAL00E0 = StringReplace($LOCAL00E0, "##", $LOCAL00D7[2])
	$LOCAL00E0 = StringReplace($LOCAL00E0, "#", StringReplace(StringLeft($LOCAL00D7[2], 1), "0", "") & StringRight($LOCAL00D7[2], 1))
	$LOCAL00E0 = StringReplace($LOCAL00E0, "&&&&", $LOCAL00D7[1])
	$LOCAL00E0 = StringReplace($LOCAL00E0, "&&", StringRight($LOCAL00D7[1], 2))
EndIf
If $VAR0527 <> "" Then
	$VAR052A = DllCall("kernel32.dll", "int", "GetLocaleInfoW", "dword", 1024, "dword", 40, "wstr", "", "int", 255)
	If Not @error And $VAR052A[0] <> 0 Then
		$VAR0528 = $VAR052A[3]
	Else
		$VAR0528 = "AM"
	EndIf
	$VAR052A = DllCall("kernel32.dll", "int", "GetLocaleInfoW", "dword", 1024, "dword", 41, "wstr", "", "int", 255)
	If Not @error And $VAR052A[0] <> 0 Then
		$VAR0529 = $VAR052A[3]
	Else
		$VAR0529 = "PM"
	EndIf
	$VAR052A = DllCall("kernel32.dll", "int", "GetLocaleInfoW", "dword", 1024, "dword", 30, "wstr", "", "int", 255)
	If Not @error And $VAR052A[0] <> 0 Then
		$VAR0527 = StringReplace($VAR0527, ":", $VAR052A[3])
	EndIf
	If StringInStr($VAR0527, "tt") Then
		If $LOCAL00D6[1] < 12 Then
			$VAR0527 = StringReplace($VAR0527, "tt", $VAR0528)
			If $LOCAL00D6[1] = 0 Then $LOCAL00D6[1] = 12
		Else
			$VAR0527 = StringReplace($VAR0527, "tt", $VAR0529)
			If $LOCAL00D6[1] > 12 Then $LOCAL00D6[1] = $LOCAL00D6[1] - 12
		EndIf
	EndIf
	$LOCAL00D6[1] = StringRight("0" & $LOCAL00D6[1], 2)
	$LOCAL00D6[2] = StringRight("0" & $LOCAL00D6[2], 2)
	$LOCAL00D6[3] = StringRight("0" & $LOCAL00D6[3], 2)
	$VAR0527 = StringReplace($VAR0527, "hh", StringFormat("%02d", $LOCAL00D6[1]))
	$VAR0527 = StringReplace($VAR0527, "h", StringReplace(StringLeft($LOCAL00D6[1], 1), "0", "") & StringRight($LOCAL00D6[1], 1))
	$VAR0527 = StringReplace($VAR0527, "mm", StringFormat("%02d", $LOCAL00D6[2]))
	$VAR0527 = StringReplace($VAR0527, "ss", StringFormat("%02d", $LOCAL00D6[3]))
	$LOCAL00E0 = StringStripWS($LOCAL00E0 & " " & $VAR0527, 3)
EndIf
Return $LOCAL00E0
EndFunc


Func FN0122($ARG00, ByRef $ARGREF01, ByRef $ARGREF02)
Local $LOCAL00DF = StringSplit($ARG00, " T")
If $LOCAL00DF[0] > 0 Then $ARGREF01 = StringSplit($LOCAL00DF[1], "/-.")
If $LOCAL00DF[0] > 1 Then
	$ARGREF02 = StringSplit($LOCAL00DF[2], ":")
	If UBound($ARGREF02) < 4 Then ReDim $ARGREF02[4]
Else
	Dim $ARGREF02[4]
EndIf
If UBound($ARGREF01) < 4 Then ReDim $ARGREF01[4]
For $VAR0078 = 1 To 3
	If StringIsInt($ARGREF01[$VAR0078]) Then
		$ARGREF01[$VAR0078] = Number($ARGREF01[$VAR0078])
	Else
		$ARGREF01[$VAR0078] = -1
	EndIf
	If StringIsInt($ARGREF02[$VAR0078]) Then
		$ARGREF02[$VAR0078] = Number($ARGREF02[$VAR0078])
	Else
		$ARGREF02[$VAR0078] = 0
	EndIf
Next
Return 1
EndFunc


Func FN0123($ARG00, $ARG01, $ARG02)
If Not FN0119($ARG00 & "/" & $ARG01 & "/" & $ARG02) Then
	Return SetError(1, 0, "")
EndIf
Local $LOCAL00E2 = Int((14 - $ARG01) / 12)
Local $LOCAL00E3 = $ARG00 - $LOCAL00E2
Local $LOCAL00E4 = $ARG01 + (12 * $LOCAL00E2) - 2
Local $LOCAL00E5 = Mod($ARG02 + $LOCAL00E3 + Int($LOCAL00E3 / 4) - Int($LOCAL00E3 / 100) + Int($LOCAL00E3 / 400) + Int((31 * $LOCAL00E4) / 12), 7)
Return ($LOCAL00E5 + 1)
EndFunc


Func FN0124($ARG00, $ARG01, $ARG02)
Local $LOCAL00E6 = FN0123($ARG00, $ARG01, $ARG02)
If @error Then
	Return SetError(1, 0, "")
EndIf
If $LOCAL00E6 >= 2 Then Return $LOCAL00E6 - 1
Return 7
EndFunc


Func FN0125($ARG00, $ARG01, $ARG02)
If Not FN0119(StringFormat("%04d/%02d/%02d", $ARG00, $ARG01, $ARG02)) Then
	Return SetError(1, 0, "")
EndIf
If $ARG01 < 3 Then
	$ARG01 = $ARG01 + 12
	$ARG00 = $ARG00 - 1
EndIf
Local $LOCAL00E2 = Int($ARG00 / 100)
Local $LOCAL00E7 = Int($LOCAL00E2 / 4)
Local $LOCAL00E8 = 2 - $LOCAL00E2 + $LOCAL00E7
Local $LOCAL00E9 = Int(1461 * ($ARG00 + 4716) / 4)
Local $LOCAL00EA = Int(153 * ($ARG01 + 1) / 5)
Local $LOCAL00EB = $LOCAL00E8 + $ARG02 + $LOCAL00E9 + $LOCAL00EA - 1524.5
Return ($LOCAL00EB)
EndFunc


Func FN0126($ARG00, $ARGOPT01 = 0)
Local $LOCAL00EC[13] = ["", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]
Local $LOCAL00ED[13] = ["", "Jan", "Feb", "Mar", "Apr", "May", "June", "July", "Aug", "Sept", "Oct", "Nov", "Dec"]
Select
	Case Not StringIsInt($ARG00)
		Return SetError(1, 0, "")
	Case $ARG00 < 1 Or $ARG00 > 12
		Return SetError(1, 0, "")
	Case Else
		Select
			Case $ARGOPT01 = 0
				Return $LOCAL00EC[$ARG00]
			Case $ARGOPT01 = 1
				Return $LOCAL00ED[$ARG00]
			Case Else
				Return SetError(1, 0, "")
		EndSelect
EndSelect
EndFunc


Func FN0127($ARG00, ByRef $ARGREF01, ByRef $ARGREF02, ByRef $ARGREF03)
If $ARG00 < 0 Or Not IsNumber($ARG00) Then
	Return SetError(1, 0, 0)
EndIf
Local $LOCAL00EE = Int($ARG00 + 0.5)
Local $LOCAL00EF = Int(($LOCAL00EE - 1867216.25) / 36524.25)
Local $LOCAL00F0 = Int($LOCAL00EF / 4)
Local $LOCAL00E2 = $LOCAL00EE + 1 + $LOCAL00EF - $LOCAL00F0
Local $LOCAL00E7 = $LOCAL00E2 + 1524
Local $LOCAL00E8 = Int(($LOCAL00E7 - 122.1) / 365.25)
Local $LOCAL00E5 = Int(365.25 * $LOCAL00E8)
Local $LOCAL00E9 = Int(($LOCAL00E7 - $LOCAL00E5) / 30.6001)
Local $LOCAL00EA = Int(30.6001 * $LOCAL00E9)
$ARGREF03 = $LOCAL00E7 - $LOCAL00E5 - $LOCAL00EA
If $LOCAL00E9 - 1 < 13 Then
	$ARGREF02 = $LOCAL00E9 - 1
Else
	$ARGREF02 = $LOCAL00E9 - 13
EndIf
If $ARGREF02 < 3 Then
	$ARGREF01 = $LOCAL00E8 - 4715
Else
	$ARGREF01 = $LOCAL00E8 - 4716
EndIf
$ARGREF01 = StringFormat("%04d", $ARGREF01)
$ARGREF02 = StringFormat("%02d", $ARGREF02)
$ARGREF03 = StringFormat("%02d", $ARGREF03)
Return $ARGREF01 & "/" & $ARGREF02 & "/" & $ARGREF03
EndFunc


Func FN0128($ARG00, $ARG01, $ARG02)
Local $LOCAL00F1 = StringFormat("%04d/%02d/%02d", $ARG00, $ARG01, $ARG02)
If Not FN0119($LOCAL00F1) Then
	Return SetError(1, 0, "")
EndIf
Local $LOCAL00F2 = 0
Local $LOCAL00F3 = FN0135($ARG00)
For $VAR052B = 1 To $ARG01 - 1
	$LOCAL00F2 = $LOCAL00F2 + $LOCAL00F3[$VAR052B]
Next
$LOCAL00F2 = ($ARG00 * 1000) + ($LOCAL00F2 + $ARG02)
Return $LOCAL00F2
EndFunc


Func FN0129($ARG00, $ARGOPT01 = "/")
Local $LOCAL00F4 = Int($ARG00 / 1000)
Local $LOCAL00F5 = Mod($ARG00, 1000)
Local $LOCAL00F6 = 365
If FN0117($LOCAL00F4) Then $LOCAL00F6 = 366
If $LOCAL00F5 > $LOCAL00F6 Then
	Return SetError(1, 0, "")
EndIf
Local $LOCAL00F3 = FN0135($LOCAL00F4)
Local $LOCAL00F7 = 1
While $LOCAL00F5 > $LOCAL00F3[$LOCAL00F7]
	$LOCAL00F5 = $LOCAL00F5 - $LOCAL00F3[$LOCAL00F7]
	$LOCAL00F7 = $LOCAL00F7 + 1
WEnd
Return StringFormat("%04d%s%02d%s%02d", $LOCAL00F4, $ARGOPT01, $LOCAL00F7, $ARGOPT01, $LOCAL00F5)
EndFunc


Func FN012A()
Return (FN0121(@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC, 0))
EndFunc


Func FN012B()
Return (@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC)
EndFunc


Func FN012C()
Return (@YEAR & "/" & @MON & "/" & @MDAY)
EndFunc


Func FN012D()
Return (FN0121(@YEAR & "/" & @MON & "/" & @MDAY, 0))
EndFunc


Func FN012E($ARGOPT00 = 3)
If $ARGOPT00 < 3 Or $ARGOPT00 > 5 Then $ARGOPT00 = 3
Return (FN0121(@YEAR & "/" & @MON & "/" & @MDAY & " " & @HOUR & ":" & @MIN & ":" & @SEC, $ARGOPT00))
EndFunc


Func FN012F($ARG00, $ARGOPT01 = 0, $ARGOPT02 = 0)
If $ARGOPT02 = 0 Then $ARGOPT02 = @YEAR
If $ARGOPT01 = 0 Then $ARGOPT01 = @MON
If Not FN0119($ARGOPT02 & "/" & $ARGOPT01 & "/" & $ARG00) Then Return 1
Local $LOCAL00F8 = DllStructCreate($VAR00E2)
Local $LOCAL00F9 = DllStructGetPtr($LOCAL00F8)
DllCall("kernel32.dll", "none", "GetLocalTime", "ptr", $LOCAL00F9)
If @error Then Return SetError(@error, @extended, 0)
DllStructSetData($LOCAL00F8, 4, $ARG00)
If $ARGOPT01 > 0 Then DllStructSetData($LOCAL00F8, 2, $ARGOPT01)
If $ARGOPT02 > 0 Then DllStructSetData($LOCAL00F8, 1, $ARGOPT02)
Local $LOCAL0021 = FN0150($LOCAL00F9)
If @error Then Return SetError(@error, @extended, 0)
Return Int($LOCAL0021)
EndFunc


Func FN0130($ARG00, $ARG01, $ARGOPT02 = 0)
If $ARG00 < 0 Or $ARG00 > 23 Then Return 1
If $ARG01 < 0 Or $ARG01 > 59 Then Return 1
If $ARGOPT02 < 0 Or $ARGOPT02 > 59 Then Return 1
Local $LOCAL00F8 = DllStructCreate($VAR00E2)
Local $LOCAL00F9 = DllStructGetPtr($LOCAL00F8)
DllCall("kernel32.dll", "none", "GetLocalTime", "ptr", $LOCAL00F9)
If @error Then Return SetError(@error, @extended, 0)
DllStructSetData($LOCAL00F8, 5, $ARG00)
DllStructSetData($LOCAL00F8, 6, $ARG01)
If $ARGOPT02 > 0 Then DllStructSetData($LOCAL00F8, 7, $ARGOPT02)
Local $LOCAL0021 = FN0150($LOCAL00F9)
If @error Then Return SetError(@error, @extended, 0)
Return Int($LOCAL0021)
EndFunc


Func FN0131($ARG00, ByRef $ARGREF01, ByRef $ARGREF02, ByRef $ARGREF03)
If Number($ARG00) > 0 Then
	$ARG00 = Int($ARG00 / 1000)
	$ARGREF01 = Int($ARG00 / 3600)
	$ARG00 = Mod($ARG00, 3600)
	$ARGREF02 = Int($ARG00 / 60)
	$ARGREF03 = Mod($ARG00, 60)
	Return 1
ElseIf Number($ARG00) = 0 Then
	$ARGREF01 = 0
	$ARG00 = 0
	$ARGREF02 = 0
	$ARGREF03 = 0
	Return 1
Else
	Return SetError(1, 0, 0)
EndIf
EndFunc


Func FN0132($ARGOPT00 = @HOUR, $ARGOPT01 = @MIN, $ARGOPT02 = @SEC)
If StringIsInt($ARGOPT00) And StringIsInt($ARGOPT01) And StringIsInt($ARGOPT02) Then
	Local $LOCAL00FA = 1000 * ((3600 * $ARGOPT00) + (60 * $ARGOPT01) + $ARGOPT02)
	Return $LOCAL00FA
Else
	Return SetError(1, 0, 0)
EndIf
EndFunc


Func FN0133($ARGOPT00 = @YEAR, $ARGOPT01 = @MON, $ARGOPT02 = @MDAY)
If $ARGOPT02 > 31 Or $ARGOPT02 < 1 Then
	Return SetError(1, 0, -1)
ElseIf $ARGOPT01 > 12 Or $ARGOPT01 < 1 Then
	Return SetError(1, 0, -1)
ElseIf $ARGOPT00 < 1 Or $ARGOPT00 > 2999 Then
	Return SetError(1, 0, -1)
EndIf
Local $LOCAL00E6 = FN0124($ARGOPT00, $ARGOPT01, $ARGOPT02)
Local $LOCAL00FB = FN0124($ARGOPT00, 1, 1)
If ($ARGOPT01 = 1 And 3 < $LOCAL00FB And $LOCAL00FB < 7 - ($ARGOPT02 - 1)) Then
	$LOCAL00E6 = $LOCAL00FB - 1
	$LOCAL00FB = FN0124($ARGOPT00 - 1, 1, 1)
	$ARGOPT01 = 12
	$ARGOPT02 = 31
	$ARGOPT00 = $ARGOPT00 - 1
ElseIf ($ARGOPT01 = 12 And 30 - ($ARGOPT02 - 1) < FN0124($ARGOPT00 + 1, 1, 1) And FN0124($ARGOPT00 + 1, 1, 1) < 4) Then
	Return 1
EndIf
Return Int((FN0124($ARGOPT00, 1, 1) < 4) + 4 * ($ARGOPT01 - 1) + (2 * ($ARGOPT01 - 1) + ($ARGOPT02 - 1) + $LOCAL00FB - $LOCAL00E6 + 6) * 36 / 256)
EndFunc


Func FN0134($ARGOPT00 = @YEAR, $ARGOPT01 = @MON, $ARGOPT02 = @MDAY, $ARGOPT03 = 1)
If $ARGOPT02 > 31 Or $ARGOPT02 < 1 Then
	Return SetError(1, 0, -1)
ElseIf $ARGOPT01 > 12 Or $ARGOPT01 < 1 Then
	Return SetError(1, 0, -1)
ElseIf $ARGOPT00 < 1 Or $ARGOPT00 > 2999 Then
	Return SetError(1, 0, -1)
ElseIf $ARGOPT03 < 1 Or $ARGOPT03 > 2 Then
	Return SetError(2, 0, -1)
EndIf
Local $VAR052C, $VAR052D
Local $LOCAL00FB = FN0124($ARGOPT00, 1, 1)
Local $LOCAL00FC = $ARGOPT00 & "/" & $ARGOPT01 & "/" & $ARGOPT02
If $ARGOPT03 = 1 Then
	If $LOCAL00FB = 6 Then
		$VAR052C = 0
	Else
		$VAR052C = -1 * $LOCAL00FB - 1
	EndIf
	$VAR052D = $VAR052C + 6
Else
	$VAR052C = $LOCAL00FB * - 1
	$VAR052D = $VAR052C + 6
EndIf
Local $VAR052E
Local $LOCAL00FD = FN0113("d", $VAR052D, $ARGOPT00 & "/01/01")
Local $LOCAL00FE = FN0124($ARGOPT00 + 1, 1, 1)
If $ARGOPT03 = 1 Then
	If $LOCAL00FE = 6 Then
		$VAR052E = 0
	Else
		$VAR052E = -1 * $LOCAL00FE - 1
	EndIf
Else
	$VAR052E = $LOCAL00FE * - 1
EndIf
Local $LOCAL00FF = FN0113("d", $VAR052E, $ARGOPT00 + 1 & "/01/01")
Local $LOCAL0100 = FN0116("d", $LOCAL00FD, $LOCAL00FC) - 1
Local $LOCAL0101 = FN0116("d", $LOCAL00FF, $LOCAL00FC)
If $LOCAL0100 >= 0 And $LOCAL0101 < 0 Then Return 2 + Int($LOCAL0100 / 7)
If $LOCAL0100 < 0 Or $LOCAL0101 >= 0 Then Return 1
EndFunc


Func FN0135($ARG00)
Local $LOCAL0102[13] = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
If FN0117($ARG00) Then $LOCAL0102[2] = 29
Return $LOCAL0102
EndFunc


Func FN0136($ARG00)
Local $LOCAL0103 = DllStructCreate($VAR00E2, $ARG00)
Local $LOCAL0104 = DllStructCreate($VAR00E2)
DllStructSetData($LOCAL0104, "Month", DllStructGetData($LOCAL0103, "Month"))
DllStructSetData($LOCAL0104, "Day", DllStructGetData($LOCAL0103, "Day"))
DllStructSetData($LOCAL0104, "Year", DllStructGetData($LOCAL0103, "Year"))
DllStructSetData($LOCAL0104, "Hour", DllStructGetData($LOCAL0103, "Hour"))
DllStructSetData($LOCAL0104, "Minute", DllStructGetData($LOCAL0103, "Minute"))
DllStructSetData($LOCAL0104, "Second", DllStructGetData($LOCAL0103, "Second"))
DllStructSetData($LOCAL0104, "MSeconds", DllStructGetData($LOCAL0103, "MSeconds"))
DllStructSetData($LOCAL0104, "DOW", DllStructGetData($LOCAL0103, "DOW"))
Return $LOCAL0104
EndFunc


Func FN0137($ARG00, $ARG01)
Local $LOCAL0041 = DllCall("kernel32.dll", "long", "CompareFileTime", "ptr", $ARG00, "ptr", $ARG01)
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN0138($ARG00, $ARG01)
Local $LOCAL0105 = DllStructCreate($VAR00E1)
Local $LOCAL0106 = DllStructGetPtr($LOCAL0105)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "DosDateTimeToFileTime", "word", $ARG00, "word", $ARG01, "ptr", $LOCAL0106)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL0105)
EndFunc


Func FN0139($ARG00)
Local $LOCAL0107[3]
$LOCAL0107[0] = BitAND($ARG00, 31)
$LOCAL0107[1] = BitAND(BitShift($ARG00, 5), 15)
$LOCAL0107[2] = BitAND(BitShift($ARG00, 9), 63) + 1980
Return $LOCAL0107
EndFunc


Func FN013A($ARG00, $ARG01)
Local $LOCAL0107[6]
$LOCAL0107[0] = BitAND($ARG00, 31)
$LOCAL0107[1] = BitAND(BitShift($ARG00, 5), 15)
$LOCAL0107[2] = BitAND(BitShift($ARG00, 9), 63) + 1980
$LOCAL0107[5] = BitAND($ARG01, 31) * 2
$LOCAL0107[4] = BitAND(BitShift($ARG01, 5), 63)
$LOCAL0107[3] = BitAND(BitShift($ARG01, 11), 31)
Return $LOCAL0107
EndFunc


Func FN013B($ARG00, $ARG01)
Local $LOCAL0107 = FN013A($ARG00, $ARG01)
Return StringFormat("%02d/%02d/%04d %02d:%02d:%02d", $LOCAL0107[0], $LOCAL0107[1], $LOCAL0107[2], $LOCAL0107[3], $LOCAL0107[4], $LOCAL0107[5])
EndFunc


Func FN013C($ARG00)
Local $LOCAL0107 = FN0139($ARG00)
Return StringFormat("%02d/%02d/%04d", $LOCAL0107[0], $LOCAL0107[1], $LOCAL0107[2])
EndFunc


Func FN013D($ARG00)
Local $LOCAL0108[3]
$LOCAL0108[2] = BitAND($ARG00, 31) * 2
$LOCAL0108[1] = BitAND(BitShift($ARG00, 5), 63)
$LOCAL0108[0] = BitAND(BitShift($ARG00, 11), 31)
Return $LOCAL0108
EndFunc


Func FN013E($ARG00)
Local $LOCAL0108 = FN013D($ARG00)
Return StringFormat("%02d:%02d:%02d", $LOCAL0108[0], $LOCAL0108[1], $LOCAL0108[2])
EndFunc


Func FN013F($ARG00, $ARG01, $ARG02, $ARGOPT03 = 0, $ARGOPT04 = 0, $ARGOPT05 = 0, $ARGOPT06 = 0)
Local $LOCAL00F8 = FN0140($ARG00, $ARG01, $ARG02, $ARGOPT03, $ARGOPT04, $ARGOPT05, $ARGOPT06)
Return FN0157(DllStructGetPtr($LOCAL00F8))
EndFunc


Func FN0140($ARG00, $ARG01, $ARG02, $ARGOPT03 = 0, $ARGOPT04 = 0, $ARGOPT05 = 0, $ARGOPT06 = 0)
Local $LOCAL00F8 = DllStructCreate($VAR00E2)
DllStructSetData($LOCAL00F8, "Month", $ARG00)
DllStructSetData($LOCAL00F8, "Day", $ARG01)
DllStructSetData($LOCAL00F8, "Year", $ARG02)
DllStructSetData($LOCAL00F8, "Hour", $ARGOPT03)
DllStructSetData($LOCAL00F8, "Minute", $ARGOPT04)
DllStructSetData($LOCAL00F8, "Second", $ARGOPT05)
DllStructSetData($LOCAL00F8, "MSeconds", $ARGOPT06)
Return $LOCAL00F8
EndFunc


Func FN0141(ByRef $ARGREF00)
If ((DllStructGetData($ARGREF00, 1) + DllStructGetData($ARGREF00, 2)) = 0) Then Return SetError(1, 0, 0)
Local $LOCAL00F8 = FN0145(DllStructGetPtr($ARGREF00))
If @error Then Return SetError(@error, @extended, 0)
Return FN0154($LOCAL00F8)
EndFunc


Func FN0142(ByRef $ARGREF00, $ARGOPT01 = 0)
Local $LOCAL0107 = FN0141($ARGREF00)
If @error Then Return SetError(@error, @extended, "")
If $ARGOPT01 Then
	Return StringFormat("%04d/%02d/%02d %02d:%02d:%02d", $LOCAL0107[2], $LOCAL0107[1], $LOCAL0107[0], $LOCAL0107[3], $LOCAL0107[4], $LOCAL0107[5])
Else
	Return StringFormat("%02d/%02d/%04d %02d:%02d:%02d", $LOCAL0107[0], $LOCAL0107[1], $LOCAL0107[2], $LOCAL0107[3], $LOCAL0107[4], $LOCAL0107[5])
EndIf
EndFunc


Func FN0143($ARG00)
Local $LOCAL0107[2]
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "FileTimeToDosDateTime", "ptr", $ARG00, "word*", 0, "word*", 0)
If @error Then Return SetError(@error, @extended, $LOCAL0107)
$LOCAL0107[0] = $LOCAL0041[2]
$LOCAL0107[1] = $LOCAL0041[3]
Return SetExtended($LOCAL0041[0], $LOCAL0107)
EndFunc


Func FN0144($ARG00)
Local $LOCAL0109 = DllStructCreate($VAR00E1)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "FileTimeToLocalFileTime", "ptr", $ARG00, "ptr", DllStructGetPtr($LOCAL0109))
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL0109)
EndFunc


Func FN0145($ARG00)
Local $LOCAL010A = DllStructCreate($VAR00E2)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "FileTimeToSystemTime", "ptr", $ARG00, "ptr", DllStructGetPtr($LOCAL010A))
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL010A)
EndFunc


Func FN0146($ARG00)
Local $LOCAL0107[3]
$LOCAL0107[0] = DllStructCreate($VAR00E1)
$LOCAL0107[1] = DllStructCreate($VAR00E1)
$LOCAL0107[2] = DllStructCreate($VAR00E1)
Local $LOCAL010B = DllStructGetPtr($LOCAL0107[0])
Local $LOCAL010C = DllStructGetPtr($LOCAL0107[1])
Local $LOCAL010D = DllStructGetPtr($LOCAL0107[2])
Local $LOCAL0041 = DllCall("Kernel32.dll", "bool", "GetFileTime", "handle", $ARG00, "ptr", $LOCAL010B, "ptr", $LOCAL010C, "ptr", $LOCAL010D)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL0107)
EndFunc


Func FN0147()
Local $LOCAL010A = DllStructCreate($VAR00E2)
DllCall("kernel32.dll", "none", "GetLocalTime", "ptr", DllStructGetPtr($LOCAL010A))
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL010A
EndFunc


Func FN0148()
Local $LOCAL010A = DllStructCreate($VAR00E2)
DllCall("kernel32.dll", "none", "GetSystemTime", "ptr", DllStructGetPtr($LOCAL010A))
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL010A
EndFunc


Func FN0149()
Local $LOCAL002C[3]
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "GetSystemTimeAdjustment", "dword*", 0, "dword*", 0, "bool*", 0)
If @error Then Return SetError(@error, @extended, 0)
$LOCAL002C[0] = $LOCAL0041[1]
$LOCAL002C[1] = $LOCAL0041[2]
$LOCAL002C[2] = $LOCAL0041[3] <> 0
Return SetExtended($LOCAL0041[0], $LOCAL002C)
EndFunc


Func FN014A()
Local $LOCAL010E = DllStructCreate($VAR00E1)
DllCall("kernel32.dll", "none", "GetSystemTimeAsFileTime", "ptr", DllStructGetPtr($LOCAL010E))
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL010E
EndFunc


Func FN014B()
Local $LOCAL002C[3]
$LOCAL002C[0] = DllStructCreate($VAR00E1)
$LOCAL002C[1] = DllStructCreate($VAR00E1)
$LOCAL002C[2] = DllStructCreate($VAR00E1)
Local $LOCAL010F = DllStructGetPtr($LOCAL002C[0])
Local $LOCAL0110 = DllStructGetPtr($LOCAL002C[1])
Local $LOCAL0111 = DllStructGetPtr($LOCAL002C[2])
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "GetSystemTimes", "ptr", $LOCAL010F, "ptr", $LOCAL0110, "ptr", $LOCAL0111)
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL002C)
EndFunc


Func FN014C()
Local $LOCAL0041 = DllCall("kernel32.dll", "dword", "GetTickCount")
If @error Then Return SetError(@error, @extended, 0)
Return $LOCAL0041[0]
EndFunc


Func FN014D()
Local $LOCAL0112 = DllStructCreate($VAR00E3)
Local $LOCAL0041 = DllCall("kernel32.dll", "dword", "GetTimeZoneInformation", "ptr", DllStructGetPtr($LOCAL0112))
If @error Or $LOCAL0041[0] = -1 Then Return SetError(@error, @extended, 0)
Local $LOCAL002C[8]
$LOCAL002C[0] = $LOCAL0041[0]
$LOCAL002C[1] = DllStructGetData($LOCAL0112, "Bias")
$LOCAL002C[2] = FN010E(DllStructGetPtr($LOCAL0112, "StdName"))
$LOCAL002C[3] = FN0136(DllStructGetPtr($LOCAL0112, "StdDate"))
$LOCAL002C[4] = DllStructGetData($LOCAL0112, "StdBias")
$LOCAL002C[5] = FN010E(DllStructGetPtr($LOCAL0112, "DayName"))
$LOCAL002C[6] = FN0136(DllStructGetPtr($LOCAL0112, "DayDate"))
$LOCAL002C[7] = DllStructGetData($LOCAL0112, "DayBias")
Return $LOCAL002C
EndFunc


Func FN014E($ARG00)
Local $LOCAL010E = DllStructCreate($VAR00E1)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "LocalFileTimeToFileTime", "ptr", $ARG00, "ptr", DllStructGetPtr($LOCAL010E))
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL010E)
EndFunc


Func FN014F($ARG00, $ARG01, $ARG02, $ARG03)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SetFileTime", "handle", $ARG00, "ptr", $ARG01, "ptr", $ARG02, "ptr", $ARG03)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0150($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SetLocalTime", "ptr", $ARG00)
If @error Or Not $LOCAL0041[0] Then Return SetError(@error, @extended, False)
$LOCAL0041 = DllCall("kernel32.dll", "bool", "SetLocalTime", "ptr", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0151($ARG00)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SetSystemTime", "ptr", $ARG00)
If @error Then Return SetError(@error, @extended, False)
Return $LOCAL0041[0]
EndFunc


Func FN0152($ARG00, $ARG01)
Local $LOCAL0067 = FN0036(BitOR($VAR0474, $VAR0472))
If @error Then Return SetError(@error, @extended, False)
FN0037($LOCAL0067, "SeSystemtimePrivilege", True)
Local $LOCAL0035 = @error
Local $LOCAL007A = @extended
Local $LOCAL000D = False
If Not @error Then
	Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SetSystemTimeAdjustment", "dword", $ARG00, "bool", $ARG01)
	If @error Then
		$LOCAL0035 = @error
		$LOCAL007A = @extended
	ElseIf $LOCAL0041[0] Then
		$LOCAL000D = True
	Else
		$LOCAL0035 = 1
		$LOCAL007A = FN001E()
	EndIf
	FN0037($LOCAL0067, "SeSystemtimePrivilege", False)
	If @error Then $LOCAL0035 = 2
EndIf
FN0053($LOCAL0067)
Return SetError($LOCAL0035, $LOCAL007A, $LOCAL000D)
EndFunc


Func FN0153($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05, $ARG06)
Local $LOCAL0113 = FN00D6($ARG01)
Local $LOCAL0114 = FN00D6($ARG04)
Local $LOCAL0115 = DllStructCreate($VAR00E3)
DllStructSetData($LOCAL0115, "Bias", $ARG00)
DllStructSetData($LOCAL0115, "StdName", DllStructGetData($LOCAL0113, 1))
FN0042(DllStructGetPtr($ARG02), DllStructGetPtr($LOCAL0115, "StdDate"), DllStructGetSize($ARG02))
DllStructSetData($LOCAL0115, "StdBias", $ARG03)
DllStructSetData($LOCAL0115, "DayName", DllStructGetData($LOCAL0114, 1))
FN0042(DllStructGetPtr($ARG05), DllStructGetPtr($LOCAL0115, "DayDate"), DllStructGetSize($ARG05))
DllStructSetData($LOCAL0115, "DayBias", $ARG06)
Local $LOCAL0067 = FN0036(BitOR($VAR0474, $VAR0472))
If @error Then Return SetError(@error, @extended, False)
FN0037($LOCAL0067, "SeSystemtimePrivilege", True)
Local $LOCAL0035 = @error
Local $LOCAL007A = @extended
Local $LOCAL000D = False
If Not @error Then
	Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SetTimeZoneInformation", "ptr", DllStructGetPtr($LOCAL0115))
	If @error Then
		$LOCAL0035 = @error
		$LOCAL007A = @extended
	ElseIf $LOCAL0041[0] Then
		$LOCAL007A = 0
		$LOCAL000D = True
	Else
		$LOCAL0035 = 1
		$LOCAL007A = FN001E()
	EndIf
	FN0037($LOCAL0067, "SeSystemtimePrivilege", False)
	If @error Then $LOCAL0035 = 2
EndIf
FN0053($LOCAL0067)
Return SetError($LOCAL0035, $LOCAL007A, $LOCAL000D)
EndFunc


Func FN0154(ByRef $ARGREF00)
Local $LOCAL002C[8]
$LOCAL002C[0] = DllStructGetData($ARGREF00, "Month")
$LOCAL002C[1] = DllStructGetData($ARGREF00, "Day")
$LOCAL002C[2] = DllStructGetData($ARGREF00, "Year")
$LOCAL002C[3] = DllStructGetData($ARGREF00, "Hour")
$LOCAL002C[4] = DllStructGetData($ARGREF00, "Minute")
$LOCAL002C[5] = DllStructGetData($ARGREF00, "Second")
$LOCAL002C[6] = DllStructGetData($ARGREF00, "MSeconds")
$LOCAL002C[7] = DllStructGetData($ARGREF00, "DOW")
Return $LOCAL002C
EndFunc


Func FN0155(ByRef $ARGREF00, $ARGOPT01 = 0)
Local $LOCAL002C = FN0154($ARGREF00)
If @error Then Return SetError(@error, @extended, "")
If $ARGOPT01 Then
	Return StringFormat("%04d/%02d/%02d", $LOCAL002C[2], $LOCAL002C[0], $LOCAL002C[1])
Else
	Return StringFormat("%02d/%02d/%04d", $LOCAL002C[0], $LOCAL002C[1], $LOCAL002C[2])
EndIf
EndFunc


Func FN0156(ByRef $ARGREF00, $ARGOPT01 = 0)
Local $LOCAL002C = FN0154($ARGREF00)
If @error Then Return SetError(@error, @extended, "")
If $ARGOPT01 Then
	Return StringFormat("%04d/%02d/%02d %02d:%02d:%02d", $LOCAL002C[2], $LOCAL002C[0], $LOCAL002C[1], $LOCAL002C[3], $LOCAL002C[4], $LOCAL002C[5])
Else
	Return StringFormat("%02d/%02d/%04d %02d:%02d:%02d", $LOCAL002C[0], $LOCAL002C[1], $LOCAL002C[2], $LOCAL002C[3], $LOCAL002C[4], $LOCAL002C[5])
EndIf
EndFunc


Func FN0157($ARG00)
Local $LOCAL010E = DllStructCreate($VAR00E1)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SystemTimeToFileTime", "ptr", $ARG00, "ptr", DllStructGetPtr($LOCAL010E))
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL010E)
EndFunc


Func FN0158(ByRef $ARGREF00)
Local $LOCAL002C = FN0154($ARGREF00)
Return StringFormat("%02d:%02d:%02d", $LOCAL002C[3], $LOCAL002C[4], $LOCAL002C[5])
EndFunc


Func FN0159($ARG00, $ARGOPT01 = 0)
Local $LOCAL0116 = DllStructCreate($VAR00E2)
Local $LOCAL0041 = DllCall("kernel32.dll", "bool", "SystemTimeToTzSpecificLocalTime", "ptr", $ARGOPT01, "ptr", $ARG00, "ptr", DllStructGetPtr($LOCAL0116))
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL0116)
EndFunc


Func FN015A($ARG00, $ARGOPT01 = 0)
Local $LOCAL0117 = DllStructCreate($VAR00E2)
Local $LOCAL0041 = DllCall("kernel32.dll", "ptr", "TzSpecificLocalTimeToSystemTime", "ptr", $ARGOPT01, "ptr", $ARG00, "ptr", DllStructGetPtr($LOCAL0117))
If @error Then Return SetError(@error, @extended, 0)
Return SetExtended($LOCAL0041[0], $LOCAL0117)
EndFunc


Func FN015B()
Local $VAR052F, $VAR0530
If InetGet("http://checkip.dyndns.org/?rnd1=" & Random(1, 65536) & "&rnd2=" & Random(1, 65536), @TempDir & "\~ip.tmp") Then
	$VAR052F = FileRead(@TempDir & "\~ip.tmp", FileGetSize(@TempDir & "\~ip.tmp"))
	FileDelete(@TempDir & "\~ip.tmp")
	$VAR052F = StringTrimLeft($VAR052F, StringInStr($VAR052F, ":") + 1)
	$VAR052F = StringTrimRight($VAR052F, StringLen($VAR052F) - StringInStr($VAR052F, "/") + 2)
	$VAR0530 = StringSplit($VAR052F, ".")
	If $VAR0530[0] = 4 And StringIsDigit($VAR0530[1]) And StringIsDigit($VAR0530[2]) And StringIsDigit($VAR0530[3]) And StringIsDigit($VAR0530[4]) Then
		Return $VAR052F
	EndIf
EndIf
If InetGet("http://www.whatismyip.com/?rnd1=" & Random(1, 65536) & "&rnd2=" & Random(1, 65536), @TempDir & "\~ip.tmp") Then
	$VAR052F = FileRead(@TempDir & "\~ip.tmp", FileGetSize(@TempDir & "\~ip.tmp"))
	FileDelete(@TempDir & "\~ip.tmp")
	$VAR052F = StringTrimLeft($VAR052F, StringInStr($VAR052F, "Your ip is") + 10)
	$VAR052F = StringLeft($VAR052F, StringInStr($VAR052F, " ") - 1)
	$VAR052F = StringStripWS($VAR052F, 8)
	$VAR0530 = StringSplit($VAR052F, ".")
	If $VAR0530[0] = 4 And StringIsDigit($VAR0530[1]) And StringIsDigit($VAR0530[2]) And StringIsDigit($VAR0530[3]) And StringIsDigit($VAR0530[4]) Then
		Return $VAR052F
	EndIf
EndIf
Return SetError(1, 0, -1)
EndFunc


Func FN015C($ARG00)
If StringLen($ARG00) <= 0 Then Return SetError(1, 0, "")
Local $VAR0531
Local $VAR0532
For $VAR0533 = 1 To StringLen($ARG00)
	$VAR0532 = "0x" & Hex(Asc(StringMid($ARG00, $VAR0533, 1)), 2)
	If $VAR0532 < 33 Or $VAR0532 = 37 Or $VAR0532 = 47 Or $VAR0532 > 127 Then
		$VAR0531 = $VAR0531 & "%" & StringRight($VAR0532, 2)
	Else
		$VAR0531 = $VAR0531 & Chr($VAR0532)
	EndIf
Next
Return $VAR0531
EndFunc


Func FN015D($ARG00, $ARGOPT01 = True)
Local $LOCAL0118 = INETREAD($ARG00, 1)
Local $LOCAL0119 = @error, $VAR0534 = @extended
If $ARGOPT01 Then $LOCAL0118 = BinaryToString($LOCAL0118)
Return SetError($LOCAL0119, $VAR0534, $LOCAL0118)
EndFunc


Func FN015E($ARG00, $ARG01, $ARG02)
Local $LOCAL011A = Opt("ExpandEnvStrings", 1)
Local $LOCAL011B = RegRead("HKCR\mailto\shell\open\command", "")
Local $LOCAL011C = Run(StringReplace($LOCAL011B, "%1", FN015C("mailto:" & $ARG00 & "?subject=" & $ARG01 & "&body=" & $ARG02)))
Local $LOCAL0119 = @error, $VAR0534 = @extended
Opt("ExpandEnvStrings", $LOCAL011A)
Return SetError($LOCAL0119, $VAR0534, $LOCAL011C)
EndFunc


Func FN015F($ARG00, $ARG01, $ARG02, $ARG03, $ARGOPT04 = "", $ARGOPT05 = "", $ARGOPT06 = "", $ARGOPT07 = " ", $ARGOPT08 = 0)
If $ARG00 = "" Or $ARG02 = "" Or $ARG03 = "" Or $ARG01 = "" Or StringLen($ARG01) > 256 Then Return SetError(1, 0, 0)
If $ARGOPT06 = "" Then $ARGOPT06 = @ComputerName
If TCPStartup() = 0 Then Return SetError(2, 0, 0)
Local $VAR0535, $VAR0536
StringRegExp($ARG00, "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
If @extended Then
	$VAR0535 = $ARG00
Else
	$VAR0535 = TCPNameToIP($ARG00)
EndIf
If $VAR0535 = "" Then
	TCPShutdown()
	Return SetError(3, 0, 0)
EndIf
Local $LOCAL011D = TCPConnect($VAR0535, 25)
If $LOCAL011D = -1 Then
	TCPShutdown()
	Return SetError(4, 0, 0)
EndIf
Local $LOCAL011E[6], $VAR0537[6]
$LOCAL011E[0] = "HELO " & $ARGOPT06 & @CRLF
If StringLeft($ARGOPT06, 5) = "EHLO " Then $LOCAL011E[0] = $ARGOPT06 & @CRLF
$VAR0537[0] = "250"
$LOCAL011E[1] = "MAIL FROM: <" & $ARG02 & ">" & @CRLF
$VAR0537[1] = "250"
$LOCAL011E[2] = "RCPT TO: <" & $ARG03 & ">" & @CRLF
$VAR0537[2] = "250"
$LOCAL011E[3] = "DATA" & @CRLF
$VAR0537[3] = "354"
Local $LOCAL0041 = FN014D()
Local $LOCAL011F = -$LOCAL0041[1] / 60
Local $LOCAL0120 = Int($LOCAL011F)
Local $LOCAL0121 = 0
If $LOCAL0120 <> $LOCAL011F Then $LOCAL0121 = Abs($LOCAL011F - $LOCAL0120) * 60
$LOCAL011F = StringFormat(" (%+.2d%.2d)", $LOCAL0120, $LOCAL0121)
$LOCAL011E[4] = "From:" & $ARG01 & "<" & $ARG02 & ">" & @CRLF & "To:" & "<" & $ARG03 & ">" & @CRLF & "Subject:" & $ARGOPT04 & @CRLF & "Mime-Version: 1.0" & @CRLF & "Date: " & FN0114(@WDAY, 1) & ", " & @MDAY & " " & FN0126(@MON, 1) & " " & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC & $LOCAL011F & @CRLF & "Content-Type: text/plain; charset=US-ASCII" & @CRLF & @CRLF
$VAR0537[4] = ""
$LOCAL011E[5] = @CRLF & "." & @CRLF
$VAR0537[5] = "250"
If FN0161($LOCAL011D, $LOCAL011E[0], $VAR0537[0], $ARGOPT08, "220", $ARGOPT07) Then Return SetError(50, 0, 0)
For $VAR0536 = 1 To UBound($LOCAL011E) - 2
	If FN0161($LOCAL011D, $LOCAL011E[$VAR0536], $VAR0537[$VAR0536], $ARGOPT08) Then Return SetError(50 + $VAR0536, 0, 0)
Next
For $VAR0536 = 0 To UBound($ARGOPT05) - 1
	If StringLeft($ARGOPT05[$VAR0536], 1) = "." Then $ARGOPT05[$VAR0536] = "." & $ARGOPT05[$VAR0536]
	If FN0161($LOCAL011D, $ARGOPT05[$VAR0536] & @CRLF, "", $ARGOPT08) Then Return SetError(500 + $VAR0536, 0, 0)
Next
$VAR0536 = UBound($LOCAL011E) - 1
If FN0161($LOCAL011D, $LOCAL011E[$VAR0536], $VAR0537[$VAR0536], $ARGOPT08) Then Return SetError(5000, 0, 0)
TCPCloseSocket($LOCAL011D)
TCPShutdown()
Return 1
EndFunc


Func FN0160($ARG00, $ARGOPT01 = 0)
Local $LOCAL0122 = "SMTP trace"
Local $LOCAL0123 = ControlGetText($LOCAL0122, "", "Static1")
$ARG00 = StringLeft(StringReplace($ARG00, @CRLF, ""), 70)
$LOCAL0123 &= @HOUR & ":" & @MIN & ":" & @SEC & " " & $ARG00 & @LF
If WinExists($LOCAL0122) Then
	ControlSetText($LOCAL0122, "", "Static1", $LOCAL0123)
Else
	SplashTextOn($LOCAL0122, $LOCAL0123, 400, 500, 500, 100, 4 + 16, "", 8)
EndIf
If $ARGOPT01 Then Sleep($ARGOPT01 * 1000)
EndFunc


Func FN0161($ARG00, $ARG01, $ARG02, $ARG03, $ARGOPT04 = "", $ARGOPT05 = "")
Local $VAR0538, $LOCAL0017, $VAR0539
If $ARG03 Then FN0160($ARG01)
If $ARGOPT04 <> "" Then
	If $ARGOPT05 <> -1 Then
		If TCPSend($ARG00, $ARGOPT05) = 0 Then
			TCPCloseSocket($ARG00)
			TCPShutdown()
			Return 1
		EndIf
	EndIf
	$VAR0538 = ""
	$VAR0539 = TimerInit()
	While StringLeft($VAR0538, StringLen($ARGOPT04)) <> $ARGOPT04 And TimerDiff($VAR0539) < 45000
		$VAR0538 = TCPRecv($ARG00, 1000)
		If $ARG03 And $VAR0538 <> "" Then FN0160("intermediate->" & $VAR0538)
	WEnd
EndIf
If TCPSend($ARG00, $ARG01) = 0 Then
	TCPCloseSocket($ARG00)
	TCPShutdown()
	Return 1
EndIf
$VAR0539 = TimerInit()
$VAR0538 = ""
While $VAR0538 = "" And TimerDiff($VAR0539) < 45000
	$LOCAL0017 += 1
	$VAR0538 = TCPRecv($ARG00, 1000)
	If $ARG02 = "" Then ExitLoop
WEnd
If $ARG02 <> "" Then
	If $ARG03 Then FN0160($LOCAL0017 & " <- " & $VAR0538)
	If StringLeft($VAR0538, StringLen($ARG02)) <> $ARG02 Then
		TCPCloseSocket($ARG00)
		TCPShutdown()
		If $ARG03 Then FN0160("<-> " & $ARG02, 5)
		Return 2
	EndIf
EndIf
Return 0
EndFunc


Func FN0162($ARG00, $ARGOPT01 = Default, $ARGOPT02 = Default)
Local $LOCAL0124 = -1, $VAR053A = 2, $LOCAL00B7 = @CR
If $ARGOPT01 = Default Then $ARGOPT01 = 0
If $ARGOPT02 = Default Then $ARGOPT02 = "ws2_32.dll"
Local $LOCAL0125 = DllCall($ARGOPT02, "ulong", "inet_addr", "STR", $ARG00)
If @error Then Return SetError(1, 0, "")
Local $LOCAL0126 = $LOCAL0125[0]
If $LOCAL0126 = $LOCAL0124 Then Return SetError(2, 0, "")
$LOCAL0125 = DllCall($ARGOPT02, "ptr", "gethostbyaddr", "ptr*", $LOCAL0126, "int", 4, "int", $VAR053A)
If @error Then Return SetError(3, 0, "")
Local $LOCAL0127 = $LOCAL0125[0]
If $LOCAL0127 = 0 Then
	$LOCAL0125 = DllCall($ARGOPT02, "int", "WSAGetLastError")
	If @error Then Return SetError(5, 0, "")
	Return SetError(4, $LOCAL0125[0], "")
EndIf
Local $LOCAL0128 = DllStructCreate("ptr;ptr;short;short;ptr", $LOCAL0127)
Local $LOCAL0129 = FN0163(DllStructGetData($LOCAL0128, 1))
If @error Then Return SetError(6, 0, $LOCAL0129)
If $ARGOPT01 = 1 Then
	Local $VAR053B
	$LOCAL0129 &= $LOCAL00B7
	For $LOCAL0017 = 0 To 63
		$VAR053B = DllStructCreate("ptr", DllStructGetData($LOCAL0128, 2) + ($LOCAL0017 * 4))
		If DllStructGetData($VAR053B, 1) = 0 Then ExitLoop
		$LOCAL0129 &= FN0163(DllStructGetData($VAR053B, 1))
		If @error Then
			SetError(7)
			ExitLoop
		EndIf
	Next
	Return StringSplit(StringStripWS($LOCAL0129, 2), @CR)
Else
	Return $LOCAL0129
EndIf
EndFunc


Func FN0163($ARG00, $ARGOPT01 = -1)
Local $VAR053C, $VAR053D
If $ARG00 < 1 Then Return ""
If $ARGOPT01 < 0 Then
	$VAR053C = DllCall("msvcrt.dll", "ulong_ptr:cdecl", "strlen", "ptr", $ARG00)
	If @error Then Return SetError(1, 0, "")
	$ARGOPT01 = $VAR053C[0] + 1
EndIf
$VAR053D = DllStructCreate("char[" & $ARGOPT01 & "]", $ARG00)
If @error Then Return SetError(2, 0, "")
Return SetExtended($ARGOPT01, DllStructGetData($VAR053D, 1))
EndFunc

Global Const $VAR053E[6] = ["V", 2, 4, 0, "20071231", "V2.4-0"]
Global Const $VAR053F = 1, $VAR0540 = 2
Global $VAR0541 = 300000
Global $VAR0542 = False
Global $VAR0543
Global $VAR0544 = False
Global $VAR0545 = True
Global $VAR0546, $VAR0547
Global $VAR0548, $VAR0549, $VAR054A, $VAR054B, $VAR054C, $VAR054D, $VAR054E, $VAR054F, $VAR0550, $VAR0551, $VAR0552
Global Enum $VAR0553 = 0, $VAR0554, $VAR0555, $VAR0556, $VAR0557, $VAR0558, $VAR0559, $VAR055A, $VAR055B, $VAR055C
Global Enum Step* 2 $VAR055D = 0, $VAR055E = 1, $VAR055F, $VAR0560
Global Enum Step* 2 $VAR0561 = 0, $VAR0562 = 1, $VAR0563, $VAR0564

Func FN0164($ARGOPT00 = "about:blank", $ARGOPT01 = 0, $ARGOPT02 = 1, $ARGOPT03 = 1, $ARGOPT04 = 1)
If $VAR0543 Then
	Switch String($ARGOPT00)
		Case "0"
			$ARGOPT00 = "about:blank"
			$ARGOPT02 = 0
			FN019C("Warning", "_IECreate", "", "Using deprecated behavior - $f_visible is now parameter 3 instead of parameter 1")
		Case "1"
			$ARGOPT00 = "about:blank"
			$ARGOPT02 = 1
			FN019C("Warning", "_IECreate", "", "Using deprecated behavior - $f_visible is now parameter 3 instead of parameter 1")
	EndSwitch
EndIf
If Not $ARGOPT02 Then $ARGOPT04 = 0
If $ARGOPT01 Then
	Local $LOCAL012A = FN0167($ARGOPT00, "url")
	If IsObj($LOCAL012A) Then
		If $ARGOPT04 Then WinActivate(HWnd($LOCAL012A.HWND))
		Return SetError($VAR0553, 1, $LOCAL012A)
	EndIf
EndIf
Local $LOCAL012B = 0
If Not $ARGOPT02 And FN0197($VAR053F) Then $LOCAL012B = 1
Local $LOCAL012C = ObjCreate("InternetExplorer.Application")
If Not IsObj($LOCAL012C) Then
	FN019C("Error", "_IECreate", "", "Browser Object Creation Failed")
	Return SetError($VAR0554, 0, 0)
EndIf
$LOCAL012C.visible = $ARGOPT02
If $LOCAL012B And Not FN0197($VAR0540) Then FN019C("Warning", "_IECreate", "", "Foreground Window Unlock Failed!")
FN0166($LOCAL012C, $ARGOPT00, $ARGOPT03)
Return SetError(@error, 0, $LOCAL012C)
EndFunc


Func FN0165()
Local $LOCAL012C = ObjCreate("Shell.Explorer.2")
If Not IsObj($LOCAL012C) Then
	FN019C("Error", "_IECreateEmbedded", "", "WebBrowser Object Creation Failed")
	Return SetError($VAR0554, 0, 0)
EndIf
Return SetError($VAR0553, 0, $LOCAL012C)
EndFunc


Func FN0166(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IENavigate", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "documentContainer") Then
	FN019C("Error", "_IENavigate", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGREF00.navigate($ARG01)
If $ARGOPT02 Then
	FN0168($ARGREF00)
	Return SetError(@error, 0, -1)
EndIf
Return SetError($VAR0553, 0, -1)
EndFunc


Func FN0167($ARG00, $ARGOPT01 = "Title", $ARGOPT02 = 1)
$ARGOPT01 = StringLower($ARGOPT01)
$ARGOPT02 = Int($ARGOPT02)
If $ARGOPT02 < 1 Then
	FN019C("Error", "_IEAttach", "$_IEStatus_InvalidValue", "$i_instance < 1")
	Return SetError($VAR0558, 3, 0)
EndIf
If $ARGOPT01 = "embedded" Or $ARGOPT01 = "dialogbox" Then
	Local $LOCAL012D = Opt("WinTitleMatchMode", 2)
	If $ARGOPT01 = "dialogbox" And $ARGOPT02 > 1 Then
		If IsHWnd($ARG00) Then
			$ARGOPT02 = 1
			FN019C("Warning", "_IEAttach", "$_IEStatus_GeneralError", "$i_instance > 1 invalid with HWnd and DialogBox.  Setting to 1.")
		Else
			Local $LOCAL012E = WinList($ARG00, "")
			If $ARGOPT02 <= $LOCAL012E[0][0] Then
				$ARG00 = $LOCAL012E[$ARGOPT02][1]
				$ARGOPT02 = 1
			Else
				FN019C("Warning", "_IEAttach", "$_IEStatus_NoMatch")
				Opt("WinTitleMatchMode", $LOCAL012D)
				Return SetError($VAR055A, 1, 0)
			EndIf
		EndIf
	EndIf
	Local $LOCAL012F = ControlGetHandle($ARG00, "", "[CLASS:Internet Explorer_Server; INSTANCE:" & $ARGOPT02 & "]")
	Local $LOCAL012A = FN0198($LOCAL012F)
	Opt("WinTitleMatchMode", $LOCAL012D)
	If IsObj($LOCAL012A) Then
		Return SetError($VAR0553, 0, $LOCAL012A)
	Else
		FN019C("Warning", "_IEAttach", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 1, 0)
	EndIf
EndIf
Local $LOCAL0130 = ObjCreate("Shell.Application")
Local $LOCAL0131 = $LOCAL0130.Windows()
Local $LOCAL0132 = 1
Local $LOCAL0135, $LOCAL0134, $VAR0565, $VAR0566
For $LOCAL013F In $LOCAL0131
	$VAR0565 = True
	$LOCAL0134 = FN019D()
	If Not $LOCAL0134 Then FN019C("Warning", "_IEAttach", "Cannot register internal error handler, cannot trap COM errors", "Use _IEErrorHandlerRegister() to register a user error handler")
	$LOCAL0135 = FN0190()
	FN0190(False)
	If $VAR0565 Then
		$VAR0566 = $LOCAL013F.type
		If @error Then $VAR0565 = False
	EndIf
	If $VAR0565 Then
		$VAR0566 = $LOCAL013F.document.title
		If @error Then $VAR0565 = False
	EndIf
	FN0190($LOCAL0135)
	FN019E()
	If $VAR0565 Then
		Switch $ARGOPT01
			Case "title"
				If StringInStr($LOCAL013F.document.title, $ARG00) > 0 Then
					If $ARGOPT02 = $LOCAL0132 Then
						Return SetError($VAR0553, 0, $LOCAL013F)
					Else
						$LOCAL0132 += 1
					EndIf
				EndIf
			Case "instance"
				If $ARGOPT02 = $LOCAL0132 Then
					Return SetError($VAR0553, 0, $LOCAL013F)
				Else
					$LOCAL0132 += 1
				EndIf
			Case "windowtitle"
				Local $LOCAL0133 = False
				$VAR0566 = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\", "Window Title")
				If Not @error Then
					If StringInStr($LOCAL013F.document.title & " - " & $VAR0566, $ARG00) Then $LOCAL0133 = True
				Else
					If StringInStr($LOCAL013F.document.title & " - Microsoft Internet Explorer", $ARG00) Then $LOCAL0133 = True
					If StringInStr($LOCAL013F.document.title & " - Windows Internet Explorer", $ARG00) Then $LOCAL0133 = True
				EndIf
				If $LOCAL0133 Then
					If $ARGOPT02 = $LOCAL0132 Then
						Return SetError($VAR0553, 0, $LOCAL013F)
					Else
						$LOCAL0132 += 1
					EndIf
				EndIf
			Case "url"
				If StringInStr($LOCAL013F.LocationURL, $ARG00) > 0 Then
					If $ARGOPT02 = $LOCAL0132 Then
						Return SetError($VAR0553, 0, $LOCAL013F)
					Else
						$LOCAL0132 += 1
					EndIf
				EndIf
			Case "text"
				If StringInStr($LOCAL013F.document.body.innerText, $ARG00) > 0 Then
					If $ARGOPT02 = $LOCAL0132 Then
						Return SetError($VAR0553, 0, $LOCAL013F)
					Else
						$LOCAL0132 += 1
					EndIf
				EndIf
			Case "html"
				If StringInStr($LOCAL013F.document.body.innerHTML, $ARG00) > 0 Then
					If $ARGOPT02 = $LOCAL0132 Then
						Return SetError($VAR0553, 0, $LOCAL013F)
					Else
						$LOCAL0132 += 1
					EndIf
				EndIf
			Case "hwnd"
				If $ARGOPT02 > 1 Then
					$ARGOPT02 = 1
					FN019C("Warning", "_IEAttach", "$_IEStatus_GeneralError", "$i_instance > 1 invalid with HWnd.  Setting to 1.")
				EndIf
				If FN018E($LOCAL013F, "hwnd") = $ARG00 Then
					Return SetError($VAR0553, 0, $LOCAL013F)
				EndIf
			Case Else
				FN019C("Error", "_IEAttach", "$_IEStatus_InvalidValue", "Invalid Mode Specified")
				Return SetError($VAR0558, 2, 0)
		EndSwitch
	EndIf
Next
FN019C("Warning", "_IEAttach", "$_IEStatus_NoMatch")
Return SetError($VAR055A, 1, 0)
EndFunc


Func FN0168(ByRef $ARGREF00, $ARGOPT01 = 0, $ARGOPT02 = -1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IELoadWait", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IELoadWait", "$_IEStatus_InvalidObjectType", ObjName($ARGREF00))
	Return SetError($VAR0557, 1, 0)
EndIf
Local $LOCAL0139, $VAR0567 = False, $VAR0568 = $VAR0553
Local $LOCAL0134 = FN019D()
If Not $LOCAL0134 Then FN019C("Warning", "_IELoadWait", "Cannot register internal error handler, cannot trap COM errors", "Use _IEErrorHandlerRegister() to register a user error handler")
Local $LOCAL0135 = FN0190()
FN0190(False)
Sleep($ARGOPT01)
Local $LOCAL0136 = TimerInit()
If $ARGOPT02 = -1 Then $ARGOPT02 = $VAR0541
Switch ObjName($ARGREF00)
	Case "IWebBrowser2"
		While Not (String($ARGREF00.readyState) = "complete" Or $ARGREF00.readyState = 4 Or $VAR0567)
			If (TimerDiff($LOCAL0136) > $ARGOPT02) Then
				$VAR0568 = $VAR0559
				$VAR0567 = True
			EndIf
			If @error = $VAR0555 And FN01A0() Then
				$VAR0568 = FN01A0()
				$VAR0567 = True
			EndIf
			Sleep(100)
		WEnd
		While Not (String($ARGREF00.document.readyState) = "complete" Or $ARGREF00.document.readyState = 4 Or $VAR0567)
			If (TimerDiff($LOCAL0136) > $ARGOPT02) Then
				$VAR0568 = $VAR0559
				$VAR0567 = True
			EndIf
			If @error = $VAR0555 And FN01A0() Then
				$VAR0568 = FN01A0()
				$VAR0567 = True
			EndIf
			Sleep(100)
		WEnd
	Case "DispHTMLWindow2"
		While Not (String($ARGREF00.document.readyState) = "complete" Or $ARGREF00.document.readyState = 4 Or $VAR0567)
			If (TimerDiff($LOCAL0136) > $ARGOPT02) Then
				$VAR0568 = $VAR0559
				$VAR0567 = True
			EndIf
			If @error = $VAR0555 And FN01A0() Then
				$VAR0568 = FN01A0()
				$VAR0567 = True
			EndIf
			Sleep(100)
		WEnd
		While Not (String($ARGREF00.top.document.readyState) = "complete" Or $ARGREF00.top.document.readyState = 4 Or $VAR0567)
			If (TimerDiff($LOCAL0136) > $ARGOPT02) Then
				$VAR0568 = $VAR0559
				$VAR0567 = True
			EndIf
			If @error = $VAR0555 And FN01A0() Then
				$VAR0568 = FN01A0()
				$VAR0567 = True
			EndIf
			Sleep(100)
		WEnd
	Case "DispHTMLDocument"
		$LOCAL0139 = $ARGREF00.parentWindow
		While Not (String($LOCAL0139.document.readyState) = "complete" Or $LOCAL0139.document.readyState = 4 Or $VAR0567)
			If (TimerDiff($LOCAL0136) > $ARGOPT02) Then
				$VAR0568 = $VAR0559
				$VAR0567 = True
			EndIf
			If @error = $VAR0555 And FN01A0() Then
				$VAR0568 = FN01A0()
				$VAR0567 = True
			EndIf
			Sleep(100)
		WEnd
		While Not (String($LOCAL0139.top.document.readyState) = "complete" Or $LOCAL0139.top.document.readyState = 4 Or $VAR0567)
			If (TimerDiff($LOCAL0136) > $ARGOPT02) Then
				$VAR0568 = $VAR0559
				$VAR0567 = True
			EndIf
			If @error = $VAR0555 And FN01A0() Then
				$VAR0568 = FN01A0()
				$VAR0567 = True
			EndIf
			Sleep(100)
		WEnd
	Case Else
		$LOCAL0139 = $ARGREF00.document.parentWindow
		While Not (String($LOCAL0139.document.readyState) = "complete" Or $LOCAL0139.document.readyState = 4 Or $VAR0567)
			If (TimerDiff($LOCAL0136) > $ARGOPT02) Then
				$VAR0568 = $VAR0559
				$VAR0567 = True
			EndIf
			If @error = $VAR0555 And FN01A0() Then
				$VAR0568 = FN01A0()
				$VAR0567 = True
			EndIf
			Sleep(100)
		WEnd
		While Not (String($LOCAL0139.top.document.readyState) = "complete" Or $ARGREF00.top.document.readyState = 4 Or $VAR0567)
			If (TimerDiff($LOCAL0136) > $ARGOPT02) Then
				$VAR0568 = $VAR0559
				$VAR0567 = True
			EndIf
			If @error = $VAR0555 And FN01A0() Then
				$VAR0568 = FN01A0()
				$VAR0567 = True
			EndIf
			Sleep(100)
		WEnd
EndSwitch
FN0190($LOCAL0135)
FN019E()
Switch $VAR0568
	Case $VAR0553
		Return SetError($VAR0553, 0, 1)
	Case $VAR0559
		FN019C("Warning", "_IELoadWait", "$_IEStatus_LoadWaitTimeout")
		Return SetError($VAR0559, 3, 0)
	Case $VAR055B
		FN019C("Warning", "_IELoadWait", "$_IEStatus_AccessIsDenied", "Cannot verify readyState.  Likely casue: cross-site scripting security restriction.")
		Return SetError($VAR055B, 0, 0)
	Case $VAR055C
		FN019C("Error", "_IELoadWait", "$_IEStatus_ClientDisconnected", "Browser has been deleted prior to operation.")
		Return SetError($VAR055C, 0, 0)
	Case Else
		FN019C("Error", "_IELoadWait", "$_IEStatus_GeneralError", "Invalid Error Status - Notify IE.au3 developer")
		Return SetError($VAR0554, 0, 0)
EndSwitch
EndFunc


Func FN0169($ARGOPT00 = -1)
If $ARGOPT00 = -1 Then
	Return SetError($VAR0553, 0, $VAR0541)
Else
	$VAR0541 = $ARGOPT00
	Return SetError($VAR0553, 0, 1)
EndIf
EndFunc


Func FN016A(ByRef $ARGREF00)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEIsFrameSet", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If String($ARGREF00.document.body.tagName) = "FRAMESET" Then
	Return SetError($VAR0553, 0, 1)
Else
	Return SetError($VAR0553, 0, 0)
EndIf
EndFunc


Func FN016B(ByRef $ARGREF00, $ARGOPT01 = -1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFrameGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
$ARGOPT01 = Number($ARGOPT01)
Select
	Case $ARGOPT01 = -1
		Return SetError($VAR0553, $ARGREF00.document.parentwindow.frames.length, $ARGREF00.document.parentwindow.frames)
	Case $ARGOPT01 > -1 And $ARGOPT01 < $ARGREF00.document.parentwindow.frames.length
		Return SetError($VAR0553, $ARGREF00.document.parentwindow.frames.length, $ARGREF00.document.parentwindow.frames.item($ARGOPT01))
	Case $ARGOPT01 < -1
		FN019C("Error", "_IEFrameGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($VAR0558, 2, 0)
	Case Else
		FN019C("Warning", "_IEFrameGetCollection", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 2, 0)
EndSelect
EndFunc


Func FN016C(ByRef $ARGREF00, $ARG01)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFrameGetObjByName", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $LOCAL0139, $VAR0569
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IEFrameGetObjByName", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
If FN019B($ARGREF00, "document") Then
	$LOCAL0139 = $ARGREF00.parentWindow
Else
	$LOCAL0139 = $ARGREF00.document.parentWindow
EndIf
If FN016A($LOCAL0139) Then
	$VAR0569 = FN0189($LOCAL0139, "frame")
Else
	$VAR0569 = FN0189($LOCAL0139, "iframe")
EndIf
If $VAR0569.length Then
	For $VAR056A In $VAR0569
		If $VAR056A.name = $ARG01 Then Return SetError($VAR0553, 0, $LOCAL0139.frames($ARG01))
	Next
	FN019C("Warning", "_IEFrameGetObjByName", "$_IEStatus_NoMatch", "No frames matching name")
	Return SetError($VAR055A, 2, 0)
Else
	FN019C("Warning", "_IEFrameGetObjByName", "$_IEStatus_NoMatch", "No Frames found")
	Return SetError($VAR055A, 2, 0)
EndIf
EndFunc


Func FN016D(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 0, $ARGOPT03 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IELinkClickByText", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $LOCAL0137 = 0, $VAR056B, $VAR056C = $ARGREF00.document.links
$ARGOPT02 = Number($ARGOPT02)
For $VAR056D In $VAR056C
	$VAR056B = $VAR056D.outerText & ""
	If $VAR056B = $ARG01 Then
		If ($LOCAL0137 = $ARGOPT02) Then
			$VAR056D.click
			If $ARGOPT03 Then
				FN0168($ARGREF00)
				Return SetError(@error, 0, -1)
			EndIf
			Return SetError($VAR0553, 0, -1)
		EndIf
		$LOCAL0137 = $LOCAL0137 + 1
	EndIf
Next
FN019C("Warning", "_IELinkClickByText", "$_IEStatus_NoMatch")
Return SetError($VAR055A, 0, 0)
EndFunc


Func FN016E(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IELinkClickByIndex", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $LOCAL0138 = $ARGREF00.document.links, $VAR056E
$ARG01 = Number($ARG01)
If ($ARG01 >= 0) And ($ARG01 <= $LOCAL0138.length - 1) Then
	$VAR056E = $LOCAL0138($ARG01)
	$VAR056E.click
	If $ARGOPT02 Then
		FN0168($ARGREF00)
		Return SetError(@error, 0, -1)
	EndIf
	Return SetError($VAR0553, 0, -1)
Else
	FN019C("Warning", "_IELinkClickByIndex", "$_IEStatus_NoMatch")
	Return SetError($VAR055A, 2, 0)
EndIf
EndFunc


Func FN016F(ByRef $ARGREF00, $ARGOPT01 = -1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IELinkGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
$ARGOPT01 = Number($ARGOPT01)
Select
	Case $ARGOPT01 = -1
		Return SetError($VAR0553, $ARGREF00.document.links.length, $ARGREF00.document.links)
	Case $ARGOPT01 > -1 And $ARGOPT01 < $ARGREF00.document.links.length
		Return SetError($VAR0553, $ARGREF00.document.links.length, $ARGREF00.document.links.item($ARGOPT01))
	Case $ARGOPT01 < -1
		FN019C("Error", "_IELinkGetCollection", "$_IEStatus_InvalidValue")
		Return SetError($VAR0558, 2, 0)
	Case Else
		FN019C("Warning", "_IELinkGetCollection", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 2, 0)
EndSelect
EndFunc


Func FN0170(ByRef $ARGREF00, $ARG01, $ARGOPT02 = "src", $ARGOPT03 = 0, $ARGOPT04 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEImgClick", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $VAR056B, $LOCAL0137 = 0, $LOCAL013E = $ARGREF00.document.images
$ARGOPT02 = StringLower($ARGOPT02)
$ARGOPT03 = Number($ARGOPT03)
For $VAR056F In $LOCAL013E
	Select
		Case $ARGOPT02 = "alt"
			$VAR056B = $VAR056F.alt
		Case $ARGOPT02 = "name"
			$VAR056B = $VAR056F.name
		Case $ARGOPT02 = "src"
			$VAR056B = $VAR056F.src
		Case Else
			FN019C("Error", "_IEImgClick", "$_IEStatus_InvalidValue", "Invalid mode: " & $ARGOPT02)
			Return SetError($VAR0558, 3, 0)
	EndSelect
	If StringInStr($VAR056B, $ARG01) Then
		If ($LOCAL0137 = $ARGOPT03) Then
			$VAR056F.click
			If $ARGOPT04 Then
				FN0168($ARGREF00)
				Return SetError(@error, 0, -1)
			EndIf
			Return SetError($VAR0553, 0, -1)
		EndIf
		$LOCAL0137 = $LOCAL0137 + 1
	EndIf
Next
FN019C("Warning", "_IEImgClick", "$_IEStatus_NoMatch")
Return SetError($VAR055A, 0, 0)
EndFunc


Func FN0171(ByRef $ARGREF00, $ARGOPT01 = -1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEImgGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $LOCAL0139 = FN0188($ARGREF00)
$ARGOPT01 = Number($ARGOPT01)
Select
	Case $ARGOPT01 = -1
		Return SetError($VAR0553, $LOCAL0139.images.length, $LOCAL0139.images)
	Case $ARGOPT01 > -1 And $ARGOPT01 < $LOCAL0139.images.length
		Return SetError($VAR0553, $LOCAL0139.images.length, $LOCAL0139.images.item($ARGOPT01))
	Case $ARGOPT01 < -1
		FN019C("Error", "_IEImgGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($VAR0558, 2, 0)
	Case Else
		FN019C("Warning", "_IEImgGetCollection", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 1, 0)
EndSelect
EndFunc


Func FN0172(ByRef $ARGREF00, $ARGOPT01 = -1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $LOCAL0139 = FN0188($ARGREF00)
$ARGOPT01 = Number($ARGOPT01)
Select
	Case $ARGOPT01 = -1
		Return SetError($VAR0553, $LOCAL0139.forms.length, $LOCAL0139.forms)
	Case $ARGOPT01 > -1 And $ARGOPT01 < $LOCAL0139.forms.length
		Return SetError($VAR0553, $LOCAL0139.forms.length, $LOCAL0139.forms.item($ARGOPT01))
	Case $ARGOPT01 < -1
		FN019C("Error", "_IEFormGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($VAR0558, 2, 0)
	Case Else
		FN019C("Warning", "_IEFormGetCollection", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 1, 0)
EndSelect
EndFunc


Func FN0173(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 0)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormGetObjByName", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $LOCAL013A = 0
Local $LOCAL013B = $ARGREF00.document.forms.item($ARG01)
If IsObj($LOCAL013B) Then
	If FN019B($LOCAL013B, "elementcollection") Then
		$LOCAL013A = $LOCAL013B.length
	Else
		$LOCAL013A = 1
	EndIf
EndIf
$ARGOPT02 = Number($ARGOPT02)
If $ARGOPT02 = -1 Then
	Return SetError($VAR0553, $LOCAL013A, $ARGREF00.document.forms.item($ARG01))
Else
	If IsObj($ARGREF00.document.forms.item($ARG01, $ARGOPT02)) Then
		Return SetError($VAR0553, $LOCAL013A, $ARGREF00.document.forms.item($ARG01, $ARGOPT02))
	Else
		FN019C("Warning", "_IEFormGetObjByName", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 0, 0)
	EndIf
EndIf
EndFunc


Func FN0174(ByRef $ARGREF00, $ARGOPT01 = -1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormElementGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "form") Then
	FN019C("Error", "_IEFormElementGetCollection", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGOPT01 = Number($ARGOPT01)
Select
	Case $ARGOPT01 = -1
		Return SetError($VAR0553, $ARGREF00.elements.length, $ARGREF00.elements)
	Case $ARGOPT01 > -1 And $ARGOPT01 < $ARGREF00.elements.length
		Return SetError($VAR0553, $ARGREF00.elements.length, $ARGREF00.elements.item($ARGOPT01))
	Case $ARGOPT01 < -1
		FN019C("Error", "_IEFormElementGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($VAR0558, 2, 0)
	Case Else
		Return SetError($VAR055A, 1, 0)
EndSelect
EndFunc


Func FN0175(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 0)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormElementGetObjByName", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "form") Then
	FN019C("Error", "_IEFormElementGetObjByName", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
Local $LOCAL013A = 0
Local $LOCAL013B = $ARGREF00.elements.item($ARG01)
If IsObj($LOCAL013B) Then
	If FN019B($LOCAL013B, "elementcollection") Then
		$LOCAL013A = $LOCAL013B.length
	Else
		$LOCAL013A = 1
	EndIf
EndIf
$ARGOPT02 = Number($ARGOPT02)
If $ARGOPT02 = -1 Then
	Return SetError($VAR0553, $LOCAL013A, $ARGREF00.elements.item($ARG01))
Else
	If IsObj($ARGREF00.elements.item($ARG01, $ARGOPT02)) Then
		Return SetError($VAR0553, $LOCAL013A, $ARGREF00.elements.item($ARG01, $ARGOPT02))
	Else
		FN019C("Warning", "_IEFormElementGetObjByName", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 0, 0)
	EndIf
EndIf
EndFunc


Func FN0176(ByRef $ARGREF00)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormElementGetValue", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "forminputelement") Then
	FN019C("Error", "_IEFormElementGetValue", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
SetError($VAR0553)
If $ARGREF00.value Then
	Return $ARGREF00.value
Else
	Return ""
EndIf
EndFunc


Func FN0177(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "forminputelement") Then
	FN019C("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
If String($ARGREF00.type) = "file" Then
	FN019C("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidObjectType", "Browser securuty prevents SetValue of TYPE=FILE")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGREF00.value = $ARG01
If $ARGOPT02 Then
	$ARGREF00.fireEvent("OnChange")
	$ARGREF00.fireEvent("OnClick")
EndIf
Return SetError($VAR0553, 0, 1)
EndFunc


Func FN0178(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 1, $ARGOPT03 = "byValue", $ARGOPT04 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "formselectelement") Then
	FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
Local $LOCAL013C = $ARGREF00.options, $VAR0570 = $ARGREF00.options.length, $VAR0571 = $ARGREF00.multiple
Switch $ARGOPT03
	Case "byValue"
		For $VAR0572 In $LOCAL013C
			If $VAR0572.value = $ARG01 Then
				Switch $ARGOPT02
					Case - 1
						Return SetError($VAR0553, 0, $VAR0572.selected)
					Case 0
						If Not $VAR0571 Then
							FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "$f_select=0 only valid for type=select multiple")
							SetError($VAR0558, 3)
						EndIf
						If $VAR0572.selected Then
							$VAR0572.selected = False
							If $ARGOPT04 Then
								$ARGREF00.fireEvent("onChange")
								$ARGREF00.fireEvent("OnClick")
							EndIf
						EndIf
						Return SetError($VAR0553, 0, 1)
					Case 1
						If Not $VAR0572.selected Then
							$VAR0572.selected = True
							If $ARGOPT04 Then
								$ARGREF00.fireEvent("onChange")
								$ARGREF00.fireEvent("OnClick")
							EndIf
						EndIf
						Return SetError($VAR0553, 0, 1)
					Case Else
						FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")
						Return SetError($VAR0558, 3, 0)
				EndSwitch
				FN019C("Warning", "_IEFormElementOptionSelect", "$_IEStatus_NoMatch", "Value not matched")
				Return SetError($VAR055A, 2, 0)
			EndIf
		Next
	Case "byText"
		For $VAR0572 In $LOCAL013C
			If String($VAR0572.text) = $ARG01 Then
				Switch $ARGOPT02
					Case - 1
						Return SetError($VAR0553, 0, $VAR0572.selected)
					Case 0
						If Not $VAR0571 Then
							FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "$f_select=0 only valid for type=select multiple")
							SetError($VAR0558, 3)
						EndIf
						If $VAR0572.selected Then
							$VAR0572.selected = False
							If $ARGOPT04 Then
								$ARGREF00.fireEvent("onChange")
								$ARGREF00.fireEvent("OnClick")
							EndIf
						EndIf
						Return SetError($VAR0553, 0, 1)
					Case 1
						If Not $VAR0572.selected Then
							$VAR0572.selected = True
							If $ARGOPT04 Then
								$ARGREF00.fireEvent("onChange")
								$ARGREF00.fireEvent("OnClick")
							EndIf
						EndIf
						Return SetError($VAR0553, 0, 1)
					Case Else
						FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")
						Return SetError($VAR0558, 3, 0)
				EndSwitch
				FN019C("Warning", "_IEFormElementOptionSelect", "$_IEStatus_NoMatch", "Text not matched")
				Return SetError($VAR055A, 2, 0)
			EndIf
		Next
	Case "byIndex"
		Local $LOCAL013D = Number($ARG01)
		If $LOCAL013D < 0 Or $LOCAL013D >= $VAR0570 Then
			FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid index value, " & $LOCAL013D)
			Return SetError($VAR0558, 2, 0)
		EndIf
		$VAR0572 = $LOCAL013C.item($LOCAL013D)
		Switch $ARGOPT02
			Case - 1
				Return SetError($VAR0553, 0, $LOCAL013C.item($LOCAL013D).selected)
			Case 0
				If Not $VAR0571 Then
					FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "$f_select=0 only valid for type=select multiple")
					SetError($VAR0558, 3)
				EndIf
				If $VAR0572.selected Then
					$LOCAL013C.item($LOCAL013D).selected = False
					If $ARGOPT04 Then
						$ARGREF00.fireEvent("onChange")
						$ARGREF00.fireEvent("OnClick")
					EndIf
				EndIf
				Return SetError($VAR0553, 0, 1)
			Case 1
				If Not $VAR0572.selected Then
					$LOCAL013C.item($LOCAL013D).selected = True
					If $ARGOPT04 Then
						$ARGREF00.fireEvent("onChange")
						$ARGREF00.fireEvent("OnClick")
					EndIf
				EndIf
				Return SetError($VAR0553, 0, 1)
			Case Else
				FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")
				Return SetError($VAR0558, 3, 0)
		EndSwitch
	Case Else
		FN019C("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid Mode")
		Return SetError($VAR0558, 4, 0)
EndSwitch
EndFunc


Func FN0179(ByRef $ARGREF00, $ARG01, $ARGOPT02 = "", $ARGOPT03 = 1, $ARGOPT04 = "byValue", $ARGOPT05 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "form") Then
	FN019C("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARG01 = String($ARG01)
$ARGOPT02 = String($ARGOPT02)
Local $LOCAL013C
If $ARGOPT02 = "" Then
	$LOCAL013C = FN0189($ARGREF00, "input")
Else
	$LOCAL013C = Execute("$o_object.elements('" & $ARGOPT02 & "')")
EndIf
If Not IsObj($LOCAL013C) Then
	FN019C("Warning", "_IEFormElementCheckboxSelect", "$_IEStatus_NoMatch")
	Return SetError($VAR055A, 3, 0)
EndIf
Local $VAR0572, $LOCAL0133 = False
Switch $ARGOPT04
	Case "byValue"
		If FN019B($LOCAL013C, "forminputelement") Then
			$VAR0572 = $LOCAL013C
			If String($VAR0572.type) = "checkbox" And String($VAR0572.value) = $ARG01 Then $LOCAL0133 = True
		Else
			For $VAR0572 In $LOCAL013C
				If String($VAR0572.type) = "checkbox" And String($VAR0572.value) = $ARG01 Then
					$LOCAL0133 = True
					ExitLoop
				EndIf
			Next
		EndIf
	Case "byIndex"
		If FN019B($LOCAL013C, "forminputelement") Then
			$VAR0572 = $LOCAL013C
			If String($VAR0572.type) = "checkbox" And Number($ARG01) = 0 Then $LOCAL0133 = True
		Else
			Local $LOCAL008C = 0
			For $VAR0572 In $LOCAL013C
				If String($VAR0572.type) = "checkbox" And Number($ARG01) = $LOCAL008C Then
					$LOCAL0133 = True
					ExitLoop
				Else
					If String($VAR0572.type) = "checkbox" Then $LOCAL008C += 1
				EndIf
			Next
		EndIf
	Case Else
		FN019C("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidValue", "Invalid Mode")
		Return SetError($VAR0558, 5, 0)
EndSwitch
If Not $LOCAL0133 Then
	FN019C("Warning", "_IEFormElementCheckboxSelect", "$_IEStatus_NoMatch")
	Return SetError($VAR055A, 2, 0)
EndIf
Switch $ARGOPT03
	Case - 1
		Return SetError($VAR0553, 0, $VAR0572.checked)
	Case 0
		If $VAR0572.checked Then
			$VAR0572.checked = False
			If $ARGOPT05 Then
				$VAR0572.fireEvent("onChange")
				$VAR0572.fireEvent("OnClick")
			EndIf
		EndIf
		Return SetError($VAR0553, 0, 1)
	Case 1
		If Not $VAR0572.checked Then
			$VAR0572.checked = True
			If $ARGOPT05 Then
				$VAR0572.fireEvent("onChange")
				$VAR0572.fireEvent("OnClick")
			EndIf
		EndIf
		Return SetError($VAR0553, 0, 1)
	Case Else
		FN019C("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")
		Return SetError($VAR0558, 3, 0)
EndSwitch
EndFunc


Func FN017A(ByRef $ARGREF00, $ARG01, $ARG02, $ARGOPT03 = 1, $ARGOPT04 = "byValue", $ARGOPT05 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "form") Then
	FN019C("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARG01 = String($ARG01)
$ARG02 = String($ARG02)
Local $LOCAL013C = Execute("$o_object.elements('" & $ARG02 & "')")
If Not IsObj($LOCAL013C) Then
	FN019C("Warning", "_IEFormElementRadioSelect", "$_IEStatus_NoMatch")
	Return SetError($VAR055A, 3, 0)
EndIf
Local $VAR0572, $LOCAL0133 = False
Switch $ARGOPT04
	Case "byValue"
		If FN019B($LOCAL013C, "forminputelement") Then
			$VAR0572 = $LOCAL013C
			If String($VAR0572.type) = "radio" And String($VAR0572.value) = $ARG01 Then $LOCAL0133 = True
		Else
			For $VAR0572 In $LOCAL013C
				If String($VAR0572.type) = "radio" And String($VAR0572.value) = $ARG01 Then
					$LOCAL0133 = True
					ExitLoop
				EndIf
			Next
		EndIf
	Case "byIndex"
		If FN019B($LOCAL013C, "forminputelement") Then
			$VAR0572 = $LOCAL013C
			If String($VAR0572.type) = "radio" And Number($ARG01) = 0 Then $LOCAL0133 = True
		Else
			Local $LOCAL008C = 0
			For $VAR0572 In $LOCAL013C
				If String($VAR0572.type) = "radio" And Number($ARG01) = $LOCAL008C Then
					$LOCAL0133 = True
					ExitLoop
				Else
					$LOCAL008C += 1
				EndIf
			Next
		EndIf
	Case Else
		FN019C("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidValue", "Invalid Mode")
		Return SetError($VAR0558, 5, 0)
EndSwitch
If Not $LOCAL0133 Then
	FN019C("Warning", "_IEFormElementRadioSelect", "$_IEStatus_NoMatch")
	Return SetError($VAR055A, 2, 0)
EndIf
Switch $ARGOPT03
	Case - 1
		Return SetError($VAR0553, 0, $VAR0572.checked)
	Case 0
		If $VAR0572.checked Then
			$VAR0572.checked = False
			If $ARGOPT05 Then
				$VAR0572.fireEvent("onChange")
				$VAR0572.fireEvent("OnClick")
			EndIf
		EndIf
		Return SetError($VAR0553, 0, 1)
	Case 1
		If Not $VAR0572.checked Then
			$VAR0572.checked = True
			If $ARGOPT05 Then
				$VAR0572.fireEvent("onChange")
				$VAR0572.fireEvent("OnClick")
			EndIf
		EndIf
		Return SetError($VAR0553, 0, 1)
	Case Else
		FN019C("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidValue", "$f_select value invalid")
		Return SetError($VAR0558, 4, 0)
EndSwitch
EndFunc


Func FN017B(ByRef $ARGREF00, $ARG01, $ARGOPT02 = "src", $ARGOPT03 = 0, $ARGOPT04 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormImageClick", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $VAR056B, $LOCAL0137 = 0
Local $LOCAL0139 = FN0188($ARGREF00)
Local $LOCAL013E = FN0189($LOCAL0139, "input")
$ARGOPT02 = StringLower($ARGOPT02)
$ARGOPT03 = Number($ARGOPT03)
For $VAR056F In $LOCAL013E
	If String($VAR056F.type) = "image" Then
		Select
			Case $ARGOPT02 = "alt"
				$VAR056B = $VAR056F.alt
			Case $ARGOPT02 = "name"
				$VAR056B = $VAR056F.name
			Case $ARGOPT02 = "src"
				$VAR056B = $VAR056F.src
			Case Else
				FN019C("Error", "_IEFormImageClick", "$_IEStatus_InvalidValue", "Invalid mode: " & $ARGOPT02)
				Return SetError($VAR0558, 3, 0)
		EndSelect
		If StringInStr($VAR056B, $ARG01) Then
			If ($LOCAL0137 = $ARGOPT03) Then
				$VAR056F.click
				If $ARGOPT04 Then
					FN0168($ARGREF00)
					Return SetError(@error, 0, -1)
				EndIf
				Return SetError($VAR0553, 0, -1)
			EndIf
			$LOCAL0137 = $LOCAL0137 + 1
		EndIf
	EndIf
Next
FN019C("Warning", "_IEFormImageClick", "$_IEStatus_NoMatch")
Return SetError($VAR055A, 2, 0)
EndFunc


Func FN017C(ByRef $ARGREF00, $ARGOPT01 = 1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormSubmit", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "form") Then
	FN019C("Error", "_IEFormSubmit", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
Local $LOCAL013F = $ARGREF00.document.parentWindow
$ARGREF00.submit
If $ARGOPT01 Then
	FN0168($LOCAL013F)
	Return SetError(@error, 0, -1)
EndIf
Return SetError($VAR0553, 0, -1)
EndFunc


Func FN017D(ByRef $ARGREF00)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEFormReset", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "form") Then
	FN019C("Error", "_IEFormReset", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGREF00.reset
Return SetError($VAR0553, 0, 1)
EndFunc


Func FN017E(ByRef $ARGREF00, $ARGOPT01 = -1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IETableGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
$ARGOPT01 = Number($ARGOPT01)
Select
	Case $ARGOPT01 = -1
		Return SetError($VAR0553, $ARGREF00.document.GetElementsByTagName("table" ).length, $ARGREF00.document.GetElementsByTagName("table"))
	Case $ARGOPT01 > -1 And $ARGOPT01 < $ARGREF00.document.GetElementsByTagName("table" ).length
		Return SetError($VAR0553, $ARGREF00.document.GetElementsByTagName("table" ).length, $ARGREF00.document.GetElementsByTagName("table" ).item($ARGOPT01))
	Case $ARGOPT01 < -1
		FN019C("Error", "_IETableGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($VAR0558, 2, 0)
	Case Else
		FN019C("Warning", "_IETableGetCollection", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 1, 0)
EndSelect
EndFunc


Func FN017F(ByRef $ARGREF00, $ARGOPT01 = False)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IETableWriteToArray", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "table") Then
	FN019C("Error", "_IETableWriteToArray", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
Local $LOCAL0140 = 0, $VAR0573, $VAR0574
Local $LOCAL0141 = $ARGREF00.rows
For $VAR0575 In $LOCAL0141
	$VAR0573 = $VAR0575.cells
	$VAR0574 = 0
	For $VAR0576 In $VAR0573
		$VAR0574 = $VAR0574 + $VAR0576.colSpan
	Next
	If $VAR0574 > $LOCAL0140 Then $LOCAL0140 = $VAR0574
Next
Local $LOCAL0142 = $LOCAL0141.length
Local $LOCAL0143[$LOCAL0140][$LOCAL0142]
Local $VAR0577, $VAR0578 = 0
For $VAR0575 In $LOCAL0141
	$VAR0573 = $VAR0575.cells
	$VAR0577 = 0
	For $VAR0576 In $VAR0573
		$LOCAL0143[$VAR0577][$VAR0578] = $VAR0576.innerText
		$VAR0577 = $VAR0577 + $VAR0576.colSpan
	Next
	$VAR0578 = $VAR0578 + 1
Next
If $ARGOPT01 Then
	Local $LOCAL0144 = UBound($LOCAL0143, 1), $VAR0579 = UBound($LOCAL0143, 2), $VAR0073[$VAR0579][$LOCAL0144]
	For $LOCAL0017 = 0 To $VAR0579 - 1
		For $VAR007B = 0 To $LOCAL0144 - 1
			$VAR0073[$LOCAL0017][$VAR007B] = $LOCAL0143[$VAR007B][$LOCAL0017]
		Next
	Next
	$LOCAL0143 = $VAR0073
EndIf
Return SetError($VAR0553, 0, $LOCAL0143)
EndFunc


Func FN0180(ByRef $ARGREF00)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEBodyReadHTML", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Return SetError($VAR0553, 0, $ARGREF00.document.body.innerHTML)
EndFunc


Func FN0181(ByRef $ARGREF00)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEBodyReadText", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IEBodyReadText", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($VAR0557, 1, 0)
EndIf
Return SetError($VAR0553, 0, $ARGREF00.document.body.innerText)
EndFunc


Func FN0182(ByRef $ARGREF00, $ARG01)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEBodyWriteHTML", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IEBodyWriteHTML", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGREF00.document.body.innerHTML = $ARG01
Local $LOCAL0139 = $ARGREF00.document
FN0168($LOCAL0139)
Return SetError(@error, 0, -1)
EndFunc


Func FN0183(ByRef $ARGREF00)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEDocReadHTML", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IEDocReadHTML", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($VAR0557, 1, 0)
EndIf
Return SetError($VAR0553, 0, $ARGREF00.document.documentElement.outerHTML)
EndFunc


Func FN0184(ByRef $ARGREF00, $ARG01)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEDocWriteHTML", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IEDocWriteHTML", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGREF00.document.Write($ARG01)
$ARGREF00.document.clOse()
Local $LOCAL0139 = $ARGREF00.document
FN0168($LOCAL0139)
Return SetError(@error, 0, -1)
EndFunc


Func FN0185(ByRef $ARGREF00, $ARG01, $ARGOPT02 = "beforeend")
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEDocInsertText", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Or FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
	FN019C("Error", "_IEDocInsertText", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGOPT02 = StringLower($ARGOPT02)
Select
	Case $ARGOPT02 = "beforebegin"
		$ARGREF00.insertAdjacentText($ARGOPT02, $ARG01)
		Return SetError($VAR0553, 0, 1)
	Case $ARGOPT02 = "afterbegin"
		$ARGREF00.insertAdjacentText($ARGOPT02, $ARG01)
		Return SetError($VAR0553, 0, 1)
	Case $ARGOPT02 = "beforeend"
		$ARGREF00.insertAdjacentText($ARGOPT02, $ARG01)
		Return SetError($VAR0553, 0, 1)
	Case $ARGOPT02 = "afterend"
		$ARGREF00.insertAdjacentText($ARGOPT02, $ARG01)
		Return SetError($VAR0553, 0, 1)
	Case Else
		FN019C("Error", "_IEDocInsertText", "$_IEStatus_InvalidValue", "Invalid where value")
		Return SetError($VAR0558, 3, 0)
EndSelect
EndFunc


Func FN0186(ByRef $ARGREF00, $ARG01, $ARGOPT02 = "beforeend")
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEDocInsertHTML", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Or FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
	FN019C("Error", "_IEDocInsertHTML", "$_IEStatus_InvalidObjectType", "Expected document element")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGOPT02 = StringLower($ARGOPT02)
Select
	Case $ARGOPT02 = "beforebegin"
		$ARGREF00.insertAdjacentHTML($ARGOPT02, $ARG01)
		Return SetError($VAR0553, 0, 1)
	Case $ARGOPT02 = "afterbegin"
		$ARGREF00.insertAdjacentHTML($ARGOPT02, $ARG01)
		Return SetError($VAR0553, 0, 1)
	Case $ARGOPT02 = "beforeend"
		$ARGREF00.insertAdjacentHTML($ARGOPT02, $ARG01)
		Return SetError($VAR0553, 0, 1)
	Case $ARGOPT02 = "afterend"
		$ARGREF00.insertAdjacentHTML($ARGOPT02, $ARG01)
		Return SetError($VAR0553, 0, 1)
	Case Else
		FN019C("Error", "_IEDocInsertHTML", "$_IEStatus_InvalidValue", "Invalid where value")
		Return SetError($VAR0558, 3, 0)
EndSelect
EndFunc


Func FN0187(ByRef $ARGREF00, $ARG01, $ARG02, $ARG03)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEHeadInsertEventScript", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $LOCAL0145 = $ARGREF00.document.all.tags("HEAD" ).Item(0)
Local $LOCAL0146 = $ARGREF00.document.createElement("script")
With $LOCAL0146
	.defer = True
	.language = "jscript"
	.type = "text/javascript"
	.htmlFor = $ARG01
	.event = $ARG02
	.text = $ARG03
EndWith
$LOCAL0145.appendChild($LOCAL0146)
Return SetError($VAR0553, 0, 1)
EndFunc


Func FN0188(ByRef $ARGREF00)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEDocGetObj", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Switch FN019B($ARGREF00, "document")
	Case True
		Return SetError($VAR0553, 0, $ARGREF00)
	Case False
		Return SetError($VAR0553, 0, $ARGREF00.document)
EndSwitch
EndFunc


Func FN0189(ByRef $ARGREF00, $ARG01, $ARGOPT02 = -1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IETagNameGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IETagNameGetCollection", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
Local $LOCAL0139
If FN019B($ARGREF00, "documentcontainer") Then
	$LOCAL0139 = FN0188($ARGREF00)
Else
	$LOCAL0139 = $ARGREF00
EndIf
$ARGOPT02 = Number($ARGOPT02)
Select
	Case $ARGOPT02 = -1
		Return SetError($VAR0553, $LOCAL0139.GetElementsByTagName($ARG01).length, $LOCAL0139.GetElementsByTagName($ARG01))
	Case $ARGOPT02 > -1 And $ARGOPT02 < $LOCAL0139.GetElementsByTagName($ARG01).length
		Return SetError($VAR0553, $LOCAL0139.GetElementsByTagName($ARG01).length, $LOCAL0139.GetElementsByTagName($ARG01).item($ARGOPT02))
	Case $ARGOPT02 < -1
		FN019C("Error", "_IETagNameGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($VAR0558, 3, 0)
	Case Else
		FN019C("Error", "_IETagNameGetCollection", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 0, 0)
EndSelect
EndFunc


Func FN018A(ByRef $ARGREF00, $ARGOPT01 = -1)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IETagNameAllGetCollection", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IETagNameAllGetCollection", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
Local $LOCAL0139
If FN019B($ARGREF00, "documentcontainer") Then
	$LOCAL0139 = FN0188($ARGREF00)
Else
	$LOCAL0139 = $ARGREF00
EndIf
$ARGOPT01 = Number($ARGOPT01)
Select
	Case $ARGOPT01 = -1
		Return SetError($VAR0553, $LOCAL0139.all.length, $LOCAL0139.all)
	Case $ARGOPT01 > -1 And $ARGOPT01 < $LOCAL0139.all.length
		Return SetError($VAR0553, $LOCAL0139.all.length, $LOCAL0139.all.item($ARGOPT01))
	Case $ARGOPT01 < -1
		FN019C("Error", "_IETagNameAllGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")
		Return SetError($VAR0558, 2, 0)
	Case Else
		FN019C("Error", "_IETagNameAllGetCollection", "$_IEStatus_NoMatch")
		Return SetError($VAR055A, 1, 0)
EndSelect
EndFunc


Func FN018B(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 0)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEGetObjByName", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
$ARGOPT02 = Number($ARGOPT02)
If $ARGOPT02 = -1 Then
	Return SetError($VAR0553, $ARGREF00.document.GetElementsByName($ARG01).length, $ARGREF00.document.GetElementsByName($ARG01))
Else
	If IsObj($ARGREF00.document.GetElementsByName($ARG01).item($ARGOPT02)) Then
		Return SetError($VAR0553, $ARGREF00.document.GetElementsByName($ARG01).length, $ARGREF00.document.GetElementsByName($ARG01).item($ARGOPT02))
	Else
		FN019C("Warning", "_IEGetObjByName", "$_IEStatus_NoMatch", "Name: " & $ARG01 & ", Index: " & $ARGOPT02)
		Return SetError($VAR055A, 0, 0)
	EndIf
EndIf
EndFunc


Func FN018C(ByRef $ARGREF00, $ARG01)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEGetObjById", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IEGetObById", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
If IsObj($ARGREF00.document.getElementById($ARG01)) Then
	Return SetError($VAR0553, 0, $ARGREF00.document.getElementById($ARG01))
Else
	FN019C("Warning", "_IEGetObjById", "$_IEStatus_NoMatch", $ARG01)
	Return SetError($VAR055A, 2, 0)
EndIf
EndFunc


Func FN018D(ByRef $ARGREF00, $ARG01)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEAction", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
$ARG01 = StringLower($ARG01)
Select
	Case $ARG01 = "click"
		If FN019B($ARGREF00, "documentContainer") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.Click()
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "disable"
		If FN019B($ARGREF00, "documentContainer") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.disabled = True
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "enable"
		If FN019B($ARGREF00, "documentContainer") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.disabled = False
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "focus"
		If FN019B($ARGREF00, "documentContainer") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.Focus()
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "copy"
		$ARGREF00.document.execCommand("Copy")
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "cut"
		$ARGREF00.document.execCommand("Cut")
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "paste"
		$ARGREF00.document.execCommand("Paste")
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "delete"
		$ARGREF00.document.execCommand("Delete")
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "saveas"
		$ARGREF00.document.execCommand("SaveAs")
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "refresh"
		$ARGREF00.document.execCommand("Refresh")
		FN0168($ARGREF00)
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "selectall"
		$ARGREF00.document.execCommand("SelectAll")
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "unselect"
		$ARGREF00.document.execCommand("Unselect")
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "print"
		$ARGREF00.document.parentwindow.Print()
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "printdefault"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.execWB(6, 2)
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "back"
		If Not FN019B($ARGREF00, "documentContainer") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.GoBack()
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "blur"
		$ARGREF00.Blur()
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "forward"
		If Not FN019B($ARGREF00, "documentContainer") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.GoForward()
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "home"
		If Not FN019B($ARGREF00, "documentContainer") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.GoHome()
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "invisible"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.visible = 0
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "visible"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.visible = 1
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "search"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.GOsearch()
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "stop"
		If Not FN019B($ARGREF00, "documentContainer") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.Stop()
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "quit"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.Quit()
		$ARGREF00 = 0
		Return SetError($VAR0553, 0, 1)
	Case Else
		FN019C("Error", "_IEAction", "$_IEStatus_InvalidValue", "Invalid Action")
		Return SetError($VAR0558, 2, 0)
EndSelect
EndFunc


Func FN018E(ByRef $ARGREF00, $ARG01)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browserdom") Then
	FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
Local $LOCAL0139, $LOCAL0038
$ARG01 = StringLower($ARG01)
Select
	Case $ARG01 = "browserx"
		If FN019B($ARGREF00, "browsercontainer") Or FN019B($ARGREF00, "document") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$LOCAL0139 = $ARGREF00
		$LOCAL0038 = 0
		While IsObj($LOCAL0139)
			$LOCAL0038 += $LOCAL0139.offsetLeft
			$LOCAL0139 = $LOCAL0139.offsetParent
		WEnd
		Return SetError($VAR0553, 0, $LOCAL0038)
	Case $ARG01 = "browsery"
		If FN019B($ARGREF00, "browsercontainer") Or FN019B($ARGREF00, "document") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$LOCAL0139 = $ARGREF00
		$LOCAL0038 = 0
		While IsObj($LOCAL0139)
			$LOCAL0038 += $LOCAL0139.offsetTop
			$LOCAL0139 = $LOCAL0139.offsetParent
		WEnd
		Return SetError($VAR0553, 0, $LOCAL0038)
	Case $ARG01 = "screenx"
		If FN019B($ARGREF00, "window") Or FN019B($ARGREF00, "document") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		If FN019B($ARGREF00, "browser") Then
			Return SetError($VAR0553, 0, $ARGREF00.left())
		Else
			$LOCAL0139 = $ARGREF00
			$LOCAL0038 = 0
			While IsObj($LOCAL0139)
				$LOCAL0038 += $LOCAL0139.offsetLeft
				$LOCAL0139 = $LOCAL0139.offsetParent
			WEnd
		EndIf
		Return SetError($VAR0553, 0, $LOCAL0038 + $ARGREF00.document.parentWindow.screenLeft)
	Case $ARG01 = "screeny"
		If FN019B($ARGREF00, "window") Or FN019B($ARGREF00, "document") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		If FN019B($ARGREF00, "browser") Then
			Return SetError($VAR0553, 0, $ARGREF00.top())
		Else
			$LOCAL0139 = $ARGREF00
			$LOCAL0038 = 0
			While IsObj($LOCAL0139)
				$LOCAL0038 += $LOCAL0139.offsetTop
				$LOCAL0139 = $LOCAL0139.offsetParent
			WEnd
		EndIf
		Return SetError($VAR0553, 0, $LOCAL0038 + $ARGREF00.document.parentWindow.screenTop)
	Case $ARG01 = "height"
		If FN019B($ARGREF00, "window") Or FN019B($ARGREF00, "document") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		If FN019B($ARGREF00, "browser") Then
			Return SetError($VAR0553, 0, $ARGREF00.Height())
		Else
			Return SetError($VAR0553, 0, $ARGREF00.offsetHeight)
		EndIf
	Case $ARG01 = "width"
		If FN019B($ARGREF00, "window") Or FN019B($ARGREF00, "document") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		If FN019B($ARGREF00, "browser") Then
			Return SetError($VAR0553, 0, $ARGREF00.Width())
		Else
			Return SetError($VAR0553, 0, $ARGREF00.offsetWidth)
		EndIf
	Case $ARG01 = "isdisabled"
		Return SetError($VAR0553, 0, $ARGREF00.isDisabled())
	Case $ARG01 = "addressbar"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.AddressBar())
	Case $ARG01 = "busy"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.Busy())
	Case $ARG01 = "fullscreen"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.fullScreen())
	Case $ARG01 = "hwnd"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, HWnd($ARGREF00.HWnd()))
	Case $ARG01 = "left"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.Left())
	Case $ARG01 = "locationname"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.LocationName())
	Case $ARG01 = "locationurl"
		If FN019B($ARGREF00, "browser") Then
			Return SetError($VAR0553, 0, $ARGREF00.locationURL())
		EndIf
		If FN019B($ARGREF00, "window") Then
			Return SetError($VAR0553, 0, $ARGREF00.location.href())
		EndIf
		If FN019B($ARGREF00, "document") Then
			Return SetError($VAR0553, 0, $ARGREF00.parentwindow.location.href())
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.document.parentwindow.location.href())
	Case $ARG01 = "menubar"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.MenuBar())
	Case $ARG01 = "offline"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.OffLine())
	Case $ARG01 = "readystate"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.ReadyState())
	Case $ARG01 = "resizable"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.Resizable())
	Case $ARG01 = "silent"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.Silent())
	Case $ARG01 = "statusbar"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.StatusBar())
	Case $ARG01 = "statustext"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.StatusText())
	Case $ARG01 = "top"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.Top())
	Case $ARG01 = "visible"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.Visible())
	Case $ARG01 = "appcodename"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.appCodeName())
	Case $ARG01 = "appminorversion"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.appMinorVersion())
	Case $ARG01 = "appname"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.appName())
	Case $ARG01 = "appversion"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.appVersion())
	Case $ARG01 = "browserlanguage"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.browserLanguage())
	Case $ARG01 = "cookieenabled"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.cookieEnabled())
	Case $ARG01 = "cpuclass"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.cpuClass())
	Case $ARG01 = "javaenabled"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.javaEnabled())
	Case $ARG01 = "online"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.onLine())
	Case $ARG01 = "platform"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.platform())
	Case $ARG01 = "systemlanguage"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.systemLanguage())
	Case $ARG01 = "useragent"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.userAgent())
	Case $ARG01 = "userlanguage"
		Return SetError($VAR0553, 0, $ARGREF00.document.parentWindow.top.navigator.userLanguage())
	Case $ARG01 = "vcard"
		Local $LOCAL0147[1][29]
		$LOCAL0147[0][0] = "Business.City"
		$LOCAL0147[0][1] = "Business.Country"
		$LOCAL0147[0][2] = "Business.Fax"
		$LOCAL0147[0][3] = "Business.Phone"
		$LOCAL0147[0][4] = "Business.State"
		$LOCAL0147[0][5] = "Business.StreetAddress"
		$LOCAL0147[0][6] = "Business.URL"
		$LOCAL0147[0][7] = "Business.Zipcode"
		$LOCAL0147[0][8] = "Cellular"
		$LOCAL0147[0][9] = "Company"
		$LOCAL0147[0][10] = "Department"
		$LOCAL0147[0][11] = "DisplayName"
		$LOCAL0147[0][12] = "Email"
		$LOCAL0147[0][13] = "FirstName"
		$LOCAL0147[0][14] = "Gender"
		$LOCAL0147[0][15] = "Home.City"
		$LOCAL0147[0][16] = "Home.Country"
		$LOCAL0147[0][17] = "Home.Fax"
		$LOCAL0147[0][18] = "Home.Phone"
		$LOCAL0147[0][19] = "Home.State"
		$LOCAL0147[0][20] = "Home.StreetAddress"
		$LOCAL0147[0][21] = "Home.Zipcode"
		$LOCAL0147[0][22] = "Homepage"
		$LOCAL0147[0][23] = "JobTitle"
		$LOCAL0147[0][24] = "LastName"
		$LOCAL0147[0][25] = "MiddleName"
		$LOCAL0147[0][26] = "Notes"
		$LOCAL0147[0][27] = "Office"
		$LOCAL0147[0][28] = "Pager"
		For $LOCAL0017 = 0 To 28
			$LOCAL0147[1][$LOCAL0017] = Execute('$o_object.document.parentWindow.top.navigator.userProfile.getAttribute("' & $LOCAL0147[0][$LOCAL0017] & '")')
		Next
		Return SetError($VAR0553, 0, $LOCAL0147)
	Case $ARG01 = "referrer"
		Return SetError($VAR0553, 0, $ARGREF00.document.referrer)
	Case $ARG01 = "theatermode"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.TheaterMode)
	Case $ARG01 = "toolbar"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		Return SetError($VAR0553, 0, $ARGREF00.ToolBar)
	Case $ARG01 = "contenteditable"
		If FN019B($ARGREF00, "browser") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		Return SetError($VAR0553, 0, $LOCAL0139.isContentEditable)
	Case $ARG01 = "innertext"
		If FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		Return SetError($VAR0553, 0, $LOCAL0139.innerText)
	Case $ARG01 = "outertext"
		If FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		Return SetError($VAR0553, 0, $LOCAL0139.outerText)
	Case $ARG01 = "innerhtml"
		If FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		Return SetError($VAR0553, 0, $LOCAL0139.innerHTML)
	Case $ARG01 = "outerhtml"
		If FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		Return SetError($VAR0553, 0, $LOCAL0139.outerHTML)
	Case $ARG01 = "title"
		Return SetError($VAR0553, 0, $ARGREF00.document.title)
	Case $ARG01 = "uniqueid"
		If FN019B($ARGREF00, "window") Then
			FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		Else
			Return SetError($VAR0553, 0, $ARGREF00.uniqueID)
		EndIf
	Case Else
		FN019C("Error", "_IEPropertyGet", "$_IEStatus_InvalidValue", "Invalid Property")
		Return SetError($VAR0558, 2, 0)
EndSelect
EndFunc


Func FN018F(ByRef $ARGREF00, $ARG01, $ARG02)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
Local $LOCAL0139
#forceref $Local0139
$ARG01 = StringLower($ARG01)
Select
	Case $ARG01 = "addressbar"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.AddressBar = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "height"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.Height = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "left"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.Left = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "menubar"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.MenuBar = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "offline"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.OffLine = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "resizable"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.Resizable = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "statusbar"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.StatusBar = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "statustext"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.StatusText = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "top"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.Top = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "width"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		$ARGREF00.Width = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "theatermode"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		If $ARG02 Then
			$ARGREF00.TheaterMode = True
		Else
			$ARGREF00.TheaterMode = False
		EndIf
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "toolbar"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		If $ARG02 Then
			$ARGREF00.ToolBar = True
		Else
			$ARGREF00.ToolBar = False
		EndIf
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "contenteditable"
		If FN019B($ARGREF00, "browser") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		If $ARG02 Then
			$LOCAL0139.contentEditable = "true"
		Else
			$LOCAL0139.contentEditable = "false"
		EndIf
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "innertext"
		If FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		$LOCAL0139.innerText = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "outertext"
		If FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		$LOCAL0139.outerText = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "innerhtml"
		If FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		$LOCAL0139.innerHTML = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "outerhtml"
		If FN019B($ARGREF00, "documentcontainer") Or FN019B($ARGREF00, "document") Then
			$LOCAL0139 = $ARGREF00.document.body
		Else
			$LOCAL0139 = $ARGREF00
		EndIf
		$LOCAL0139.outerHTML = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "title"
		$ARGREF00.document.title = $ARG02
		Return SetError($VAR0553, 0, 1)
	Case $ARG01 = "silent"
		If Not FN019B($ARGREF00, "browser") Then
			FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")
			Return SetError($VAR0557, 1, 0)
		EndIf
		If $ARG02 Then
			$ARGREF00.silent = True
		Else
			$ARGREF00.silent = False
		EndIf
		Return SetError($VAR0553, 0, 0)
	Case Else
		FN019C("Error", "_IEPropertySet", "$_IEStatus_InvalidValue", "Invalid Property")
		Return SetError($VAR0558, 2, 0)
EndSelect
EndFunc


Func FN0190($ARGOPT00 = -1)
Switch Number($ARGOPT00)
	Case - 1
		Return $VAR0545
	Case 0
		$VAR0545 = False
		Return 1
	Case 1
		$VAR0545 = True
		Return 1
	Case Else
		FN019C("Error", "_IEErrorNotify", "$_IEStatus_InvalidValue")
		Return 0
EndSwitch
EndFunc


Func FN0191($ARGOPT00 = "__IEInternalErrorHandler")
$VAR0547 = $ARGOPT00
$VAR0546 = ""
$VAR0546 = ObjEvent("AutoIt.Error", $ARGOPT00)
If IsObj($VAR0546) Then
	Return SetError($VAR0553, 0, 1)
Else
	FN019C("Error", "_IEPropertySet", "$_IEStatus_GeneralError", "Error Handler Not Registered - Check existance of error function")
	Return SetError($VAR0554, 1, 0)
EndIf
EndFunc


Func FN0192()
$VAR0547 = ""
$VAR0546 = ""
Return SetError($VAR0553, 0, 1)
EndFunc


Func FN0193(ByRef $ARGREF00)
If Not IsObj($ARGREF00) Then
	FN019C("Error", "_IEQuit", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "browser") Then
	FN019C("Error", "_IEAction", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGREF00.quit()
$ARGREF00 = 0
Return SetError($VAR0553, 0, 1)
EndFunc


Func FN0194($ARGOPT00 = "basic")
Local $LOCAL0148 = ""
Switch $ARGOPT00
	Case "basic"
		$LOCAL0148 &= "<HTML>" & @CR
		$LOCAL0148 &= "<HEAD>" & @CR
		$LOCAL0148 &= "<TITLE>_IE_Introduction ('basic')</TITLE>" & @CR
		$LOCAL0148 &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR
		$LOCAL0148 &= "</HEAD>" & @CR
		$LOCAL0148 &= "<BODY>" & @CR
		$LOCAL0148 &= "<table border=1 width=600 id='table1' cellspacing=6 cellpadding=6>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<h1>Welcome to IE.au3</h1>" & @CR
		$LOCAL0148 &= "IE.au3 is a UDF (User Defined Function) library for the " & @CR
		$LOCAL0148 &= "<a href='http://www.autoitscript.com'>AutoIt</a> scripting language." & @CR
		$LOCAL0148 &= "<p>  " & @CR
		$LOCAL0148 &= "IE.au3 allows you to either create or attach to an Internet Explorer browser and do " & @CR
		$LOCAL0148 &= "just about anything you could do with it interactively with the mouse and " & @CR
		$LOCAL0148 &= "keyboard, but do it through script." & @CR
		$LOCAL0148 &= "<p>" & @CR
		$LOCAL0148 &= "You can navigate to pages, click links, fill and submit forms etc. You can " & @CR
		$LOCAL0148 &= "also do things you cannot do interactively like change or rewrite page " & @CR
		$LOCAL0148 &= "content and JavaScripts, read, parse and save page content and monitor and act " & @CR
		$LOCAL0148 &= "upon browser 'events'.<p>" & @CR
		$LOCAL0148 &= "IE.au3 uses the COM interface in AutoIt to interact with the Internet Explorer " & @CR
		$LOCAL0148 &= "object model and the DOM (Document Object Model) supported by the browser." & @CR
		$LOCAL0148 &= "<p>" & @CR
		$LOCAL0148 &= "Here are some links for more information and helpful tools:<p>" & @CR
		$LOCAL0148 &= "Reference Material: " & @CR
		$LOCAL0148 &= "<ul>" & @CR
		$LOCAL0148 &= "<li><a href='http://msdn1.microsoft.com/'>MSDN (Microsoft Developer Network)</a></li>" & @CR
		$LOCAL0148 &= "<li><a href='http://msdn2.microsoft.com/en-us/library/aa752084.aspx' target='_blank'>InternetExplorer Object</a></li>" & @CR
		$LOCAL0148 &= "<li><a href='http://msdn2.microsoft.com/en-us/library/ms531073.aspx' target='_blank'>Document Object</a></li>" & @CR
		$LOCAL0148 &= "<li><a href='http://msdn2.microsoft.com/en-us/ie/aa740473.aspx' target='_blank'>Overviews and Tutorials</a></li>" & @CR
		$LOCAL0148 &= "<li><a href='http://msdn2.microsoft.com/en-us/library/ms533029.aspx' target='_blank'>DHTML Objects</a></li>" & @CR
		$LOCAL0148 &= "<li><a href='http://msdn2.microsoft.com/en-us/library/ms533051.aspx' target='_blank'>DHTML Events</a></li>" & @CR
		$LOCAL0148 &= "</ul><p>" & @CR
		$LOCAL0148 &= "Helpful Tools: " & @CR
		$LOCAL0148 &= "<ul>" & @CR
		$LOCAL0148 &= "<li><a href='http://www.autoitscript.com/forum/index.php?showtopic=19368' target='_blank'>AutoIt IE Builder</a> (build IE scripts interactively)</li>" & @CR
		$LOCAL0148 &= "<li><a href='http://www.debugbar.com/' target='_blank'>DebugBar</a> (DOM inspector, HTTP inspector, HTML validator and more - free for personal use) Recommended</li>" & @CR
		$LOCAL0148 &= "<li><a href='http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en' target='_blank'>IE Developer Toolbar</a> (comprehensive DOM analysis tool)</li>" & @CR
		$LOCAL0148 &= "<li><a href='http://slayeroffice.com/tools/modi/v2.0/modi_help.html' target='_blank'>MODIV2</a> (view the DOM of a web page by mousing around)</li>" & @CR
		$LOCAL0148 &= "<li><a href='http://validator.w3.org/' target='_blank'>HTML Validator</a> (verify HTML follows format rules)</li>" & @CR
		$LOCAL0148 &= "<li><a href='http://www.fiddlertool.com/fiddler/' target='_blank'>Fiddler</a> (examine HTTP traffic)</li>" & @CR
		$LOCAL0148 &= "</ul>" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "</table>" & @CR
		$LOCAL0148 &= "</BODY>" & @CR
		$LOCAL0148 &= "</HTML>"
	Case Else
		FN019C("Error", "_IE_Introduction", "$_IEStatus_InvalidValue")
		Return SetError($VAR0558, 1, 0)
EndSwitch
Local $LOCAL012C = FN0164()
FN0184($LOCAL012C, $LOCAL0148)
Return SetError($VAR0553, 0, $LOCAL012C)
EndFunc


Func FN0195($ARGOPT00 = "basic")
Local $LOCAL0148 = "", $LOCAL012C
Switch $ARGOPT00
	Case "basic"
		$LOCAL0148 &= "<HEAD>" & @CR
		$LOCAL0148 &= "<TITLE>_IE_Example('basic')</TITLE>" & @CR
		$LOCAL0148 &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR
		$LOCAL0148 &= "</HEAD>" & @CR
		$LOCAL0148 &= "<BODY>" & @CR
		$LOCAL0148 &= "<a href='http://www.autoitscript.com'><img src='http://www.autoitscript.com/images/autoit_6_240x100.jpg' name='AutoItImage' alt='AutoIt Homepage Image'></a>" & @CR
		$LOCAL0148 &= "<p>" & @CR
		$LOCAL0148 &= "<div id=line1>This is a simple HTML page with text, links and images.</div>" & @CR
		$LOCAL0148 &= "<p>" & @CR
		$LOCAL0148 &= "<div id=line2><a href='http://www.autoitscript.com'>AutoIt</a> is a wonderful automation scripting language.</div>" & @CR
		$LOCAL0148 &= "<p>" & @CR
		$LOCAL0148 &= "<div id=line3>It is supported by a very active and supporting <a href='http://www.autoitscript.com/forum/'>user forum</a>.</div>" & @CR
		$LOCAL0148 &= "<p>" & @CR
		$LOCAL0148 &= "<div id=IEAu3Data></div>" & @CR
		$LOCAL0148 &= "</BODY>" & @CR
		$LOCAL0148 &= "</HTML>"
		$LOCAL012C = FN0164()
		FN0184($LOCAL012C, $LOCAL0148)
	Case "table"
		$LOCAL0148 &= "<HTML>" & @CR
		$LOCAL0148 &= "<HEAD>" & @CR
		$LOCAL0148 &= "<TITLE>_IE_Example('table')</TITLE>" & @CR
		$LOCAL0148 &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR
		$LOCAL0148 &= "</HEAD>" & @CR
		$LOCAL0148 &= "<BODY>" & @CR
		$LOCAL0148 &= "$oTableOne = _IETableGetObjByName($oIE, "tableOne")<br>" & @CR
		$LOCAL0148 &= "<table border=1 id='tableOne'><p>" & @CR
		$LOCAL0148 &= "<table border=1 id='tableOne'>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>AutoIt</td>" & @CR
		$LOCAL0148 &= "		<td>is</td>" & @CR
		$LOCAL0148 &= "		<td>really</td>" & @CR
		$LOCAL0148 &= "		<td>great</td>" & @CR
		$LOCAL0148 &= "		<td>with</td>" & @CR
		$LOCAL0148 &= "		<td>IE.au3</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>1</td>" & @CR
		$LOCAL0148 &= "		<td>2</td>" & @CR
		$LOCAL0148 &= "		<td>3</td>" & @CR
		$LOCAL0148 &= "		<td>4</td>" & @CR
		$LOCAL0148 &= "		<td>5</td>" & @CR
		$LOCAL0148 &= "		<td>6</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>the</td>" & @CR
		$LOCAL0148 &= "		<td>quick</td>" & @CR
		$LOCAL0148 &= "		<td>red</td>" & @CR
		$LOCAL0148 &= "		<td>fox</td>" & @CR
		$LOCAL0148 &= "		<td>jumped</td>" & @CR
		$LOCAL0148 &= "		<td>over</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>the</td>" & @CR
		$LOCAL0148 &= "		<td>lazy</td>" & @CR
		$LOCAL0148 &= "		<td>brown</td>" & @CR
		$LOCAL0148 &= "		<td>dog</td>" & @CR
		$LOCAL0148 &= "		<td>the</td>" & @CR
		$LOCAL0148 &= "		<td>time</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>has</td>" & @CR
		$LOCAL0148 &= "		<td>come</td>" & @CR
		$LOCAL0148 &= "		<td>for</td>" & @CR
		$LOCAL0148 &= "		<td>all</td>" & @CR
		$LOCAL0148 &= "		<td>good</td>" & @CR
		$LOCAL0148 &= "		<td>men</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>to</td>" & @CR
		$LOCAL0148 &= "		<td>come</td>" & @CR
		$LOCAL0148 &= "		<td>to</td>" & @CR
		$LOCAL0148 &= "		<td>the</td>" & @CR
		$LOCAL0148 &= "		<td>aid</td>" & @CR
		$LOCAL0148 &= "		<td>of</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "</table>" & @CR
		$LOCAL0148 &= "<p>" & @CR
		$LOCAL0148 &= "$oTableTwo = _IETableGetObjByName($oIE, "tableTwo")<br>" & @CR
		$LOCAL0148 &= "<table border="1" id='tableTwo'><p>" & @CR
		$LOCAL0148 &= "<table border=1 id='tableTwo'>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td colspan='4'>Table Top</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>One</td>" & @CR
		$LOCAL0148 &= "		<td colspan='3'>Two</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>Three</td>" & @CR
		$LOCAL0148 &= "		<td>Four</td>" & @CR
		$LOCAL0148 &= "		<td colspan='2'>Five</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>Six</td>" & @CR
		$LOCAL0148 &= "		<td colspan='3'>Seven</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "	<tr>" & @CR
		$LOCAL0148 &= "		<td>Eight</td>" & @CR
		$LOCAL0148 &= "		<td>Nine</td>" & @CR
		$LOCAL0148 &= "		<td>Ten</td>" & @CR
		$LOCAL0148 &= "		<td>Eleven</td>" & @CR
		$LOCAL0148 &= "	</tr>" & @CR
		$LOCAL0148 &= "</table>" & @CR
		$LOCAL0148 &= "</BODY>" & @CR
		$LOCAL0148 &= "</HTML>"
		$LOCAL012C = FN0164()
		FN0184($LOCAL012C, $LOCAL0148)
	Case "form"
		$LOCAL0148 &= "<HTML>" & @CR
		$LOCAL0148 &= "<HEAD>" & @CR
		$LOCAL0148 &= "<TITLE>_IE_Example('form')</TITLE>" & @CR
		$LOCAL0148 &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR
		$LOCAL0148 &= "</HEAD>" & @CR
		$LOCAL0148 &= "<BODY>" & @CR
		$LOCAL0148 &= "<form name='ExampleForm' onSubmit='javascript:alert(""""ExampleFormSubmitted"""");' method='post'>" & @CR
		$LOCAL0148 &= "<table cellspacing=6 cellpadding=6 border=1>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>ExampleForm</td>" & @CR
		$LOCAL0148 &= "<td><form name='ExampleForm' onSubmit='javascript:alert(""""ExampleFormSubmitted"""");' method='post'></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>Hidden Input Element<input type='hidden' name='hiddenExample' value='secret value'></td>" & @CR
		$LOCAL0148 &= "<td><input type='hidden' name='hiddenExample' value='secret value'></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<input type='text' name='textExample' value='http://' size='20' maxlength='30'>" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "<td><input type='text' name='textExample' value='http://' size='20' maxlength='30'></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<input type='password' name='passwordExample' size='10'>" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "<td><input type='password' name='passwordExample' size='10'></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<input type='file' name='fileExample'>" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "<td><input type='file' name='fileExample'></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<input type='image' name='imageExample' alt='AutoIt Homepage' src='http://www.autoitscript.com/images/autoit_6_240x100.jpg'>" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "<td><input type='image' name='imageExample' alt='AutoIt Homepage' src='http://www.autoitscript.com/images/autoit_6_240x100.jpg'></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<textarea name='textareaExample' rows='5' cols='15'>Hello!</textarea>" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "<td><textarea name='textareaExample' rows='5' cols='15'>Hello!</textarea></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<input type='checkbox' name='checkboxG1Example' value='gameBasketball'>Basketball<br>" & @CR
		$LOCAL0148 &= "<input type='checkbox' name='checkboxG1Example' value='gameFootball'>Football<br>" & @CR
		$LOCAL0148 &= "<input type='checkbox' name='checkboxG2Example' value='gameTennis' checked>Tennis<br>" & @CR
		$LOCAL0148 &= "<input type='checkbox' name='checkboxG2Example' value='gameBaseball'>Baseball" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "<td><input type='checkbox' name='checkboxG1Example' value='gameBasketball'>Basketball<br><br>" & @CR
		$LOCAL0148 &= "<input type='checkbox' name='checkboxG1Example' value='gameFootball'>Football<br><br>" & @CR
		$LOCAL0148 &= "<input type='checkbox' name='checkboxG2Example' value='gameTennis' checked>Tennis<br><br>" & @CR
		$LOCAL0148 &= "<input type='checkbox' name='checkboxG2Example' value='gameBaseball'>Baseball</td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<input type='radio' name='radioExample' value='vehicleAirplane'>Airplane<br>" & @CR
		$LOCAL0148 &= "<input type='radio' name='radioExample' value='vehicleTrain' checked>Train<br>" & @CR
		$LOCAL0148 &= "<input type='radio' name='radioExample' value='vehicleBoat'>Boat<br>" & @CR
		$LOCAL0148 &= "<input type='radio' name='radioExample' value='vehicleCar'>Car</td>" & @CR
		$LOCAL0148 &= "<td><input type='radio' name='radioExample' value='vehicleAirplane'>Airplane<br><br>" & @CR
		$LOCAL0148 &= "<input type='radio' name='radioExample' value='vehicleTrain' checked>Train<br><br>" & @CR
		$LOCAL0148 &= "<input type='radio' name='radioExample' value='vehicleBoat'>Boat<br><br>" & @CR
		$LOCAL0148 &= "<input type='radio' name='radioExample' value='vehicleCar'>Car<br></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<select name='selectExample'>" & @CR
		$LOCAL0148 &= "<option value='homepage.html'>Homepage" & @CR
		$LOCAL0148 &= "<option value='midipage.html'>Midipage" & @CR
		$LOCAL0148 &= "<option value='freepage.html'>Freepage" & @CR
		$LOCAL0148 &= "</select>" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "<td><select name='selectExample'><br>" & @CR
		$LOCAL0148 &= "<option value='homepage.html'>Homepage<br>" & @CR
		$LOCAL0148 &= "<option value='midipage.html'>Midipage<br>" & @CR
		$LOCAL0148 &= "<option value='freepage.html'>Freepage<br>" & @CR
		$LOCAL0148 &= "</select></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<select name='multipleSelectExample' size='6' multiple>" & @CR
		$LOCAL0148 &= "<option value='Name1'>Aaron" & @CR
		$LOCAL0148 &= "<option value='Name2'>Bruce" & @CR
		$LOCAL0148 &= "<option value='Name3'>Carlos" & @CR
		$LOCAL0148 &= "<option value='Name4'>Denis" & @CR
		$LOCAL0148 &= "<option value='Name5'>Ed" & @CR
		$LOCAL0148 &= "<option value='Name6'>Freddy" & @CR
		$LOCAL0148 &= "</select>" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "<td><select name='multipleSelectExample' size='6' multiple><br>" & @CR
		$LOCAL0148 &= "<option value='Name1'>Aaron<br>" & @CR
		$LOCAL0148 &= "<option value='Name2'>Bruce<br>" & @CR
		$LOCAL0148 &= "<option value='Name3'>Carlos<br>" & @CR
		$LOCAL0148 &= "<option value='Name4'>Denis<br>" & @CR
		$LOCAL0148 &= "<option value='Name5'>Ed<br>" & @CR
		$LOCAL0148 &= "<option value='Name6'>Freddy<br>" & @CR
		$LOCAL0148 &= "</select></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td>" & @CR
		$LOCAL0148 &= "<input name='submitExample' type='submit' value='Submit'>" & @CR
		$LOCAL0148 &= "<input name='resetExample' type='reset' value='Reset'>" & @CR
		$LOCAL0148 &= "</td>" & @CR
		$LOCAL0148 &= "<td><input name='submitExample' type='submit' value='Submit'><br>" & @CR
		$LOCAL0148 &= "<input name='resetExample' type='reset' value='Reset'></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "</table>" & @CR
		$LOCAL0148 &= "<input type='hidden' name='hiddenExample' value='secret value'>" & @CR
		$LOCAL0148 &= "</FORM>" & @CR
		$LOCAL0148 &= "</BODY>" & @CR
		$LOCAL0148 &= "</HTML>"
		$LOCAL012C = FN0164()
		FN0184($LOCAL012C, $LOCAL0148)
	Case "frameset"
		$LOCAL0148 &= "<HTML>" & @CR
		$LOCAL0148 &= "<HEAD>" & @CR
		$LOCAL0148 &= "<TITLE>_IE_Example('frameset')</TITLE>" & @CR
		$LOCAL0148 &= "</HEAD>" & @CR
		$LOCAL0148 &= "<FRAMESET rows='25,200'>" & @CR
		$LOCAL0148 &= "	<FRAME NAME=Top SRC=about:blank>" & @CR
		$LOCAL0148 &= "	<FRAMESET cols='100,500'>" & @CR
		$LOCAL0148 &= "		<FRAME NAME=Menu SRC=about:blank>" & @CR
		$LOCAL0148 &= "		<FRAME NAME=Main SRC=about:blank>" & @CR
		$LOCAL0148 &= "	</FRAMESET>" & @CR
		$LOCAL0148 &= "</FRAMESET>" & @CR
		$LOCAL0148 &= "</HTML>"
		$LOCAL012C = FN0164()
		FN0184($LOCAL012C, $LOCAL0148)
		FN018D($LOCAL012C, "refresh")
		Local $LOCAL0149 = FN016C($LOCAL012C, "Top")
		Local $LOCAL014A = FN016C($LOCAL012C, "Menu")
		Local $LOCAL014B = FN016C($LOCAL012C, "Main")
		FN0182($LOCAL0149, '$oFrameTop = _IEFrameGetObjByName($oIE, "Top")')
		FN0182($LOCAL014A, '$oFrameMenu = _IEFrameGetObjByName($oIE, "Menu")')
		FN0182($LOCAL014B, '$oFrameMain = _IEFrameGetObjByName($oIE, "Main")')
	Case "iframe"
		$LOCAL0148 &= "<HTML>" & @CR
		$LOCAL0148 &= "<HEAD>" & @CR
		$LOCAL0148 &= "<TITLE>_IE_Example('iframe')</TITLE>" & @CR
		$LOCAL0148 &= "</HEAD>" & @CR
		$LOCAL0148 &= "<BODY>" & @CR
		$LOCAL0148 &= "<table cellspacing=6 cellpadding=6 border=1>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td><iframe name='iFrameOne' src='about:blank' title='iFrameOne'></iframe></td>" & @CR
		$LOCAL0148 &= "<td><iframe name="iFrameOne" src="about:blank" title="iFrameOne"></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "<tr>" & @CR
		$LOCAL0148 &= "<td><iframe name='iFrameTwo' src='about:blank' title='iFrameTwo'></iframe></td>" & @CR
		$LOCAL0148 &= "<td><iframe name="iFrameTwo" src="about:blank" title="iFrameTwo"></td>" & @CR
		$LOCAL0148 &= "</tr>" & @CR
		$LOCAL0148 &= "</table>" & @CR
		$LOCAL0148 &= "</BODY>" & @CR
		$LOCAL0148 &= "</HTML>"
		$LOCAL012C = FN0164()
		FN0184($LOCAL012C, $LOCAL0148)
		FN018D($LOCAL012C, "refresh")
		Local $LOCAL014C = FN016C($LOCAL012C, "iFrameOne")
		Local $LOCAL014D = FN016C($LOCAL012C, "iFrameTwo")
		FN0182($LOCAL014C, '$oIFrameOne = _IEFrameGetObjByName($oIE, "iFrameOne")')
		FN0182($LOCAL014D, '$oIFrameTwo = _IEFrameGetObjByName($oIE, "iFrameTwo")')
	Case Else
		FN019C("Error", "_IE_Example", "$_IEStatus_InvalidValue")
		Return SetError($VAR0558, 1, 0)
EndSwitch
Return SetError($VAR0553, 0, $LOCAL012C)
EndFunc


Func FN0196()
FN019C("Information", "_IE_VersionInfo", "version " & $VAR053E[0] & $VAR053E[1] & "." & $VAR053E[2] & "-" & $VAR053E[3], "Release date: " & $VAR053E[4])
Return SetError($VAR0553, 0, $VAR053E)
EndFunc


Func FN0197($ARG00)
Local $LOCAL0059 = DllCall("user32.dll", "bool", "LockSetForegroundWindow", "uint", $ARG00)
If @error Or $LOCAL0059[0] Then Return SetError(1, FN001E(), 0)
Return $LOCAL0059[0]
EndFunc


Func FN0198(ByRef $ARGREF00)
DllCall("ole32.dll", "long", "CoInitialize", "ptr", 0)
If @error Then Return SetError(2, @error, 0)
Local Const $VAR057A = FN0199("WM_HTML_GETOBJECT")
Local Const $VAR057B = 2
Local $VAR057C
FN019A($ARGREF00, $VAR057A, 0, 0, $VAR057B, 1000, $VAR057C)
Local $LOCAL014E = DllStructCreate("int;short;short;byte[8]")
DllStructSetData($LOCAL014E, 1, 1651492128)
DllStructSetData($LOCAL014E, 2, 42014)
DllStructSetData($LOCAL014E, 3, 4559)
DllStructSetData($LOCAL014E, 4, 167, 1)
DllStructSetData($LOCAL014E, 4, 49, 2)
DllStructSetData($LOCAL014E, 4, 0, 3)
DllStructSetData($LOCAL014E, 4, 160, 4)
DllStructSetData($LOCAL014E, 4, 201, 5)
DllStructSetData($LOCAL014E, 4, 8, 6)
DllStructSetData($LOCAL014E, 4, 38, 7)
DllStructSetData($LOCAL014E, 4, 55, 8)
Local $LOCAL0059 = DllCall("oleacc.dll", "long", "ObjectFromLresult", "lresult", $VAR057C, "ptr", DllStructGetPtr($LOCAL014E), "wparam", 0, "idispatch*", 0)
If @error Then Return SetError(3, @error, 0)
If IsObj($LOCAL0059[4]) Then
	Local $LOCAL014F = $LOCAL0059[4] .Script()
	Return $LOCAL014F.Document.parentwindow
Else
	Return SetError(1, $LOCAL0059[0], 0)
EndIf
EndFunc


Func FN0199($ARG00)
Local $LOCAL0059 = DllCall("user32.dll", "uint", "RegisterWindowMessageW", "wstr", $ARG00)
If @error Then Return SetError(@error, @extended, 0)
If $LOCAL0059[0] = 0 Then Return SetError(10, FN001E(), 0)
Return $LOCAL0059[0]
EndFunc


Func FN019A($ARG00, $ARG01, $ARG02, $ARG03, $ARG04, $ARG05, ByRef $ARGREF06, $ARGOPT07 = 0, $ARGOPT08 = "int", $ARGOPT09 = "int")
Local $LOCAL0059 = DllCall("user32.dll", "lresult", "SendMessageTimeout", "hwnd", $ARG00, "uint", $ARG01, $ARGOPT08, $ARG02, $ARGOPT09, $ARG03, "uint", $ARG04, "uint", $ARG05, "dword_ptr*", "")
If @error Or $LOCAL0059[0] = 0 Then
	$ARGREF06 = 0
	Return SetError(1, FN001E(), 0)
EndIf
$ARGREF06 = $LOCAL0059[7]
If $ARGOPT07 >= 0 And $ARGOPT07 <= 4 Then Return $LOCAL0059[$ARGOPT07]
Return $LOCAL0059
EndFunc


Func FN019B(ByRef $ARGREF00, $ARG01)
If Not IsObj($ARGREF00) Then
	Return SetError($VAR0556, 1, 0)
EndIf
Local $LOCAL0134 = FN019D()
If Not $LOCAL0134 Then FN019C("Warning", "internal function __IEIsObjType", "Cannot register internal error handler, cannot trap COM errors", "Use _IEErrorHandlerRegister() to register a user error handler")
Local $LOCAL0135 = FN0190()
FN0190(False)
Local $LOCAL0150 = String(ObjName($ARGREF00)), $VAR057D = False
Switch $ARG01
	Case "browserdom"
		Local $LOCAL0139 = $ARGREF00.document
		If FN019B($ARGREF00, "documentcontainer") Then
			$VAR057D = True
		ElseIf FN019B($ARGREF00, "document") Then
			$VAR057D = True
		ElseIf FN019B($LOCAL0139, "document") Then
			$VAR057D = True
		EndIf
	Case "browser"
		If ($LOCAL0150 = "IWebBrowser2") Or ($LOCAL0150 = "IWebBrowser") Then $VAR057D = True
	Case "window"
		If $LOCAL0150 = "DispHTMLWindow2" Then $VAR057D = True
	Case "documentContainer"
		If FN019B($ARGREF00, "window") Or FN019B($ARGREF00, "browser") Then $VAR057D = True
	Case "document"
		If $LOCAL0150 = "DispHTMLDocument" Then $VAR057D = True
	Case "table"
		If $LOCAL0150 = "DispHTMLTable" Then $VAR057D = True
	Case "form"
		If $LOCAL0150 = "DispHTMLFormElement" Then $VAR057D = True
	Case "forminputelement"
		If ($LOCAL0150 = "DispHTMLInputElement") Or ($LOCAL0150 = "DispHTMLSelectElement") Or ($LOCAL0150 = "DispHTMLTextAreaElement") Then $VAR057D = True
	Case "elementcollection"
		If ($LOCAL0150 = "DispHTMLElementCollection") Then $VAR057D = True
	Case "formselectelement"
		If $LOCAL0150 = "DispHTMLSelectElement" Then $VAR057D = True
	Case Else
		Return SetError($VAR0558, 2, 0)
EndSwitch
FN0190($LOCAL0135)
FN019E()
If $VAR057D Then
	Return SetError($VAR0553, 0, 1)
Else
	Return SetError($VAR0557, 1, 0)
EndIf
EndFunc


Func FN019C($ARG00, $ARG01, $ARGOPT02 = "", $ARGOPT03 = "")
If $VAR0545 Or $VAR0542 Then
	Local $LOCAL0151 = "--> IE.au3 " & $VAR053E[5] & " " & $ARG00 & " from function " & $ARG01
	If Not String($ARGOPT02) = "" Then $LOCAL0151 &= ", " & $ARGOPT02
	If Not String($ARGOPT03) = "" Then $LOCAL0151 &= " (" & $ARGOPT03 & ")"
	ConsoleWrite($LOCAL0151 & @CRLF)
EndIf
Return 1
EndFunc


Func FN019D()
Local $LOCAL0152 = ObjEvent("AutoIt.Error")
If $LOCAL0152 <> "" And Not IsObj($VAR0546) Then
	Return SetError($VAR0554, 0, 0)
EndIf
$VAR0546 = ""
$VAR0546 = ObjEvent("AutoIt.Error", "Fn019F")
If IsObj($VAR0546) Then
	Return SetError($VAR0553, 0, 1)
Else
	Return SetError($VAR0554, 0, 0)
EndIf
EndFunc


Func FN019E()
$VAR0546 = ""
If $VAR0547 <> "" Then
	$VAR0546 = ObjEvent("AutoIt.Error", $VAR0547)
EndIf
Return SetError($VAR0553, 0, 1)
EndFunc


Func FN019F()
$VAR054B = $VAR0546.scriptline
$VAR0548 = $VAR0546.number
$VAR0549 = Hex($VAR0546.number, 8)
$VAR054A = StringStripWS($VAR0546.description, 2)
$VAR054C = StringStripWS($VAR0546.WinDescription, 2)
$VAR054D = $VAR0546.Source
$VAR054E = $VAR0546.HelpFile
$VAR054F = $VAR0546.HelpContext
$VAR0550 = $VAR0546.LastDllError
$VAR0552 = ""
$VAR0552 &= "--> COM Error Encountered in " & @ScriptName & @CRLF
$VAR0552 &= "----> $IEComErrorScriptline = " & $VAR054B & @CRLF
$VAR0552 &= "----> $IEComErrorNumberHex = " & $VAR0549 & @CRLF
$VAR0552 &= "----> $IEComErrorNumber = " & $VAR0548 & @CRLF
$VAR0552 &= "----> $IEComErrorWinDescription = " & $VAR054C & @CRLF
$VAR0552 &= "----> $IEComErrorDescription = " & $VAR054A & @CRLF
$VAR0552 &= "----> $IEComErrorSource = " & $VAR054D & @CRLF
$VAR0552 &= "----> $IEComErrorHelpFile = " & $VAR054E & @CRLF
$VAR0552 &= "----> $IEComErrorHelpContext = " & $VAR054F & @CRLF
$VAR0552 &= "----> $IEComErrorLastDllError = " & $VAR0550 & @CRLF
If $VAR0545 Or $VAR0542 Then ConsoleWrite($VAR0552 & @CRLF)
SetError($VAR0555)
Return
EndFunc


Func FN01A0()
Select
	Case ($VAR0548 = -2147352567) Or (String($VAR054A) = "Access is denied.")
		Return $VAR055B
	Case ($VAR0548 = -2147417848) Or (String($VAR054C) = "The object invoked has disconnected from its clients.")
		Return $VAR055C
	Case Else
		Return $VAR0553
EndSelect
EndFunc


Func FN01A1(ByRef $ARGREF00, $ARG01, $ARGOPT02 = 1, $ARGOPT03 = 0, $ARGOPT04 = "", $ARGOPT05 = "", $ARGOPT06 = "")
FN019C("Warning", "__IENavigate", "Unsupported function called. Not fully tested.")
If Not IsObj($ARGREF00) Then
	FN019C("Error", "__IENavigate", "$_IEStatus_InvalidDataType")
	Return SetError($VAR0556, 1, 0)
EndIf
If Not FN019B($ARGREF00, "documentContainer") Then
	FN019C("Error", "__IENavigate", "$_IEStatus_InvalidObjectType")
	Return SetError($VAR0557, 1, 0)
EndIf
$ARGREF00.navigate($ARG01, $ARGOPT03, $ARGOPT04, $ARGOPT05, $ARGOPT06)
If $ARGOPT02 Then
	FN0168($ARGREF00)
	Return SetError(@error, 0, $ARGREF00)
EndIf
Return SetError($VAR0553, 0, $ARGREF00)
EndFunc


Func FN01A2($ARG00, $ARGOPT01 = "us-ascii")
Local Const $VAR057E = 1, $VAR057F = 2
Local $LOCAL0153 = ObjCreate("ADODB.Stream")
$LOCAL0153.Type = $VAR057F
$LOCAL0153.CharSet = $ARGOPT01
$LOCAL0153.Open
$LOCAL0153.WriteText($ARG00)
$LOCAL0153.POsition = 0
$LOCAL0153.Type = $VAR057E
$LOCAL0153.POsition = 0
Return $LOCAL0153.Read
EndFunc


Func FN01A3($ARG00, $ARGOPT01 = "us-ascii")
Local Const $VAR057E = 1, $VAR057F = 2
Local $LOCAL0153 = ObjCreate("ADODB.Stream")
$LOCAL0153.Type = $VAR057E
$LOCAL0153.Open
$LOCAL0153.Write($ARG00)
$LOCAL0153.POsition = 0
$LOCAL0153.Type = $VAR057F
$LOCAL0153.CharSet = $ARGOPT01
$LOCAL0153.POsition = 0
Return $LOCAL0153.ReadText
EndFunc


Func FN01A4($ARG00, $ARGOPT01 = "", $ARGOPT02 = "")
Local $LOCAL0154 = FN01A5("", "~IE~", ".htm")
If @error Then
	FN019C("Error", "_IECreateHTA", "", "Error creating temporary file in @TempDir or @ScriptDir")
	Return SetError($VAR0554, 1, 0)
EndIf
Local $LOCAL0148 = ""
$LOCAL0148 &= "<HTML>" & @CR
$LOCAL0148 &= "<HEAD>" & @CR
$LOCAL0148 &= "<TITLE>" & $LOCAL0154 & "</TITLE>" & @CR & $ARGOPT01 & @CR
$LOCAL0148 &= "</HEAD>" & @CR
$LOCAL0148 &= "<BODY>" & @CR & $ARGOPT02 & @CR
$LOCAL0148 &= "</BODY>" & @CR
$LOCAL0148 &= "</HTML>"
Local $LOCAL0155 = FileOpen($LOCAL0154, 2)
FileWrite($LOCAL0155, $LOCAL0148)
FileClose($LOCAL0155)
If @error Then
	FN019C("Error", "_IECreateNewIE", "", "Error creating temporary file in @TempDir or @ScriptDir")
	Return SetError($VAR0554, 2, 0)
EndIf
Run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe " & $LOCAL0154)
Local $VAR0580
If WinWait($LOCAL0154, "", 60) Then
	$VAR0580 = WinGetProcess($LOCAL0154)
Else
	FN019C("Error", "_IECreateNewIE", "", "Timeout waiting for new IE window creation")
	Return SetError($VAR0554, 3, 0)
EndIf
If Not FileDelete($LOCAL0154) Then
	FN019C("Warning", "_IECreateNewIE", "", "Could not delete temporary file " & FileGetLongName($LOCAL0154))
EndIf
Local $LOCAL012C = FN0167($LOCAL0154)
FN0168($LOCAL012C)
FN018F($LOCAL012C, "title", $ARG00)
Return SetError($VAR0553, $VAR0580, $LOCAL012C)
EndFunc


Func FN01A5($ARGOPT00 = @TempDir, $ARGOPT01 = "~", $ARGOPT02 = ".tmp", $ARGOPT03 = 7)
Local $VAR007E, $LOCAL0132 = 0
If Not FileExists($ARGOPT00) Then $ARGOPT00 = @TempDir
If Not FileExists($ARGOPT00) Then $ARGOPT00 = @ScriptDir
If StringRight($ARGOPT00, 1) <> "\" Then $ARGOPT00 = $ARGOPT00 & "\"
Do
	$VAR007E = ""
	While StringLen($VAR007E) < $ARGOPT03
		$VAR007E = $VAR007E & Chr(Random(97, 122, 1))
	WEnd
	$VAR007E = $ARGOPT00 & $ARGOPT01 & $VAR007E & $ARGOPT02
	$LOCAL0132 += 1
	If $LOCAL0132 > 200 Then
		Return SetError($VAR0554, 1, 0)
	EndIf
Until Not FileExists($VAR007E)
Return $VAR007E
EndFunc


Func FN01A6($ARG00, $ARGOPT01 = -1, $ARGOPT02 = -1)
Local $LOCAL0156 = ""
Local $LOCAL0157 = "HKCU\Control Panel\International"
If $ARGOPT02 = -1 Then $ARGOPT02 = RegRead($LOCAL0157, "sDecimal")
If $ARGOPT01 = -1 Then $ARGOPT01 = RegRead($LOCAL0157, "sThousand")
Local $LOCAL0158 = StringRegExp($ARG00, "(\D?\d+)\D?(\d*)", 1)
If UBound($LOCAL0158) = 2 Then
	Local $LOCAL0159 = $LOCAL0158[0]
	While StringLen($LOCAL0159)
		$LOCAL0156 = $ARGOPT01 & StringRight($LOCAL0159, 3) & $LOCAL0156
		$LOCAL0159 = StringTrimRight($LOCAL0159, 3)
	WEnd
	$LOCAL0156 = StringTrimLeft($LOCAL0156, StringLen($ARGOPT01))
	If $LOCAL0158[1] <> "" Then $LOCAL0156 &= $ARGOPT02 & $LOCAL0158[1]
EndIf
Return $LOCAL0156
EndFunc


Func FN01A7($ARG00, $ARG01, $ARG02)
$VAR0581 = DllOpen($ARG00)
DllCall($VAR0581, "int:cdecl", "InitLicenKeys", "wstr", "SKINCRAFTER", "wstr", "SKINCRAFTER.COM", "wstr", "[email protected]", "wstr", "DEMOSKINCRAFTERLICENCE")
DllCall($VAR0581, "int:cdecl", "InitDecoration", "int", 1)
DllCall($VAR0581, "int:cdecl", "LoadSkinFromFile", "wstr", $ARG01)
DllCall($VAR0581, "int:cdecl", "DecorateAs", "int", $ARG02, "int", 25)
DllCall($VAR0581, "int:cdecl", "ApplySkin")
WinClose("", "")
EndFunc


Func FN01A8($ARG00, $ARGOPT01 = ":")
Local $VAR0582, $VAR0583
Local $LOCAL0017, $VAR0584, $VAR0585, $VAR0586
$ARGOPT01 = String($ARGOPT01)
If $ARGOPT01 = "" Then
	$ARGOPT01 = ":"
ElseIf $ARGOPT01 = "0" Then
	$ARGOPT01 = ""
EndIf
$VAR0582 = DllStructCreate("byte[6]")
$VAR0583 = DllStructCreate("int")
DllStructSetData($VAR0583, 1, 6)
$VAR0585 = DllCall("Ws2_32.dll", "int", "inet_addr", "str", $ARG00)
$VAR0586 = $VAR0585[0]
$VAR0585 = DllCall("iphlpapi.dll", "int", "SendARP", "int", $VAR0586, "int", 0, "ptr", DllStructGetPtr($VAR0582), "ptr", DllStructGetPtr($VAR0583))
$VAR0584 = ""
For $LOCAL0017 = 0 To 5
	If $LOCAL0017 Then $VAR0584 = $VAR0584 & $ARGOPT01
	$VAR0584 = $VAR0584 & Hex(DllStructGetData($VAR0582, 1, $LOCAL0017 + 1), 2)
Next
If $VAR0584 = "00" & $ARGOPT01 & "00" & $ARGOPT01 & "00" & $ARGOPT01 & "00" & $ARGOPT01 & "00" & $ARGOPT01 & "00" Then $VAR0584 = 0
Return $VAR0584
EndFunc


Func FN01A9()
Select
	Case FN0026("01")
	Case FN0026("02")
	Case FN0026("04")
	Case FN0026("05")
	Case FN0026("06")
	Case FN0026("08")
	Case FN0026("09")
	Case FN0026("0C")
	Case FN0026("0D")
	Case FN0026("10")
	Case FN0026("11")
	Case FN0026("12")
	Case FN0026("13")
	Case FN0026("14")
	Case FN0026("1B")
	Case FN0026("20")
	Case FN0026("21")
	Case FN0026("22")
	Case FN0026("23")
	Case FN0026("24")
	Case FN0026("25")
	Case FN0026("26")
	Case FN0026("27")
	Case FN0026("28")
	Case FN0026("29")
	Case FN0026("2A")
	Case FN0026("2B")
	Case FN0026("2C")
	Case FN0026("2D")
	Case FN0026("2E")
	Case FN0026("30")
	Case FN0026("31")
	Case FN0026("32")
	Case FN0026("33")
	Case FN0026("34")
	Case FN0026("35")
	Case FN0026("36")
	Case FN0026("37")
	Case FN0026("38")
	Case FN0026("39")
	Case FN0026("41")
	Case FN0026("42")
	Case FN0026("43")
	Case FN0026("44")
	Case FN0026("45")
	Case FN0026("46")
	Case FN0026("47")
	Case FN0026("48")
	Case FN0026("49")
	Case FN0026("4A")
	Case FN0026("4B")
	Case FN0026("4C")
	Case FN0026("4D")
	Case FN0026("4F")
	Case FN0026("50")
	Case FN0026("51")
	Case FN0026("52")
	Case FN0026("53")
	Case FN0026("54")
	Case FN0026("55")
	Case FN0026("56")
	Case FN0026("57")
	Case FN0026("58")
	Case FN0026("59")
	Case FN0026("5A")
	Case FN0026("5B")
	Case FN0026("5C")
	Case FN0026("60")
	Case FN0026("61")
	Case FN0026("62")
	Case FN0026("63")
	Case FN0026("64")
	Case FN0026("65")
	Case FN0026("66")
	Case FN0026("67")
	Case FN0026("68")
	Case FN0026("69")
	Case FN0026("6A")
	Case FN0026("6B")
	Case FN0026("6C")
	Case FN0026("6D")
	Case FN0026("6E")
	Case FN0026("6F")
	Case FN0026("70")
	Case FN0026("71")
	Case FN0026("72")
	Case FN0026("73")
	Case FN0026("74")
	Case FN0026("75")
	Case FN0026("76")
	Case FN0026("77")
	Case FN0026("78")
	Case FN0026("79")
	Case FN0026("7A")
	Case FN0026("7B")
	Case FN0026("7C")
	Case FN0026("7D")
	Case FN0026("7E")
	Case FN0026("7F")
	Case FN0026("80H")
	Case FN0026("81H")
	Case FN0026("82H")
	Case FN0026("83H")
	Case FN0026("84H")
	Case FN0026("85H")
	Case FN0026("86H")
	Case FN0026("87H")
	Case FN0026("90")
	Case FN0026("91")
	Case FN0026("A1")
	Case FN0026("A2")
	Case FN0026("A3")
	Case FN0026("A4")
	Case FN0026("A5")
EndSelect
EndFunc


Func FN01AA($ARG00, $ARGOPT01 = 2035711, $ARGOPT02 = 1)
If Not ProcessExists($ARG00) Then
	SetError(1)
	Return 0
EndIf
Local $LOCAL015A[2] = [DllOpen("kernel32.dll")]
If @error Then
	SetError(2)
	Return 0
EndIf
Local $LOCAL015B = DllCall($LOCAL015A[0], "int", "OpenProcess", "int", $ARGOPT01, "int", $ARGOPT02, "int", $ARG00)
If @error Then
	DllClose($LOCAL015A[0])
	SetError(3)
	Return 0
EndIf
$LOCAL015A[1] = $LOCAL015B[0]
Return $LOCAL015A
EndFunc


Func FN01AB($ARG00, $ARG01, $ARGOPT02 = "dword")
If Not IsArray($ARG01) Then
	SetError(1)
	Return 0
EndIf
Local $LOCAL015C = DllStructCreate($ARGOPT02)
If @error Then
	SetError(@error + 1)
	Return 0
EndIf
DllCall($ARG01[0], "int", "ReadProcessMemory", "int", $ARG01[1], "int", $ARG00, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C), "int", "")
If Not @error Then
	Local $LOCAL015D = DllStructGetData($LOCAL015C, 1)
	Return $LOCAL015D
Else
	SetError(6)
	Return 0
EndIf
EndFunc


Func FN01AC($ARG00, $ARG01, $ARG02, $ARGOPT03 = "dword")
If Not IsArray($ARG01) Then
	SetError(1)
	Return 0
EndIf
Local $LOCAL015C = DllStructCreate($ARGOPT03)
If @error Then
	SetError(@error + 1)
	Return 0
Else
	DllStructSetData($LOCAL015C, 1, $ARG02)
	If @error Then
		SetError(6)
		Return 0
	EndIf
EndIf
DllCall($ARG01[0], "int", "WriteProcessMemory", "int", $ARG01[1], "int", $ARG00, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C), "int", "")
If Not @error Then
	Return 1
Else
	SetError(7)
	Return 0
EndIf
EndFunc


Func FN01AD($ARG00)
If Not IsArray($ARG00) Then
	SetError(1)
	Return 0
EndIf
DllCall($ARG00[0], "int", "CloseHandle", "int", $ARG00[1])
If Not @error Then
	DllClose($ARG00[0])
	Return 1
Else
	DllClose($ARG00[0])
	SetError(2)
	Return 0
EndIf
EndFunc


Func FN01AE($ARG00, $ARG01, $ARG02, $ARGOPT03 = "dword")
If IsArray($ARG02) Then
	If IsArray($ARG01) Then
		Local $LOCAL015E = UBound($ARG02) - 1
	Else
		SetError(2)
		Return 0
	EndIf
Else
	SetError(1)
	Return 0
EndIf
Local $LOCAL015F[2], $LOCAL0017
Local $LOCAL015C = DllStructCreate("dword")
For $LOCAL0017 = 0 To $LOCAL015E
	If $LOCAL0017 = $LOCAL015E Then
		$LOCAL015C = DllStructCreate($ARGOPT03)
		If @error Then
			SetError(@error + 2)
			Return 0
		EndIf
		$ARG00 = "0x" & Hex($LOCAL015F[1] + $ARG02[$LOCAL0017])
		DllCall($ARG01[0], "int", "ReadProcessMemory", "int", $ARG01[1], "int", $ARG00, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C), "int", "")
		If @error Then
			SetError(7)
			Return 0
		EndIf
		$LOCAL015F[1] = DllStructGetData($LOCAL015C, 1)
	ElseIf $LOCAL0017 = 0 Then
		DllCall($ARG01[0], "int", "ReadProcessMemory", "int", $ARG01[1], "int", $ARG00, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C), "int", "")
		If @error Then
			SetError(7)
			Return 0
		EndIf
		$LOCAL015F[1] = DllStructGetData($LOCAL015C, 1)
	Else
		$ARG00 = "0x" & Hex($LOCAL015F[1] + $ARG02[$LOCAL0017])
		DllCall($ARG01[0], "int", "ReadProcessMemory", "int", $ARG01[1], "int", $ARG00, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C), "int", "")
		If @error Then
			SetError(7)
			Return 0
		EndIf
		$LOCAL015F[1] = DllStructGetData($LOCAL015C, 1)
	EndIf
Next
$LOCAL015F[0] = $ARG00
Return $LOCAL015F
EndFunc


Func FN01AF($ARG00, $ARG01, $ARG02, $ARG03, $ARGOPT04 = "dword")
If IsArray($ARG02) Then
	If IsArray($ARG01) Then
		Local $LOCAL015E = UBound($ARG02) - 1
	Else
		SetError(2)
		Return 0
	EndIf
Else
	SetError(1)
	Return 0
EndIf
Local $VAR0587, $LOCAL0017
Local $LOCAL015C = DllStructCreate("dword")
For $LOCAL0017 = 0 To $LOCAL015E
	If $LOCAL0017 = $LOCAL015E Then
		$LOCAL015C = DllStructCreate($ARGOPT04)
		If @error Then
			SetError(@error + 3)
			Return 0
		EndIf
		DllStructSetData($LOCAL015C, 1, $ARG03)
		If @error Then
			SetError(8)
			Return 0
		EndIf
		$ARG00 = "0x" & Hex($VAR0587 + $ARG02[$LOCAL0017])
		DllCall($ARG01[0], "int", "WriteProcessMemory", "int", $ARG01[1], "int", $ARG00, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C), "int", "")
		If @error Then
			SetError(9)
			Return 0
		Else
			Return $ARG00
		EndIf
	ElseIf $LOCAL0017 = 0 Then
		DllCall($ARG01[0], "int", "ReadProcessMemory", "int", $ARG01[1], "int", $ARG00, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C), "int", "")
		If @error Then
			SetError(3)
			Return 0
		EndIf
		$VAR0587 = DllStructGetData($LOCAL015C, 1)
	Else
		$ARG00 = "0x" & Hex($VAR0587 + $ARG02[$LOCAL0017])
		DllCall($ARG01[0], "int", "ReadProcessMemory", "int", $ARG01[1], "int", $ARG00, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C), "int", "")
		If @error Then
			SetError(3)
			Return 0
		EndIf
		$VAR0587 = DllStructGetData($LOCAL015C, 1)
	EndIf
Next
EndFunc


Func FN01B0($ARG00, $ARG01)
Const $VAR0588 = 32
Const $VAR0589 = 8
Const $VAR058A = 2
Local $LOCAL0067, $VAR058B, $VAR058C, $VAR058D, $VAR058E, $VAR058F, $VAR0590
$VAR058E = 1
$VAR0591 = DllStructCreate("dword;int")
If IsArray($ARG00) Then $VAR058E = UBound($ARG00)
$VAR0592 = DllStructCreate("dword;dword[" & (3 * $VAR058E) & "]")
$VAR0593 = DllStructCreate("dword;dword[" & (3 * $VAR058E) & "]")
$VAR058D = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess")
$VAR058B = DllCall("advapi32.dll", "int", "OpenProcessToken", "hwnd", $VAR058D[0], "int", BitOR($VAR0588, $VAR0589), "int*", 0)
If $VAR058B[0] Then
	$LOCAL0067 = $VAR058B[3]
	DllStructSetData($VAR0592, 1, 1)
	$VAR058F = 1
	While $VAR058F <= $VAR058E
		If IsArray($ARG00) Then
			$VAR0590 = $ARG00[$VAR058F - 1]
		Else
			$VAR0590 = $ARG00
		EndIf
		$LOCAL011C = DllCall("advapi32.dll", "int", "LookupPrivilegeValue", "str", "", "str", $VAR0590, "ptr", DllStructGetPtr($VAR0591))
		If $LOCAL011C[0] Then
			If $ARG01 Then
				DllStructSetData($VAR0592, 2, $VAR058A, (3 * $VAR058F))
			Else
				DllStructSetData($VAR0592, 2, 0, (3 * $VAR058F))
			EndIf
			DllStructSetData($VAR0592, 2, DllStructGetData($VAR0591, 1), (3 * ($VAR058F - 1)) + 1)
			DllStructSetData($VAR0592, 2, DllStructGetData($VAR0591, 2), (3 * ($VAR058F - 1)) + 2)
			DllStructSetData($VAR0591, 1, 0)
			DllStructSetData($VAR0591, 2, 0)
		EndIf
		$VAR058F += 1
	WEnd
	$LOCAL011C = DllCall("advapi32.dll", "int", "AdjustTokenPrivileges", "hwnd", $LOCAL0067, "int", 0, "ptr", DllStructGetPtr($VAR0592), "int", DllStructGetSize($VAR0593), "ptr", DllStructGetPtr($VAR0593), "int*", 0)
	$VAR0594 = DllCall("kernel32.dll", "int", "GetLastError")
EndIf
$VAR0593 = 0
$VAR0592 = 0
$VAR0591 = 0
If $VAR058B[0] = 0 Then Return 0
$VAR058B = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $LOCAL0067)
If Not $LOCAL011C[0] And Not $VAR058B[0] Then Return 0
Return $LOCAL011C[0]
EndFunc


Func FN01B1($ARG00, $ARGOPT01 = 0)
Local $LOCAL0160 = 1048576
Local $LOCAL015C = DllStructCreate("dword;dword;dword;dword;dword;dword;dword")
Local $VAR0595
Local $VAR0596
If Not IsArray($ARG00) Then
	SetError(1)
	Return 0
EndIf
DllCall($ARG00[0], "int", "VirtualQueryEx", "int", $ARG00[1], "int", $LOCAL0160, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C))
If Not @error Then
	$VAR0595 = Hex(DllStructGetData($LOCAL015C, 2))
	$VAR0596 = Hex(DllStructGetData($LOCAL015C, 3))
	While $VAR0596 <> "00000080"
		DllCall($ARG00[0], "int", "VirtualQueryEx", "int", $ARG00[1], "int", $LOCAL0160, "ptr", DllStructGetPtr($LOCAL015C), "int", DllStructGetSize($LOCAL015C))
		$VAR0595 = Hex(DllStructGetData($LOCAL015C, 2))
		$VAR0596 = Hex(DllStructGetData($LOCAL015C, 3))
		If Hex($LOCAL0160) = "01000000" Then ExitLoop
		$LOCAL0160 += 65536
	WEnd
	If $VAR0596 = "00000080" Then
		SetError(0)
		If $ARGOPT01 = 1 Then
			Return Dec($VAR0595)
		Else
			Return $VAR0595
		EndIf
	Else
		SetError(2)
		Return 0
	EndIf
Else
	SetError(3)
	Return 0
EndIf
EndFunc

Opt("PixelCoordMode", 2)
Opt("MouseCoordMode", 2)
Global $VAR0597 = IniRead("data.ini", "Info", "Version", "")
If FN0025("Boni-Switcher " & $VAR0597 & " by CroSSie", 1) = 0 Then
MsgBox(0, "ERROR", "Der Bot läuft bereits!")
Exit
EndIf
Global $VAR0598 = "0xC85800005356576A006A006A008D45A850E8280000006A00FF750CFF75088D45A850E8440000006A006A008D45A850FF7510E8710700005F5E5BC9C210005589E58B4D0831C0894114894110C70101234567C7410489ABCDEFC74108FEDCBA98C7410C765432105DC21000C80C0000538B5D088B4310C1E80383E03F8945F88B4510C1E0030143103943107303FF43148B4510C1E81D0143146A40582B45F88945F4394510724550FF750C8B45F88D44031850E8A00700008D43185053E84E0000008B45F48945FC8B45FC83C03F39451076138B450C0345FC5053E8300000008345FC40EBE28365F800EB048365FC008B45102B45FC508B450C0345FC508B45F88D44031850E84D0700005BC9C21000C84000005356576A40FF750C8D45C050E8330700008B45088B088B50048B70088B780C89D021F089D3F7D321FB09D801C1034DC081C178A46AD7C1C10701D189C821D089CBF7D321F309D801C7037DC481C756B7C7E8C1C70C01CF89F821C889FBF7D321D309D801C60375C881C6DB702024C1C61101FE89F021"
$VAR0598 &= "F889F3F7D321CB09D801C20355CC81C2EECEBDC1C1C21601F289D021F089D3F7D321FB09D801C1034DD081C1AF0F7CF5C1C10701D189C821D089CBF7D321F309D801C7037DD481C72AC68747C1C70C01CF89F821C889FBF7D321D309D801C60375D881C6134630A8C1C61101FE89F021F889F3F7D321CB09D801C20355DC81C2019546FDC1C21601F289D021F089D3F7D321FB09D801C1034DE081C1D8988069C1C10701D189C821D089CBF7D321F309D801C7037DE481C7AFF7448BC1C70C01CF89F821C889FBF7D321D309D801C60375E881C6B15BFFFFC1C61101FE89F021F889F3F7D321CB09D801C20355EC81C2BED75C89C1C21601F289D021F089D3F7D321FB09D801C1034DF081C12211906BC1C10701D189C821D089CBF7D321F309D801C7037DF481C7937198FDC1C70C01CF89F821C889FBF7D321D309D801C60375F881C68E4379A6C1C61101FE89F021F889F3F7D321CB09D801C20355FC81C22108B449C1C21601F289D021F889FBF7D321F309D801C1034DC481C162251EF6C1C10501D189C821F089F3F7D321D"
$VAR0598 &= "309D801C7037DD881C740B340C0C1C70901CF89F821D089D3F7D321CB09D801C60375EC81C6515A5E26C1C60E01FE89F021C889CBF7D321FB09D801C20355C081C2AAC7B6E9C1C21401F289D021F889FBF7D321F309D801C1034DD481C15D102FD6C1C10501D189C821F089F3F7D321D309D801C7037DE881C753144402C1C70901CF89F821D089D3F7D321CB09D801C60375FC81C681E6A1D8C1C60E01FE89F021C889CBF7D321FB09D801C20355D081C2C8FBD3E7C1C21401F289D021F889FBF7D321F309D801C1034DE481C1E6CDE121C1C10501D189C821F089F3F7D321D309D801C7037D"
$VAR0598 &= "F881C7D60737C3C1C70901CF89F821D089D3F7D321CB09D801C60375CC81C6870DD5F4C1C60E01FE89F021C889CBF7D321FB09D801C20355E081C2ED145A45C1C21401F289D021F889FBF7D321F309D801C1034DF481C105E9E3A9C1C10501D189C821F089F3F7D321D309D801C7037DC881C7F8A3EFFCC1C70901CF89F821D089D3F7D321CB09D801C60375DC81C6D9026F67C1C60E01FE89F021C889CBF7D321FB09D801C20355F081C28A4C2A8DC1C21401F289D031F031F801C1034DD481C14239FAFFC1C10401D189C831D031F001C7037DE081C781F67187C1C70B01CF89F831C831D001C60375EC81C622619D6DC1C61001FE89F031F831C801C20355F881C20C38E5FDC1C21701F289D031F031F801C1034DC481C144EABEA4C1C10401D189C831D031F001C7037DD081C7A9CFDE4BC1C70B01CF89F831C831D001C60375DC81C6604BBBF6C1C61001FE89F031F831C801C20355E881C270BCBFBEC1C21701F289D031F031F801C1034DF481C1C67E9B28C1C10401D189C831D031F001C7037DC081C7FA27A1EAC1C70B01"
$VAR0598 &= "CF89F831C831D001C60375CC81C68530EFD4C1C61001FE89F031F831C801C20355D881C2051D8804C1C21701F289D031F031F801C1034DE481C139D0D4D9C1C10401D189C831D031F001C7037DF081C7E599DBE6C1C70B01CF89F831C831D001C60375FC81C6F87CA21FC1C61001FE89F031F831C801C20355C881C26556ACC4C1C21701F289F8F7D009D031F001C1034DC081C1442229F4C1C10601D189F0F7D009C831D001C7037DDC81C797FF2A43C1C70A01CF89D0F7D009F831C801C60375F881C6A72394ABC1C60F01FE89C8F7D009F031F801C20355D481C239A093FCC1C21501F289F8F7D009D031F001C1034DF081C1C3595B65C1C10601D189F0F7D009C831D001C7037DCC81C792CC0C8FC1C70A01CF89D0F7D009F831C801C60375E881C67DF4EFFFC1C60F01FE89C8F7D009F031F801C20355C481C2D15D8485C1C21501F289F8F7D009D031F001C1034DE081C14F7EA86FC1C10601D189F0F7D009C831D001C7037DFC81C7E0E62CFEC1C70A01CF89D0F7D009F831C801C60375D881C6144301A3C1C60F01FE89C8F"
$VAR0598 &= "7D009F031F801C20355F481C2A111084EC1C21501F289F8F7D009D031F001C1034DD081C1827E53F7C1C10601D189F0F7D009C831D001C7037DEC81C735F23ABDC1C70A01CF89D0F7D009F831C801C60375C881C6BBD2D72AC1C60F01FE89C8F7D009F031F801C20355E481C291D386EBC1C21501F28B4508010801500401700801780C5F5E5BC9C20800C814000053E840000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008F45EC8B5D0C6A088D4310508D"
$VAR0598 &= "45F850E8510000008B4310C1E80383E03F8945F483F838730B6A38582B45F48945F0EB096A78582B45F48945F0FF75F0FF75ECFF750CE831F8FFFF6A088D45F850FF750CE823F8FFFF6A1053FF7508E8050000005BC9C210005589E55156578B7D088B750C8B4D10FCF3A45F5E595DC20C00"
$VAR0599 = False
GUISetIcon("shell32.dll", -45)
GUISetFont(8, 800, 0, "MS Sans Serif")
GUICtrlCreateLabel("Benutzername", 25, 14, 84, 17)
GUICtrlCreateLabel("Passwort", 53, 38, 55, 17)
$VAR059B = GUICtrlCreateInput("", 112, 12, 137, 21)
$VAR059C = GUICtrlCreateInput("", 112, 36, 137, 21, $VAR014A)
$VAR059D = GUICtrlCreateButton("Login", 72, 72, 137, 33, $VAR019E)
GUISetState(@SW_SHOW)
Do
$VAR059E = GUIGetMsg()
Switch $VAR059E
	Case $VAR0000
		Exit
	Case $VAR059D
		Global $VAR059F = GUICtrlRead($VAR059B)
		Global $VAR05A0 = GUICtrlRead($VAR059C)
		If $VAR059F <> "" And $VAR05A0 <> "" Then
			Switch FN01BF($VAR059F, FN01C0($VAR05A0))
				Case 0
					$VAR0599 = True
				Case 1
					GUISetState(@SW_HIDE, $VAR059A)
					$VAR0599 = True
				Case 2
					$VAR0599 = True
				Case 3
					$VAR0599 = True
			EndSwitch
		Else
			$VAR0599 = True
		EndIf
EndSwitch
Until $VAR0599 = True
HotKeySet("{F6}", "Fn01B2")
HotKeySet("{F7}", "Fn01B3")
HotKeySet("{F8}", "Fn01BD")
HotKeySet("{F4}", "noob")
HotKeySet("{ESC}", "Fn01BE")
FileInstall("Aura.jpg", "Aura.jpg")
FileInstall("lOse.wav", "lOse.wav")
$VAR05A5 = GUICreate("Boni-Switcher " & $VAR0597 & " by CroSSie", 320, 440, 282, 120)
$VAR05A6 = GUICtrlCreateMenu("&Datei")
$VAR05A7 = GUICtrlCreateMenuItem("Speichern", $VAR05A6)
$VAR05A8 = GUICtrlCreateMenuItem("Ende", $VAR05A6)
$VAR05A9 = GUICtrlCreateMenu("&Einstellungen")
$VAR05AA = GUICtrlCreateMenuItem("Allgemein", $VAR05A9)
$VAR05AB = GUICtrlCreateMenu("&Info")
$VAR05AC = GUICtrlCreateMenuItem("Updates suchen!", $VAR05AB)
$VAR05AD = GUICtrlCreateMenuItem("Information", $VAR05AB)
MsgBox(48, "Cracked By", "Cracked by VoIP & 2good4you aus" & @CRLF & "http://extreme-cr4x0rz.co.de")
GUICtrlCreateTab(10, 10, 300, 405)
GUICtrlCreateTabItem("Steuerung")
GUICtrlCreateLabel("Boni-Switcher by CroSSie", 60, 50, 200, 20)
GUICtrlSetFont(-1, 14, 400, 0, "28 Days Later")
$VAR05AE = GUICtrlCreateButton("Start [F6]", 100, 80, 110, 35)
GUICtrlSetFont(-1, 14, 400, 0, "28 Days Later")
$VAR05AF = GUICtrlCreateButton("Pause [F7]", 100, 130, 110, 35)
GUICtrlSetFont(-1, 14, 400, 0, "28 Days Later")
$VAR05B0 = GUICtrlCreateButton("SchlieĂźen [F8]", 100, 180, 110, 35)
GUICtrlSetFont(-1, 14, 400, 0, "28 Days Later")
$PIC = GUICtrlCreatePic("Aura.jpg", 50, 230, 220, 180)
GUICtrlCreateTabItem("Boni-Einstellung")
$VAR05B1 = GUICtrlCreateRadio("Waffe", 70, 60, 70, 20)
$VAR05B2 = GUICtrlCreateRadio("RĂĽstung", 70, 85, 70, 20)
$VAR05B3 = GUICtrlCreateRadio("Armband", 70, 110, 70, 20)
$VAR05B4 = GUICtrlCreateRadio("Helm", 70, 135, 70, 20)
$VAR05B5 = GUICtrlCreateRadio("Schild", 170, 60, 70, 20)
$VAR05B6 = GUICtrlCreateRadio("Ohrringe", 170, 85, 70, 20)
$VAR05B7 = GUICtrlCreateRadio("Kette", 170, 110, 70, 20)
$VAR05B8 = GUICtrlCreateRadio("Schuhe", 170, 135, 70, 20)
$VAR05B9 = GUICtrlCreateRadio("Alle Bonis", 170, 160, 70, 20)
GUICtrlCreateLabel("Boniart", 60, 195, 50, 20)
GUICtrlCreateLabel("minimale Bonihöhe", 170, 195, 150, 20)
Dim $VAR05BA[5]
$VAR05BA[0] = GUICtrlCreateCombo("", 60, 220, 95, 25)
GUICtrlSetState(-1, $VAR0018)
$VAR05BA[1] = GUICtrlCreateCombo("", 60, 250, 95, 25)
GUICtrlSetState(-1, $VAR0018)
$VAR05BA[2] = GUICtrlCreateCombo("", 60, 280, 95, 25)
GUICtrlSetState(-1, $VAR0018)
$VAR05BA[3] = GUICtrlCreateCombo("", 60, 310, 95, 25)
GUICtrlSetState(-1, $VAR0018)
$VAR05BA[4] = GUICtrlCreateCombo("", 60, 340, 95, 25)
GUICtrlSetState(-1, $VAR0018)
Dim $VAR05BB[5]
$VAR05BB[0] = GUICtrlCreateInput("", 180, 220, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
$VAR05BB[1] = GUICtrlCreateInput("", 180, 250, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
$VAR05BB[2] = GUICtrlCreateInput("", 180, 280, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
$VAR05BB[3] = GUICtrlCreateInput("", 180, 310, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
$VAR05BB[4] = GUICtrlCreateInput("", 180, 340, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
Dim $VAR05BC[5]
$VAR05BC[0] = GUICtrlCreateCheckbox("", 40, 220, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05BC[1] = GUICtrlCreateCheckbox("", 40, 250, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05BC[2] = GUICtrlCreateCheckbox("", 40, 280, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05BC[3] = GUICtrlCreateCheckbox("", 40, 310, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05BC[4] = GUICtrlCreateCheckbox("", 40, 340, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05BD = GUICtrlCreateCheckbox("Alternative Bonis", 40, 370, 100, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05BE = GUICtrlCreateLabel("Für Immun gg ..." & @CRLF & "Bonihöhe = 1", 180, 370, 100, 40)
GUICtrlSetState(-1, $VAR0016)
$VAR05BF = GUICtrlCreateCheckbox("6./7. Boni Switchen", 40, 390, 130, 20)
GUICtrlSetState(-1, $VAR0016)
GUISetState()
$VAR05C0 = GUICreate("Allgemein", 290, 330, 320, 160)
GUICtrlCreateTab(7, 10, 280, 300)
GUICtrlCreateTabItem("Allgemein")
GUICtrlCreateGroup("Zeit bis zum Beenden", 20, 40, 125, 85)
GUICtrlCreateLabel("(Minuten)", 40, 55, 50, 20)
$VAR05C1 = GUICtrlCreateInput("60", 45, 75, 70, 20, $VAR0151)
$VAR05C2 = GUICtrlCreateCheckbox("", 25, 75, 20, 20)
GUICtrlSetState(-1, $VAR000F)
GUICtrlCreateGroup("Speed (in ms)", 160, 40, 120, 83)
$VAR05C3 = GUICtrlCreateSlider(170, 60, 100, 20)
GUICtrlSetLimit(-1, 15, 3)
GUICtrlSetData(-1, 6)
GUICtrlSetBkColor(-1, 16448252)
GUICtrlCreateLabel("Schnell -- Langsam", 175, 80, 100, 20)
$VAR05C4 = GUICtrlRead($VAR05C3)
$VAR05C5 = GUICtrlCreateLabel("Speed:" & $VAR05C4, 175, 100, 100, 20)
GUICtrlCreateGroup("PC Aktivität", 20, 135, 125, 115)
$VAR05C6 = GUICtrlCreateCheckbox("Ziel erreicht", 30, 155, 114, 20)
$VAR05C7 = GUICtrlCreateCheckbox("Ziel nicht erreicht", 30, 175, 114, 20)
$VAR05C8 = GUICtrlCreateCheckbox("Timeout", 30, 195, 114, 20)
$VAR05C9 = GUICtrlCreateCombo("", 35, 218, 95, 25)
GUICtrlSetData(-1, "Herrunterfahren|Standby|Metin2 Beenden", "Herrunterfahren")
GUICtrlSetState(-1, $VAR0018)
GUICtrlCreateGroup("Version", 160, 135, 120, 110)
$VAR05CA = GUICtrlCreateRadio("normale Version", 170, 155, 100, 20)
GUICtrlSetState(-1, $VAR000F)
$VAR05CB = GUICtrlCreateRadio("Special Versionen", 170, 175, 105, 20)
GUICtrlCreateLabel("Special Versionen:" & @CRLF & "- eDgMt2" & @CRLF & "- SoG-Mt2", 180, 200, 80, 40)
GUICtrlCreateTabItem("Funktionen")
GUICtrlCreateGroup("Funktionen", 20, 40, 250, 105)
$VAR05CC = GUICtrlCreateCheckbox("PK - Mode", 30, 60, 100, 20)
GUICtrlSetState(-1, $VAR000F)
$VAR05CD = GUICtrlCreateCheckbox("Sounds", 30, 80, 100, 20)
GUICtrlSetState(-1, $VAR000F)
$VAR05CE = GUICtrlCreateCheckbox("auto. Update", 150, 60, 114, 20)
GUICtrlSetState(-1, $VAR000F)
$VAR05CF = GUICtrlCreateCheckbox("Relogger", 150, 80, 114, 20)
$VAR05D0 = GUICtrlCreateCheckbox("auto. Boni-Nachkauf", 30, 110, 180, 20)
$VAR05D1 = GUICtrlCreateGroup("Boni-Nachkauf", 20, 150, 125, 120)
GUICtrlSetState(-1, $VAR0016)
$VAR05D2 = GUICtrlCreateInput("42", 30, 220, 90, 20)
GUICtrlSetState(-1, $VAR0016)
$VAR05D3 = GUICtrlCreateLabel("Wie viele Boni sollen gekauft werden?", 30, 175, 110, 40)
GUICtrlSetState(-1, $VAR0016)
$VAR05D4 = GUICtrlCreateGroup("Relogger", 150, 150, 125, 120)
GUICtrlSetState(-1, $VAR0016)
$VAR05D5 = GUICtrlCreateInput("Benutzername", 160, 180, 100, 20)
GUICtrlSetState(-1, $VAR0016)
$VAR05D6 = GUICtrlCreateInput("Passwort", 160, 210, 100, 20, $VAR014A)
GUICtrlSetState(-1, $VAR0016)
$VAR05D7 = GUICtrlCreateCombo("Charnummer", 160, 240, 100, 20)
GUICtrlSetData(-1, "1|2|3|4", "Charnummer")
GUICtrlSetState(-1, $VAR0016)
$VAR05D8 = GUICtrlCreateLabel("Charnummer im Uhrzeigersinn (Rechtsklick)", 40, 280, 250, 20)
GUICtrlSetState(-1, $VAR0016)
GUISetState(@SW_HIDE)
$VAR05D9 = GUICreate("Information", 270, 350, 282, 120)
GUICtrlCreateTab(10, 10, 300, 20)
GUICtrlCreateTabItem("Der Bot")
GUICtrlCreateLabel("Der Boni-Switcher", 50, 40, 250, 20)
GUICtrlCreateLabel("Metin im Fenster Modus", 50, 70, 250, 20)
GUICtrlCreateLabel("Gegenstand oben links ins Inventar!", 50, 90, 250, 20)
GUICtrlCreateLabel("Zweiten Slot im Inventar frei halten.", 50, 110, 150, 30)
GUICtrlCreateLabel("(bzw mit Boni-Ändern füllen)", 50, 140, 150, 20)
GUICtrlCreateLabel("Inventar und Händlerfenster NICHT!!! verschieben!", 50, 170, 150, 40)
GUICtrlSetColor(-1, 16711680)
$VAR05DA = GUICtrlCreateLabel("Cracked by us !", 80, 220, 70, 40)
GUICtrlSetColor(-1, 255)
GUICtrlSetCursor(-1, 3)
GUISetState(@SW_HIDE)
$VAR05DB = GUICreate("Boni-Switcher " & $VAR0597 & " cracked by VoIP", 320, 240, 615, 340)
GUICtrlCreateLabel("Boniart", 60, 25, 50, 20)
GUICtrlCreateLabel("minimale Bonihöhe", 170, 25, 150, 20)
Dim $VAR05DC[5]
$VAR05DC[0] = GUICtrlCreateCombo("", 60, 50, 95, 25)
GUICtrlSetState(-1, $VAR0018)
$VAR05DC[1] = GUICtrlCreateCombo("", 60, 80, 95, 25)
GUICtrlSetState(-1, $VAR0018)
$VAR05DC[2] = GUICtrlCreateCombo("", 60, 110, 95, 25)
GUICtrlSetState(-1, $VAR0018)
$VAR05DC[3] = GUICtrlCreateCombo("", 60, 140, 95, 25)
GUICtrlSetState(-1, $VAR0018)
$VAR05DC[4] = GUICtrlCreateCombo("", 60, 170, 95, 25)
GUICtrlSetState(-1, $VAR0018)
Dim $VAR05DD[5]
$VAR05DD[0] = GUICtrlCreateInput("", 180, 50, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
$VAR05DD[1] = GUICtrlCreateInput("", 180, 80, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
$VAR05DD[2] = GUICtrlCreateInput("", 180, 110, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
$VAR05DD[3] = GUICtrlCreateInput("", 180, 140, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
$VAR05DD[4] = GUICtrlCreateInput("", 180, 170, 50, 21, $VAR0151)
GUICtrlSetState(-1, $VAR0018)
Dim $VAR05DE[5]
$VAR05DE[0] = GUICtrlCreateCheckbox("", 40, 50, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05DE[1] = GUICtrlCreateCheckbox("", 40, 80, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05DE[2] = GUICtrlCreateCheckbox("", 40, 110, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05DE[3] = GUICtrlCreateCheckbox("", 40, 140, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05DE[4] = GUICtrlCreateCheckbox("", 40, 170, 20, 20)
GUICtrlSetState(-1, $VAR0018)
$VAR05DF = GUICtrlCreateButton("Bestätigen", 100, 200, 110, 35)
GUISetState(@SW_HIDE)
FN01B6()
FN01B4()
FN01B3()
NOOB()

Func NOOB()
MsgBox(48, "Cracked By", "Cracked by VoIP & 2good4you aus" & @CRLF & "http://extreme-cr4x0rz.co.de")
EndFunc


Func FN01B2()
FN01B5()
GUISetState(@SW_HIDE, $VAR05DB)
$VAR05E0 = MsgBox(1, "Fenstername", "Bitte Metin-Fenster aktivieren!! (3 Sek Zeit)")
If $VAR05E0 = 1 Then
	Sleep(3000)
	Global $VAR05E1 = WinGetTitle("[active]")
	$VAR05E2 = MsgBox(36, "Bestätigung", "Fenstername: '" & $VAR05E1 & "' korrekt?", 20)
	If $VAR05E2 = 6 Then
		WinActivate($VAR05E1)
		Global $VAR05E3 = WinGetClientSize($VAR05E1)
	Else
		FN01B3()
	EndIf
Else
	FN01B3()
EndIf
WinWaitActive($VAR05E1)
Sleep(1000)
Global $VAR05E4 = WinGetProcess(WinGetTitle("[active]"))
Global $VAR05E5 = FN01AA($VAR05E4)
Global $VAR05E6 = FN01B1($VAR05E5, 1)
Global $VAR05E7 = "0x89"
Global $VAR05E8 = "0x95"
Global $VAR05E9 = "3"
If GUICtrlRead($VAR05CA) = 1 Then
	Global $VAR05EA = Dec("001EF734")
ElseIf GUICtrlRead($VAR05CB) = 1 Then
	Global $VAR05EA = Dec("001EF6F4")
EndIf
Global $VAR05EB = "0x" & Hex($VAR05E6 + $VAR05EA)
If GUICtrlRead($VAR05CC) = 1 Then Send("{ENTER}/pk 771{ENTER}{ENTER}")
If GUICtrlRead($VAR05C2) = 4 Then $VAR05EC = 9999999
If GUICtrlRead($VAR05BF) = 1 Then
	Global $VAR05ED = 7218688
	Global $VAR05E7 = "0x98"
	Global $VAR05E8 = "0x9B"
EndIf
$VAR0539 = TimerInit()
While TimerDiff($VAR0539) < $VAR05EC * 1000 * 60
	Sleep($VAR05C4 * 50)
	FN01B7(0)
	If PixelGetColor($VAR05EE + $VAR05EF + $VAR05E3[0], $VAR05F0 + $VAR05E3[1]) <> $VAR05ED Then
		$VAR05F1 = PixelSearch(-167 + $VAR05E3[0], -357 + $VAR05E3[1], -10 + $VAR05E3[0], -73 + $VAR05E3[1], $VAR05ED)
		If Not @error Then
			MouseClick("left", $VAR05F1[0], $VAR05F1[1])
			MouseClick("left", $VAR05EE + $VAR05EF + $VAR05E3[0], $VAR05F0 + $VAR05E3[1])
			Sleep(1000)
		ElseIf @error Then
			MouseClick("left", $VAR05F2 + $VAR05E3[0], $VAR05F3 + $VAR05E3[1])
			Sleep(1000)
			$VAR05F1 = PixelSearch(-167 + $VAR05E3[0], -357 + $VAR05E3[1], -10 + $VAR05E3[0], -73 + $VAR05E3[1], $VAR05ED)
			If Not @error Then
				MouseClick("left", $VAR05F1[0], $VAR05F1[1])
				MouseClick("left", $VAR05F4 + $VAR05E3[0], $VAR05F5 + $VAR05E3[1])
				MouseClick("left", $VAR05EE + $VAR05EF + $VAR05E3[0], $VAR05F0 + $VAR05E3[1])
				Sleep(1000)
			ElseIf @error Then
				If GUICtrlRead($VAR05D0) = 1 Then
					$VAR05F6 = PixelSearch(-384 + $VAR05E3[0], -550 + $VAR05E3[1], -229 + $VAR05E3[0], -303 + $VAR05E3[1], $VAR05ED)
					If @error Then
						If GUICtrlRead($VAR05CF) = 1 Then
							$VAR05F7 = PixelSearch(-123 + $VAR05E3[0], -591 + $VAR05E3[1], -65 + $VAR05E3[0], -580 + $VAR05E3[1], $VAR05F8)
							If @error Then
								FN01B9()
							Else
								FN01BC()
							EndIf
						Else
							FN01BC()
						EndIf
					Else
						MouseClick("left", $VAR05F4 + $VAR05E3[0], $VAR05F5 + $VAR05E3[1])
						MouseClick("right", $VAR05F6[0], $VAR05F6[1], $VAR05F9)
						Sleep(1000)
					EndIf
				Else
					FN01BC()
				EndIf
			EndIf
		EndIf
	EndIf
	MouseClick("left", $VAR05EE + $VAR05EF + $VAR05E3[0], $VAR05F0 + $VAR05E3[1], 1, 3)
	MouseClick("left", $VAR05EE + $VAR05E3[0], $VAR05F0 + $VAR05E3[1], 1, 3)
	MouseClick("right", $VAR05F4 + $VAR05E3[0], $VAR05F5 + $VAR05E3[1], 1, 3)
WEnd
If GUICtrlRead($VAR05C8) = 1 Then
	If FN01C1() = 1 Then
		FN015D("http://crossie.cr.funpic.de/logout.php?benutzername=" & $VAR059F & "&passwort=" & $VAR05A0)
		Switch GUICtrlRead($VAR05C9)
			Case "Herrunterfahren"
				For $LOCAL0017 = 10 To 0 Step -1
					ToolTip("Computer wird in " & $LOCAL0017 & " Sekunden herruntergefahren (Abbruch F8)")
					Sleep(1000)
				Next
				Shutdown(5)
			Case "Standby"
				For $LOCAL0017 = 10 To 0 Step -1
					ToolTip("Computer wird in " & $LOCAL0017 & " Sekunden in Standby gesetzt (Abbruch F8)")
					Sleep(1000)
				Next
				Shutdown(32)
			Case "Metin2 Beenden"
				For $LOCAL0017 = 10 To 0 Step -1
					ToolTip("Metin2 wird in " & $LOCAL0017 & " Sekunden geschlossen (Abbruch F8)")
					Sleep(1000)
				Next
				ProcessClose($VAR05E4)
				ToolTip("")
		EndSwitch
	Else
		Exit
		FN01B3()
	EndIf
EndIf
FN01BD()
EndFunc

MsgBox(48, "Cracked By", "Cracked by VoIP & 2good4you aus" & @CRLF & "http://extreme-cr4x0rz.co.de")

Func FN01B3()
GUISetState(@SW_SHOW, $VAR05A5)
WinActivate("Boni-Switcher " & $VAR0597 & " by CroSSie")
While 1
	$VAR05FA = GUIGetMsg(1)
	Switch $VAR05FA[0]
		Case $VAR05AE
			FN01B4()
			GUISetState(@SW_MINIMIZE, $VAR05A5)
			FN01B2()
		Case $VAR05AF
			FN01B3()
		Case $VAR05B0
			FN01BD()
		Case $PIC
			_IECREATE("http://extreme-cr4x0rz.co.de")
		Case $VAR05AA
			If GUICtrlRead($VAR05C2) = 1 Then
				GUICtrlSetState($VAR05C1, $VAR0017)
				GUICtrlSetState($VAR05C8, $VAR0017)
			ElseIf GUICtrlRead($VAR05C2) = 4 Then
				GUICtrlSetState($VAR05C1, $VAR0018)
				GUICtrlSetState($VAR05C8, $VAR0018)
			EndIf
			If GUICtrlRead($VAR05D0) = 1 Then
				GUICtrlSetState($VAR05D2, $VAR0015)
				GUICtrlSetState($VAR05D1, $VAR0015)
				GUICtrlSetState($VAR05D3, $VAR0015)
			ElseIf GUICtrlRead($VAR05D0) = 4 Then
				GUICtrlSetState($VAR05D2, $VAR0016)
				GUICtrlSetState($VAR05D1, $VAR0016)
				GUICtrlSetState($VAR05D3, $VAR0016)
			EndIf
			GUICtrlSetData($VAR05C5, "Speed:" & $VAR05C4 * 50)
			GUISetState(@SW_SHOW, $VAR05C0)
		Case $VAR05AC
			FN01BA()
		Case $VAR05AD
			GUISetState(@SW_SHOW, $VAR05D9)
		Case $VAR05A7
			FN01B5()
		Case $VAR05A8
			FN015D("http://crossie.cr.funpic.de/logout.php?benutzername=" & $VAR059F & "&passwort=" & $VAR05A0)
			Exit
		Case $VAR05C3
			$VAR05C4 = GUICtrlRead($VAR05C3)
			GUICtrlSetData($VAR05C5, "Speed:" & $VAR05C4 * 50)
		Case $VAR05C2
			If GUICtrlRead($VAR05C2) = 1 Then
				GUICtrlSetState($VAR05C1, $VAR0017)
				GUICtrlSetState($VAR05C8, $VAR0017)
			ElseIf GUICtrlRead($VAR05C2) = 4 Then
				GUICtrlSetState($VAR05C1, $VAR0018)
				GUICtrlSetState($VAR05C8, $VAR0018)
			EndIf
		Case $VAR05B1
			GUICtrlSetState($VAR05BE, $VAR0016)
			If GUICtrlRead($VAR05B1) = 1 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05BC[$LOCAL0017], $VAR0017)
					GUICtrlSetData($VAR05BA[$LOCAL0017], "")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "")
					GUICtrlSetData($VAR05BA[$LOCAL0017], "Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Intelligenz|Stärke|Beweglichkeit|Vitalität||Kritischer Treffer|Durchbohrender Treffer||Ohnmacht|Gift|Verlangsamung||Zauberspeed||Durchschn. Schaden|Fertigkeitsschaden", "Halbmenschen")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Intelligenz|Stärke|Beweglichkeit|Vitalität||Kritischer Treffer|Durchbohrender Treffer||Ohnmacht|Gift|Verlangsamung||Zauberspeed||Durchschn. Schaden|Fertigkeitsschaden", "Halbmenschen")
				Next
				GUICtrlSetState($VAR05BD, $VAR0017)
				GUICtrlSetState($VAR05BF, $VAR0016)
			EndIf
		Case $VAR05B3
			GUICtrlSetState($VAR05BE, $VAR0016)
			If GUICtrlRead($VAR05B3) = 1 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05BC[$LOCAL0017], $VAR0017)
					GUICtrlSetData($VAR05BA[$LOCAL0017], "")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "")
					GUICtrlSetData($VAR05BA[$LOCAL0017], "Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Magiewiderstand|Blitzwiderstand|Windwiderstand|Feuerwiderstand||Max TP|Max MP||Durchbohrender Treffer||Doppel Gegenstände|TP-Absorb|Manaraub", "Halbmenschen")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Magiewiderstand|Blitzwiderstand|Windwiderstand|Feuerwiderstand||Max TP|Max MP||Durchbohrender Treffer||Doppel Gegenstände|TP-Absorb|Manaraub", "Halbmenschen")
				Next
				GUICtrlSetState($VAR05BD, $VAR0017)
				GUICtrlSetState($VAR05BF, $VAR0016)
			EndIf
		Case $VAR05B4
			GUICtrlSetState($VAR05BE, $VAR0016)
			If GUICtrlRead($VAR05B4) = 1 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05BC[$LOCAL0017], $VAR0017)
					GUICtrlSetData($VAR05BA[$LOCAL0017], "")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "")
					GUICtrlSetData($VAR05BA[$LOCAL0017], "Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Magiewiderstand|Blitzwiderstand|Windwiderstand|Feuerwiderstand||TP-Regeneration|MP-Regeneration||Gift|MP-Absorb.|Angriffsspeed|Pfeil ausweichen", "Halbmenschen")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Magiewiderstand|Blitzwiderstand|Windwiderstand|Feuerwiderstand||TP-Regeneration|MP-Regeneration||Gift|MP-Absorb.|Angriffsspeed|Pfeil ausweichen", "Halbmenschen")
				Next
				GUICtrlSetState($VAR05BD, $VAR0017)
				GUICtrlSetState($VAR05BF, $VAR0016)
			EndIf
		Case $VAR05B7
			GUICtrlSetState($VAR05BE, $VAR0016)
			If GUICtrlRead($VAR05B7) = 1 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05BC[$LOCAL0017], $VAR0017)
					GUICtrlSetData($VAR05BA[$LOCAL0017], "")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "")
					GUICtrlSetData($VAR05BA[$LOCAL0017], "Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Glockenverteidigung|Fächerverteidigung|Pfeilwiderstand||Max TP|Max MP||Kritischer Treffer|Durchbohrender Treffer||TP-Regeneration|MP-Regeneration||EXP-Bonus|Doppel Yang||Ohnmacht|MP-Absorb|Manaraub", "Max TP")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Glockenverteidigung|Fächerverteidigung|Pfeilwiderstand||Max TP|Max MP||Kritischer Treffer|Durchbohrender Treffer||TP-Regeneration|MP-Regeneration||EXP-Bonus|Doppel Yang||Ohnmacht|MP-Absorb|Manaraub", "Max TP")
				Next
				GUICtrlSetState($VAR05BD, $VAR0017)
				GUICtrlSetState($VAR05BF, $VAR0016)
			EndIf
		Case $VAR05B6
			GUICtrlSetState($VAR05BE, $VAR0016)
			If GUICtrlRead($VAR05B6) = 1 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05BC[$LOCAL0017], $VAR0017)
					GUICtrlSetData($VAR05BA[$LOCAL0017], "")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "")
					GUICtrlSetData($VAR05BA[$LOCAL0017], "Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Glockenverteidigung|Fächerverteidigung|Pfeilwiderstand||Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Bewegungsspeed|Giftwiderstand|Manaraub|Doppel Gegenstand", "Halbmenschen")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Glockenverteidigung|Fächerverteidigung|Pfeilwiderstand||Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Bewegungsspeed|Giftwiderstand|Manaraub|Doppel Gegenstand", "Halbmenschen")
				Next
				GUICtrlSetState($VAR05BD, $VAR0017)
				GUICtrlSetState($VAR05BF, $VAR0016)
			EndIf
		Case $VAR05B2
			GUICtrlSetState($VAR05BE, $VAR0016)
			If GUICtrlRead($VAR05B2) = 1 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05BC[$LOCAL0017], $VAR0017)
					GUICtrlSetData($VAR05BA[$LOCAL0017], "")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "")
					GUICtrlSetData($VAR05BA[$LOCAL0017], "Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Glockenverteidigung|Fächerverteidigung|Pfeilwiderstand||Magiewiderstand|Blitzwiderstand|Windwiderstand|Feuerwiderstand||Max TP|Max MP||TP-Absorb|Mp-Absorb||Reflektieren|Zauberspeed|Angriffswert", "Max TP")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Glockenverteidigung|Fächerverteidigung|Pfeilwiderstand||Magiewiderstand|Blitzwiderstand|Windwiderstand|Feuerwiderstand||Max TP|Max MP||TP-Absorb|Mp-Absorb||Reflektieren|Zauberspeed|Angriffswert", "Max TP")
				Next
				GUICtrlSetState($VAR05BD, $VAR0017)
				GUICtrlSetState($VAR05BF, $VAR0016)
			EndIf
		Case $VAR05B5
			GUICtrlSetState($VAR05BE, $VAR0015)
			If GUICtrlRead($VAR05B5) = 1 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05BC[$LOCAL0017], $VAR0017)
					GUICtrlSetData($VAR05BA[$LOCAL0017], "")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "")
					GUICtrlSetData($VAR05BA[$LOCAL0017], "Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Intelligenz|Stärke|Beweglichkeit|Vitalität||Immun gg Ohnmacht|Immun gg Verlangsamung||Abblocken|Reflektieren||EXP-Bonus|Doppel Yang", "Immun gg Ohnmacht")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "Halbmenschen|Untote|Orks|Esoterische|Teufel|Tiere||Intelligenz|Stärke|Beweglichkeit|Vitalität||Immun gg Ohnmacht|Immun gg Verlangsamung||Abblocken|Reflektieren||EXP-Bonus|Doppel Yang", "Immun gg Ohnmacht")
				Next
				GUICtrlSetState($VAR05BD, $VAR0017)
				GUICtrlSetState($VAR05BF, $VAR0016)
			EndIf
		Case $VAR05B8
			GUICtrlSetState($VAR05BE, $VAR0016)
			If GUICtrlRead($VAR05B8) = 1 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05BC[$LOCAL0017], $VAR0017)
					GUICtrlSetData($VAR05BA[$LOCAL0017], "")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "")
					GUICtrlSetData($VAR05BA[$LOCAL0017], "Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Glockenverteidigung|Fächerverteidigung|Pfeilwiderstand||Max TP|Max MP||Ohnmacht|Verlangsamung||EXP-Bonus|Doppel Yang||Kritischer Treffer|Pfeil ausweichen|Angriffsspeed", "Max TP")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Glockenverteidigung|Fächerverteidigung|Pfeilwiderstand||Max TP|Max MP||Ohnmacht|Verlangsamung||EXP-Bonus|Doppel Yang||Kritischer Treffer|Pfeil ausweichen|Angriffsspeed", "Max TP")
				Next
				GUICtrlSetState($VAR05BD, $VAR0017)
				GUICtrlSetState($VAR05BF, $VAR0016)
			EndIf
		Case $VAR05B9
			GUICtrlSetState($VAR05BE, $VAR0015)
			If GUICtrlRead($VAR05B9) = 1 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05BC[$LOCAL0017], $VAR0017)
					GUICtrlSetData($VAR05BA[$LOCAL0017], "")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "")
					GUICtrlSetData($VAR05BA[$LOCAL0017], "Max TP|Max MP||Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Pfeilwiderstand|Glockenverteidigung|Fächerverteidigung|" & "|Magiewiderstand|Blitzwiderstand|Windwiderstand|Feuerwiderstand|Giftwiderstand|" & "|Halbmenschen|Tiere|Orks|Esoterische|Untote|Teufel||Abblocken|Reflektieren|Fluch Reflektieren|Pfeil ausweichen|" & "|Vitalität|Intelligenz|Stärke|Beweglichkeit|" & "|TP-Regeneration|MP-Regeneration|TP-Absorb|MP-Absorb|TP-Wiederherstellen|MP-Wiederherstellen|Manaraub|MP-Zurückerhalten|" & "|Immun gg Ohnmacht|Immun gg Verlangsamen|Immun gg Stürzen|" & "|Angriffsspeed|Bewegungsspeed|Zauberspeed|" & "|Kritischer Treffer|Durchbohrender Treffer|" & "|Durchschn. Schaden|Fertigkeitsschaden|" & "|Gift|Ohnmacht|Verlangsamung|" & "|Widerstand gg Fertigkeiten|Durchschn. Schadenswiderstand|" & "|EXP-Bonus|Doppel Yang|Doppel Gegenstände||Angriffswert|Bogenreichweite||Magischer Angriffswert|Magische Verteidigung||Ausdauer|Effekt Zuwachs||" & "Stark gg Krieger|Stark gg Sura|Stark gg Ninja|Stark gg Schami|Stark gg Monster||Abwehr gg Krieger|Abwehr gg Ninja|Abwehr gg Sura|Abwehr gg Schami", "Max TP")
					GUICtrlSetData($VAR05DC[$LOCAL0017], "Max TP|Max MP||Schwertverteidigung|Zweihandverteidigung|Dolchverteidigung|Pfeilwiderstand|Glockenverteidigung|Fächerverteidigung|" & "|Magiewiderstand|Blitzwiderstand|Windwiderstand|Feuerwiderstand|Giftwiderstand|" & "|Halbmenschen|Tiere|Orks|Esoterische|Untote|Teufel||Abblocken|Reflektieren|Fluch Reflektieren|Pfeil ausweichen|" & "|Vitalität|Intelligenz|Stärke|Beweglichkeit|" & "|TP-Regeneration|MP-Regeneration|TP-Absorb|MP-Absorb|TP-Wiederherstellen|MP-Wiederherstellen|Manaraub|MP-Zurückerhalten|" & "|Immun gg Ohnmacht|Immun gg Verlangsamen|Immun gg Stürzen|" & "|Angriffsspeed|Bewegungsspeed|Zauberspeed|" & "|Kritischer Treffer|Durchbohrender Treffer|" & "|Durchschn. Schaden|Fertigkeitsschaden|" & "|Gift|Ohnmacht|Verlangsamung|" & "|Widerstand gg Fertigkeiten|Durchschn. Schadenswiderstand|" & "|EXP-Bonus|Doppel Yang|Doppel Gegenstände||Angriffswert|Bogenreichweite||Magischer Angriffswert|Magische Verteidigung||Ausdauer|Effekt Zuwachs" & "Stark gg Krieger|Stark gg Sura|Stark gg Ninja|Stark gg Schami|Stark gg Monster||Abwehr gg Krieger|Abwehr gg Ninja|Abwehr gg Sura|Abwehr gg Schami", "Max TP")
				Next
				GUICtrlSetState($VAR05BD, $VAR0017)
				GUICtrlSetState($VAR05BF, $VAR0015)
			EndIf
		Case $VAR05BC[0]
			If GUICtrlRead($VAR05BC[0]) = 1 Then
				GUICtrlSetState($VAR05BA[0], $VAR0017)
				GUICtrlSetState($VAR05BB[0], $VAR0017)
				GUICtrlSetState($VAR05DE[0], $VAR0017)
			ElseIf GUICtrlRead($VAR05BC[0]) = 4 Then
				GUICtrlSetState($VAR05BA[0], $VAR0018)
				GUICtrlSetState($VAR05BB[0], $VAR0018)
				GUICtrlSetState($VAR05DE[0], $VAR0018)
				GUICtrlSetState($VAR05DE[0], $VAR0011)
			EndIf
		Case $VAR05BC[1]
			If GUICtrlRead($VAR05BC[1]) = 1 Then
				GUICtrlSetState($VAR05BA[1], $VAR0017)
				GUICtrlSetState($VAR05BB[1], $VAR0017)
				GUICtrlSetState($VAR05DE[1], $VAR0017)
			ElseIf GUICtrlRead($VAR05BC[1]) = 4 Then
				GUICtrlSetState($VAR05BA[1], $VAR0018)
				GUICtrlSetState($VAR05BB[1], $VAR0018)
				GUICtrlSetState($VAR05DE[1], $VAR0018)
				GUICtrlSetState($VAR05DE[1], $VAR0011)
			EndIf
		Case $VAR05BC[2]
			If GUICtrlRead($VAR05BC[2]) = 1 Then
				GUICtrlSetState($VAR05BA[2], $VAR0017)
				GUICtrlSetState($VAR05BB[2], $VAR0017)
				GUICtrlSetState($VAR05DE[2], $VAR0017)
			ElseIf GUICtrlRead($VAR05BC[2]) = 4 Then
				GUICtrlSetState($VAR05BA[2], $VAR0018)
				GUICtrlSetState($VAR05BB[2], $VAR0018)
				GUICtrlSetState($VAR05DE[2], $VAR0018)
				GUICtrlSetState($VAR05DE[2], $VAR0011)
			EndIf
		Case $VAR05BC[3]
			If GUICtrlRead($VAR05BC[3]) = 1 Then
				GUICtrlSetState($VAR05BA[3], $VAR0017)
				GUICtrlSetState($VAR05BB[3], $VAR0017)
				GUICtrlSetState($VAR05DE[3], $VAR0017)
			ElseIf GUICtrlRead($VAR05BC[3]) = 4 Then
				GUICtrlSetState($VAR05BA[3], $VAR0018)
				GUICtrlSetState($VAR05BB[3], $VAR0018)
				GUICtrlSetState($VAR05DE[3], $VAR0018)
				GUICtrlSetState($VAR05DE[3], $VAR0011)
			EndIf
		Case $VAR05BC[4]
			If GUICtrlRead($VAR05BC[4]) = 1 Then
				GUICtrlSetState($VAR05BA[4], $VAR0017)
				GUICtrlSetState($VAR05BB[4], $VAR0017)
				GUICtrlSetState($VAR05DE[4], $VAR0017)
			ElseIf GUICtrlRead($VAR05BC[4]) = 4 Then
				GUICtrlSetState($VAR05BA[4], $VAR0018)
				GUICtrlSetState($VAR05BB[4], $VAR0018)
				GUICtrlSetState($VAR05DE[4], $VAR0018)
				GUICtrlSetState($VAR05DE[4], $VAR0011)
			EndIf
		Case $VAR05DE[0]
			If GUICtrlRead($VAR05DE[0]) = 1 Then
				GUICtrlSetState($VAR05DC[0], $VAR0017)
				GUICtrlSetState($VAR05DD[0], $VAR0017)
			ElseIf GUICtrlRead($VAR05DE[0]) = 4 Then
				GUICtrlSetState($VAR05DC[0], $VAR0018)
				GUICtrlSetState($VAR05DD[0], $VAR0018)
			EndIf
		Case $VAR05DE[1]
			If GUICtrlRead($VAR05DE[1]) = 1 Then
				GUICtrlSetState($VAR05DC[1], $VAR0017)
				GUICtrlSetState($VAR05DD[1], $VAR0017)
			ElseIf GUICtrlRead($VAR05DE[1]) = 4 Then
				GUICtrlSetState($VAR05DC[1], $VAR0018)
				GUICtrlSetState($VAR05DD[1], $VAR0018)
			EndIf
		Case $VAR05DE[2]
			If GUICtrlRead($VAR05DE[2]) = 1 Then
				GUICtrlSetState($VAR05DC[2], $VAR0017)
				GUICtrlSetState($VAR05DD[2], $VAR0017)
			ElseIf GUICtrlRead($VAR05DE[2]) = 4 Then
				GUICtrlSetState($VAR05DC[2], $VAR0018)
				GUICtrlSetState($VAR05DD[2], $VAR0018)
			EndIf
		Case $VAR05DE[3]
			If GUICtrlRead($VAR05DE[3]) = 1 Then
				GUICtrlSetState($VAR05DC[3], $VAR0017)
				GUICtrlSetState($VAR05DD[3], $VAR0017)
			ElseIf GUICtrlRead($VAR05DE[3]) = 4 Then
				GUICtrlSetState($VAR05DC[3], $VAR0018)
				GUICtrlSetState($VAR05DD[3], $VAR0018)
			EndIf
		Case $VAR05DE[4]
			If GUICtrlRead($VAR05DE[4]) = 1 Then
				GUICtrlSetState($VAR05DC[4], $VAR0017)
				GUICtrlSetState($VAR05DD[4], $VAR0017)
			ElseIf GUICtrlRead($VAR05DE[4]) = 4 Then
				GUICtrlSetState($VAR05DC[4], $VAR0018)
				GUICtrlSetState($VAR05DD[4], $VAR0018)
			EndIf
		Case $VAR05BD
			If GUICtrlRead($VAR05BD) = 1 Then
				GUISetState(@SW_SHOW, $VAR05DB)
			ElseIf GUICtrlRead($VAR05BD) = 4 Then
				For $LOCAL0017 = 0 To 4
					GUICtrlSetState($VAR05DC[$LOCAL0017], $VAR0018)
					GUICtrlSetState($VAR05DD[$LOCAL0017], $VAR0018)
					GUICtrlSetState($VAR05DE[$LOCAL0017], $VAR0011)
					GUISetState(@SW_HIDE, $VAR05DB)
				Next
			EndIf
		Case $VAR05DF
			GUISetState(@SW_HIDE, $VAR05DB)
			WinActivate("Boni-Switcher " & $VAR0597 & " by CroSSie")
		Case $VAR05D0
			If GUICtrlRead($VAR05D0) = 1 Then
				GUICtrlSetState($VAR05D2, $VAR0015)
				GUICtrlSetState($VAR05D1, $VAR0015)
				GUICtrlSetState($VAR05D3, $VAR0015)
			ElseIf GUICtrlRead($VAR05D0) = 4 Then
				GUICtrlSetState($VAR05D2, $VAR0016)
				GUICtrlSetState($VAR05D1, $VAR0016)
				GUICtrlSetState($VAR05D3, $VAR0016)
			EndIf
		Case $VAR05C6
			If GUICtrlRead($VAR05C6) = 1 Then
				GUICtrlSetState($VAR05C9, $VAR0017)
			ElseIf GUICtrlRead($VAR05C6) = 4 Then
				If GUICtrlRead($VAR05C7) = 1 Or GUICtrlRead($VAR05C8) = 1 Then
				Else
					GUICtrlSetState($VAR05C9, $VAR0018)
				EndIf
			EndIf
		Case $VAR05C7
			If GUICtrlRead($VAR05C7) = 1 Then
				GUICtrlSetState($VAR05C9, $VAR0017)
			ElseIf GUICtrlRead($VAR05C7) = 4 Then
				If GUICtrlRead($VAR05C6) = 1 Or GUICtrlRead($VAR05C8) = 1 Then
				Else
					GUICtrlSetState($VAR05C9, $VAR0018)
				EndIf
			EndIf
		Case $VAR05C8
			If GUICtrlRead($VAR05C8) = 1 Then
				GUICtrlSetState($VAR05C9, $VAR0017)
			ElseIf GUICtrlRead($VAR05C8) = 4 Then
				If GUICtrlRead($VAR05C6) = 1 Or GUICtrlRead($VAR05C7) = 1 Then
				Else
					GUICtrlSetState($VAR05C9, $VAR0018)
				EndIf
			EndIf
		Case $VAR05CF
			If GUICtrlRead($VAR05CF) = 1 Then
				GUICtrlSetState($VAR05D5, $VAR0015)
				GUICtrlSetState($VAR05D6, $VAR0015)
				GUICtrlSetState($VAR05D7, $VAR0015)
				GUICtrlSetState($VAR05D8, $VAR0015)
				GUICtrlSetState($VAR05D4, $VAR0015)
			ElseIf GUICtrlRead($VAR05CF) = 4 Then
				GUICtrlSetState($VAR05D5, $VAR0016)
				GUICtrlSetState($VAR05D6, $VAR0016)
				GUICtrlSetState($VAR05D7, $VAR0016)
				GUICtrlSetState($VAR05D8, $VAR0016)
				GUICtrlSetState($VAR05D4, $VAR0016)
			EndIf
		Case $VAR0000
			Switch $VAR05FA[1]
				Case $VAR05A5
					FN01B5()
					If FN01C1() = 1 Then
						FN015D("http://crossie.cr.funpic.de/logout.php?benutzername=" & $VAR059F & "&passwort=" & $VAR05A0)
						Exit
					Else
						Exit
						FN01B3()
					EndIf
				Case $VAR05C0
					FN01B5()
					GUISetState(@SW_HIDE, $VAR05C0)
					WinActivate("Boni-Switcher " & $VAR0597 & " by CroSSie")
				Case $VAR05D9
					GUISetState(@SW_HIDE, $VAR05D9)
					WinActivate("Boni-Switcher " & $VAR0597 & " by CroSSie")
				Case $VAR05DB
					GUISetState(@SW_HIDE, $VAR05DB)
					WinActivate("Boni-Switcher " & $VAR0597 & " by CroSSie")
			EndSwitch
	EndSwitch
WEnd
EndFunc


Func FN01B4()
Global $VAR05EC = GUICtrlRead($VAR05C1)
Global $VAR05C4 = GUICtrlRead($VAR05C3)
Global $VAR05F4 = -125
Global $VAR05F5 = -370
Global $VAR05F2 = -50
Global $VAR05F3 = -370
Global $VAR05F9 = GUICtrlRead($VAR05D2)
Global $VAR05EE = -151
Global $VAR05F0 = -339
Global $VAR05EF = 32
Global $VAR05ED = 7946640
Global $VAR05F8 = 14277081
EndFunc


Func FN01B5()
FN01B4()
IniWrite("data.ini", "Zeit", "Zeit", $VAR05EC)
IniWrite("data.ini", "Speed", "Speed", $VAR05C4)
IniWrite("data.ini", "Checkbox", "Time", GUICtrlRead($VAR05C2))
IniWrite("data.ini", "Checkbox", "PK", GUICtrlRead($VAR05CC))
IniWrite("data.ini", "Checkbox", "Sound", GUICtrlRead($VAR05CD))
IniWrite("data.ini", "Checkbox", "Update", GUICtrlRead($VAR05CE))
IniWrite("data.ini", "Checkbox", "Bonikauf", GUICtrlRead($VAR05D0))
IniWrite("data.ini", "Bonikauf", "Anzahl", $VAR05F9)
IniWrite("data.ini", "Info", "Version", $VAR0597)
EndFunc


Func FN01B6()
$VAR05FB = IniRead("data.ini", "Zeit", "Zeit", "60")
$VAR05FC = IniRead("data.ini", "Speed", "Speed", "5")
$VAR05FD = IniRead("data.ini", "Checkbox", "Time", "1")
$VAR05FE = IniRead("data.ini", "Checkbox", "PK", "1")
$VAR05FF = IniRead("data.ini", "Checkbox", "Sound", "1")
$VAR0600 = IniRead("data.ini", "Checkbox", "Update", "1")
$VAR0601 = IniRead("data.ini", "Checkbox", "Bonikauf", "0")
$VAR0602 = IniRead("data.ini", "Bonikauf", "Anzahl", "42")
GUICtrlSetData($VAR05C1, $VAR05FB, "")
GUICtrlSetData($VAR05C3, $VAR05FC, "")
GUICtrlSetData($VAR05D2, $VAR0602, "")
If $VAR05FD = 1 Then
	GUICtrlSetState($VAR05C2, $VAR000F)
Else
	GUICtrlSetState($VAR05C2, $VAR0011)
EndIf
If $VAR05FE = 1 Then
	GUICtrlSetState($VAR05CC, $VAR000F)
Else
	GUICtrlSetState($VAR05CC, $VAR0011)
EndIf
If $VAR05FF = 1 Then
	GUICtrlSetState($VAR05CD, $VAR000F)
Else
	GUICtrlSetState($VAR05CD, $VAR0011)
EndIf
If $VAR0600 = 1 Then
	GUICtrlSetState($VAR05CE, $VAR000F)
Else
	GUICtrlSetState($VAR05CE, $VAR0011)
EndIf
If $VAR0601 = 1 Then
	GUICtrlSetState($VAR05D0, $VAR000F)
Else
	GUICtrlSetState($VAR05D0, $VAR0011)
EndIf
EndFunc


Func FN01B7($ARG00)
For $VAR0603 = $VAR05E7 To $VAR05E8 Step $VAR05E9
	Local $LOCAL0161[2] = [0, $VAR0603]
	$VAR0604 = FN01AE($VAR05EB, $VAR05E5, $LOCAL0161, "byte")
	If $VAR0604[1] = FN01B8($VAR05BA[$ARG00]) Then
		Local $LOCAL0161[2] = [0, $VAR0603 + 1]
		$VAR0605 = FN01AE($VAR05EB, $VAR05E5, $LOCAL0161, "short")
		If $VAR0605[1] >= GUICtrlRead($VAR05BB[$ARG00]) Then
			If $ARG00 = 4 Then
				FN01BB()
			Else
				If GUICtrlRead($VAR05BC[$ARG00 + 1]) = 1 Then
					FN01B7($ARG00 + 1)
				Else
					FN01BB()
				EndIf
			EndIf
		EndIf
	ElseIf GUICtrlRead($VAR05BD) = 1 Then
		If GUICtrlRead($VAR05DE[$ARG00]) = 1 Then
			If $VAR0604[1] = FN01B8($VAR05DC[$ARG00]) Then
				Local $LOCAL0161[2] = [0, $VAR0603 + 1]
				$VAR0605 = FN01AE($VAR05EB, $VAR05E5, $LOCAL0161, "short")
				If $VAR0605[1] >= GUICtrlRead($VAR05DD[$ARG00]) Then
					If $ARG00 = 4 Then
						FN01BB()
					Else
						If GUICtrlRead($VAR05BC[$ARG00 + 1]) = 1 Then
							FN01B7($ARG00 + 1)
						Else
							FN01BB()
						EndIf
					EndIf
				EndIf
			EndIf
		EndIf
	EndIf
Next
EndFunc


Func FN01B8($ARG00)
Switch GUICtrlRead($ARG00)
	Case "Max TP"
		Return 1
	Case "Max MP"
		Return 2
	Case "Vitalität"
		Return 3
	Case "Intelligenz"
		Return 4
	Case "Stärke"
		Return 5
	Case "Beweglichkeit"
		Return 6
	Case "Angriffsspeed"
		Return 7
	Case "Bewegungsspeed"
		Return 8
	Case "Zauberspeed"
		Return 9
	Case "TP-Regeneration"
		Return 10
	Case "MP-Regeneration"
		Return 11
	Case "Gift"
		Return 12
	Case "Ohnmacht"
		Return 13
	Case "Verlangsamung"
		Return 14
	Case "Kritischer Treffer"
		Return 15
	Case "Durchbohrender Treffer"
		Return 16
	Case "Halbmenschen"
		Return 17
	Case "Tiere"
		Return 18
	Case "Orks"
		Return 19
	Case "Esoterische"
		Return 20
	Case "Untote"
		Return 21
	Case "Teufel"
		Return 22
	Case "TP-Absorb"
		Return 23
	Case "MP-Absorb"
		Return 24
	Case "Manaraub"
		Return 25
	Case "MP-ZurĂĽckerhalten"
		Return 26
	Case "Abblocken"
		Return 27
	Case "Pfeil ausweichen"
		Return 28
	Case "Schwertverteidigung"
		Return 29
	Case "Zweihandverteidigung"
		Return 30
	Case "Dolchverteidigung"
		Return 31
	Case "Glockenverteidigung"
		Return 32
	Case "Fächerverteidigung"
		Return 33
	Case "Pfeilwiderstand"
		Return 34
	Case "Feuerwiderstand"
		Return 35
	Case "Blitzwiderstand"
		Return 36
	Case "Magiewiderstand"
		Return 37
	Case "Windwiderstand"
		Return 38
	Case "Reflektieren"
		Return 39
	Case "Fluch Reflektieren"
		Return 40
	Case "Giftwiderstand"
		Return 41
	Case "MP-Wiederherstellen"
		Return 42
	Case "EXP-Bonus"
		Return 43
	Case "Doppel Yang"
		Return 44
	Case "Doppel Gegenstände"
		Return 45
	Case "Effekt Zuwachs"
		Return 46
	Case "TP-Wiederherstellen"
		Return 47
	Case "Immun gg Ohnmacht"
		Return 48
	Case "Immun gg Verlangsamen"
		Return 49
	Case "Immun gg StĂĽrzen"
		Return 50
	Case "Bogenreichweite"
		Return 52
	Case "Angriffswert"
		Return 53
	Case "Verteidigung"
		Return 54
	Case "Magischer Angriffswert"
		Return 55
	Case "Magische Verteidigung"
		Return 56
	Case "Ausdauer"
		Return 58
	Case "Stark gg Krieger"
		Return 59
	Case "Stark gg Ninja"
		Return 60
	Case "Stark gg Sura"
		Return 61
	Case "Stark gg Schami"
		Return 62
	Case "Stark gg Monster"
		Return 63
	Case "Angriffswert"
		Return 64
	Case "Verteidigung"
		Return 65
	Case "EXP"
		Return 66
	Case "Droppchance Gegenstände"
		Return 67
	Case "Dropchance Gold"
		Return 68
	Case "Fertigkeitsschaden"
		Return 71
	Case "Durchschn. Schaden"
		Return 72
	Case "Widerstand gg Fertigkeiten"
		Return 73
	Case "Durchschn. Schadenswiderstand"
		Return 74
	Case "iCafe exp-bonus"
		Return 76
	Case "iCafe Droppchance Gegenstände"
		Return 77
	Case "Abwehr gg Krieger"
		Return 78
	Case "Abwehr gg Ninja"
		Return 79
	Case "Abwehr gg Sura"
		Return 80
	Case "Abwehr gg Schami"
		Return 81
EndSwitch
EndFunc


Func FN01B9()
$VAR0606 = GUICtrlRead($VAR05D5)
$VAR0607 = GUICtrlRead($VAR05D6)
$VAR0608 = GUICtrlRead($VAR05D7)
$VAR0609 = False
$VAR060A = WinGetPos($VAR05E1)
ToolTip("RELOG PROZESS" & @CRLF & "IN GANG", $VAR060A[0], $VAR060A[1])
Sleep(5000)
Send("{Enter down}")
Sleep(300)
Send("{Enter up}")
Sleep(200)
Sleep(1000)
Send($VAR0606)
Sleep(100)
Send("{Tab down}")
Sleep(300)
Send("{Tab up}")
Sleep(500)
Send($VAR0607)
Sleep(1000)
Send("{Enter down}")
Sleep(300)
Send("{Enter up}")
Sleep(200)
Dim $VAR060B[2]
$VAR060B[0] = PixelGetColor(-270 + $VAR05E3[0], -370 + $VAR05E3[1])
Send("{Enter down}")
Sleep(300)
Send("{Enter up}")
Sleep(200)
Send("{Enter down}")
Sleep(300)
Send("{Enter up}")
Sleep(200)
Send("{Enter down}")
Sleep(300)
Send("{Enter up}")
Sleep(200)
Do
	Sleep(20000)
	$VAR060B[1] = PixelGetColor(-270 + $VAR05E3[0], -370 + $VAR05E3[1])
	If $VAR060B[0] <> $VAR060B[1] Then
		$VAR0609 = True
		Switch $VAR0608
			Case "1"
				Send("{Enter down}")
				Sleep(300)
				Send("{Enter up}")
			Case "2"
				Send("{right down}")
				Sleep(300)
				Send("{right up}")
				Sleep(300)
				Send("{Enter down}")
				Sleep(300)
				Send("{Enter up}")
			Case "3"
				Send("{right down}")
				Sleep(300)
				Send("{right up}")
				Sleep(300)
				Send("{right down}")
				Sleep(300)
				Send("{right up}")
				Sleep(300)
				Send("{Enter down}")
				Sleep(300)
				Send("{Enter up}")
			Case "4"
				Send("{left down}")
				Sleep(300)
				Send("{left up}")
				Sleep(300)
				Send("{Enter down}")
				Sleep(300)
				Send("{Enter up}")
		EndSwitch
	Else
		Send("{Enter down}")
		Sleep(300)
		Send("{Enter up}")
		Sleep(200)
		Send("{Enter down}")
		Sleep(300)
		Send("{Enter up}")
		Sleep(200)
	EndIf
Until $VAR0609 = True
Sleep(60000)
Send("{i down}")
Sleep(300)
Send("{i up}")
Sleep(1000)
MouseClick("left", $VAR05F4 + $VAR05E3[0], $VAR05F5 + $VAR05E3[1])
Sleep(500)
ToolTip("")
EndFunc


Func FN01BA()
FileDelete("update.txt")
InetGet("http://bot-update.kilu.de/Update/update.txt", "update.txt", 1, 0)
$VAR05A2 = FileOpen("update.txt", 0)
$VAR05A3 = FileReadLine($VAR05A2, 1)
If $VAR05A3 = $VAR0597 Or $VAR05A3 = "" Then
	FileClose($VAR05A2)
	FileDelete("update.txt")
	MsgBox(0, "Böse !", "Update funktion wurde deaktiviert")
Else
	MsgBox(0, "NEIN !", "Die Cracker updaten es selbst!")
EndIf
EndFunc


Func FN01BB()
If GUICtrlRead($VAR05CD) = 1 Then
	FN0010("win.wav", 0)
EndIf
If GUICtrlRead($VAR05C6) = 1 Then
	MsgBox(0, "Geschaft", "GlĂĽckwunsch du hast deine gewĂĽnschten Bonis", 60)
	If FN01C1() = 1 Then
		FN015D("http://crossie.cr.funpic.de/logout.php?benutzername=" & $VAR059F & "&passwort=" & $VAR05A0)
		Switch GUICtrlRead($VAR05C9)
			Case "Herrunterfahren"
				For $LOCAL0017 = 10 To 0 Step -1
					ToolTip("Computer wird in " & $LOCAL0017 & " Sekunden herruntergefahren (Abbruch F8)")
					Sleep(1000)
				Next
				Shutdown(5)
			Case "Standby"
				For $LOCAL0017 = 10 To 0 Step -1
					ToolTip("Computer wird in " & $LOCAL0017 & " Sekunden in Standby gesetzt (Abbruch F8)")
					Sleep(1000)
				Next
				Shutdown(32)
			Case "Metin2 Beenden"
				For $LOCAL0017 = 10 To 0 Step -1
					ToolTip("Metin2 wird in " & $LOCAL0017 & " Sekunden geschlossen (Abbruch F8)")
					Sleep(1000)
				Next
				ProcessClose($VAR05E4)
				ToolTip("")
		EndSwitch
	Else
		Exit
		FN01B3()
	EndIf
Else
	MsgBox(0, "Geschaft", "GlĂĽckwunsch du hast deine gewĂĽnschten Bonis")
EndIf
FN01B3()
EndFunc


Func FN01BC()
If GUICtrlRead($VAR05CD) = 1 Then
	FN0010("lose.wav", 0)
EndIf
If GUICtrlRead($VAR05C7) = 1 Then
	MsgBox(16, "Failed", "Schade, die Bonis wollen noch nicht so =(", 60)
	If FN01C1() = 1 Then
		FN015D("http://crossie.cr.funpic.de/logout.php?benutzername=" & $VAR059F & "&passwort=" & $VAR05A0)
		Switch GUICtrlRead($VAR05C9)
			Case "Herrunterfahren"
				For $LOCAL0017 = 10 To 0 Step -1
					ToolTip("Computer wird in " & $LOCAL0017 & " Sekunden herruntergefahren (Abbruch F8)")
					Sleep(1000)
				Next
				Shutdown(5)
			Case "Standby"
				For $LOCAL0017 = 10 To 0 Step -1
					ToolTip("Computer wird in " & $LOCAL0017 & " Sekunden in Standby gesetzt (Abbruch F8)")
					Sleep(1000)
				Next
				Shutdown(32)
			Case "Metin2 Beenden"
				For $LOCAL0017 = 10 To 0 Step -1
					ToolTip("Metin2 wird in " & $LOCAL0017 & " Sekunden geschlossen (Abbruch F8)")
					Sleep(1000)
				Next
				ProcessClose($VAR05E4)
		EndSwitch
	Else
		Exit
		FN01B3()
	EndIf
Else
	MsgBox(16, "Failed", "Schade, die Bonis wollen noch nicht so =(")
EndIf
FN01B3()
EndFunc


Func FN01BD()
If FN01C1() = 1 Then
	FN015D("http://crossie.cr.funpic.de/logout.php?benutzername=" & $VAR059F & "&passwort=" & $VAR05A0)
	MsgBox(0, "Warum auch bezahlen ", "Boni-Switcher cracked by VoIP")
	Sleep(1000)
	Exit
Else
	Exit
	FN01B3()
EndIf
EndFunc


Func FN01BE()
If FN01C1() = 1 Then
	FN015D("http://crossie.cr.funpic.de/logout.php?benutzername=" & $VAR059F & "&passwort=" & $VAR05A0)
	Exit
Else
	Exit
	FN01B3()
EndIf
EndFunc


Func FN01BF($ARGOPT00 = "", $ARGOPT01 = "")
$VAR060C = FN015D("http://crossie.cr.funpic.de/login.php?benutzername=" & $ARGOPT00 & "&passwort=" & $ARGOPT01)
Switch $VAR060C
	Case 0
		Return 0
	Case 1
		Return 1
	Case 2
		Return 2
	Case 3
		Return 3
EndSwitch
EndFunc


Func FN01C0($ARG00)
Local $LOCAL0162 = DllStructCreate("byte[" & BinaryLen($VAR0598) & "]")
DllStructSetData($LOCAL0162, 1, $VAR0598)
Local $LOCAL0163 = DllStructCreate("byte[" & BinaryLen($ARG00) & "]")
DllStructSetData($LOCAL0163, 1, $ARG00)
Local $LOCAL0164 = DllStructCreate("byte[16]")
DllCall("user32.dll", "none", "CallWindowProc", "ptr", DllStructGetPtr($LOCAL0162), "ptr", DllStructGetPtr($LOCAL0163), "int", BinaryLen($ARG00), "ptr", DllStructGetPtr($LOCAL0164), "int", 0)
Local $LOCAL011C = DllStructGetData($LOCAL0164, 1)
$LOCAL0163 = 0
$LOCAL0164 = 0
$LOCAL0162 = 0
Return StringLower(StringTrimLeft($LOCAL011C, 2))
EndFunc


Func FN01C1()
Ping("127.0.0.1")
If @error Then
	Return 0
Else
	Return 1
EndIf
EndFunc

 

Koniec z botami do Nostale itp ;p

 

PS: kto zjadł mi moją sygne? xD

Opublikowano

Ustawiłem, że chcę 15 miecze ( miałem jeden bon w itemku, zaznaczyłem, że chcę jeden bon zmienić ) i trafił mi z 5x i nie zatrzymał się, o co kaman?

  • 2 tygodnie później...
  • 2 tygodnie później...
Opublikowano

Nie umiesz wyjaśniać...

Po 1. W której zakładce ustawić przedmiot? W której kolumnie i którym wierszu?

Po 2. Czy ułożenie zmiany bonów jest obojętne?

Po 3. "Schade, die Bonis wollen noch nicht so =(". Wy też tak macie? :|

  • 2 tygodnie później...
  • 2 tygodnie później...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...