Hello guys!
@DigiDon I'm have a problem while trying to obfuscate this code below:
Code: Select all
;$OBFUSCATOR: $DYNAMIC_MODE:
; --------------------
obf_dumpcommonobjfrags()
obf_dumpunclassed()
obf_dumpunsecclasses()
obf_dumpall()
;$OBFUSCATOR: $DEFGLOBVARS: COUNT,Variable
Gui, +AlwaysOnTop
Gui, Add, Edit, r1 ReadOnly w200 vAlert, Stopped!
Gui, Add, Button, vStartScript gStartG, START!
Gui, Show,
return
;$OBFUSCATOR: $END_AUTOEXECUTE:
toggle := 0
StartG:
toggle := !toggle
if (toggle) {
GuiControl,,StartScript, STOP!
GuiControl,,Alert, Running!
COUNT := hidestr("Couuuuunt: ")
CritObj := CriticalObject({Variable: COUNT})
script:="
("
Loop {
CritObj := CriticalObject(A_Args[1])
variable1 = `% CritObj.Variable
var1++
ToolTip, %variable1%%var1%
}
)"
DllOn:=AhkThread(script,&CritObj)
} else {
DllOn.ahkTerminate.1
GuiControl,,Alert, Stopped!
GuiControl,,StartScript, START!
}
return
Esc::ExitApp
GuiClose:
ExitApp
;*******************************************************************************
; O B F D U M P F U C T I O N S
;*******************************************************************************
;$OBFUSCATOR: $FUNCS_CHANGE_DEFAULTS: ,, -1
obf_dumpcommonobjfrags()
{
global
;$OBFUSCATOR: $DUMP_SECFRAGS_FORCLASSES: common
;$OBFUSCATOR: $DUMP_TMESSFRAGS_FORCLASSES: common
}
;$OBFUSCATOR: $FUNCS_RESTORE_DEFAULTS:
;$OBFUSCATOR: $FUNCS_CHANGE_DEFAULTS: ,, -1
obf_dumpunclassed()
{
global
;$OBFUSCATOR: $FUNCFRAGS_DUMPCLASS: unclassed
;$OBFUSCATOR: $LABELFRAGS_DUMPCLASS: unclassed
}
obf_dumpunsecclasses()
{
global
;$OBFUSCATOR: $FUNCFRAGS_DUMPCLASS: unsecclasses
;$OBFUSCATOR: $LABELFRAGS_DUMPCLASS: unsecclasses
}
;$OBFUSCATOR: $FUNCS_RESTORE_DEFAULTS:
obf_dumpall()
{
global
;$OBFUSCATOR: $GLOBVARFRAGS_DUMPALL:
;$OBFUSCATOR: $GLOBPARTIALVARSFRAGS_DUMPALL:
;$OBFUSCATOR: $SYSVARFRAGS_DUMPALL:
;$OBFUSCATOR: $LOSVARFRAGS_DUMPALL:
;$OBFUSCATOR: $PARAMFRAGS_DUMPALL:
;$OBFUSCATOR: $SYSFUNCFRAGS_DUMPALL:
;$OBFUSCATOR: $SYSPROPERTIESFRAGS_DUMPALL:
;$OBFUSCATOR: $SYSMETHODSFRAGS_DUMPALL:
}
encode_hidestr(startstr)
{
global
static onechar, newstr, secstartstr, hexdigits
hexdigits = 0123456789abcdef
createhexshiftkeys()
newstr =
;convert to hexidecimal
loop, % strlen(startstr)
{
strascii = % asc(substr(startstr, a_index, 1))
hinibble = % strascii // 16
lownibble = % strascii - (hinibble * 16)
;shift the hex digits in order to encrypt them
hinibble := encode_shifthexdigit(hinibble)
lownibble := encode_shifthexdigit(lownibble)
newstr .= substr(hexdigits, hinibble + 1, 1) . substr(hexdigits, lownibble + 1, 1)
}
startstr := newstr
;now i'll reverse the hex string
newstr =
loop, % strlen(startstr)
newstr = % substr(startstr, a_index, 1) . newstr
;convert key values to hex values. i can convert directly to
;single hex digits because my keys only range from 1-15
allhexkeys =
loop, 4
allhexkeys .= substr(hexdigits, key%a_index% + 1, 1)
;stuff the key values into the string starting at character 2
newstr := substr(newstr, 1, 1) . allhexkeys . substr(newstr, 2)
return, newstr
}
encode_shifthexdigit(hexvalue)
{
global
;each time i enter this routine i will use the next key value
;to shift the hexvalue
useshiftkey++
if (useshiftkey > 4)
useshiftkey = 1
;add the shift key to the hexvalue
hexvalue += key%useshiftkey%
;if i go over, just substract 16 to simulate a circle of hex
if (hexvalue > 15)
hexvalue -= 16
return hexvalue
}
createhexshiftkeys()
{
global
;create random 4 entry 'encrypt' key, each entry can be 1-15
loop, 4
random, key%a_index%, 1, 15
useshiftkey = 0
}
;******************************************
; PUT THESE FUNCTIONS IN YOUR ACTUAL AUTOHOTKEY SCRIPT FILE
hidestr(thisstr)
{
return thisstr
}
decode_hidestr(startstr)
{
global
;$OBFUSCATOR: $DEFGLOBVARS: hexdigits
critical
static newstr, startstrlen, charnum, hinibble, lownibble, mybinary
;$OBFUSCATOR: $DEFLOSVARS: newstr, startstrlen, charnum, hinibble, lownibble, mybinary
hexdigits = % "0123456789abcdef"
decode_hexshiftkeys(startstr)
startstr = % substr(startstr, 1, 1) . substr(startstr, 6)
startstrlen = % strlen(startstr)
newstr =
loop, % strlen(startstr)
newstr = % substr(startstr, a_index, 1) . newstr
startstr = % newstr
newstr =
charnum = 1
loop
{
if (charnum >startstrlen)
break
hinibble = % substr(startstr, charnum, 1)
hinibble = % instr(hexdigits, hinibble) - 1
lownibble = % substr(startstr, charnum + 1, 1)
lownibble = % instr(hexdigits, lownibble) - 1
hinibble := decode_shifthexdigit(hinibble)
lownibble := decode_shifthexdigit(lownibble)
mybinary = % hinibble * 16 + lownibble
newstr .= chr(mybinary)
charnum += 2
}
newstr = % fixescapes(newstr)
return, newstr
}
decode_hexshiftkeys(startstr)
{
global
;$OBFUSCATOR: $DEFGLOBVARS: decodekey, ishexchar, useshiftkey
decodekey := "fff@kkf1ffkfkfkfff#k1fk@kf#@fffk@#kk"
ishexchar := "fff@f1ff@kffkk#f1fffffkf"
%decodekey%%ishexchar%1 = % substr(startstr, 2, 1)
%decodekey%%ishexchar%2 = % substr(startstr, 3, 1)
%decodekey%%ishexchar%3 = % substr(startstr, 4, 1)
%decodekey%%ishexchar%4 = % substr(startstr, 5, 1)
loop, 4
%decodekey%%a_index% = % instr(hexdigits, %decodekey%%ishexchar%%a_index%) - 1
useshiftkey = 0
}
decode_shifthexdigit(hexvalue)
{
global
useshiftkey++
if (useshiftkey > 4)
useshiftkey = 1
hexvalue -= %decodekey%%useshiftkey%
if (hexvalue < 0)
hexvalue += 16
return hexvalue
}
fixescapes(forstr)
{
global
StringReplace, forstr, forstr, % "````", % "``", all
StringReplace, forstr, forstr, % "``n", % "`n", all
StringReplace, forstr, forstr, % "``r", % "`r", all
StringReplace, forstr, forstr, % "``,", % "`,", all
StringReplace, forstr, forstr, % "``%", % "`%", all
StringReplace, forstr, forstr, % "``;", % "`;", all
StringReplace, forstr, forstr, % "``t", % "`t", all
StringReplace, forstr, forstr, % "``b", % "`b", all
StringReplace, forstr, forstr, % "``v", % "`v", all
StringReplace, forstr, forstr, % "``a", % "`a", all
StringReplace, forstr, forstr, % """""", % """", all
return forstr
}
What happens is that the variable
Variable that is inside the
CriticalObject is not being obfuscated. I need to obfuscate the variables and information that are inside the
script:="(")" and I can't. Does anyone know how to make it work?
Here the code ofuscated:
Code: Select all
obf_copyright := " Date: 23:23 quarta-feira, 29 de maio de 2019 "
obf_copyright := " "
obf_copyright := " THE FOLLOWING AUTOHOTKEY SCRIPT WAS OBFUSCATED "
obf_copyright := " BY DYNAMIC OBFUSCATOR L FOR AUTOHOTKEY "
obf_copyright := " By DigiDon "
obf_copyright := " "
obf_copyright := " Based on DYNAMIC OBFUSCATOR "
obf_copyright := " Copyright (C) 2011-2013 David Malia "
obf_copyright := " DYNAMIC OBFUSCATOR is released under "
obf_copyright := " the Open Source GPL License "
;AUTOEXECUTE ORIGINAL NAME: autoexecute
;autoexecute
;$OBFUSCATOR: $DYNAMIC_MODE:
; --------------------
@kkff%ff@fffff%fkfk@@kkfkf()
kf%k@#k@f%@f#f#k#kfffk#f()
k%kf#f#f%#@f#%k##k@f%k@fk@#f@f()
kkk%kkk#fkkfk#kkkfff%kk#%#ffkfk@f%f#k@%fffk@kk#f#fff##fffkkk@%#fkf()
;$OBFUSCATOR: $DEFGLOBVARS: f%fk@k%ff@%@f#f#f#kk@@k@fk#@f%@#%kk@k#fk@%f@fk@,%#kf#k@f@%%#k@kk##fff#k%%kkfff@@f%
Gui, +AlwaysOnTop
Gui, Add, Edit, r1 ReadOnly w200 vAlert, Stopped!
Gui, Add, Button, vStartScript gf##f#f#k#kfkfff@#kkkk#f#k@, START!
Gui, Show,
return
toggle := 0
;LABEL ORIGINAL NAME: StartG
f##f#f#k#kfkfff@#kkkk#f#k@:
toggle := !toggle
if (toggle) {
GuiControl,,StartScript, STOP!
GuiControl,,Alert, Running!
f%kf#f#f%f%fkk##fff@f@ff##ff#%%fkf#%%@k@fkfkfffk#@fk@f@ff%f@#f@fk@ := kfkfk%fffk@kk#f#fff##fffkkk@%k#@k%#kf@kff@%f#f#@f("cbcf6d02024512b612b61255ff")
CritObj := CriticalObject({Variable: fff%k##kk#@k@fff@ffkf##kf#%f@#f%fff@#kff%@fk@})
script:="
("
Loop {
CritObj := CriticalObject(A_Args[1])
variable1 = `% CritObj.Variable
var1++
ToolTip, %variable1%%var1%
}
)"
DllOn:=AhkThread(script,&CritObj)
} else {
DllOn.ahkTerminate.1
GuiControl,,Alert, Stopped!
GuiControl,,StartScript, START!
}
return
;HOTKEY ORIGINAL NAME: Esc
Esc::ExitApp
GuiClose:
ExitApp
;*******************************************************************************
; O B F D U M P F U C T I O N S
;*******************************************************************************
;$OBFUSCATOR: $FUNCS_CHANGE_DEFAULTS: ,, -1
;FUNCTION ORIGINAL NAME: obf_dumpcommonobjfrags
@kkfffkfk@@kkfkf() {
global
;SECURITY CLASS FRAG: for class: COMMON for char: f
fkk#%kfk#fkf#%@%#kfkff%k#f%#k#fff@k%@ffffk#k=%#f@k@f%f%k##k@f%
;SECURITY CLASS FRAG: for class: COMMON for char: k
k#f%kfkfk##k%%f#f@@ff#%@#k#%#k#k%k%#f@kkf#k%#f@f@ffkk#k#=%k@k##k%k%fk@k%
;SECURITY CLASS FRAG: for class: COMMON for char: @
kfkff%@f@f@f%@f%fkk#kf%@ff%#kffkk%ffkf%#kkfk#%f@#k@kf@kk=%f@ff%@%k@f#kfk#%
;SECURITY CLASS FRAG: for class: COMMON for char: #
kkk%#k#fff@k%#k@%fkk@f@%@ff%@fkfk#%k@f@k=%k@#k@f%#%kkf@k@@f%
;TRIPLE MESS FRAGMENTS FOR: f
#%#kf#f#%k%kkk#k@@ffk@f@k%%fkk#@k#f@ffffk#k%#f@kkff@f@fkf#kkfk:=f%k#f@#k#k#f@f@ffkk#k#%k#%kfkff@f@ffffkff@#k@kf@kk%k#f%k#fff@k@%@f%fkk#@k#f@ffffk#k%ffk#k
k@%fkk#@k#f@ffffk#k%k%@ff#ffkf%k%k#f@#k#k#f@f@ffkk#k#%f%kkk#k@@ffk@f@k%%kfkfk##k%k@f@@f@kkk:=f%k#f@#k#k#f@f@ffkk#k#%%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%@%kkf@k@@f%k#%@f@k#f%f@ffffk#k
kk#%k#f@#k#k#f@f@ffkk#k#%ff#%f@k#@f%k%kfkff@f@ffffkff@#k@kf@kk%%fkk#@k#f@ffffk#k%k@k@ffk@f#:=fk%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%@%k#f@#k#k#f@f@ffkk#k#%#f@%f@kf%ffffk#k
#kk%kfk#fkf#%%#k#f@f%%kkk#k@@ffk@f@k%kkk%k#f@#k#k#f@f@ffkk#k#%@k%k#f@#k#k#f@f@ffkk#k#%#f@k@@f#f@f#k:=fk%@f@k#f%%k#f@#k#k#f@f@ffkk#k#%%fff#k#ff%#@%k#f@#k#k#f@f@ffkk#k#%#%fkk#@k#f@ffffk#k%@ffffk#k
@%#k#k%f@k%kfkff@f@ffffkff@#k@kf@kk%k#kf@f%kkk#k@@ffk@f@k%f@f#k#kffk:=fkk%kkk#k@@ffk@f@k%@k%k@#k@f%%kkk#k@@ffk@f@k%%fkk#@k#f@ffffk#k%@ffffk#k
kkf%@f#k@f%@#f%kkk#k@@ffk@f@k%ff%k#f@#k#k#f@f@ffkk#k#%f%kfkff@f@ffffkff@#k@kf@kk%kfk##f:=fk%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%@%f@@fk@%%k#f@#k#k#f@f@ffkk#k#%#f%f@kf%@ffffk#k
@f#f%k@kffk%#f%kkk#k@@ffk@f@k%kk%kfkff@f@ffffkff@#k@kf@kk%@k@fk#@f:=fkk%kkk#k@@ffk@f@k%@k#%fkff#kfk%f@f%fkk#@k#f@ffffk#k%ffk#k
#k%#kffkk%@f%fkk#@k#f@ffffk#k%@kf@%#k#f@f%kfk%fkk#@k#f@ffffk#k%@fkk@#k:=fkk%ff#kfk%%kkk#k@@ffk@f@k%@%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%f@ffffk#k
#fffk%@f@k#f%%k#f@#k#k#f@f@ffkk#k#%fff%kfkff@f@ffffkff@#k@kf@kk%f#k#kk@k:=fk%k#f@#k#k#f@f@ffkk#k#%#%kfkff@f@ffffkff@#k@kf@kk%%f@ff%%#fk@%k%kkk#k@@ffk@f@k%f@ffffk#k
fkk%#fkfff%f#%#kkk%f%fkk#@k#f@ffffk#k%%fkk#@k#f@ffffk#k%ffkffff#k#:=fk%k#f@#k#k#f@f@ffkk#k#%#@%k#f@#k#k#f@f@ffkk#k#%#f%kf#kkk%%fkfkkkk@%@ffffk#k
ff%@f#k@f%k%kkfff@@f%#%fkk#@k#f@ffffk#k%%fkk#@k#f@ffffk#k%k@f#ff#f#fffff:=fk%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%@k#%fkk@f@%f@ffffk#k
kfk%fkk#@k#f@ffffk#k%ff#%f@ff%kf#k%f@ff%#k%fkk#@k#f@ffffk#k%#kff#fkfkk:=fk%k#kf%k%kkk#k@@ffk@f@k%%kfkff@f@ffffkff@#k@kf@kk%k#%@fk##kkf%f%kfkff@f@ffffkff@#k@kf@kk%ffffk#k
k#f%fkk#@k#f@ffffk#k%@k%k#f@#k#k#f@f@ffkk#k#%%fkfkkkk@%#k%fkk##f%#k@kkk#@f:=fk%#fk@ffk@%%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%@%k#f@#k#k#f@f@ffkk#k#%#f@ffffk#k
@fk@%k#f@#k#k#f@f@ffkk#k#%f%k#f@#k#k#f@f@ffkk#k#%@%k#kf%%ff#f#fkf%#kfffkkkk@f@k#:=fkk%kkk#k@@ffk@f@k%%fkk#kf%@k%kkk#k@@ffk@f@k%%fkk#@k#f@ffffk#k%@ffffk#k
k##f%@kfkff%fk@ff%kfkff@f@ffffkff@#k@kf@kk%kfkkk@%k#f@#k#k#f@f@ffkk#k#%##kk#:=fk%k#f@#k#k#f@f@ffkk#k#%#%kfkff@f@ffffkff@#k@kf@kk%k#f%kfkff@f@ffffkff@#k@kf@kk%ff%@fkfk#%ffk#k
@fk##%k##k@f%kkk#%fkk#@k#f@ffffk#k%#k#kk@#%fkk#@k#f@ffffk#k%f@k#ff:=f%f@fkff%%f##kkf%kk%kkk#k@@ffk@f@k%@k%kkk#k@@ffk@f@k%f@ffffk#k
fkk#%kkk#k@@ffk@f@k%fff@f%kkffkfkk%@f%fkk#@k#f@ffffk#k%##ff#:=f%k#f@#k#k#f@f@ffkk#k#%k%kkk#k@@ffk@f@k%@k%kkk#k@@ffk@f@k%f@%@kk@kfk@%ffffk#k
k@k%#k#k%%kfkff@f@ffffkff@#k@kf@kk%k@f%kkk#k@@ffk@f@k%k@fkf%k#f@#k#k#f@f@ffkk#k#%fff@k#kk@f:=fk%fff#@f@f%k#%kfkff@f@ffffkff@#k@kf@kk%%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%f@ffffk#k
k%fff##ffk%k@k@k%fkk#@k#f@ffffk#k%%fkk#@k#f@ffffk#k%f#@%fkk#@k#f@ffffk#k%ffkfkkf@k@#k:=fk%k#f@#k#k#f@f@ffkk#k#%#@k%f@@fk@%#f%kfkff@f@ffffkff@#k@kf@kk%ff%fkk#@k#f@ffffk#k%fk#k
kkk%#k#k%%kkk#k@@ffk@f@k%fkk%fkk#@k#f@ffffk#k%%k#f@#k#k#f@f@ffkk#k#%#kkkfff:=f%k#f@#k#k#f@f@ffkk#k#%k#%kfkff@f@ffffkff@#k@kf@kk%k#f@%fkf@@fkf%ffffk#k
;TRIPLE MESS FRAGMENTS FOR: k
kf#%k@#kkff@%%fkk#@k#f@ffffk#k%@fkkf%kkk#k@@ffk@f@k%f#ffkk@ffkff@f:=k%ff@fffff%#f%kfkff@f@ffffkff@#k@kf@kk%#k%kkk#k@@ffk@f@k%k#f@f@ffkk#k#
fk%#k#k%f#%f@fkff%f%kfkff@f@ffffkff@#k@kf@kk%k@%k#f@#k#k#f@f@ffkk#k#%%fkk#@k#f@ffffk#k%f#f#k@kfk#kf@k:=k#f@#%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%k%kfk#fkf#%#f@f@ffkk#k#
kfk%kkk#k@@ffk@f@k%@f%fkk#@k#f@ffffk#k%%kkk#k@@ffk@f@k%%#ff#%%#kffkk%#ff#f@ffkfkfkf:=k#%ff#f#fkf%f@#%k#f@#k#k#f@f@ffkk#k#%%f##kkf%%kkk#k@@ffk@f@k%k#f@f@ffkk#k#
@f#%k#f@#k#k#f@f@ffkk#k#%@f#f@k%fk#kfffk%#kff%fkk#@k#f@ffffk#k%ff@fkf#:=k#%@f@k#f%f@%f##kkf%#k#%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%f@f@ffkk#k#
f%fkk#@k#f@ffffk#k%%#kkfk#%#kkkk##%fkk#@k#f@ffffk#k%k@k#fkk@ffkf@f:=k%k@#f@k%%kkk#k@@ffk@f@k%%kf@ffff#%%fkk#@k#f@ffffk#k%@#k%kkk#k@@ffk@f@k%k#f@f@ffkk#k#
f%fkk#@k#f@ffffk#k%f#@f%kkk#k@@ffk@f@k%f@f#%@kfkff%k#f%#f@k@f%@fk@f@#f:=k#f%kfkff@f@ffffkff@#k@kf@kk%%k@@fk#ff%#%k#f@#k#k#f@f@ffkk#k#%#k%kkk#k@@ffk@f@k%f@f@ffkk#k#
f@%f#f#kkfk%@ff@%k#f@#k#k#f@f@ffkk#k#%k#%fkk#@k#f@ffffk#k%kk@%f#kkk#@k%f@k@f@ff@ff:=k%kkk#k@@ffk@f@k%f%k@kffk%@%kkk#k@@ffk@f@k%k%fkff#kfk%#k#f@f@ffkk#k#
k@%fk#kfffk%%kkf@k@@f%@k%fkk#@k#f@ffffk#k%%kkk#k@@ffk@f@k%k%kkk#k@@ffk@f@k%k@@kk@ffk#f@:=k%kkk#k@@ffk@f@k%%fkk#@k#f@ffffk#k%@#k#%k@#kkff@%k#%fkk#@k#f@ffffk#k%@f@ffkk#k#
@%f@k#@f%ff%k@#kk#f#%k%kkk#k@@ffk@f@k%k%kfkff@f@ffffkff@#k@kf@kk%kk#@fkf#kf@f#:=k#f@%#k#k%%kkk#k@@ffk@f@k%%k#f@#k#k#f@f@ffkk#k#%#%k#f@#k#k#f@f@ffkk#k#%#f@f@ffkk#k#
f@kkf%k#f@#k#k#f@f@ffkk#k#%k%ff#kfk%f#kkk%kfkff@f@ffffkff@#k@kf@kk%fkfk@kk:=k#%#k@f%%fkk#@k#f@ffffk#k%@#k%kkf@k@@f%#%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%f@f@ffkk#k#
k%k#f@#k#k#f@f@ffkk#k#%#%kkk##f%fk%kfkff@f@ffffkff@#k@kf@kk%k%fkk#@k#f@ffffk#k%%fk@k%#k#kffk@:=k%#fff%#f@%kffffk@f%%kkk#k@@ffk@f@k%%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%k#f@f@ffkk#k#
@kf%fkk#@k#f@ffffk#k%ff#%#ffkfk@f%%k#f@#k#k#f@f@ffkk#k#%f@#ffkkk@kkk:=k%kkk#k@@ffk@f@k%f@%f#k@@kkf%#k%kkk#k@@ffk@f@k%k#%fkk#@k#f@ffffk#k%@f@%#fkfff%ffkk#k#
k#%f#k@@kkf%%fff#@f@f%%kfkff@f@ffffkff@#k@kf@kk%fkk%kfkff@f@ffffkff@#k@kf@kk%k#ffff@ffk#:=k#%k@#kkff@%f@%kkk#k@@ffk@f@k%%k#f@#k#k#f@f@ffkk#k#%#k#f@f@ffkk#k#
f%f@@fk@%%k#f@#k#k#f@f@ffkk#k#%@k#k%kfkff@f@ffffkff@#k@kf@kk%f@fkk#f@kk@:=k#%fkk#@k#f@ffffk#k%@#k#k%kkk#k@@ffk@f@k%f%#fk@ffk@%@f@ffkk#k#
kkf@%fkk#@k#f@ffffk#k%fk#@fk%f@kffk%ff##k%k#f@#k#k#f@f@ffkk#k#%ff@@k:=k#f@%kkk#k@@ffk@f@k%k#k%kkk#k@@ffk@f@k%f@f@%kkfff@@f%%f@kffk%ffkk#k#
k#%kkk#k@@ffk@f@k%fk#%kkk#k@@ffk@f@k%kf#ffk%#kf@kff@%#f@f#@kkf:=k%kkk#k@@ffk@f@k%f%kfkff@f@ffffkff@#k@kf@kk%#k#%#fkfff%k#%@fk@kf%f@f@ffkk#k#
k#%fkk#@k#f@ffffk#k%#@%fkff#kfk%k@kk%kkk#k@@ffk@f@k%f%kfkff@f@ffffkff@#k@kf@kk%@f@kkf#kk#k@:=k%kkk#k@@ffk@f@k%%fkk#@k#f@ffffk#k%@#k%kkk#k@@ffk@f@k%k%f##kkf%#f%kfk#fkf#%@f@ffkk#k#
@%fkk#@k#f@ffffk#k%kf%#k#k%kk@%k#f@#k#k#f@f@ffkk#k#%k#k@fkkkkf#f#kf#:=k#f@%kf#f#f%#k#%@kfkkf%k#f@%fkk#@k#f@ffffk#k%@ff%k#f@#k#k#f@f@ffkk#k#%k#k#
fk%#fkfff%f%fkk#@k#f@ffffk#k%@%f#kfkk%k%k#f@#k#k#f@f@ffkk#k#%@kk@k#k:=k#f@%#kkfk#%#k%kkk#k@@ffk@f@k%k#f@%ff#f#fkf%f@ff%k#f@#k#k#f@f@ffkk#k#%k#k#
fffk@%k#f@#k#k#f@f@ffkk#k#%%kf@ffff#%k%kkk#k@@ffk@f@k%f#fff##fffkkk@:=k#f@%kkk#k@@ffk@f@k%k%kf@ffff#%#k#%fkk#@k#f@ffffk#k%@f@%#fkfff%ffkk#k#
;TRIPLE MESS FRAGMENTS FOR: @
fk#%f#kkk#@k%%fkk#@k#f@ffffk#k%%kkk#k@@ffk@f@k%k#fkf%kfkff@f@ffffkff@#k@kf@kk%fff@kk@f@kkf@:=kf%k#f@#k#k#f@f@ffkk#k#%%f#kfkk%ff%@f@k#f%%kfkff@f@ffffkff@#k@kf@kk%%fkk#@k#f@ffffk#k%@ffffkff@#k@kf@kk
@kf@#%kkk##f%fkk@k%kkk#k@@ffk@f@k%k#f#%fkk#@k#f@ffffk#k%fk:=k%fkk#@k#f@ffffk#k%kff@%#fkfff%f%kfkff@f@ffffkff@#k@kf@kk%%fkk#@k#f@ffffk#k%fffkff@#k@kf@kk
@kk@%fkk#@k#f@ffffk#k%k#k%kkk#k@@ffk@f@k%k#kf%kkk##f%f@f%fff@#kff%kfkk:=kf%k@k##k%kff%kffffk@f%@f%kfkff@f@ffffkff@#k@kf@kk%f%fkk#@k#f@ffffk#k%ff%k#f@#k#k#f@f@ffkk#k#%ff@#k@kf@kk
#%k#f@#k#k#f@f@ffkk#k#%%k#f@#k#k#f@f@ffkk#k#%kkkf%kf#kkk%kkf@kkfkf:=kfk%fkk#@k#f@ffffk#k%f@f@fff%@fff%fkff@%kkk#k@@ffk@f@k%k@kf@kk
@%k#f@#k#k#f@f@ffkk#k#%kf#f%kkk#k@@ffk@f@k%fk%#k@f%f#%kkf@k@@f%ffk@kf@#k:=kfk%fkk#@k#f@ffffk#k%%fkk#@k#f@ffffk#k%@f%#fff%@f%@kfkkf%fffkff@#k@kf@kk
fk%f#kkk#@k%#kkk%fkk#@k#f@ffffk#k%%fkk#@k#f@ffffk#k%k%f@k#@f%kkkff#k#f#f:=kfk%fkk#@k#f@ffffk#k%f@%f#f@@ff#%f@fff%fkk#@k#f@ffffk#k%kf%k@#kk#f#%f@#k@kf@kk
f%kkk#k@@ffk@f@k%f%fff@f#%#%fff##ffk%#k%fkk#@k#f@ffffk#k%f%k#f@#k#k#f@f@ffkk#k#%kf@#kf#@f@f@k:=kfk%k@k##k%%#ff#%ff%kfkff@f@ffffkff@#k@kf@kk%f@%fkk#@k#f@ffffk#k%ff%fkk#@k#f@ffffk#k%kff@#k@kf@kk
#kf%@f#k@f%%@f@k#f%%k#f@#k#k#f@f@ffkk#k#%f@%fkk#@k#f@ffffk#k%%kfkff@f@ffffkff@#k@kf@kk%f#kk@kkfk#kfffff:=kfkf%fkk#@k#f@ffffk#k%@f%#kkfk#%@f%fkk#@k#f@ffffk#k%ffk%fkk#@k#f@ffffk#k%f@#k@kf@kk
f#k#%fk#kfffk%k@@fk%k#f@#k#k#f@f@ffkk#k#%%fk@k%k%fkk#@k#f@ffffk#k%@k#fk@@fffff:=k%f#kfkk%f%@kf@@k%%k#f@#k#k#f@f@ffkk#k#%ff@%fkk#@k#f@ffffk#k%@ff%fkk#@k#f@ffffk#k%fkff@#k@kf@kk
k##kk%fkk##f%#%kfkff@f@ffffkff@#k@kf@kk%k@ff%fkk#@k#f@ffffk#k%@ffkf##kf#:=k%f#kkk#@k%fk%fkk#@k#f@ffffk#k%%fkk#@k#f@ffffk#k%@f@ff%fkk#@k#f@ffffk#k%fkff@#k@kf@kk
#kff#%k#f@#k#k#f@f@ffkk#k#%@k@f%k#f@#k#k#f@f@ffkk#k#%f@k#%fkk#kf%kkfk%#fk@ffk@%fffkk:=k%k#kf%f%f#f#kkfk%kff@f%kfkff@f@ffffkff@#k@kf@kk%%fkk#@k#f@ffffk#k%fffkff@#k@kf@kk
ff%k#f@#k#k#f@f@ffkk#k#%kf%f@kffk%#k%fkk#@k#f@ffffk#k%kf%k@fkkfkk%#kf#k##k:=kfk%@kf@@k%ff@%f#k@@kkf%f@f%fkk#@k#f@ffffk#k%f%fkk#@k#f@ffffk#k%%k#f@#k#k#f@f@ffkk#k#%ff@#k@kf@kk
#k#%k#f@#k#k#f@f@ffkk#k#%k@k%ff@fffff%#f@f@f%fkk#@k#f@ffffk#k%kfff#ff#k@:=kfkf%kkk#f#ff%f@f@%fkk#@k#f@ffffk#k%f%f@fkff%f%fkk#@k#f@ffffk#k%kff@#k@kf@kk
@f%k#f@#k#k#f@f@ffkk#k#%#k%k#f@#k#k#f@f@ffkk#k#%@%f#kk%f#k@f#kff:=kfkf%fkk#@k#f@ffffk#k%@f@f%@k#k#k%f%fkk#@k#f@ffffk#k%fkf%fkk#@k#f@ffffk#k%@#k@kf@kk
fk#f%fkk#@k#f@ffffk#k%f@%kkk##f%k%k#f@#k#k#f@f@ffkk#k#%kk%kfkff@f@ffffkff@#k@kf@kk%@kfkf##k:=kfkf%kffk@ffk%f@f@%fkk#@k#f@ffffk#k%fffk%fkk#@k#f@ffffk#k%f@#k@kf@kk
#fk#f%k#f@#k#k#f@f@ffkk#k#%kff%#ffkfk@f%k#ff%kfkff@f@ffffkff@#k@kf@kk%k@#k@k:=kfk%kk@f@f%ff@%fkk#@k#f@ffffk#k%@ff%fkk#@k#f@ffffk#k%fk%k@f#kfk#%ff%kfkff@f@ffffkff@#k@kf@kk%#k@kf@kk
@k@f%f#k@k#%%k#kf%k%fkk#@k#f@ffffk#k%k%fkk#@k#f@ffffk#k%ffk#@fk@f@ff:=kfk%@fkfk#%%ff#f#fkf%ff@%fkk#@k#f@ffffk#k%@f%fkk#@k#f@ffffk#k%ffkff@#k@kf@kk
f%kk@k#fk@%%k#f@#k#k#f@f@ffkk#k#%fk%@ff#ffkf%kff%kfkff@f@ffffkff@#k@kf@kk%k%k#f@#k#k#f@f@ffkk#k#%f@f#ffk#f#:=k%fkk#@k#f@ffffk#k%kf%k@kffk%%fkk#@k#f@ffffk#k%@%fkk#@k#f@ffffk#k%@f%#ffkfk@f%fffkff@#k@kf@kk
#f%k@f#kfk#%kk%fkk#@k#f@ffffk#k%ff%k#f@#k#k#f@f@ffkk#k#%kfk%f@kkkf#f%@#ffkk#:=kfkf%fkk#@k#f@ffffk#k%@f@%fkk#@k#f@ffffk#k%f%#kkkf#ff%%fkk#@k#f@ffffk#k%fkff@#k@kf@kk
fff%kkk#k@@ffk@f@k%f#@%f@kf%ff%k@kffk%%fkk#@k#f@ffffk#k%f#%kfkff@f@ffffkff@#k@kf@kk%ffffkfff@kf:=kfkff%#kfkff%%kfkff@f@ffffkff@#k@kf@kk%f%k@@k@k%%kfkff@f@ffffkff@#k@kf@kk%ffffkff@#k@kf@kk
;TRIPLE MESS FRAGMENTS FOR: #
f%#fk@ffk@%#%k#f@#k#k#f@f@ffkk#k#%%k#f@#k#k#f@f@ffkk#k#%kf#%k#f@#k#k#f@f@ffkk#k#%f#kfffkkf#:=k%f@fkff%kk%kkk#k@@ffk@f@k%k%f@fkff%@%kfkff@f@ffffkff@#k@kf@kk%ffk@f@k
k%k#f@#k#k#f@f@ffkk#k#%%fkk#@k#f@ffffk#k%#%k#f@#k#k#f@f@ffkk#k#%f%@kf@@k%kkf@fkkk:=kk%k#f@#k#k#f@f@ffkk#k#%#%@f@k#f%%k#f@#k#k#f@f@ffkk#k#%%kkk##f%@@ffk@f@k
fk#f%k#f@#k#k#f@f@ffkk#k#%k#ff#%fkk##f%f@#%fkk#@k#f@ffffk#k%k%kffffk@f%@kk#kkk#f:=k%f@ff%k%k#f@#k#k#f@f@ffkk#k#%#%k#f@#k#k#f@f@ffkk#k#%%kfkff@f@ffffkff@#k@kf@kk%@ffk@f@k
#k%#k@f%%@fff%f%kkk#k@@ffk@f@k%k@#%k#f@#k#k#f@f@ffkk#k#%#ff##kfk:=kkk%ff#f#fkf%%kkk#k@@ffk@f@k%%k#f@#k#k#f@f@ffkk#k#%@@ffk@f@k
f%fkk#@k#f@ffffk#k%#fk%k@#kk#f#%fk%kkk#k@@ffk@f@k%@%kk@f@f%ffkk@#kff:=kk%@kfkkf%%k#f@#k#k#f@f@ffkk#k#%#k%kfkff@f@ffffkff@#k@kf@kk%@ffk@f@k
k%kf#f#f%%kfkff@f@ffffkff@#k@kf@kk%%fkk#@k#f@ffffk#k%%k#kf%fkkf#@fk#fk:=k%k#f@#k#k#f@f@ffkk#k#%%k#f@#k#k#f@f@ffkk#k#%#k%f#k@k#%@@%fkk#@k#f@ffffk#k%fk@f@k
#f%k@@fk#ff%k%f#k@@kkf%%kkk#k@@ffk@f@k%f%kfkff@f@ffffkff@#k@kf@kk%%kkk#k@@ffk@f@k%ff##f@fkfkf:=kk%#ff#%%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%%k#f@#k#k#f@f@ffkk#k#%@@ffk@f@k
#%@fk##kkf%k%k#f@#k#k#f@f@ffkk#k#%k%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%%f@kkkf#f%@kf#fff@:=k%fkf#%%k#f@#k#k#f@f@ffkk#k#%%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%k@@ffk@f@k
@fk%k@#kk#f#%fkk%k@k##k%%kkk#k@@ffk@f@k%fkf%k#f@#k#k#f@f@ffkk#k#%##fk#:=k%k#f@#k#k#f@f@ffkk#k#%%#kkk%k#%k#f@#k#k#f@f@ffkk#k#%@%fkk@%@ffk@f@k
k#%#k#fff@k%k#%fkk#@k#f@ffffk#k%@ff%k#f@#k#k#f@f@ffkk#k#%k%k#f@#k#k#f@f@ffkk#k#%ff@kk:=k%f#kk%k%k#f@#k#k#f@f@ffkk#k#%%fk@k%%kkk#k@@ffk@f@k%%k#f@#k#k#f@f@ffkk#k#%@@ffk@f@k
@kk%kkk#k@@ffk@f@k%%#kffkk%f@%k#f@#k#k#f@f@ffkk#k#%#%fkk#@k#f@ffffk#k%@k@kff@k##kfk@f:=k%f@kkkf#f%%k#f@#k#k#f@f@ffkk#k#%%k#f@#k#k#f@f@ffkk#k#%%kkk#k@@ffk@f@k%k@@ffk@f@k
#kf%kkk#k@@ffk@f@k%@f%kfkff@f@ffffkff@#k@kf@kk%k%fkk#@k#f@ffffk#k%%@fk##kkf%#@fkkkk:=k%k#f@#k#k#f@f@ffkk#k#%k#%#kkkf#ff%%k#f@#k#k#f@f@ffkk#k#%@@ffk@f@k
@%fff@#kff%k%fff##ffk%ffk%kfkff@f@ffffkff@#k@kf@kk%ffk@%kfkff@f@ffffkff@#k@kf@kk%k@fk@@kk#kkf@:=kk%@ff#%k%kkk#k@@ffk@f@k%k%kfkff@f@ffffkff@#k@kf@kk%@f%fkk#@k#f@ffffk#k%k@f@k
k@%fkk#@k#f@ffffk#k%ff%kkk#k@@ffk@f@k%@%#ffkfk@f%f%kfkff@f@ffffkff@#k@kf@kk%ffff@#k@k@f:=k%fff##ffk%%k#f@#k#k#f@f@ffkk#k#%k#%k#f@#k#k#f@f@ffkk#k#%@%kfkff@f@ffffkff@#k@kf@kk%ffk@f@k
k%f#f#kkfk%k%#k#fff@k%f%kfkff@f@ffffkff@#k@kf@kk%%k#f@#k#k#f@f@ffkk#k#%k%fkk#@k#f@ffffk#k%k#k#f#k:=kkk%kkk#k@@ffk@f@k%k@@%fkff#kfk%ffk%kfkff@f@ffffkff@#k@kf@kk%f@k
k#%ff@fffff%k%kkk#k@@ffk@f@k%kf%kf@ffff#%#%k#f@#k#k#f@f@ffkk#k#%k%kfkff@f@ffffkff@#k@kf@kk%ffkfff:=k%#k@f%k%k#f@#k#k#f@f@ffkk#k#%#k%kfkff@f@ffffkff@#k@kf@kk%@%fkk#@k#f@ffffk#k%fk@f@k
f%k#f@#k#k#f@f@ffkk#k#%%kf#f#f%#k#%fkk#@k#f@ffffk#k%%kkk#k@@ffk@f@k%ff#@f@ffff#f#:=k%k#k@#kfk%%k#f@#k#k#f@f@ffkk#k#%k#%k#f@#k#k#f@f@ffkk#k#%@@ffk@f@k
kk%kkk#k@@ffk@f@k%ff%kkk#k@@ffk@f@k%f%k@#k@f%f%fkk@%k#f#k#:=k%k#f@#k#k#f@f@ffkk#k#%k%@ff#%%fff@f#%%kkk#k@@ffk@f@k%%k#f@#k#k#f@f@ffkk#k#%@@ffk@f@k
fkk%kkk#k@@ffk@f@k%kk#kf%kf#f#f%##%k#f@#k#k#f@f@ffkk#k#%fk#f@%k#f@#k#k#f@f@ffkk#k#%@f#fk@:=kk%#k#k%k%kkk#k@@ffk@f@k%k@%k@fkkfkk%%kfkff@f@ffffkff@#k@kf@kk%ffk@f@k
f%fkk#@k#f@ffffk#k%%kfkff@f@ffffkff@#k@kf@kk%%#fk@%kkkk#f#kf#fk#:=k%k#f@#k#k#f@f@ffkk#k#%%k#fff@k@%k#%k#f@#k#k#f@f@ffkk#k#%@@ffk@f@k
}
;$OBFUSCATOR: $FUNCS_RESTORE_DEFAULTS:
;$OBFUSCATOR: $FUNCS_CHANGE_DEFAULTS: ,, -1
;FUNCTION ORIGINAL NAME: obf_dumpunclassed
kf@f#f#k#kfffk#f() {
global
;OBF_FUNC name: obf_dumpcommonobjfrags
;OBF_FUNC name: obf_dumpunclassed
;OBF_FUNC name: obf_dumpunsecclasses
;OBF_FUNC name: obf_dumpall
k%f#kkk#@k%%#fk@%k%k#ff@kk#k#k@kkk#@f%#%ff#kkkk##fk@k#fkk@ffkf@f%@%fkf#f@k@kff#f#k@kfk#kf@k%@fk@fk@=k%f@kkfkkf#kkk@fkfk@kk%kfk%fkf#f@k@kff#f#k@kfk#kf@k%#f%@kk@kfk@%#%f##kkf%k@k#fkf
#k%#fkfff%@f%k##fk##kf#ffk#f@f#@kkf%k%kfk#@ff##ff#f@ffkfkfkf%k#%#k@ff@kf@kfkf@fkk@#k%ffk##k=kk%@ffk#k@kk#@fkf#kf@f#%fk%ff#kkkk##fk@k#fkk@ffkf@f%#f#%k@@kf#k#k@@kk@ffk#f@%@%#ffkfk@f%k#fkf
;OBF_FUNC name: encode_hidestr
#f%ff@kkkk#f#kf#fk#%%kk@k@kfff#@fffkfkkf@k@#k%f%#fffkkfff@f#k#kk@k%%fkk##f%k@@fkk=f%#fk@ffk@%f%k#f#@k@kk#f@@f@kkf#kk#k@%#%f@kkkf#f%f%k@@kf#k#k@@kk@ffk#f@%f%fk@k#k@f@fkk#f@kk@%k@kk
@%@kfkkf%fk%k@ffkkf#@fk#fk%%@kffk@ffk@@k@fk@@kk#kkf@%%kf@ffff#%f#ff#k#=ff%k#@fkk@k#ffff@ffk#%#fk%#f@kkf#k%fkk%#k#kk@k#f@f@ffkfff#ff#k@%kk
;OBF_FUNC name: encode_shifthexdigit
k%@f#k@f#f@k#kfffff@fkf#%%@k@fkfkfffk#@fk@f@ff%f%@f#f#f#kk@@k@fk#@f%f%k@#k@f%%#fk@%k@fk@f@k=f%k@fff#@f@ffff@#k@k@f%%#kk#kkkk@kk#f@k@@f#f@f#k%%#k#f#f@kkff@f@fkf#kkfk%f%fkfkkkk@%ffkf#kff#
@k%kf#kkk%f%#k#f#f@kkff@f@fkf#kkfk%k@%#k@ff@kf@kfkf@fkk@#k%f%k@@fk#ff%fk#ffk=f%kk@f@f%#%k@fkkkf#k@f@@f@kkk%%#k@ff@kf@kfkf@fkk@#k%ff%ffk#ffk@f#ff#f#fffff%kf#kff#
;OBF_FUNC name: createhexshiftkeys
kk%k@kffk%%fk#f#k#fkf@fff@kk@f@kkf@%%#fffkkfff@f#k#kk@k%k@fffk@k=kk%@kk@fk#k#k#kff@fkfkk%%ff@fffff%%@fkfkk@kk#k@fkkkkf#f#kf#%@%k@k@k@f#k@fkfkfff@k#kk@f%f#kk#k@k
k%fkff@kk@kk@k#k%k@%kkk##f%#%k@kffk%k@%fkk##fff@f@ff##ff#%k%kkf#kfkkf@fkkk%fff#kf=kk%#fk#fkkffk#ff@k@#k@k%k%@fk#kk@f#k@f#kff%ff%#kkkf#ff%%@f@k#f%#kk#k@k
;OBF_FUNC name: hidestr
k%@kk#f@k#f@k@kff@k##kfk@f%%f#f@@ff#%k#%fkff@kk@kk@k#k%%fkkf#fffffkffff#k#%%#k#f@f%k@kkk@@k#f=@k%@f#k@f#f@k#kfffff@fkf#%#%@fk##kkk#f#k#kk@#ff@k#ff%f@%#ffkfk@f%fk@f@f@
#f%fff#@f@f%%fk#fkk#ff#f@#fk@kk#kkk#f%fk%fff#f#@ffff#@ffffkfff@kf%f%f#kkkf#kf#kfffkkf#%f@fk#ff@=@k%#k#fff@k%k%#f@kkf#k%%f#kkkf#kf#kfffkkf#%%ffk#ffk@f#ff#f#fffff%f@fk@f@f@
;OBF_FUNC name: decode_hidestr
f#@%k#@fkk@k#ffff@ffk#%#f%f##kkf%k@%#kf#@f@kf#@fkkkk%f@%fkf#f@k@kff#f#k@kfk#kf@k%k@k@=kfk%fkk##fff@f@ff##ff#%%k##fk##kf#ffk#f@f#@kkf%%@fk##kkf%kk#%fk@k%@kf#f#@f
f#%kkk#f#ff%#%@fk##kkk#f#k#kk@#ff@k#ff%@%fkff@kk@kk@k#k%#f%k##fk##kf#ffk#f@f#@kkf%@fk=kfkf%f#kk%%k#f#@k@kk#f@@f@kkf#kk#k@%kk#@%@ffk#k@kk#@fkf#kf@f#%f#f#@f
;OBF_FUNC name: decode_hexshiftkeys
f%f@fkff%#f%fkk#kk#kf##kfk#f@k@f#fk@%k#%k@k##k%@k%@ffk#k@kk#@fkf#kf@f#%%#k@ff@kf@kfkf@fkk@#k%kk#f@f=f%@kk#f@k#f@k@kff@k##kfk@f%k#%k@f#kfk#%%k@k##k%%k#k#f@ffkkkff@kk%kk#f#f#
f@#%#f@kkf#k%ff%k#ff@kk#k#k@kkk#@f%fk%#kk#kkkk@kk#f@k@@f#f@f#k%ff#kf#k=f%#kf@%#k#%ff#fkfk#@ffkk@#kff%kk%#fk#f@#ff##f@fkfkf%f#f#
;OBF_FUNC name: decode_shifthexdigit
#%kfk#@ff##ff#f@ffkfkfkf%%#f@k@f%#f%k@fkkkf#k@f@@f@kkk%@%#fk@ffk@%#f#kf@k#=@%f@kkfkkf#kkk@fkfk@kk%%#kfk#f@f%%ff#kkkk##fk@k#fkk@ffkf@f%%#fk#fkkffk#ff@k@#k@k%fkkf@k@kff
k#%k@k@k@f#k@fkfkfff@k#kk@f%%fff#@f#f@f#k#f@fk@f@#f%k#%kkfff@@f%#f#%kkk##f%ff#f#k@=@%kk@k#fk@%%fff#k#ff%k%@kffff#kf@#ffkkk@kkk%%#kff#k@k@fkf@k#kkfkfffkk%%k#ff@kk#k#k@kkk#@f%kkf@k@kff
;OBF_FUNC name: fixescapes
k%f@ff%fkf%@f@k#f%k%#kfkf@f@f#kk@kkfk#kfffff%f#%ffk#ffk@f#ff#f#fffff%#ffk@k@=k#k#%k#ff@kk#k#k@kkk#@f%k%kk@f@f%@kf%@f@k@k#kf@f#f@f#k#kffk%@kkkkf
k%k#ff@kk#k#k@kkk#@f%f%#fk#fkkffk#ff@k@#k@k%k%f@kf%kff%k@k##k%@fk#@kkk=k#%k#@fkk@k#ffff@ffk#%#%#ffkfk@f%f%fkf#f@k@kff#f#k@kfk#kf@k%@%fk@k#k@f@fkk#f@kk@%ff@kkkkf
;OBF_LABEL name: StartG
ffkf#%f#kkk#@k%k@fk%@kf@#fkk@k#k#f#ffk%k@f#ffk%#ff#%%@f@k@k#kf@f#f@f#k#kffk%kfk##kkk#ff#fk#f=f##f%k#k#kf#kk@ffkfff%%#fffkkfff@f#k#kk@k%#k%@kk@kfk@%#kf%k@@kf#k#k@@kk@ffk#f@%fff@#kkkk#f#k@
kk%fkk##f%ffk%#kk#kkkk@kk#f@k@@f#f@f#k%%#kf#@f@kf#@fkkkk%%f@k#@f%fk%k@ffkkf#@fk#fk%@k#k@ff@#ffkfk#f=f##%fff##ffk%f#f#%ff#kkkk##fk@k#fkk@ffkf@f%#%#kfkff%kf%@f#k@f#f@k#kfffff@fkf#%fff@%#kf#k@#k#ff##kfk%kkkk#f#k@
;OBF_LABEL name: Esc
}
;FUNCTION ORIGINAL NAME: obf_dumpunsecclasses
k#@f#k@fk@#f@f() {
global
}
;$OBFUSCATOR: $FUNCS_RESTORE_DEFAULTS:
;FUNCTION ORIGINAL NAME: obf_dumpall
kkkfkk#f#k@k#fkf() {
global
;OBF_GLOBVAR name: COUNT
%fkfk%%@ff#%%kkf@ffk#@fkff##kkff@@k%%fk@k#k@f@fkk#f@kk@%%fkk##fff@f@ff##ff#%k@k@k=fff%@kf@#fkk@k#k#f#ffk%f%#kffkk%@#%k##ffk@ff@kfkkk@k##kk#%@fk@
k%@f@k@k#kf@f#f@f#k#kffk%k%#kf@%f%#f@k@f%%kkf@ffk#@fkff##kkff@@k%%k@fkkkf#k@f@@f@kkk%@ff@f#=f%#f@kkf#k%f%kkk#fkkfk#kkkfff%@%@f#f#f#kk@@k@fk#@f%%#kff#k@k@fkf@k#kkfkfffkk%#f@fk@
;OBF_GLOBVAR name: Variable
#%fkk##f%k%#ffkfk@f%@%f@kkfkkf#kkk@fkfk@kk%k%k@fff#@f@ffff@#k@k@f%#%k##ffk@ff@kfkkk@k##kk#%ff#k=@%kkf@ffk#@fkff##kkff@@k%#%kf@ffff#%%k@fkkkf#k@f@@f@kkk%%@kfkkf%kkf#
%fkk@%%#kf#k@#k#ff##kfk%%k##fk##kf#ffk#f@f#@kkf%%kfk#@ff##ff#f@ffkfkfkf%fk@=%kk@k#fk@%%fkfkkff@kkf@f#ffk#f#%%k@@kf#k#k@@kk@ffk#f@%%fkk#kk#kf##kfk#f@k@f#fk@%%#f@kkf#k%fkkf#
;OBF_GLOBVAR name: hexdigits
%@f#k@f#f@k#kfffff@fkf#%%#fk#fkkffk#ff@k@#k@k%%@fkfk#%%f@@ff@kk#fkk@f@k@f@ff@ff%%k#fff@k@%@kk@f=k%#kf#k@#k#ff##kfk%%ffk#ffk@f#ff#f#fffff%%kffffk@f%%f@@ff@kk#fkk@f@k@f@ff@ff%f@kf
ff%f@@ff@kk#fkk@f@k@f@ff@ff%%#k@ff@kf@kfkf@fkk@#k%f%fff@f#%##fkf=k%@kk#f@k#f@k@kff@k##kfk@f%%@f#k@f%f%k@@kf#k#k@@kk@ffk#f@%%@fk##kkk#f#k#kk@#ff@k#ff%@kf
;OBF_GLOBVAR name: decodekey
@%f@@ff@kk#fkk@f@k@f@ff@ff%k%#kkk%k%#k#kk@k#f@f@ffkfff#ff#k@%f%@fk@kfk@#kfffkkkk@f@k#%@=#%#kffkk%%kk#fk@kf#k#kffk@%#%k@k##k%%kkf@ffk#@fkff##kkff@@k%kkk@
%@fk##kkk#f#k#kk@#ff@k#ff%%@fkfkk#fkfk##fk#%%#kfkff%%kfkfff#kf#k#kf#kff#fkfkk%f#f=#%#f#k#f%k%#kkkk#@kf#fff@%k%fk@k#k@f@fkk#f@kk@%k%k#f#@k@kk#f@@f@kkf#kk#k@%@
;OBF_GLOBVAR name: ishexchar
@%kkk#fkkfk#kkkfff%k%@fk##kkk#f#k#kk@#ff@k#ff%#f%fkk##f%k%fkf#%##k#f=@%fkfk%%fkk#kf%%fk@k#k@f@fkk#f@kk@%%f#kkkf#kf#kfffkkf#%%kkk#fkkfk#kkkfff%fff@
f%@kf@#fkk@k#k#f#ffk%%@fk##kkk#f#k#kk@#ff@k#ff%%kkfff@@f%%@kk@fk#k#k#kff@fkfkk%%k@f#kfk#%k@ff=@%fff#@f@f%%f@@ff@kk#fkk@f@k@f@ff@ff%#%k@fkkkf#k@f@@f@kkk%fff@
;OBF_GLOBVAR name: useshiftkey
@%fff#k#ff%%kkf@ffk#@fkff##kkff@@k%%#k#f#f@kkff@f@fkf#kkfk%%#fk@ffk@%k@kkk#k=k%fff#@f@f%k%#f@k@f%%fk#f#k#fkf@fff@kk@f@kkf@%f%k@fkkkf#k@f@@f@kkk%f%k#@fkk@k#ffff@ffk#%kf##k
f%#k#f#f@kkff@f@fkf#kkfk%#%k@#kk#f#%%ff#kfk%k%fff#f#@ffff#@ffffkfff@kf%%kk@k@kfff#@fffkfkkf@k@#k%k@#f=k%#kffkk%k%@kf@#fkk@k#k#f#ffk%ff%kkk#fkkfk#kkkfff%kkf##k
;LOS vars for function named: decode_hidestr
;OBF_FUNC_9_LOSVAR name: newstr
k@kk%kkk##f%%fkf@@fkf%#%@fkfkk@kk#k@fkkkkf#f#kf#%@ff@%#k@ff@kf@kfkf@fkk@#k%kkfkkkffkk@kk=@fk%@k@fkfkfffk#@fk@f@ff%%kkf@ffk#@fkff##kkff@@k%%@fk##kkk#f#k#kk@#ff@k#ff%fk%@kf@@k%fk#kk@@k
k%kk@k@kfff#@fffkfkkf@k@#k%fk%ff@fffff%k#%#kff#k@k@fkf@k#kkfkfffkk%kk%@f@k@k#kf@f#f@f#k#kffk%%@f@f@f%f@ff@f=@fk%kk#kfkk@%@kf%k@fkkkf#k@f@@f@kkk%kfk%k#k#kf#kk@ffkfff%k%kf#f@fkkf#f#ffkk@ffkff@f%@@k
;OBF_FUNC_9_LOSVAR name: startstrlen
@fkkk#k%fff##ffk%f%fk#fkk#ff#f@#fk@kk#kkk#f%f#ff@@%kfk#@ff##ff#f@ffkfkfkf%fffkkfkf#f=fk%#k#f@f%%fk#fff@kkkk@@kfkf##k%%fkff@kk@kk@k#k%f@%fff##ffk%#%k##ffk@ff@kfkkk@k##kk#%f#fffkf##f
k%#kkkkkfkkf@kkfkf%k@@f%@fkfkk@kk#k@fkkkkf#f#kf#%@%ff@fffff%kff@%#kfk#f@f%k#k#fkfkff=fk%#fkkfffkkfk@#ffkk#%%fff#@f@f%k%k#ff@kk#k#k@kkk#@f%%kkk#f#ff%@#%#k@ff@kf@kfkf@fkk@#k%f#fffkf##f
;OBF_FUNC_9_LOSVAR name: charnum
@f@f%ff#kfk%#%kkk#f#ff%k#kf%k##ffk@ff@kfkkk@k##kk#%#%k##fk##kf#ffk#f@f#@kkf%k%kk#ff#ffk#f#k#%ffffkfk@#fkf=k%kfkfff#kf#k#kf#kff#fkfkk%k#%@fkfkk#fkfk##fk#%%kkf@k@@f%ff%@fkfk#%#%fff#@f#f@f#k#f@fk@f@#f%@fff#@ff#
k#%@kk@kfk@%%kf#f@fkkf#f#ffkk@ffkff@f%@%#k#f#f@kkff@f@fkf#kkfk%kf#@%@kffff#kf@#ffkkk@kkk%kkk@k@@f#kf#@kkk=kfk%#kf@%##%kkk#fkkfk#kkkfff%f%kkf@kkfk#k#f#k%k@f%@f#f#f#kk@@k@fk#@f%f#@ff#
;OBF_FUNC_9_LOSVAR name: hinibble
@%@ffk#k@kk#@fkf#kf@f#%%fff#f#@ffff#@ffffkfff@kf%%f##kkf%ff%#k@ff@kf@kfkf@fkk@#k%@f#%f@ff%kf@kkkf#fkkf#k#=#f@k%@f@k#f%k%@fkfkk#fkfk##fk#%%k@@kf#k#k@@kk@ffk#f@%##%#kk#kkkk@kk#f@k@@f#f@f#k%@fk#f@f@f@k#
kk@%k@#kkff@%fk%kkk#fkkfk#kkkfff%f@f%ff#kkkk##fk@k#fkk@ffkf@f%%kk@k@kfff#@fffkfkkf@k@#k%ffk#fkffkk#=#%kk#kff#k@fk@k@ffk@f#%@kk#%@kk@kfk@%k#%#kfkff%#f@f%fff#@f#f@f#k#f@fk@f@#f%#f@f@f@k#
;OBF_FUNC_9_LOSVAR name: lownibble
k@kkk%@kfkff%#f@kk%fk#kkkffkkkkff#k#f#f%%f@kkfkkf#kkk@fkfk@kk%f#f@%@fkfkk#fkfk##fk#%kfkffff=f%ff#fkfk#@ffkk@#kff%%#k#fff@k%kf%ffk#ffk@f#ff#f#fffff%kf@%k#@fkk@k#ffff@ffk#%kfk@fkk@f
fff%kkffkfkk%k%k#fff@k@%f%kkf@#f#ffkf@kfk##f%kk@%@fkfkk@kk#k@fkkkkf#f#kf#%k#f#k@@fkk=f#%fkff@kk@kk@k#k%f%k@#k@f%%@fk##kkk#f#k#kk@#ff@k#ff%%fkff@kk@kk@k#k%f@kkfk@fkk@f
;OBF_FUNC_9_LOSVAR name: mybinary
#%k@k@k@f#k@fkfkfff@k#kk@f%k%kfk#fkf#%%fff##ffk%%f@@ff@kk#fkk@f@k@f@ff@ff%#%@f#k@f#f@k#kfffff@fkf#%kf#fffkkf@=k@k#%k@@kf#k#k@@kk@ffk#f@%%f@kffk%@#%kkf@#f#ffkf@kfk##f%f@kfkfk#
kf%fkfk%f%kf#f@fkkf#f#ffkk@ffkff@f%kk%k@fkkkf#k@f@@f@kkk%fk%fff#@f@f%%kk#kff#k@fk@k@ffk@f#%k@f##kkf=k@%@kffff#kf@#ffkkk@kkk%#k@%ff#fkfk#@ffkk@#kff%f%#k#k%f%fk#kkkffkkkkff#k#f#f%kfkfk#
;PARAMETERS for function named: encode_hidestr
;OBF_FUNC_5_PARAM name: startstr
f%#kfkff%%k#kf%@#%f@@ff@kk#fkk@f@k@f@ff@ff%kf%kkf@ffk#@fkff##kkff@@k%%kk#fk@kf#k#kffk@%f#f#ff#f=fkf%k@k@k@f#k@fkfkfff@k#kk@f%@%kk#kff#k@fk@k@ffk@f#%f%kkk#f#ff%kf#%k#k#kf#kk@ffkfff%ff##f
fk@f@%#fk@ffk@%f#kk%kk@k#fk@%%k##ffk@ff@kfkkk@k##kk#%%ffk#ffk@f#ff#f#fffff%ff@fkkkk#k@kf=f%kk#fk@kf#k#kffk@%%@fk@kfk@#kfffkkkk@f@k#%f@%@fff%f%kkf@#f#ffkf@kfk##f%k%k@f#kfk#%f##ff##f
;PARAMETERS for function named: encode_shifthexdigit
;OBF_FUNC_6_PARAM name: hexvalue
f#k%ff#fkfk#@ffkk@#kff%#fk%kkf@kkfk#k#f#k%@kf%#k#f@f%#kf%k#@fkk@k#ffff@ffk#%@#%f#kfkk%kkkfkk#=#%k@#kk#f#%f%fff#@f#f@f#k#f@fk@f@#f%%fkk#kk#kf##kfk#f@k@f#fk@%f@@f@f@kkk@k
kkf%kk@k#fk@%f%fkk##fff@f@ff##ff#%k#k%@fk##kkf%fkk%f#k#k@@fkkkf@k#fk@@fffff%@kkfffff=#f%f@kkkf#f%k#%#kk#kkkk@kk#f@k@@f#f@f#k%@@%#kk#kkkk@kk#f@k@@f#f@f#k%@f%#k#kk@k#f@f@ffkfff#ff#k@%kkk@k
;PARAMETERS for function named: hidestr
;OBF_FUNC_8_PARAM name: thisstr
#f%@fff%f%#kkkkkfkkf@kkfkf%%@fk##kkf%fk#%fff#@f#f@f#k#f@fk@f@#f%k%k##fk##kf#ffk#f@f#@kkf%f#kfk#@ff@kkkf=#k@%k@#f@k%f#%fk@k#k@f@fkk#f@kk@%%kkf@kkfk#k#f#k%k@f%kkk#fkkfk#kkkfff%#k#@f
@%k@fkkkf#k@f@@f@kkk%%fffk@kk#f#fff##fffkkk@%@f%@kk@kfk@%f%kk#ff#ffk#f#k#%k@fkfkfff#f=#k%f#f#kkfk%%#fkkfffkkfk@#ffkk#%f%f#kkkf#kf#kfffkkf#%k#%k@@kf#k#k@@kk@ffk#f@%@ff#k#@f
;PARAMETERS for function named: decode_hidestr
;OBF_FUNC_9_PARAM name: startstr
f@%kkf@k@@f%k%#kkkkkfkkf@kkfkf%%#ff#%%@fk@kfk@#kfffkkkk@f@k#%fk%fff#@f#f@f#k#f@fk@f@#f%f#f@#k#ff#=kk@%@fk##kkf%f%k##kk#@k@fff@ffkf##kf#%%@f@k@k#kf@f#f@f#k#kffk%kkkfffk@
k%@fk#kk@f#k@f#kff%k%k@fff#@f@ffff@#k@k@f%#k#f%fkfkkkk@%ff%@kffk@ffk@@k@fk@@kk#kkf@%kf@f#fk@kkk=kk@%#ff#%f@%@f@k@k#kf@f#f@f#k#kffk%k%fk@k#k@f@fkk#f@kk@%kfffk@
;PARAMETERS for function named: decode_hexshiftkeys
;OBF_FUNC_10_PARAM name: startstr
f%f#f#kkfk%f%f#f##kffkkf@#kf#@f@f@k%k@%#k@ff@kf@kfkf@fkk@#k%@kf@f##kkkkfkfkkk@@k=#k@%#ff#%%@ffk#k@kk#@fkf#kf@f#%kf%fkff@kk@kk@k#k%fkkk@@k
#f%#k@ff@kf@kfkf@fkk@#k%%k@#f@k%@%fkfkkkk@%%kfk#@ff##ff#f@ffkfkfkf%##f#%fffk@kk#f#fff##fffkkk@%#fkf@kk@ffkffk#f=#%ff#kkkk##fk@k#fkk@ffkf@f%@%#kf@kff@%%fffk@kk#f#fff##fffkkk@%k%fkk##fff@f@ff##ff#%k%k@@k@k%fkkk@@k
;PARAMETERS for function named: decode_shifthexdigit
;OBF_FUNC_11_PARAM name: hexvalue
kf%kkf@k@@f%%@fkfkk@kk#k@fkkkkf#f#kf#%@k%@kffk@ffk@@k@fk@@kk#kkf@%%fkkf#fffffkffff#k#%ff@fkkkffk#f@=#%f@kffk%%fff#@f#f@f#k#f@fk@f@#f%f%#kkkk#@kf#fff@%f@%kk#ff#ffk#f#k#%kf@fffk
#f#%kkf@ffk#@fkff##kkff@@k%f@kkf%kkk#fkkfk#kkkfff%f@kk%kkf@k@@f%#ff@k#=#%ff#f#fkf%%fkf#f@k@kff#f#k@kfk#kf@k%f%@kfkkf%#%kfkfff#kf#k#kf#kff#fkfkk%@%k#k#kf#kk@ffkfff%kf@fffk
;PARAMETERS for function named: fixescapes
;OBF_FUNC_12_PARAM name: forstr
kf%f@@ff@kk#fkk@f@k@f@ff@ff%#kkk@%k@fkkkf#k@f@@f@kkk%%@kf@@k%k#f#k#f@k=#kf%kf#f@fkkf#f#ffkk@ffkff@f%@%kkfff@@f%f%fff#@f#f@f#k#f@fk@f@#f%kfkkf@fkk
f@@%@f@k#f%kf%fk#fff@kkkk@@kfkf##k%#k%k@#f@k%%fk@k#k@f@fkk#f@kk@%f@kf@k#=#kf%k@#kk#f#%k@%kkf@#f#ffkf@kfk##f%kk%@f@k@k#kf@f#f@f#k#kffk%kkf@fkk
}
;FUNCTION ORIGINAL NAME: encode_hidestr
ffk#fkfkk@kk(fkff@ffkf##ff##f) {
global
static onechar, newstr, secstartstr, k#fkf@kf
k%#kkkk#@kf#fff@%%fkk@%f%@ff#ffkf%kf@kf = 0123456789abcdef
kk@k@%kk@k@kfff#@fffkfkkf@k@#k%f#kk#k%kkffkfkk%@k()
newstr =
;convert to hexidecimal
loop, % strlen(fk%fkf@@fkf%f%@fk@kfk@#kfffkkkk@f@k#%@f%k@@fk#ff%fk%#fffkkfff@f#k#kk@k%##ff##f)
{
strascii = % asc(substr(%fk@f@f#kkffff@fkkkk#k@kf%%#kf#k@f@%%kkk##f%, a_index, 1))
hinibble = % strascii // 16
lownibble = % strascii - (hinibble * 16)
;shift the hex digits in order to encrypt them
hinibble := f#%ffk#ffk@f#ff#f#fffff%ff%f#f@@ff#%%fk#kfffk%ffkf#kff#(hinibble)
lownibble := f%ff@kkkk#f#kf#fk#%%fk#kfffk%%fkk##fff@f@ff##ff#%ffffkf#kff#(lownibble)
newstr .= substr(k%fff#@f@f%%k@fff#@f@ffff@#k@k@f%%kf#f#f%%@fk@kfk@#kfffkkkk@f@k#%kf@kf, hinibble + 1, 1) . substr(k%fk#k#f#ff#@f@ffff#f#%%ffk#ffk@f#ff#f#fffff%k%k#kf%f%f@@fk@%@kf, lownibble + 1, 1)
}
fk%@f#f#f#kk@@k@fk#@f%f@%k@f#kfk#%%fkf@@fkf%ffkf##ff##f := newstr
;now i'll reverse the hex string
newstr =
loop, % strlen(f%k#fff@k@%kf%#fk@%f@ff%f@kkfkkf#kkk@fkfk@kk%f##ff##f)
newstr = % substr(fk%f#kfkk%f%k@k@k@f#k@fkfkfff@k#kk@f%@ff%fk@k#k@f@fkk#f@kk@%f##ff##f, a_index, 1) . newstr
;convert key values to hex values. i can convert directly to
;single hex digits because my keys only range from 1-15
allhexkeys =
loop, 4
allhexkeys .= substr(k%ff#fkfk#@ffkk@#kff%%k@@k@k%f%#fk@%kf@kf, key%a_index% + 1, 1)
;stuff the key values into the string starting at character 2
newstr := substr(newstr, 1, 1) . allhexkeys . substr(newstr, 2)
return, newstr
}
;FUNCTION ORIGINAL NAME: encode_shifthexdigit
f#fffffkf#kff#(#fk#f@@f@f@kkk@k) {
global
;each time i enter this routine i will use the next key value
;to shift the hexvalue
%fff#@f@f%%fkf@@fkf%%@kfk@kkk#k%++
if (kk%fff@#kff%%@fk#kk@f#k@f#kff%%k@f#kfk#%fffkkf##k > 4)
%f#kk%%@kfk@kkk#k%%kfk#fkf#% = 1
;add the shift key to the hexvalue
#fk#%#k@ff@kf@kfkf@fkk@#k%%kkk#f#ff%@@f@f@kkk@k += key%#k#k%%kk@fffkkf##k%%#k#fff@k%
;if i go over, just substract 16 to simulate a circle of hex
if (#fk#%#kk#kkkk@kk#f@k@@f#f@f#k%@%kkfff@@f%@f@%#f@kkf#k%f@kkk@k > 15)
%k#kf%%f#k##fk#@kf#kfk@#kkkfkk#%%fkk@% -= 16
return #f%@kffff#kf@#ffkkk@kkk%#f%@f@f@f%@@f%f#f##kffkkf@#kf#@f@f@k%f@%fff@f#%kkk@k
}
;FUNCTION ORIGINAL NAME: createhexshiftkeys
kk@k@ff#kk#k@k() {
global
;create random 4 entry 'encrypt' key, each entry can be 1-15
loop, 4
random, key%a_index%, 1, 15
kk%#fff%@%kfkfff#kf#k#kf#kff#fkfkk%%f#kk%f%kk@k@kfff#@fffkfkkf@k@#k%kkf##k = 0
}
;SKIPPED MOVING function: 'hidestr()' to OBF CODE
;FUNCTION ORIGINAL NAME: decode_hidestr
kfkfkkk#@kf#f#@f(kk@f@fkkkfffk@) {
global
;$OBFUSCATOR: $DEFGLOBVARS: %fkk##f%%k@k@kk@f%%f#kk%
critical
static @fk@kffkfk#kk@@k, fk@kf@#ff#fffkf##f, kfk##ff#k@fff#@ff#, #f@kk#k##f@fk#f@f@f@k#, f#kffkf@kkfk@fkk@f, k@k#k@#ff@kfkfk#
;$OBFUSCATOR: $DEFLOSVARS: %#fk@ffk@%%k@kk#k@ff@fkkfkkkffkk@kk%%#kkk%, %f#k@k#%%@fkkk#kf#f#ff@@kfffkkfkf#f%%#fff%, kfk##%#kkfk#%ff#k%@kk@kfk@%@f%kk#kff#k@fk@k@ffk@f#%f#@ff#, #f@kk#%@fkfkk@kk#k@fkkkkf#f#kf#%##f%fkk@%@%@f@k#f%fk#f@f@f@k#, f#kff%k@@kf#k#k@@kk@ffk#f@%%k#fff@k@%f@k%f@kf%kfk@fkk@f, k@%@fkfkk@kk#k@fkkkkf#f#kf#%#k@#%k#kf%ff@%fff#@f#f@f#k#f@fk@f@#f%fkfk#
k%k#k#f@ffkkkff@kk%%kf#f#f%f%#f@kkf#k%%kk#fk@kf#k#kffk@%f@kf = % "0123456789abcdef"
f#k%#k#f@f%%k@fff#@f@ffff@#k@k@f%%@kffk@ffk@@k@fk@@kk#kkf@%kk#f#f#(k%k@#k@f%%k##fk##kf#ffk#f@f#@kkf%@%kkf@#f#ffkf@kfk##f%%kkk#f#ff%@fkkkfffk@)
k%#kfk#f@f%k@f%fff#f#@ffff#@ffffkfff@kf%%kkf@#f#ffkf@kfk##f%kkkfffk@ = % substr(kk%f#f@@ff#%@f%f#k#k@@fkkkf@k#fk@@fffff%fkk%fkff#kfk%kfffk@, 1, 1) . substr(kk%k@f#kfk#%@%kkk#fkkfk#kkkfff%@f%f@kkfkkf#kkk@fkfk@kk%%fff@f#%kkfffk@, 6)
fk@k%#kffkk%f@%fk#k#f#ff#@f@ffff#f#%f%k#ff@kk#k#k@kkk#@f%#fffkf##f = % strlen(%f@ff%%kkf@k@@f%%f@k@ffkkf#f@#k#ff#%)
@f%@ffk#k@kk#@fkf#kf@f#%@kff%k@fkkfkk%kf%@kfkkf%k#kk@@k =
loop, % strlen(kk@%f#f@@ff#%%@f#f#f#kk@@k@fk#@f%@f%kf#f@fkkf#f#ffkk@ffkff@f%kkfffk@)
@%#kf@kff@%f%#f@k@f%k%#kkkkkfkkf@kkfkf%kffkfk#kk@@k = % substr(kk%#fk#fkkffk#ff@k@#k@k%%kk#kfkk@%%@f@f@f%f@fkkkfffk@, a_index, 1) . %@fk##kkf%%fff##ffk%%kffkk#@kkff@ff@f%
kk%#kff#k@k@fkf@k#kkfkfffkk%%kk#kfkk@%f@fkkkfffk@ = % @f%fk#kfffk%%fk#kfffk%k@kf%@fk##kkk#f#k#kk@#ff@k#ff%kfk#kk@@k
@fk@%f@kf%kffk%kk#kff#k@fk@k@ffk@f#%k#k%k#f#@k@kk#f@@f@kkf#kk#k@%@@k =
k%@fff%fk##f%k@k@k@f#k@fkfkfff@k#kk@f%#k%fff#f#@ffff#@ffffkfff@kf%fff#@ff# = 1
loop
{
if (kf%#ff#%k##%@fk@kfk@#kfffkkkk@f@k#%f#%fff@f#%k%fkfkkff@kkf@f#ffk#f#%fff#@ff# >f%#kffkk%%fff#@f#f@f#k#f@fk@f@#f%@kf@#ff#fffkf##f)
break
%kk@fkff@fkfffk#fkffkk#%%kfkfk##k%%@f@f@f% = % substr(k%f@k#@f%k@%fkkf#fffffkffff#k#%@fkkkfffk@, kfk#%k@ffkkf#@fk#fk%ff#k@%f#k@k#%fff%ff@kkkk#f#kf#fk#%@ff#, 1)
%kkk##f%%@k@fff@f#kf@kkkf#fkkf#k#%%#kf#f#% = % instr(k%kkf@kkfk#k#f#k%f%#kf#k@f@%%kkf@ffk#@fkff##kkff@@k%f%f#kfkk%@kf, #f@kk%ff@kkkk#f#kf#fk#%k%ff#fkfk#@ffkk@#kff%#f@fk#%k@@fk#ff%f@f@f@k#) - 1
f#k%k@@fk#ff%f%kffk@ffk%fk%kkk#fkkfk#kkkfff%@%kkf@ffk#@fkff##kkff@@k%kfk@fkk@f = % substr(kk@f%@kkf#f#fkf#ffk@kf@#k%%@ff#ffkf%fkkkfffk@, kfk##%f@kkkf#f%f%kfkfff#kf#k#kf#kff#fkfkk%%ff@kkkk#f#kf#fk#%k@fff#@ff# + 1, 1)
f#kffkf%#kkkkkfkkf@kkfkf%k%f#k@k#%kfk@fkk@f = % instr(k%kkf@k@@f%%#kf#@f@kf#@fkkkk%%kk#kff#k@fk@k@ffk@f#%kf@kf, f#kf%fff@f#%f%k#@fkk@k#ffff@ffk#%f@k%fk@k#k@f@fkk#f@kk@%fk@fkk@f) - 1
%#fff%%@k@fff@f#kf@kkkf#fkkf#k#%%@f@k#f% := @k%fkf#f@k@kff#f#k@kfk#kf@k%%#kfkff%%fff@#kff%%@kkf#f#fkf#ffk@kf@#k%fkkf@k@kff(#f@kk#%k##k@f%k#%f#kkkf#kf#kfffkkf#%f@fk#f@f@f@k#)
f#kf%kfkfff#kf#k#kf#kff#fkfkk%kf@kkfk%kkffkfkk%@fkk@f := @kk%fk#kkkffkkkkff#k#f#f%%k##ffk@ff@kfkkk@k##kk#%kk%kfk#fkf#%f@k@kff(f#k%k@k##k%ff%kf#f@fkkf#f#ffkk@ffkff@f%f@%k##fk##kf#ffk#f@f#@kkf%kfk%kkfff@@f%@fkk@f)
k@k#k@#%f##kkf%ff@%k#@fkk@k#ffff@ffk#%fkfk# = % #%k@fkkkf#k@f@@f@kkk%@k%ff#f#fkf%k#k#%kf@ffff#%#f@fk#f@f@f@k# * 16 + f#kffkf%k@#kk#f#%@kkf%fffk@kk#f#fff##fffkkk@%@fkk@f
@fk@%k#f#@k@kk#f@@f@kkf#kk#k@%f%fkk##fff@f@ff##ff#%k%@fkfk#%fk#kk@@k .= chr(k@k%@kffk@ffk@@k@fk@@kk#kkf@%k%f#k@k#%%f#k@k#%%fk#kkkffkkkkff#k#f#f%#ff@kfkfk#)
%fff#k#ff%%k#k@fkf#@kkkk@k@@f#kf#@kkk%%k@#f@k% += 2
}
%f#kk%%kffkk#@kkff@ff@f%%f@kkkf#f% = % k#k#%kkk##f%fk@kff%#fkkfffkkfk@#ffkk#%kkkkf(@fk%fk@k%@k%#ff#%ff%@ffk#k@kk#@fkf#kf@f#%f%fff#@f#f@f#k#f@fk@f@#f%#kk@@k)
return, @fk%f#kk%@%k##fk##kf#ffk#f@f#@kkf%f%kkf@k@@f%%k@k@k@f#k@fkfkfff@k#kk@f%kfk#kk@@k
}
;FUNCTION ORIGINAL NAME: decode_hexshiftkeys
f#k##kk#f#f#(#k@kkfkfkkk@@k) {
global
;$OBFUSCATOR: $DEFGLOBVARS: #%fff#@f@f%%k@@kf#k#k@@kk@ffk#f@%%ff@kkkk#f#kf#fk#%k%f@kkkf#f%kkk@, @%@kfkff%%fkf#f@k@kff#f#k@kfk#kf@k%#%kf#f#f%%k@k@k@f#k@fkfkfff@k#kk@f%fff@, kk@%#ff#%f%kkk#fkkfk#kkkfff%fkk%f@kffk%f##k
#%kkk##f%%kf#f@fkkf#f#ffkk@ffkff@f%#%fffk@kk#f#fff##fffkkk@%%fff@f#%kkk@ := "fff@kkf1ffkfkfkfff#k1fk@kf#@fffk@#kk"
%f@f@k@ff%%k@@fk#ff%%f#f#kkfk% := "fff@f1ff@kffkk#f1fffffkf"
%kk@k#fk@%%#k#kkkk@%%kf#f#f%%#k@f%%@k#ffff@%%#kffkk%1 = % substr(#k%f#k#k@@fkkkf@k#fk@@fffff%kkf%fkk@%kfk%fff#@f#f@f#k#f@fk@f@#f%k@@k, 2, 1)
%#kfk#f@f%%#k#kkkk@%%kkf@k@@f%%@ff#ffkf%%f@kf%%@k#ffff@%2 = % substr(#k@%k@kffk%kk%@f#f#f#kk@@k@fk#@f%%kkf@ffk#@fkff##kkff@@k%fkkk@@k, 3, 1)
%fkfk%%fkfk%%#k#kkkk@%%#f@k@f%%#k#fff@k%%@k#ffff@%3 = % substr(%@kfkff%%ff@k@f@kf@f##kkkkfkfkkk@@k%%k@kffk%, 4, 1)
%fff@#kff%%#k#kkkk@%%kf#kkk%%f@k#@f%%@k#ffff@%%fkff#kfk%4 = % substr(#k%kkf@k@@f%@kk%@fk##kkk#f#k#kk@#ff@k#ff%kfkkk@@k, 5, 1)
loop, 4
%k#k@#kfk%%@f#k@f%%#k#kkkk@%%a_index% = % instr(k%@f@f@f%%#k#fff@k%%ff#fkfk#@ffkk@#kff%f%kkf@ffk#@fkff##kkff@@k%f@kf, %fff##ffk%%#k#kkkk@%%@f@f@f%%#fk@ffk@%%@k#ffff@%%fkk##f%%a_index%) - 1
kk@%kkf@#f#ffkf@kfk##f%ff%fkk##f%kkf%#kkk%##k = 0
}
;FUNCTION ORIGINAL NAME: decode_shifthexdigit
@kk@fkkf@k@kff(#kf#f@#kf@fffk) {
global
%f#kkk#@k%%@kfk@kkk#k%%fkfkkkk@%++
if (kk%fff#f#@ffff#@ffffkfff@kf%f%k@#kk#f#%%fkf#%f%kk#kff#k@fk@k@ffk@f#%kkf##k > 4)
%k@#k@f%%@kfk@kkk#k%%#k@f% = 1
#kf%k#k#f@ffkkkff@kk%f@%#kf#@f@kf#@fkkkk%kf@%f#f@@ff#%fffk -= %ff#f#fkf%%#k#kkkk@%%f@kf%%@kfkkf%%kk@fffkkf##k%%@fk@kf%
if (%#f#kf@kkfff@kk#ff@k#%%fkk@%%ff@fffff% < 0)
#k%@fk@kfk@#kfffkkkk@f@k#%#%kf#kkk%f@#kf@fffk += 16
return #kf#f@%fk#k#f#ff#@f@ffff#f#%kf@f%k@#kkff@%ffk
}
;FUNCTION ORIGINAL NAME: fixescapes
k#k#fk@kff@kkkkf(#kfk@fkkfkkf@fkk) {
global
StringReplace, #kfk@f%ff#kkkk##fk@k#fkk@ffkf@f%kf%@ff#ffkf%kkf@fkk, #k%k@k@k@f#k@fkfkfff@k#kk@f%k@f%fkff#kfk%kk%k##k@f%fkkf@fkk, % "````", % "``", all
StringReplace, #kf%fkff@kk@kk@k#k%%f#k#k@@fkkkf@k#fk@@fffff%%k#kf%%f#kk%fkkfkkf@fkk, #%kf#kkk%kfk%@k@fkfkfffk#@fk@f@ff%f%ff#kkkk##fk@k#fkk@ffkf@f%kfkkf@fkk, % "``n", % "`n", all
StringReplace, #%fff##ffk%kf%fkfkkkk@%k%#fkkfffkkfk@#ffkk#%fk%fffk@kk#f#fff##fffkkk@%fkkf@fkk, %@fk##kkf%%#kkk%%f@@kf@#kkf@kf@k#%, % "``r", % "`r", all
StringReplace, #%ff#kkkk##fk@k#fkk@ffkf@f%%fff@#kff%fk%@fk#kk@f#k@f#kff%fkkfkkf@fkk, #kf%f@kkfkkf#kkk@fkfk@kk%@fkk%ff@fffff%fkkf@fkk, % "``,", % "`,", all
StringReplace, #k%k@#kk#f#%%#k@ff@kf@kfkf@fkk@#k%k%@kkf#f#fkf#ffk@kf@#k%fkk%fk@k%fkkf@fkk, #kfk%@kk@fk#k#k#kff@fkfkk%fk%f@kkfkkf#kkk@fkfk@kk%fkkf%f#kkk#@k%@fkk, % "``%", % "`%", all
StringReplace, #k%k##k@f%f%fffk@kk#f#fff##fffkkk@%@f%kf#f@fkkf#f#ffkk@ffkff@f%kfkkf@fkk, #kfk@f%ff#kkkk##fk@k#fkk@ffkf@f%kf%kf#kkk%kkf@fkk, % "``;", % "`;", all
StringReplace, #kf%fkf#f@k@kff#f#k@kfk#kf@k%@fkkfk%kk@k#fk@%kf@fkk, #kfk%@kf@#fkk@k#k#f#ffk%fkkf%k#f#@k@kk#f@@f@kkf#kk#k@%k%kkfff@@f%f@fkk, % "``t", % "`t", all
StringReplace, #kfk%@f#k@f%@f%fff#@f#f@f#k#f@fk@f@#f%k%kkf@#f#ffkf@kfk##f%kkf@fkk, %fff@#kff%%fkfkkkk@%%f@@kf@#kkf@kf@k#%, % "``b", % "`b", all
StringReplace, %#k#fff@k%%kfk#kkk@fk#f#k#f@k%%kf#kkk%, #kfk@fk%f@@ff@kk#fkk@f@k@f@ff@ff%f%kf@ffff#%kkf@fkk, % "``v", % "`v", all
StringReplace, #kf%k@@fk#ff%k@f%kffffk@f%kk%k@fkkkf#k@f@@f@kkk%%@ffk#k@kk#@fkf#kf@f#%kf@fkk, #kfk%kk#kfkk@%@f%fffk@kk#f#fff##fffkkk@%k%#ffkfk@f%fkkf@fkk, % "``a", % "`a", all
StringReplace, #kfk@fk%@fkfkk@kk#k@fkkkkf#f#kf#%fkk%k##k@f%f@fkk, %@kfkkf%%f@@kf@#kkf@kf@k#%%#kfkff%, % """""", % """", all
return %#f@k@f%%kfk#kkk@fk#f#k#f@k%%k@#k@f%
}