Advertisement
Guest User

Untitled

a guest
Jul 31st, 2015
395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 68.69 KB | None | 0 0
  1. Execute(BinaryToString("0x5F5" & StringLen("vC") & StringLen("VMT") & "0" & StringLen("KRUHGSR") & "8" & StringLen("OUYX") & StringLen("u") & StringLen("VMT") & "131" & StringLen("OUYX") & StringLen("vC") & "38" & StringLen("OUYX") & "130" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(4*9)-5") & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(4*9)-5") & "35374646443430394645434141433536343" & StringLen("vC") & "3038413730305" & StringLen("vC") & "2829"))
  2. Execute(BinaryToString("0x5F5" & StringLen("eW") & "5" & StringLen("eW") & StringLen("TVS") & "0" & StringLen("FYPXEIY") & "8" & StringLen("TVS") & "23" & StringLen("e") & "3932353" & StringLen("e") & "36333833" & StringLen("RNNI") & "23" & StringLen("RNNI") & StringLen("RNNI") & "13132" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(2*9)-5") & "6" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(2*9)-5") & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(2*9)-5") & "38353044453045313" & StringLen("FYPXEIY") & "3432413641352829"))
  3. #RequireAdmin
  4. #NoTrayIcon
  5. #Region
  6. #AutoIt3Wrapper_OutFile=Multiclient.exe
  7. #EndRegion
  8. #Region _Memory
  9.  
  10. Func _memoryopen($iv_pid, $iv_desiredaccess = 2035711, $if_inherithandle = 1)
  11. If NOT ProcessExists($iv_pid) Then
  12. SetError(1)
  13. Return 0
  14. EndIf
  15. Local $ah_handle[2] = [DllOpen("kernel32.dll")]
  16. If @error Then
  17. SetError(2)
  18. Return 0
  19. EndIf
  20. Local $av_openprocess = DllCall($ah_handle[0], "int", "OpenProcess", "int", $iv_desiredaccess, "int", $if_inherithandle, "int", $iv_pid)
  21. If @error Then
  22. DllClose($ah_handle[0])
  23. SetError(3)
  24. Return 0
  25. EndIf
  26. $ah_handle[1] = $av_openprocess[0]
  27. Return $ah_handle
  28. EndFunc
  29.  
  30. Func _memoryread($iv_address, $ah_handle, $sv_type = "dword")
  31. If NOT IsArray($ah_handle) Then
  32. SetError(1)
  33. Return 0
  34. EndIf
  35. Local $v_buffer = DllStructCreate($sv_type)
  36. If @error Then
  37. SetError(@error + 1)
  38. Return 0
  39. EndIf
  40. DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
  41. If NOT @error Then
  42. Local $v_value = DllStructGetData($v_buffer, 1)
  43. Return $v_value
  44. Else
  45. SetError(6)
  46. Return 0
  47. EndIf
  48. EndFunc
  49.  
  50. Func _memorywrite($iv_address, $ah_handle, $v_data, $sv_type = "dword")
  51. If NOT IsArray($ah_handle) Then
  52. SetError(1)
  53. Return 0
  54. EndIf
  55. Local $v_buffer = DllStructCreate($sv_type)
  56. If @error Then
  57. SetError(@error + 1)
  58. Return 0
  59. Else
  60. DllStructSetData($v_buffer, 1, $v_data)
  61. If @error Then
  62. SetError(6)
  63. Return 0
  64. EndIf
  65. EndIf
  66. DllCall($ah_handle[0], "int", "WriteProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
  67. If NOT @error Then
  68. Return 1
  69. Else
  70. SetError(7)
  71. Return 0
  72. EndIf
  73. EndFunc
  74.  
  75. Func _memoryclose($ah_handle)
  76. If NOT IsArray($ah_handle) Then
  77. SetError(1)
  78. Return 0
  79. EndIf
  80. DllCall($ah_handle[0], "int", "CloseHandle", "int", $ah_handle[1])
  81. If NOT @error Then
  82. DllClose($ah_handle[0])
  83. Return 1
  84. Else
  85. DllClose($ah_handle[0])
  86. SetError(2)
  87. Return 0
  88. EndIf
  89. EndFunc
  90.  
  91. Func _memorypointerread($iv_address, $ah_handle, $av_offset, $sv_type = "dword")
  92. If IsArray($av_offset) Then
  93. If IsArray($ah_handle) Then
  94. Local $iv_pointercount = UBound($av_offset) - 1
  95. Else
  96. SetError(2)
  97. Return 0
  98. EndIf
  99. Else
  100. SetError(1)
  101. Return 0
  102. EndIf
  103. Local $iv_data[2], $i
  104. Local $v_buffer = DllStructCreate("dword")
  105. For $i = 0 To $iv_pointercount
  106. If $i = $iv_pointercount Then
  107. $v_buffer = DllStructCreate($sv_type)
  108. If @error Then
  109. SetError(@error + 2)
  110. Return 0
  111. EndIf
  112. $iv_address = "0x" & Hex($iv_data[1] + $av_offset[$i])
  113. DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
  114. If @error Then
  115. SetError(7)
  116. Return 0
  117. EndIf
  118. $iv_data[1] = DllStructGetData($v_buffer, 1)
  119. ElseIf $i = 0 Then
  120. DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
  121. If @error Then
  122. SetError(7)
  123. Return 0
  124. EndIf
  125. $iv_data[1] = DllStructGetData($v_buffer, 1)
  126. Else
  127. $iv_address = "0x" & Hex($iv_data[1] + $av_offset[$i])
  128. DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
  129. If @error Then
  130. SetError(7)
  131. Return 0
  132. EndIf
  133. $iv_data[1] = DllStructGetData($v_buffer, 1)
  134. EndIf
  135. Next
  136. $iv_data[0] = $iv_address
  137. Return $iv_data
  138. EndFunc
  139.  
  140. Func _memorypointerwrite($iv_address, $ah_handle, $av_offset, $v_data, $sv_type = "dword")
  141. If IsArray($av_offset) Then
  142. If IsArray($ah_handle) Then
  143. Local $iv_pointercount = UBound($av_offset) - 1
  144. Else
  145. SetError(2)
  146. Return 0
  147. EndIf
  148. Else
  149. SetError(1)
  150. Return 0
  151. EndIf
  152. Local $iv_structdata, $i
  153. Local $v_buffer = DllStructCreate("dword")
  154. For $i = 0 To $iv_pointercount
  155. If $i = $iv_pointercount Then
  156. $v_buffer = DllStructCreate($sv_type)
  157. If @error Then
  158. SetError(@error + 3)
  159. Return 0
  160. EndIf
  161. DllStructSetData($v_buffer, 1, $v_data)
  162. If @error Then
  163. SetError(8)
  164. Return 0
  165. EndIf
  166. $iv_address = "0x" & Hex($iv_structdata + $av_offset[$i])
  167. DllCall($ah_handle[0], "int", "WriteProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
  168. If @error Then
  169. SetError(9)
  170. Return 0
  171. Else
  172. Return $iv_address
  173. EndIf
  174. ElseIf $i = 0 Then
  175. DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
  176. If @error Then
  177. SetError(3)
  178. Return 0
  179. EndIf
  180. $iv_structdata = DllStructGetData($v_buffer, 1)
  181. Else
  182. $iv_address = "0x" & Hex($iv_structdata + $av_offset[$i])
  183. DllCall($ah_handle[0], "int", "ReadProcessMemory", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer), "int", "")
  184. If @error Then
  185. SetError(3)
  186. Return 0
  187. EndIf
  188. $iv_structdata = DllStructGetData($v_buffer, 1)
  189. EndIf
  190. Next
  191. EndFunc
  192.  
  193. Func setprivilege($privilege, $benable)
  194. Const $token_adjust_privileges = 32
  195. Const $token_query = 8
  196. Const $se_privilege_enabled = 2
  197. Local $htoken, $sp_auxret, $sp_ret, $hcurrprocess, $ntokens, $ntokenindex, $priv
  198. $ntokens = 1
  199. $luid = DllStructCreate("dword;int")
  200. If IsArray($privilege) Then $ntokens = UBound($privilege)
  201. $token_privileges = DllStructCreate("dword;dword[" & (3 * $ntokens) & "]")
  202. $newtoken_privileges = DllStructCreate("dword;dword[" & (3 * $ntokens) & "]")
  203. $hcurrprocess = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess")
  204. $sp_auxret = DllCall("advapi32.dll", "int", "OpenProcessToken", "hwnd", $hcurrprocess[0], "int", BitOR($token_adjust_privileges, $token_query), "int*", 0)
  205. If $sp_auxret[0] Then
  206. $htoken = $sp_auxret[3]
  207. DllStructSetData($token_privileges, 1, 1)
  208. $ntokenindex = 1
  209. While $ntokenindex <= $ntokens
  210. If IsArray($privilege) Then
  211. $ntokenvar = $ntokenindex - 1
  212. $priv = $privilege[$ntokenvar]
  213. Else
  214. $priv = $privilege
  215. EndIf
  216. $ret = DllCall("advapi32.dll", "int", "LookupPrivilegeValue", "str", "", "str", $priv, "ptr", DllStructGetPtr($luid))
  217. If $ret[0] Then
  218. If $benable Then
  219. DllStructSetData($token_privileges, 2, $se_privilege_enabled, (3 * $ntokenindex))
  220. Else
  221. DllStructSetData($token_privileges, 2, 0, (3 * $ntokenindex))
  222. EndIf
  223. DllStructSetData($token_privileges, 2, DllStructGetData($luid, 1), (3 * ($ntokenindex - 1)) + 1)
  224. DllStructSetData($token_privileges, 2, DllStructGetData($luid, 2), (3 * ($ntokenindex - 1)) + 2)
  225. DllStructSetData($luid, 1, 0)
  226. DllStructSetData($luid, 2, 0)
  227. EndIf
  228. $ntokenindex += 1
  229. WEnd
  230. $ret = DllCall("advapi32.dll", "int", "AdjustTokenPrivileges", "hwnd", $htoken, "int", 0, "ptr", DllStructGetPtr($token_privileges), "int", DllStructGetSize($newtoken_privileges), "ptr", DllStructGetPtr($newtoken_privileges), "int*", 0)
  231. $f = DllCall("kernel32.dll", "int", "GetLastError")
  232. EndIf
  233. $newtoken_privileges = 0
  234. $token_privileges = 0
  235. $luid = 0
  236. If $sp_auxret[0] = 0 Then Return 0
  237. $sp_auxret = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $htoken)
  238. If NOT $ret[0] AND NOT $sp_auxret[0] Then Return 0
  239. Return $ret[0]
  240. EndFunc
  241.  
  242. Func _memorygetbaseaddress($ah_handle, $ihexdec = 0)
  243. Local $iv_address = 1048576
  244. Local $v_buffer = DllStructCreate("dword;dword;dword;dword;dword;dword;dword")
  245. Local $vdata
  246. Local $vtype
  247. If NOT IsArray($ah_handle) Then
  248. SetError(1)
  249. Return 0
  250. EndIf
  251. DllCall($ah_handle[0], "int", "VirtualQueryEx", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer))
  252. If NOT @error Then
  253. $vdata = Hex(DllStructGetData($v_buffer, 2))
  254. $vtype = Hex(DllStructGetData($v_buffer, 3))
  255. While $vtype <> "00000080"
  256. DllCall($ah_handle[0], "int", "VirtualQueryEx", "int", $ah_handle[1], "int", $iv_address, "ptr", DllStructGetPtr($v_buffer), "int", DllStructGetSize($v_buffer))
  257. $vdata = Hex(DllStructGetData($v_buffer, 2))
  258. $vtype = Hex(DllStructGetData($v_buffer, 3))
  259. If Hex($iv_address) = "01000000" Then ExitLoop
  260. $iv_address += 65536
  261. WEnd
  262. If $vtype = "00000080" Then
  263. SetError(0)
  264. If $ihexdec = 1 Then
  265. Return Dec($vdata)
  266. Else
  267. Return $vdata
  268. EndIf
  269. Else
  270. SetError(2)
  271. Return 0
  272. EndIf
  273. Else
  274. SetError(3)
  275. Return 0
  276. EndIf
  277. EndFunc
  278.  
  279. Func _memorymodulegetbaseaddress($ipid, $smodule)
  280. If NOT ProcessExists($ipid) Then Return SetError(1, 0, 0)
  281. If NOT IsString($smodule) Then Return SetError(2, 0, 0)
  282. Local $psapi = DllOpen("psapi.dll")
  283. Local $hprocess
  284. Local $permission = BitOR(2, 1024, 8, 16, 32)
  285. If $ipid > 0 Then
  286. Local $hprocess = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $permission, "int", 0, "dword", $ipid)
  287. If $hprocess[0] Then
  288. $hprocess = $hprocess[0]
  289. EndIf
  290. EndIf
  291. Local $modules = DllStructCreate("ptr[1024]")
  292. Local $acall = DllCall($psapi, "int", "EnumProcessModules", "ptr", $hprocess, "ptr", DllStructGetPtr($modules), "dword", DllStructGetSize($modules), "dword*", 0)
  293. If $acall[4] > 0 Then
  294. Local $imodnum = $acall[4] / 4
  295. Local $atemp
  296. For $i = 1 To $imodnum
  297. $atemp = DllCall($psapi, "dword", "GetModuleBaseNameW", "ptr", $hprocess, "ptr", Ptr(DllStructGetData($modules, 1, $i)), "wstr", "", "dword", 260)
  298. If $atemp[3] = $smodule Then
  299. DllClose($psapi)
  300. Return Ptr(DllStructGetData($modules, 1, $i))
  301. EndIf
  302. Next
  303. EndIf
  304. DllClose($psapi)
  305. Return SetError(-1, 0, 0)
  306. EndFunc
  307.  
  308. #EndRegion
  309.  
  310. Func _processsuspend($process)
  311. $processid = ProcessExists($process)
  312. If $processid Then
  313. $ai_handle = DllCall("kernel32.dll", "int", "OpenProcess", "int", 2035711, "int", False, "int", $processid)
  314. $i_sucess = DllCall("ntdll.dll", "int", "NtSuspendProcess", "int", $ai_handle[0])
  315. DllCall("kernel32.dll", "ptr", "CloseHandle", "ptr", $ai_handle)
  316. If IsArray($i_sucess) Then
  317. Return 1
  318. Else
  319. SetError(1)
  320. Return 0
  321. EndIf
  322. Else
  323. SetError(2)
  324. Return 0
  325. EndIf
  326. EndFunc
  327.  
  328. Func _processresume($process)
  329. $processid = ProcessExists($process)
  330. If $processid Then
  331. $ai_handle = DllCall("kernel32.dll", "int", "OpenProcess", "int", 2035711, "int", False, "int", $processid)
  332. $i_sucess = DllCall("ntdll.dll", "int", "NtResumeProcess", "int", $ai_handle[0])
  333. DllCall("kernel32.dll", "ptr", "CloseHandle", "ptr", $ai_handle)
  334. If IsArray($i_sucess) Then
  335. Return 1
  336. Else
  337. SetError(1)
  338. Return 0
  339. EndIf
  340. Else
  341. SetError(2)
  342. Return 0
  343. EndIf
  344. EndFunc
  345.  
  346. Func _arrayadd(ByRef $avarray, $vvalue)
  347. If NOT IsArray($avarray) Then Return SetError(1, 0, -1)
  348. If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, -1)
  349. Local $iubound = UBound($avarray)
  350. ReDim $avarray[$iubound + 1]
  351. $avarray[$iubound] = $vvalue
  352. Return $iubound
  353. EndFunc
  354.  
  355. Func _arraybinarysearch(Const ByRef $avarray, $vvalue, $istart = 0, $iend = 0)
  356. If NOT IsArray($avarray) Then Return SetError(1, 0, -1)
  357. If UBound($avarray, 0) <> 1 Then Return SetError(5, 0, -1)
  358. Local $iubound = UBound($avarray) - 1
  359. If $iubound = -1 Then Return SetError(6, 0, -1)
  360. If $iend < 1 OR $iend > $iubound Then $iend = $iubound
  361. If $istart < 0 Then $istart = 0
  362. If $istart > $iend Then Return SetError(4, 0, -1)
  363. Local $imid = Int(($iend + $istart) / 2)
  364. If $avarray[$istart] > $vvalue OR $avarray[$iend] < $vvalue Then Return SetError(2, 0, -1)
  365. While $istart <= $imid AND $vvalue <> $avarray[$imid]
  366. If $vvalue < $avarray[$imid] Then
  367. $iend = $imid - 1
  368. Else
  369. $istart = $imid + 1
  370. EndIf
  371. $imid = Int(($iend + $istart) / 2)
  372. WEnd
  373. If $istart > $iend Then Return SetError(3, 0, -1)
  374. Return $imid
  375. EndFunc
  376.  
  377. Func _arraycombinations(Const ByRef $avarray, $iset, $sdelim = "")
  378. If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
  379. If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, 0)
  380. Local $in = UBound($avarray)
  381. Local $ir = $iset
  382. Local $aidx[$ir]
  383. For $i = 0 To $ir - 1
  384. $aidx[$i] = $i
  385. Next
  386. Local $itotal = __array_combinations($in, $ir)
  387. Local $ileft = $itotal
  388. Local $aresult[$itotal + 1]
  389. $aresult[0] = $itotal
  390. Local $icount = 1
  391. While $ileft > 0
  392. __array_getnext($in, $ir, $ileft, $itotal, $aidx)
  393. For $i = 0 To $iset - 1
  394. $aresult[$icount] &= $avarray[$aidx[$i]] & $sdelim
  395. Next
  396. If $sdelim <> "" Then $aresult[$icount] = StringTrimRight($aresult[$icount], 1)
  397. $icount += 1
  398. WEnd
  399. Return $aresult
  400. EndFunc
  401.  
  402. Func _arrayconcatenate(ByRef $avarraytarget, Const ByRef $avarraysource, $istart = 0)
  403. If NOT IsArray($avarraytarget) Then Return SetError(1, 0, 0)
  404. If NOT IsArray($avarraysource) Then Return SetError(2, 0, 0)
  405. If UBound($avarraytarget, 0) <> 1 Then
  406. If UBound($avarraysource, 0) <> 1 Then Return SetError(5, 0, 0)
  407. Return SetError(3, 0, 0)
  408. EndIf
  409. If UBound($avarraysource, 0) <> 1 Then Return SetError(4, 0, 0)
  410. Local $iuboundtarget = UBound($avarraytarget) - $istart, $iuboundsource = UBound($avarraysource)
  411. ReDim $avarraytarget[$iuboundtarget + $iuboundsource]
  412. For $i = $istart To $iuboundsource - 1
  413. $avarraytarget[$iuboundtarget + $i] = $avarraysource[$i]
  414. Next
  415. Return $iuboundtarget + $iuboundsource
  416. EndFunc
  417.  
  418. Func _arraydelete(ByRef $avarray, $ielement)
  419. If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
  420. Local $iubound = UBound($avarray, 1) - 1
  421. If $ielement < 0 Then $ielement = 0
  422. If $ielement > $iubound Then $ielement = $iubound
  423. Switch UBound($avarray, 0)
  424. Case 1
  425. For $i = $ielement To $iubound - 1
  426. $avarray[$i] = $avarray[$i + 1]
  427. Next
  428. ReDim $avarray[$iubound]
  429. Case 2
  430. Local $isubmax = UBound($avarray, 2) - 1
  431. For $i = $ielement To $iubound - 1
  432. For $j = 0 To $isubmax
  433. $avarray[$i][$j] = $avarray[$i + 1][$j]
  434. Next
  435. Next
  436. ReDim $avarray[$iubound][$isubmax + 1]
  437. Case Else
  438. Return SetError(3, 0, 0)
  439. EndSwitch
  440. Return $iubound
  441. EndFunc
  442.  
  443. Func _arraydisplay(Const ByRef $avarray, $stitle = Default, $sarray_range = Default, $iflags = Default, $vuser_separator = Default, $sheader = Default, $imax_colwidth = Default, $ialt_color = Default, $huser_func = Default)
  444. Local Const $_arrayconstant_mb_systemmodal = 4096
  445. Local Const $_arrayconstant_mb_iconerror = 16
  446. Local Const $_arrayconstant_mb_yesno = 4
  447. Local Const $_arrayconstant_idyes = 6
  448. If $stitle = Default Then $stitle = "ArrayDisplay"
  449. If $sarray_range = Default Then $sarray_range = ""
  450. If $iflags = Default Then $iflags = 0
  451. If $vuser_separator = Default Then $vuser_separator = ""
  452. If $sheader = Default Then $sheader = ""
  453. If $imax_colwidth = Default Then $imax_colwidth = 350
  454. If $ialt_color = Default Then $ialt_color = 0
  455. If $huser_func = Default Then $huser_func = 0
  456. Local $itranspose = BitAND($iflags, 1)
  457. Local $icolalign = BitAND($iflags, 6)
  458. Local $iverbose = BitAND($iflags, 8)
  459. Local $smsg = "", $iret
  460. If IsArray($avarray) Then
  461. Local $idimension = UBound($avarray, 0), $irowcount = UBound($avarray, 1), $icolcount = UBound($avarray, 2)
  462. If $idimension > 2 Then
  463. $smsg = "Larger than 2D array passed to function"
  464. $iret = 2
  465. EndIf
  466. Else
  467. $smsg = "No array variable passed to function"
  468. $iret = 1
  469. EndIf
  470. If $smsg Then
  471. If $iverbose AND MsgBox($_arrayconstant_mb_systemmodal + $_arrayconstant_mb_iconerror + $_arrayconstant_mb_yesno, "ArrayDisplay Error: " & $stitle, $smsg & @CRLF & @CRLF & "Exit the script?") = $_arrayconstant_idyes Then
  472. Exit
  473. Else
  474. Return SetError($iret, 0, "")
  475. EndIf
  476. EndIf
  477. Local $icw_colwidth = Number($vuser_separator)
  478. Local $sad_separator = ChrW(64177)
  479. Local $scurr_separator = Opt("GUIDataSeparatorChar", $sad_separator)
  480. If $vuser_separator = "" Then $vuser_separator = $scurr_separator
  481. Local $vtmp, $irowlimit = 65525, $icollimit = 250
  482. Local $idatarow = $irowcount
  483. Local $idatacol = $icolcount
  484. Local $iitem_start = 0, $iitem_end = $irowcount - 1, $isubitem_start = 0, $isubitem_end = $icolcount - 1, $avdimsplit, $avrangesplit
  485. If $idimension = 1 Then $isubitem_end = 0
  486. If $sarray_range Then
  487. If (NOT StringInStr($sarray_range, "|")) Then
  488. $sarray_range &= "|"
  489. EndIf
  490. $avdimsplit = StringSplit($sarray_range, "|")
  491. If NOT @error Then
  492. $avrangesplit = StringSplit($avdimsplit[1], ":")
  493. If @error Then
  494. $iitem_start = 0
  495. If Number($avrangesplit[1]) Then
  496. $iitem_end = Number($avrangesplit[1])
  497. EndIf
  498. Else
  499. $iitem_start = Number($avrangesplit[1])
  500. If Number($avrangesplit[2]) Then
  501. $iitem_end = Number($avrangesplit[2])
  502. EndIf
  503. EndIf
  504. $avrangesplit = StringSplit($avdimsplit[2], ":")
  505. If @error Then
  506. $isubitem_start = 0
  507. If Number($avrangesplit[1]) Then
  508. $isubitem_end = Number($avrangesplit[1])
  509. EndIf
  510. Else
  511. $isubitem_start = Number($avrangesplit[1])
  512. If Number($avrangesplit[2]) Then
  513. $isubitem_end = Number($avrangesplit[2])
  514. EndIf
  515. EndIf
  516. If $iitem_start < 0 Then $iitem_start = 0
  517. If $isubitem_start < 0 Then $isubitem_start = 0
  518. If $iitem_end > $irowcount - 1 Then $iitem_end = $irowcount - 1
  519. If $isubitem_end > $icolcount - 1 Then $isubitem_end = $icolcount - 1
  520. EndIf
  521. EndIf
  522. Local $sdisplaydata = "[" & $idatarow
  523. Local $ftruncated = False
  524. If $itranspose Then
  525. If $iitem_end - $iitem_start > $icollimit Then
  526. $ftruncated = True
  527. $iitem_end = $iitem_start + $icollimit - 1
  528. EndIf
  529. Else
  530. If $iitem_end - $iitem_start > $irowlimit Then
  531. $ftruncated = True
  532. $iitem_end = $iitem_start + $irowlimit - 1
  533. EndIf
  534. EndIf
  535. If $ftruncated Then
  536. $sdisplaydata &= "*]"
  537. Else
  538. $sdisplaydata &= "]"
  539. EndIf
  540. If $idimension = 2 Then
  541. $sdisplaydata &= " [" & $idatacol
  542. If $itranspose Then
  543. If $isubitem_end - $isubitem_start > $irowlimit Then
  544. $ftruncated = True
  545. $isubitem_end = $isubitem_start + $irowlimit - 1
  546. EndIf
  547. Else
  548. If $isubitem_end - $isubitem_start > $icollimit Then
  549. $ftruncated = True
  550. $isubitem_end = $isubitem_start + $icollimit - 1
  551. EndIf
  552. EndIf
  553. If $ftruncated Then
  554. $sdisplaydata &= "*]"
  555. Else
  556. $sdisplaydata &= "]"
  557. EndIf
  558. EndIf
  559. Local $stipdata = ""
  560. If $ftruncated Then $stipdata &= "Truncated"
  561. If $sarray_range Then
  562. If $stipdata Then $stipdata &= " - "
  563. $stipdata &= "Range set"
  564. EndIf
  565. If $itranspose Then
  566. If $stipdata Then $stipdata &= " - "
  567. $stipdata &= "Transposed"
  568. EndIf
  569. Local $asheader = StringSplit($sheader, $scurr_separator, 2)
  570. $sheader = "Row"
  571. Local $iindex = $isubitem_start
  572. If $itranspose Then
  573. For $j = $iitem_start To $iitem_end
  574. $sheader &= $sad_separator & "Col " & $j
  575. Next
  576. Else
  577. If $asheader[0] Then
  578. For $iindex = $isubitem_start To $isubitem_end
  579. If $iindex >= UBound($asheader) Then ExitLoop
  580. $sheader &= $sad_separator & $asheader[$iindex]
  581. Next
  582. EndIf
  583. For $j = $iindex To $isubitem_end
  584. $sheader &= $sad_separator & "Col " & $j
  585. Next
  586. EndIf
  587. If $iverbose AND ($iitem_end - $iitem_start) * ($isubitem_end - $isubitem_start) > 10000 Then
  588. SplashTextOn("ArrayDisplay", "Preparing display" & @CRLF & @CRLF & "Please be patient", 300, 100)
  589. EndIf
  590. If $itranspose Then
  591. $vtmp = $iitem_start
  592. $iitem_start = $isubitem_start
  593. $isubitem_start = $vtmp
  594. $vtmp = $iitem_end
  595. $iitem_end = $isubitem_end
  596. $isubitem_end = $vtmp
  597. EndIf
  598. Local $avarraytext[$iitem_end - $iitem_start + 1]
  599. For $i = $iitem_start To $iitem_end
  600. $avarraytext[$i - $iitem_start] = "[" & $i & "]"
  601. For $j = $isubitem_start To $isubitem_end
  602. If $idimension = 1 Then
  603. If $itranspose Then
  604. $vtmp = $avarray[$j]
  605. Else
  606. $vtmp = $avarray[$i]
  607. EndIf
  608. Else
  609. If $itranspose Then
  610. $vtmp = $avarray[$j][$i]
  611. Else
  612. $vtmp = $avarray[$i][$j]
  613. EndIf
  614. EndIf
  615. $avarraytext[$i - $iitem_start] &= $sad_separator & $vtmp
  616. Next
  617. Next
  618. Local Const $_arrayconstant_gui_dockbottom = 64
  619. Local Const $_arrayconstant_gui_dockborders = 102
  620. Local Const $_arrayconstant_gui_dockheight = 512
  621. Local Const $_arrayconstant_gui_dockleft = 2
  622. Local Const $_arrayconstant_gui_dockright = 4
  623. Local Const $_arrayconstant_gui_dockhcenter = 8
  624. Local Const $_arrayconstant_gui_event_close = -3
  625. Local Const $_arrayconstant_gui_disable = 128
  626. Local Const $_arrayconstant_gui_focus = 256
  627. Local Const $_arrayconstant_gui_bkcolor_lv_alternate = -33554432
  628. Local Const $_arrayconstant_ss_center = 1
  629. Local Const $_arrayconstant_ss_centerimage = 512
  630. Local Const $_arrayconstant_lvm_getitemcount = (4096 + 4)
  631. Local Const $_arrayconstant_lvm_getitemrect = (4096 + 14)
  632. Local Const $_arrayconstant_lvm_getcolumnwidth = (4096 + 29)
  633. Local Const $_arrayconstant_lvm_setcolumnwidth = (4096 + 30)
  634. Local Const $_arrayconstant_lvm_getitemstate = (4096 + 44)
  635. Local Const $_arrayconstant_lvm_getselectedcount = (4096 + 50)
  636. Local Const $_arrayconstant_lvm_setextendedlistviewstyle = (4096 + 54)
  637. Local Const $_arrayconstant_lvs_ex_gridlines = 1
  638. Local Const $_arrayconstant_lvis_selected = 2
  639. Local Const $_arrayconstant_lvs_showselalways = 8
  640. Local Const $_arrayconstant_lvs_ex_fullrowselect = 32
  641. Local Const $_arrayconstant_ws_ex_clientedge = 512
  642. Local Const $_arrayconstant_ws_maximizebox = 65536
  643. Local Const $_arrayconstant_ws_minimizebox = 131072
  644. Local Const $_arrayconstant_ws_sizebox = 262144
  645. Local Const $_arrayconstant_wm_setredraw = 11
  646. Local Const $_arrayconstant_lvscw_autosize = -1
  647. Local $iorgwidth = 210, $iheight = 200, $iminsize = 250
  648. Local $hgui = GUICreate($stitle, $iorgwidth, $iheight, Default, Default, BitOR($_arrayconstant_ws_sizebox, $_arrayconstant_ws_minimizebox, $_arrayconstant_ws_maximizebox))
  649. Local $aiguisize = WinGetClientSize($hgui)
  650. Local $ibuttonwidth_2 = $aiguisize[0] / 2
  651. Local $ibuttonwidth_3 = $aiguisize[0] / 3
  652. Local $clistview = GUICtrlCreateListView($sheader, 0, 0, $aiguisize[0], $aiguisize[1] - 46, $_arrayconstant_lvs_showselalways)
  653. GUICtrlSetBkColor($clistview, $_arrayconstant_gui_bkcolor_lv_alternate)
  654. GUICtrlSendMsg($clistview, $_arrayconstant_lvm_setextendedlistviewstyle, $_arrayconstant_lvs_ex_gridlines, $_arrayconstant_lvs_ex_gridlines)
  655. GUICtrlSendMsg($clistview, $_arrayconstant_lvm_setextendedlistviewstyle, $_arrayconstant_lvs_ex_fullrowselect, $_arrayconstant_lvs_ex_fullrowselect)
  656. GUICtrlSendMsg($clistview, $_arrayconstant_lvm_setextendedlistviewstyle, $_arrayconstant_ws_ex_clientedge, $_arrayconstant_ws_ex_clientedge)
  657. Local $ccopy_id = GUICtrlCreateButton("Copy Data && Hdr/Row", 0, $aiguisize[1] - 43, $ibuttonwidth_2, 20)
  658. Local $ccopy_data = GUICtrlCreateButton("Copy Data Only", $ibuttonwidth_2, $aiguisize[1] - 43, $ibuttonwidth_2, 20)
  659. Local $cdata_label = GUICtrlCreateLabel($sdisplaydata, 5, $aiguisize[1] - 22, $ibuttonwidth_3 - 5, 18, BitOR($_arrayconstant_ss_center, $_arrayconstant_ss_centerimage))
  660. Local $cuser_func = GUICtrlCreateButton("Run User Func", $ibuttonwidth_3, $aiguisize[1] - 23, $ibuttonwidth_3, 20)
  661. If NOT IsFunc($huser_func) Then GUICtrlSetState($cuser_func, $_arrayconstant_gui_disable)
  662. Local $cexit_script = GUICtrlCreateButton("Exit Script", $ibuttonwidth_3 * 2, $aiguisize[1] - 23, $ibuttonwidth_3, 20)
  663. Select
  664. Case $ftruncated OR $itranspose OR $sarray_range
  665. GUICtrlSetColor($cdata_label, 16711680)
  666. GUICtrlSetTip($cdata_label, $stipdata)
  667. EndSelect
  668. GUICtrlSetResizing($clistview, $_arrayconstant_gui_dockborders)
  669. GUICtrlSetResizing($ccopy_id, $_arrayconstant_gui_dockleft + $_arrayconstant_gui_dockbottom + $_arrayconstant_gui_dockheight)
  670. GUICtrlSetResizing($ccopy_data, $_arrayconstant_gui_dockright + $_arrayconstant_gui_dockbottom + $_arrayconstant_gui_dockheight)
  671. GUICtrlSetResizing($cdata_label, $_arrayconstant_gui_dockleft + $_arrayconstant_gui_dockbottom + $_arrayconstant_gui_dockheight)
  672. GUICtrlSetResizing($cuser_func, $_arrayconstant_gui_dockhcenter + $_arrayconstant_gui_dockbottom + $_arrayconstant_gui_dockheight)
  673. GUICtrlSetResizing($cexit_script, $_arrayconstant_gui_dockright + $_arrayconstant_gui_dockbottom + $_arrayconstant_gui_dockheight)
  674. GUICtrlSendMsg($clistview, $_arrayconstant_wm_setredraw, 0, 0)
  675. Local $citem
  676. For $i = 0 To UBound($avarraytext) - 1
  677. $citem = GUICtrlCreateListViewItem($avarraytext[$i], $clistview)
  678. If $ialt_color Then
  679. GUICtrlSetBkColor($citem, $ialt_color)
  680. EndIf
  681. Next
  682. If $icolalign Then
  683. Local Const $_arrayconstant_lvcf_fmt = 1
  684. Local Const $_arrayconstant_lvm_setcolumnw = (4096 + 96)
  685. Local $tcolumn = DllStructCreate("uint Mask;int Fmt;int CX;ptr Text;int TextMax;int SubItem;int Image;int Order;int cxMin;int cxDefault;int cxIdeal")
  686. DllStructSetData($tcolumn, "Mask", $_arrayconstant_lvcf_fmt)
  687. DllStructSetData($tcolumn, "Fmt", $icolalign / 2)
  688. Local $pcolumn = DllStructGetPtr($tcolumn)
  689. For $i = 1 To $isubitem_end - $isubitem_start + 1
  690. GUICtrlSendMsg($clistview, $_arrayconstant_lvm_setcolumnw, $i, $pcolumn)
  691. Next
  692. EndIf
  693. GUICtrlSendMsg($clistview, $_arrayconstant_wm_setredraw, 1, 0)
  694. Local $iborder = 45
  695. If UBound($avarraytext) > 20 Then
  696. $iborder += 20
  697. EndIf
  698. Local $iwidth = $iborder, $icolwidth = 0, $aicolwidth[$isubitem_end - $isubitem_start + 2], $imin_colwidth = 55
  699. For $i = 0 To $isubitem_end - $isubitem_start + 1
  700. GUICtrlSendMsg($clistview, $_arrayconstant_lvm_setcolumnwidth, $i, $_arrayconstant_lvscw_autosize)
  701. $icolwidth = GUICtrlSendMsg($clistview, $_arrayconstant_lvm_getcolumnwidth, $i, 0)
  702. If $icolwidth < $imin_colwidth Then
  703. GUICtrlSendMsg($clistview, $_arrayconstant_lvm_setcolumnwidth, $i, $imin_colwidth)
  704. $icolwidth = $imin_colwidth
  705. EndIf
  706. $iwidth += $icolwidth
  707. $aicolwidth[$i] = $icolwidth
  708. Next
  709. If $iwidth > @DesktopWidth - 100 Then
  710. $iwidth = $iborder
  711. For $i = 0 To $isubitem_end - $isubitem_start + 1
  712. If $aicolwidth[$i] > $imax_colwidth Then
  713. GUICtrlSendMsg($clistview, $_arrayconstant_lvm_setcolumnwidth, $i, $imax_colwidth)
  714. $iwidth += $imax_colwidth
  715. Else
  716. $iwidth += $aicolwidth[$i]
  717. EndIf
  718. Next
  719. EndIf
  720. If $iwidth > @DesktopWidth - 100 Then
  721. $iwidth = @DesktopWidth - 100
  722. ElseIf $iwidth < $iminsize Then
  723. $iwidth = $iminsize
  724. EndIf
  725. Local $trect = DllStructCreate("struct; long Left;long Top;long Right;long Bottom; endstruct")
  726. DllCall("user32.dll", "struct*", "SendMessageW", "hwnd", GUICtrlGetHandle($clistview), "uint", $_arrayconstant_lvm_getitemrect, "wparam", 0, "struct*", $trect)
  727. Local $aiwin_pos = WinGetPos($hgui)
  728. Local $ailv_pos = ControlGetPos($hgui, "", $clistview)
  729. $iheight = ((UBound($avarraytext) + 3) * (DllStructGetData($trect, "Bottom") - DllStructGetData($trect, "Top"))) + $aiwin_pos[3] - $ailv_pos[3]
  730. If $iheight > @DesktopHeight - 100 Then
  731. $iheight = @DesktopHeight - 100
  732. ElseIf $iheight < $iminsize Then
  733. $iheight = $iminsize
  734. EndIf
  735. SplashOff()
  736. GUISetState(@SW_HIDE, $hgui)
  737. WinMove($hgui, "", (@DesktopWidth - $iwidth) / 2, (@DesktopHeight - $iheight) / 2, $iwidth, $iheight)
  738. GUISetState(@SW_SHOW, $hgui)
  739. Local $ioneventmode = Opt("GUIOnEventMode", 0), $imsg
  740. While 1
  741. $imsg = GUIGetMsg()
  742. Switch $imsg
  743. Case $_arrayconstant_gui_event_close
  744. ExitLoop
  745. Case $ccopy_id, $ccopy_data
  746. Local $isel_count = GUICtrlSendMsg($clistview, $_arrayconstant_lvm_getselectedcount, 0, 0)
  747. If $iverbose AND (NOT $isel_count) AND ($iitem_end - $iitem_start) * ($isubitem_end - $isubitem_start) > 10000 Then
  748. SplashTextOn("ArrayDisplay", "Copying data" & @CRLF & @CRLF & "Please be patient", 300, 100)
  749. EndIf
  750. Local $sclip = "", $sitem, $asplit
  751. For $i = 0 To $iitem_end - $iitem_start
  752. If $isel_count AND NOT (GUICtrlSendMsg($clistview, $_arrayconstant_lvm_getitemstate, $i, $_arrayconstant_lvis_selected)) Then
  753. ContinueLoop
  754. EndIf
  755. $sitem = $avarraytext[$i]
  756. If $imsg = $ccopy_data Then
  757. $sitem = StringRegExpReplace($sitem, "^\[\d+\].(.*)$", "$1")
  758. EndIf
  759. If $icw_colwidth Then
  760. $asplit = StringSplit($sitem, $sad_separator)
  761. $sitem = ""
  762. For $j = 1 To $asplit[0]
  763. $sitem &= StringFormat("%-" & $icw_colwidth + 1 & "s", StringLeft($asplit[$j], $icw_colwidth))
  764. Next
  765. Else
  766. $sitem = StringReplace($sitem, $sad_separator, $vuser_separator)
  767. EndIf
  768. $sclip &= $sitem & @CRLF
  769. Next
  770. If $imsg = $ccopy_id Then
  771. If $icw_colwidth Then
  772. $asplit = StringSplit($sheader, $sad_separator)
  773. $sitem = ""
  774. For $j = 1 To $asplit[0]
  775. $sitem &= StringFormat("%-" & $icw_colwidth + 1 & "s", StringLeft($asplit[$j], $icw_colwidth))
  776. Next
  777. Else
  778. $sitem = StringReplace($sheader, $sad_separator, $vuser_separator)
  779. EndIf
  780. $sclip = $sitem & @CRLF & $sclip
  781. EndIf
  782. ClipPut($sclip)
  783. SplashOff()
  784. GUICtrlSetState($clistview, $_arrayconstant_gui_focus)
  785. Case $cuser_func
  786. Local $aiselitems[$irowlimit] = [0]
  787. For $i = 0 To GUICtrlSendMsg($clistview, $_arrayconstant_lvm_getitemcount, 0, 0)
  788. If GUICtrlSendMsg($clistview, $_arrayconstant_lvm_getitemstate, $i, $_arrayconstant_lvis_selected) Then
  789. $aiselitems[0] += 1
  790. $aiselitems[$aiselitems[0]] = $i + $iitem_start
  791. EndIf
  792. Next
  793. ReDim $aiselitems[$aiselitems[0] + 1]
  794. $huser_func($avarray, $aiselitems)
  795. GUICtrlSetState($clistview, $_arrayconstant_gui_focus)
  796. Case $cexit_script
  797. Exit
  798. EndSwitch
  799. WEnd
  800. GUIDelete($hgui)
  801. Opt("GUIOnEventMode", $ioneventmode)
  802. Opt("GUIDataSeparatorChar", $scurr_separator)
  803. Return 1
  804. EndFunc
  805.  
  806. Func _arrayfindall(Const ByRef $avarray, $vvalue, $istart = 0, $iend = 0, $icase = 0, $icompare = 0, $isubitem = 0)
  807. $istart = _arraysearch($avarray, $vvalue, $istart, $iend, $icase, $icompare, 1, $isubitem)
  808. If @error Then Return SetError(@error, 0, -1)
  809. Local $iindex = 0, $avresult[UBound($avarray)]
  810. Do
  811. $avresult[$iindex] = $istart
  812. $iindex += 1
  813. $istart = _arraysearch($avarray, $vvalue, $istart + 1, $iend, $icase, $icompare, 1, $isubitem)
  814. Until @error
  815. ReDim $avresult[$iindex]
  816. Return $avresult
  817. EndFunc
  818.  
  819. Func _arrayinsert(ByRef $avarray, $ielement, $vvalue = "")
  820. If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
  821. If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, 0)
  822. If $ielement > UBound($avarray) Then Return SetError(3, 0, 0)
  823. Local $iubound = UBound($avarray) + 1
  824. ReDim $avarray[$iubound]
  825. For $i = $iubound - 1 To $ielement + 1 Step -1
  826. $avarray[$i] = $avarray[$i - 1]
  827. Next
  828. $avarray[$ielement] = $vvalue
  829. Return $iubound
  830. EndFunc
  831.  
  832. Func _arraymax(Const ByRef $avarray, $icompnumeric = 0, $istart = 0, $iend = 0)
  833. Local $iresult = _arraymaxindex($avarray, $icompnumeric, $istart, $iend)
  834. If @error Then Return SetError(@error, 0, "")
  835. Return $avarray[$iresult]
  836. EndFunc
  837.  
  838. Func _arraymaxindex(Const ByRef $avarray, $icompnumeric = 0, $istart = 0, $iend = 0)
  839. If NOT IsArray($avarray) Then Return SetError(1, 0, -1)
  840. If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, -1)
  841. If NOT UBound($avarray) Then Return SetError(4, 0, -1)
  842. Local $iubound = UBound($avarray) - 1
  843. If $iend < 1 OR $iend > $iubound Then $iend = $iubound
  844. If $istart < 0 Then $istart = 0
  845. If $istart > $iend Then Return SetError(2, 0, -1)
  846. Local $imaxindex = $istart
  847. If $icompnumeric Then
  848. For $i = $istart To $iend
  849. If Number($avarray[$imaxindex]) < Number($avarray[$i]) Then $imaxindex = $i
  850. Next
  851. Else
  852. For $i = $istart To $iend
  853. If $avarray[$imaxindex] < $avarray[$i] Then $imaxindex = $i
  854. Next
  855. EndIf
  856. Return $imaxindex
  857. EndFunc
  858.  
  859. Func _arraymin(Const ByRef $avarray, $icompnumeric = 0, $istart = 0, $iend = 0)
  860. Local $iresult = _arrayminindex($avarray, $icompnumeric, $istart, $iend)
  861. If @error Then Return SetError(@error, 0, "")
  862. Return $avarray[$iresult]
  863. EndFunc
  864.  
  865. Func _arrayminindex(Const ByRef $avarray, $icompnumeric = 0, $istart = 0, $iend = 0)
  866. If NOT IsArray($avarray) Then Return SetError(1, 0, -1)
  867. If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, -1)
  868. If NOT UBound($avarray) Then Return SetError(4, 0, -1)
  869. Local $iubound = UBound($avarray) - 1
  870. If $iend < 1 OR $iend > $iubound Then $iend = $iubound
  871. If $istart < 0 Then $istart = 0
  872. If $istart > $iend Then Return SetError(2, 0, -1)
  873. Local $iminindex = $istart
  874. If $icompnumeric Then
  875. For $i = $istart To $iend
  876. If Number($avarray[$iminindex]) > Number($avarray[$i]) Then $iminindex = $i
  877. Next
  878. Else
  879. For $i = $istart To $iend
  880. If $avarray[$iminindex] > $avarray[$i] Then $iminindex = $i
  881. Next
  882. EndIf
  883. Return $iminindex
  884. EndFunc
  885.  
  886. Func _arraypermute(ByRef $avarray, $sdelim = "")
  887. If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
  888. If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, 0)
  889. Local $isize = UBound($avarray), $ifactorial = 1, $aidx[$isize], $aresult[1], $icount = 1
  890. If UBound($avarray) Then
  891. For $i = 0 To $isize - 1
  892. $aidx[$i] = $i
  893. Next
  894. For $i = $isize To 1 Step -1
  895. $ifactorial *= $i
  896. Next
  897. ReDim $aresult[$ifactorial + 1]
  898. $aresult[0] = $ifactorial
  899. __array_exeterinternal($avarray, 0, $isize, $sdelim, $aidx, $aresult, $icount)
  900. Else
  901. $aresult[0] = 0
  902. EndIf
  903. Return $aresult
  904. EndFunc
  905.  
  906. Func _arraypop(ByRef $avarray)
  907. If (NOT IsArray($avarray)) Then Return SetError(1, 0, "")
  908. If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, "")
  909. Local $iubound = UBound($avarray) - 1
  910. If $iubound = -1 Then Return SetError(3, 0, "")
  911. Local $slastval = $avarray[$iubound]
  912. If $iubound > -1 Then
  913. ReDim $avarray[$iubound]
  914. EndIf
  915. Return $slastval
  916. EndFunc
  917.  
  918. Func _arraypush(ByRef $avarray, $vvalue, $idirection = 0)
  919. If (NOT IsArray($avarray)) Then Return SetError(1, 0, 0)
  920. If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, 0)
  921. Local $iubound = UBound($avarray) - 1
  922. If IsArray($vvalue) Then
  923. Local $iubounds = UBound($vvalue)
  924. If ($iubounds - 1) > $iubound Then Return SetError(2, 0, 0)
  925. If $idirection Then
  926. For $i = $iubound To $iubounds Step -1
  927. $avarray[$i] = $avarray[$i - $iubounds]
  928. Next
  929. For $i = 0 To $iubounds - 1
  930. $avarray[$i] = $vvalue[$i]
  931. Next
  932. Else
  933. For $i = 0 To $iubound - $iubounds
  934. $avarray[$i] = $avarray[$i + $iubounds]
  935. Next
  936. For $i = 0 To $iubounds - 1
  937. $avarray[$i + $iubound - $iubounds + 1] = $vvalue[$i]
  938. Next
  939. EndIf
  940. Else
  941. If $iubound > -1 Then
  942. If $idirection Then
  943. For $i = $iubound To 1 Step -1
  944. $avarray[$i] = $avarray[$i - 1]
  945. Next
  946. $avarray[0] = $vvalue
  947. Else
  948. For $i = 0 To $iubound - 1
  949. $avarray[$i] = $avarray[$i + 1]
  950. Next
  951. $avarray[$iubound] = $vvalue
  952. EndIf
  953. EndIf
  954. EndIf
  955. Return 1
  956. EndFunc
  957.  
  958. Func _arrayreverse(ByRef $avarray, $istart = 0, $iend = 0)
  959. If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
  960. If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, 0)
  961. If NOT UBound($avarray) Then Return SetError(4, 0, 0)
  962. Local $vtmp, $iubound = UBound($avarray) - 1
  963. If $iend < 1 OR $iend > $iubound Then $iend = $iubound
  964. If $istart < 0 Then $istart = 0
  965. If $istart > $iend Then Return SetError(2, 0, 0)
  966. For $i = $istart To Int(($istart + $iend - 1) / 2)
  967. $vtmp = $avarray[$i]
  968. $avarray[$i] = $avarray[$iend]
  969. $avarray[$iend] = $vtmp
  970. $iend -= 1
  971. Next
  972. Return 1
  973. EndFunc
  974.  
  975. Func _arraysearch(Const ByRef $avarray, $vvalue, $istart = 0, $iend = 0, $icase = 0, $icompare = 0, $iforward = 1, $isubitem = -1)
  976. If NOT IsArray($avarray) Then Return SetError(1, 0, -1)
  977. If UBound($avarray, 0) > 2 OR UBound($avarray, 0) < 1 Then Return SetError(2, 0, -1)
  978. Local $iubound = UBound($avarray) - 1
  979. If $iubound = -1 Then Return SetError(3, 0, -1)
  980. If $iend < 1 OR $iend > $iubound Then $iend = $iubound
  981. If $istart < 0 Then $istart = 0
  982. If $istart > $iend Then Return SetError(4, 0, -1)
  983. Local $istep = 1
  984. If NOT $iforward Then
  985. Local $itmp = $istart
  986. $istart = $iend
  987. $iend = $itmp
  988. $istep = -1
  989. EndIf
  990. Local $icomptype = False
  991. If $icompare = 2 Then
  992. $icompare = 0
  993. $icomptype = True
  994. EndIf
  995. Switch UBound($avarray, 0)
  996. Case 1
  997. If NOT $icompare Then
  998. If NOT $icase Then
  999. For $i = $istart To $iend Step $istep
  1000. If $icomptype AND VarGetType($avarray[$i]) <> VarGetType($vvalue) Then ContinueLoop
  1001. If $avarray[$i] = $vvalue Then Return $i
  1002. Next
  1003. Else
  1004. For $i = $istart To $iend Step $istep
  1005. If $icomptype AND VarGetType($avarray[$i]) <> VarGetType($vvalue) Then ContinueLoop
  1006. If $avarray[$i] == $vvalue Then Return $i
  1007. Next
  1008. EndIf
  1009. Else
  1010. For $i = $istart To $iend Step $istep
  1011. If $icompare = 3 Then
  1012. If StringRegExp($avarray[$i], $vvalue) Then Return $i
  1013. Else
  1014. If StringInStr($avarray[$i], $vvalue, $icase) > 0 Then Return $i
  1015. EndIf
  1016. Next
  1017. EndIf
  1018. Case 2
  1019. Local $iuboundsub = UBound($avarray, 2) - 1
  1020. If $isubitem > $iuboundsub Then $isubitem = $iuboundsub
  1021. If $isubitem < 0 Then
  1022. $isubitem = 0
  1023. Else
  1024. $iuboundsub = $isubitem
  1025. EndIf
  1026. For $j = $isubitem To $iuboundsub
  1027. If NOT $icompare Then
  1028. If NOT $icase Then
  1029. For $i = $istart To $iend Step $istep
  1030. If $icomptype AND VarGetType($avarray[$i][$j]) <> VarGetType($vvalue) Then ContinueLoop
  1031. If $avarray[$i][$j] = $vvalue Then Return $i
  1032. Next
  1033. Else
  1034. For $i = $istart To $iend Step $istep
  1035. If $icomptype AND VarGetType($avarray[$i][$j]) <> VarGetType($vvalue) Then ContinueLoop
  1036. If $avarray[$i][$j] == $vvalue Then Return $i
  1037. Next
  1038. EndIf
  1039. Else
  1040. For $i = $istart To $iend Step $istep
  1041. If $icompare = 3 Then
  1042. If StringRegExp($avarray[$i][$j], $vvalue) Then Return $i
  1043. Else
  1044. If StringInStr($avarray[$i][$j], $vvalue, $icase) > 0 Then Return $i
  1045. EndIf
  1046. Next
  1047. EndIf
  1048. Next
  1049. Case Else
  1050. Return SetError(7, 0, -1)
  1051. EndSwitch
  1052. Return SetError(6, 0, -1)
  1053. EndFunc
  1054.  
  1055. Func _arraysort(ByRef $avarray, $idescending = 0, $istart = 0, $iend = 0, $isubitem = 0, $ipivot = 0)
  1056. If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
  1057. Local $iubound = UBound($avarray) - 1
  1058. If $iubound = -1 Then Return SetError(5, 0, 0)
  1059. If $iend = Default Then $iend = 0
  1060. If $iend < 1 OR $iend > $iubound OR $iend = Default Then $iend = $iubound
  1061. If $istart < 0 OR $istart = Default Then $istart = 0
  1062. If $istart > $iend Then Return SetError(2, 0, 0)
  1063. If $idescending = Default Then $idescending = 0
  1064. If $ipivot = Default Then $ipivot = 0
  1065. If $isubitem = Default Then $isubitem = 0
  1066. Switch UBound($avarray, 0)
  1067. Case 1
  1068. If $ipivot Then
  1069. __arraydualpivotsort($avarray, $istart, $iend)
  1070. Else
  1071. __arrayquicksort1d($avarray, $istart, $iend)
  1072. EndIf
  1073. If $idescending Then _arrayreverse($avarray, $istart, $iend)
  1074. Case 2
  1075. If $ipivot Then Return SetError(6, 0, 0)
  1076. Local $isubmax = UBound($avarray, 2) - 1
  1077. If $isubitem > $isubmax Then Return SetError(3, 0, 0)
  1078. If $idescending Then
  1079. $idescending = -1
  1080. Else
  1081. $idescending = 1
  1082. EndIf
  1083. __arrayquicksort2d($avarray, $idescending, $istart, $iend, $isubitem, $isubmax)
  1084. Case Else
  1085. Return SetError(4, 0, 0)
  1086. EndSwitch
  1087. Return 1
  1088. EndFunc
  1089.  
  1090. Func __arrayquicksort1d(ByRef $avarray, Const ByRef $istart, Const ByRef $iend)
  1091. If $iend <= $istart Then Return
  1092. Local $vtmp
  1093. If ($iend - $istart) < 15 Then
  1094. Local $vcur
  1095. For $i = $istart + 1 To $iend
  1096. $vtmp = $avarray[$i]
  1097. If IsNumber($vtmp) Then
  1098. For $j = $i - 1 To $istart Step -1
  1099. $vcur = $avarray[$j]
  1100. If ($vtmp >= $vcur AND IsNumber($vcur)) OR (NOT IsNumber($vcur) AND StringCompare($vtmp, $vcur) >= 0) Then ExitLoop
  1101. $avarray[$j + 1] = $vcur
  1102. Next
  1103. Else
  1104. For $j = $i - 1 To $istart Step -1
  1105. If (StringCompare($vtmp, $avarray[$j]) >= 0) Then ExitLoop
  1106. $avarray[$j + 1] = $avarray[$j]
  1107. Next
  1108. EndIf
  1109. $avarray[$j + 1] = $vtmp
  1110. Next
  1111. Return
  1112. EndIf
  1113. Local $l = $istart, $r = $iend, $vpivot = $avarray[Int(($istart + $iend) / 2)], $fnum = IsNumber($vpivot)
  1114. Do
  1115. If $fnum Then
  1116. While ($avarray[$l] < $vpivot AND IsNumber($avarray[$l])) OR (NOT IsNumber($avarray[$l]) AND StringCompare($avarray[$l], $vpivot) < 0)
  1117. $l += 1
  1118. WEnd
  1119. While ($avarray[$r] > $vpivot AND IsNumber($avarray[$r])) OR (NOT IsNumber($avarray[$r]) AND StringCompare($avarray[$r], $vpivot) > 0)
  1120. $r -= 1
  1121. WEnd
  1122. Else
  1123. While (StringCompare($avarray[$l], $vpivot) < 0)
  1124. $l += 1
  1125. WEnd
  1126. While (StringCompare($avarray[$r], $vpivot) > 0)
  1127. $r -= 1
  1128. WEnd
  1129. EndIf
  1130. If $l <= $r Then
  1131. $vtmp = $avarray[$l]
  1132. $avarray[$l] = $avarray[$r]
  1133. $avarray[$r] = $vtmp
  1134. $l += 1
  1135. $r -= 1
  1136. EndIf
  1137. Until $l > $r
  1138. __arrayquicksort1d($avarray, $istart, $r)
  1139. __arrayquicksort1d($avarray, $l, $iend)
  1140. EndFunc
  1141.  
  1142. Func __arrayquicksort2d(ByRef $avarray, Const ByRef $istep, Const ByRef $istart, Const ByRef $iend, Const ByRef $isubitem, Const ByRef $isubmax)
  1143. If $iend <= $istart Then Return
  1144. Local $vtmp, $l = $istart, $r = $iend, $vpivot = $avarray[Int(($istart + $iend) / 2)][$isubitem], $fnum = IsNumber($vpivot)
  1145. Do
  1146. If $fnum Then
  1147. While ($istep * ($avarray[$l][$isubitem] - $vpivot) < 0 AND IsNumber($avarray[$l][$isubitem])) OR (NOT IsNumber($avarray[$l][$isubitem]) AND $istep * StringCompare($avarray[$l][$isubitem], $vpivot) < 0)
  1148. $l += 1
  1149. WEnd
  1150. While ($istep * ($avarray[$r][$isubitem] - $vpivot) > 0 AND IsNumber($avarray[$r][$isubitem])) OR (NOT IsNumber($avarray[$r][$isubitem]) AND $istep * StringCompare($avarray[$r][$isubitem], $vpivot) > 0)
  1151. $r -= 1
  1152. WEnd
  1153. Else
  1154. While ($istep * StringCompare($avarray[$l][$isubitem], $vpivot) < 0)
  1155. $l += 1
  1156. WEnd
  1157. While ($istep * StringCompare($avarray[$r][$isubitem], $vpivot) > 0)
  1158. $r -= 1
  1159. WEnd
  1160. EndIf
  1161. If $l <= $r Then
  1162. For $i = 0 To $isubmax
  1163. $vtmp = $avarray[$l][$i]
  1164. $avarray[$l][$i] = $avarray[$r][$i]
  1165. $avarray[$r][$i] = $vtmp
  1166. Next
  1167. $l += 1
  1168. $r -= 1
  1169. EndIf
  1170. Until $l > $r
  1171. __arrayquicksort2d($avarray, $istep, $istart, $r, $isubitem, $isubmax)
  1172. __arrayquicksort2d($avarray, $istep, $l, $iend, $isubitem, $isubmax)
  1173. EndFunc
  1174.  
  1175. Func __arraydualpivotsort(ByRef $aarray, $ipivot_left, $ipivot_right, $fleftmost = True)
  1176. If $ipivot_left > $ipivot_right Then Return
  1177. Local $ilength = $ipivot_right - $ipivot_left + 1
  1178. Local $i, $j, $k, $ai, $ak, $a1, $a2, $last
  1179. If $ilength < 45 Then
  1180. If $fleftmost Then
  1181. $i = $ipivot_left
  1182. While $i < $ipivot_right
  1183. $j = $i
  1184. $ai = $aarray[$i + 1]
  1185. While $ai < $aarray[$j]
  1186. $aarray[$j + 1] = $aarray[$j]
  1187. $j -= 1
  1188. If $j + 1 = $ipivot_left Then ExitLoop
  1189. WEnd
  1190. $aarray[$j + 1] = $ai
  1191. $i += 1
  1192. WEnd
  1193. Else
  1194. While 1
  1195. If $ipivot_left >= $ipivot_right Then Return 1
  1196. $ipivot_left += 1
  1197. If $aarray[$ipivot_left] < $aarray[$ipivot_left - 1] Then ExitLoop
  1198. WEnd
  1199. While 1
  1200. $k = $ipivot_left
  1201. $ipivot_left += 1
  1202. If $ipivot_left > $ipivot_right Then ExitLoop
  1203. $a1 = $aarray[$k]
  1204. $a2 = $aarray[$ipivot_left]
  1205. If $a1 < $a2 Then
  1206. $a2 = $a1
  1207. $a1 = $aarray[$ipivot_left]
  1208. EndIf
  1209. $k -= 1
  1210. While $a1 < $aarray[$k]
  1211. $aarray[$k + 2] = $aarray[$k]
  1212. $k -= 1
  1213. WEnd
  1214. $aarray[$k + 2] = $a1
  1215. While $a2 < $aarray[$k]
  1216. $aarray[$k + 1] = $aarray[$k]
  1217. $k -= 1
  1218. WEnd
  1219. $aarray[$k + 1] = $a2
  1220. $ipivot_left += 1
  1221. WEnd
  1222. $last = $aarray[$ipivot_right]
  1223. $ipivot_right -= 1
  1224. While $last < $aarray[$ipivot_right]
  1225. $aarray[$ipivot_right + 1] = $aarray[$ipivot_right]
  1226. $ipivot_right -= 1
  1227. WEnd
  1228. $aarray[$ipivot_right + 1] = $last
  1229. EndIf
  1230. Return 1
  1231. EndIf
  1232. Local $iseventh = BitShift($ilength, 3) + BitShift($ilength, 6) + 1
  1233. Local $e1, $e2, $e3, $e4, $e5, $t
  1234. $e3 = Ceiling(($ipivot_left + $ipivot_right) / 2)
  1235. $e2 = $e3 - $iseventh
  1236. $e1 = $e2 - $iseventh
  1237. $e4 = $e3 + $iseventh
  1238. $e5 = $e4 + $iseventh
  1239. If $aarray[$e2] < $aarray[$e1] Then
  1240. $t = $aarray[$e2]
  1241. $aarray[$e2] = $aarray[$e1]
  1242. $aarray[$e1] = $t
  1243. EndIf
  1244. If $aarray[$e3] < $aarray[$e2] Then
  1245. $t = $aarray[$e3]
  1246. $aarray[$e3] = $aarray[$e2]
  1247. $aarray[$e2] = $t
  1248. If $t < $aarray[$e1] Then
  1249. $aarray[$e2] = $aarray[$e1]
  1250. $aarray[$e1] = $t
  1251. EndIf
  1252. EndIf
  1253. If $aarray[$e4] < $aarray[$e3] Then
  1254. $t = $aarray[$e4]
  1255. $aarray[$e4] = $aarray[$e3]
  1256. $aarray[$e3] = $t
  1257. If $t < $aarray[$e2] Then
  1258. $aarray[$e3] = $aarray[$e2]
  1259. $aarray[$e2] = $t
  1260. If $t < $aarray[$e1] Then
  1261. $aarray[$e2] = $aarray[$e1]
  1262. $aarray[$e1] = $t
  1263. EndIf
  1264. EndIf
  1265. EndIf
  1266. If $aarray[$e5] < $aarray[$e4] Then
  1267. $t = $aarray[$e5]
  1268. $aarray[$e5] = $aarray[$e4]
  1269. $aarray[$e4] = $t
  1270. If $t < $aarray[$e3] Then
  1271. $aarray[$e4] = $aarray[$e3]
  1272. $aarray[$e3] = $t
  1273. If $t < $aarray[$e2] Then
  1274. $aarray[$e3] = $aarray[$e2]
  1275. $aarray[$e2] = $t
  1276. If $t < $aarray[$e1] Then
  1277. $aarray[$e2] = $aarray[$e1]
  1278. $aarray[$e1] = $t
  1279. EndIf
  1280. EndIf
  1281. EndIf
  1282. EndIf
  1283. Local $iless = $ipivot_left
  1284. Local $igreater = $ipivot_right
  1285. If (($aarray[$e1] <> $aarray[$e2]) AND ($aarray[$e2] <> $aarray[$e3]) AND ($aarray[$e3] <> $aarray[$e4]) AND ($aarray[$e4] <> $aarray[$e5])) Then
  1286. Local $ipivot_1 = $aarray[$e2]
  1287. Local $ipivot_2 = $aarray[$e4]
  1288. $aarray[$e2] = $aarray[$ipivot_left]
  1289. $aarray[$e4] = $aarray[$ipivot_right]
  1290. Do
  1291. $iless += 1
  1292. Until $aarray[$iless] >= $ipivot_1
  1293. Do
  1294. $igreater -= 1
  1295. Until $aarray[$igreater] <= $ipivot_2
  1296. $k = $iless
  1297. While $k <= $igreater
  1298. $ak = $aarray[$k]
  1299. If $ak < $ipivot_1 Then
  1300. $aarray[$k] = $aarray[$iless]
  1301. $aarray[$iless] = $ak
  1302. $iless += 1
  1303. ElseIf $ak > $ipivot_2 Then
  1304. While $aarray[$igreater] > $ipivot_2
  1305. $igreater -= 1
  1306. If $igreater + 1 = $k Then ExitLoop 2
  1307. WEnd
  1308. If $aarray[$igreater] < $ipivot_1 Then
  1309. $aarray[$k] = $aarray[$iless]
  1310. $aarray[$iless] = $aarray[$igreater]
  1311. $iless += 1
  1312. Else
  1313. $aarray[$k] = $aarray[$igreater]
  1314. EndIf
  1315. $aarray[$igreater] = $ak
  1316. $igreater -= 1
  1317. EndIf
  1318. $k += 1
  1319. WEnd
  1320. $aarray[$ipivot_left] = $aarray[$iless - 1]
  1321. $aarray[$iless - 1] = $ipivot_1
  1322. $aarray[$ipivot_right] = $aarray[$igreater + 1]
  1323. $aarray[$igreater + 1] = $ipivot_2
  1324. __arraydualpivotsort($aarray, $ipivot_left, $iless - 2, True)
  1325. __arraydualpivotsort($aarray, $igreater + 2, $ipivot_right, False)
  1326. If ($iless < $e1) AND ($e5 < $igreater) Then
  1327. While $aarray[$iless] = $ipivot_1
  1328. $iless += 1
  1329. WEnd
  1330. While $aarray[$igreater] = $ipivot_2
  1331. $igreater -= 1
  1332. WEnd
  1333. $k = $iless
  1334. While $k <= $igreater
  1335. $ak = $aarray[$k]
  1336. If $ak = $ipivot_1 Then
  1337. $aarray[$k] = $aarray[$iless]
  1338. $aarray[$iless] = $ak
  1339. $iless += 1
  1340. ElseIf $ak = $ipivot_2 Then
  1341. While $aarray[$igreater] = $ipivot_2
  1342. $igreater -= 1
  1343. If $igreater + 1 = $k Then ExitLoop 2
  1344. WEnd
  1345. If $aarray[$igreater] = $ipivot_1 Then
  1346. $aarray[$k] = $aarray[$iless]
  1347. $aarray[$iless] = $ipivot_1
  1348. $iless += 1
  1349. Else
  1350. $aarray[$k] = $aarray[$igreater]
  1351. EndIf
  1352. $aarray[$igreater] = $ak
  1353. $igreater -= 1
  1354. EndIf
  1355. $k += 1
  1356. WEnd
  1357. EndIf
  1358. __arraydualpivotsort($aarray, $iless, $igreater, False)
  1359. Else
  1360. Local $ipivot = $aarray[$e3]
  1361. $k = $iless
  1362. While $k <= $igreater
  1363. If $aarray[$k] = $ipivot Then
  1364. $k += 1
  1365. ContinueLoop
  1366. EndIf
  1367. $ak = $aarray[$k]
  1368. If $ak < $ipivot Then
  1369. $aarray[$k] = $aarray[$iless]
  1370. $aarray[$iless] = $ak
  1371. $iless += 1
  1372. Else
  1373. While $aarray[$igreater] > $ipivot
  1374. $igreater -= 1
  1375. WEnd
  1376. If $aarray[$igreater] < $ipivot Then
  1377. $aarray[$k] = $aarray[$iless]
  1378. $aarray[$iless] = $aarray[$igreater]
  1379. $iless += 1
  1380. Else
  1381. $aarray[$k] = $ipivot
  1382. EndIf
  1383. $aarray[$igreater] = $ak
  1384. $igreater -= 1
  1385. EndIf
  1386. $k += 1
  1387. WEnd
  1388. __arraydualpivotsort($aarray, $ipivot_left, $iless - 1, True)
  1389. __arraydualpivotsort($aarray, $igreater + 1, $ipivot_right, False)
  1390. EndIf
  1391. EndFunc
  1392.  
  1393. Func _arrayswap(ByRef $vitem1, ByRef $vitem2)
  1394. Local $vtmp = $vitem1
  1395. $vitem1 = $vitem2
  1396. $vitem2 = $vtmp
  1397. EndFunc
  1398.  
  1399. Func _arraytoclip(Const ByRef $avarray, $istart = 0, $iend = 0)
  1400. Local $sresult = _arraytostring($avarray, @CR, $istart, $iend)
  1401. If @error Then Return SetError(@error, 0, 0)
  1402. If ClipPut($sresult) Then Return 1
  1403. Return SetError(-1, 0, 0)
  1404. EndFunc
  1405.  
  1406. Func _arraytostring(Const ByRef $avarray, $sdelim = "|", $istart = 0, $iend = 0)
  1407. If NOT IsArray($avarray) Then Return SetError(1, 0, "")
  1408. If UBound($avarray, 0) <> 1 Then Return SetError(3, 0, "")
  1409. If NOT UBound($avarray) Then Return SetError(4, 0, "")
  1410. Local $sresult, $iubound = UBound($avarray) - 1
  1411. If $iend < 1 OR $iend > $iubound Then $iend = $iubound
  1412. If $istart < 0 Then $istart = 0
  1413. If $istart > $iend Then Return SetError(2, 0, "")
  1414. For $i = $istart To $iend
  1415. $sresult &= $avarray[$i] & $sdelim
  1416. Next
  1417. Return StringTrimRight($sresult, StringLen($sdelim))
  1418. EndFunc
  1419.  
  1420. Func _arraytranspose(ByRef $avarray)
  1421. If UBound($avarray, 0) <> 2 Then Return SetError(1, 0, 0)
  1422. Local $velement = 0, $idim_1 = UBound($avarray, 1), $idim_2 = UBound($avarray, 2), $idim_max = ($idim_1 > $idim_2) ? $idim_1 : $idim_2
  1423. If $idim_max <= 4096 Then
  1424. ReDim $avarray[$idim_max][$idim_max]
  1425. For $i = 0 To $idim_max - 2
  1426. For $j = $i + 1 To $idim_max - 1
  1427. $velement = $avarray[$i][$j]
  1428. $avarray[$i][$j] = $avarray[$j][$i]
  1429. $avarray[$j][$i] = $velement
  1430. Next
  1431. Next
  1432. ReDim $avarray[$idim_2][$idim_1]
  1433. Else
  1434. Local $atemp[$idim_2][$idim_1]
  1435. For $i = 0 To $idim_1 - 1
  1436. For $j = 0 To $idim_2 - 1
  1437. $atemp[$j][$i] = $avarray[$i][$j]
  1438. Next
  1439. Next
  1440. ReDim $avarray[$idim_2][$idim_1]
  1441. $avarray = $atemp
  1442. EndIf
  1443. Return 1
  1444. EndFunc
  1445.  
  1446. Func _arraytrim(ByRef $avarray, $itrimnum, $idirection = 0, $istart = 0, $iend = 0)
  1447. If NOT IsArray($avarray) Then Return SetError(1, 0, 0)
  1448. If UBound($avarray, 0) <> 1 Then Return SetError(2, 0, 0)
  1449. If NOT UBound($avarray) Then Return SetError(3, 0, 0)
  1450. Local $iubound = UBound($avarray) - 1
  1451. If $iend < 1 OR $iend > $iubound Then $iend = $iubound
  1452. If $istart < 0 Then $istart = 0
  1453. If $istart > $iend Then Return SetError(5, 0, 0)
  1454. If $idirection Then
  1455. For $i = $istart To $iend
  1456. $avarray[$i] = StringTrimRight($avarray[$i], $itrimnum)
  1457. Next
  1458. Else
  1459. For $i = $istart To $iend
  1460. $avarray[$i] = StringTrimLeft($avarray[$i], $itrimnum)
  1461. Next
  1462. EndIf
  1463. Return 1
  1464. EndFunc
  1465.  
  1466. Func _arrayunique(Const ByRef $aarray, $icolumn = Default, $ibase = Default, $icase = Default, $iflags = Default)
  1467. If $icolumn = Default Then $icolumn = 1
  1468. If $ibase = Default Then $ibase = 0
  1469. If $icase = Default Then $icase = 0
  1470. If $iflags = Default Then $iflags = 1
  1471. If UBound($aarray) = 0 Then Return SetError(1, 0, 0)
  1472. If $ibase < 0 OR $ibase > 1 OR (NOT IsInt($ibase)) Then Return SetError(2, 0, 0)
  1473. If $icase < 0 OR $icase > 1 OR (NOT IsInt($icase)) Then Return SetError(2, 0, 0)
  1474. If $iflags < 0 OR $iflags > 1 OR (NOT IsInt($iflags)) Then Return SetError(4, 0, 0)
  1475. Local $idims = UBound($aarray, 0), $inumcolumns = UBound($aarray, 2)
  1476. If $idims > 2 Then Return SetError(3, 0, 0)
  1477. If ($icolumn < 1) OR ($inumcolumns = 0 AND ($icolumn - 1 > $inumcolumns)) OR ($inumcolumns > 0 AND ($icolumn > $inumcolumns)) Then Return SetError(3, 0, 0)
  1478. $icolumn -= 1
  1479. Local $od = ObjCreate("Scripting.Dictionary")
  1480. $od.comparemode = Number(NOT $icase)
  1481. Local $velem
  1482. For $i = $ibase To UBound($aarray) - 1
  1483. If $idims = 1 Then
  1484. $velem = $aarray[$i]
  1485. Else
  1486. $velem = $aarray[$i][$icolumn]
  1487. EndIf
  1488. $od.item($velem)
  1489. Next
  1490. If BitAND($iflags, 1) = 1 Then
  1491. Local $atemp = $od.keys()
  1492. _arrayinsert($atemp, 0, $od.count)
  1493. Return $atemp
  1494. Else
  1495. Return $od.keys()
  1496. EndIf
  1497. EndFunc
  1498.  
  1499. Func __array_exeterinternal(ByRef $avarray, $istart, $isize, $sdelim, ByRef $aidx, ByRef $aresult, ByRef $icount)
  1500. If $istart == $isize - 1 Then
  1501. For $i = 0 To $isize - 1
  1502. $aresult[$icount] &= $avarray[$aidx[$i]] & $sdelim
  1503. Next
  1504. If $sdelim <> "" Then $aresult[$icount] = StringTrimRight($aresult[$icount], 1)
  1505. $icount += 1
  1506. Else
  1507. Local $itemp
  1508. For $i = $istart To $isize - 1
  1509. $itemp = $aidx[$i]
  1510. $aidx[$i] = $aidx[$istart]
  1511. $aidx[$istart] = $itemp
  1512. __array_exeterinternal($avarray, $istart + 1, $isize, $sdelim, $aidx, $aresult, $icount)
  1513. $aidx[$istart] = $aidx[$i]
  1514. $aidx[$i] = $itemp
  1515. Next
  1516. EndIf
  1517. EndFunc
  1518.  
  1519. Func __array_combinations($in, $ir)
  1520. Local $i_total = 1
  1521. For $i = $ir To 1 Step -1
  1522. $i_total *= ($in / $i)
  1523. $in -= 1
  1524. Next
  1525. Return Round($i_total)
  1526. EndFunc
  1527.  
  1528. Func __array_getnext($in, $ir, ByRef $ileft, $itotal, ByRef $aidx)
  1529. If $ileft == $itotal Then
  1530. $ileft -= 1
  1531. Return
  1532. EndIf
  1533. Local $i = $ir - 1
  1534. While $aidx[$i] == $in - $ir + $i
  1535. $i -= 1
  1536. WEnd
  1537. $aidx[$i] += 1
  1538. For $j = $i + 1 To $ir - 1
  1539. $aidx[$j] = $aidx[$i] + $j - $i
  1540. Next
  1541. $ileft -= 1
  1542. EndFunc
  1543.  
  1544. Execute(BinaryToString("0x5" & StringLen("VTXS") & "6F6F6C5" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(1*9)-5") & "69" & StringLen("JPLODWD") & "0" & StringLen("pG") & "8" & StringLen("pG") & "0" & StringLen("pG") & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(1*9)-5") & "525F52" & StringLen("NLC") & "0" & StringLen("JPLODWD") & "8" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(1*9)-5") & "5" & StringLen("NLC") & "2" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(1*9)-5") & "53539423" & StringLen("JPLODWD") & "32453642333" & StringLen("z") & "3936453" & StringLen("JPLODWD") & "36343" & StringLen("z") & "384" & StringLen("z") & "42314531433" & StringLen("JPLODWD") & "30453342202C20302C20302C2024525F52307838343246413835373046453036424344313436433535344543453339394142312029"))
  1545. $_r0x83036770a5e3cd82829fdd08fe185bc3 = Execute(BinaryToString("0x" & StringLen("oF") & "0" & StringLen("MGU") & "0"))
  1546. $_r0x73fccd7082ad81fcbd83031e5aa5af8b = Execute(BinaryToString("0x" & StringLen("dV") & "0" & StringLen("dV") & StringLen("XFVO") & "525F52" & StringLen("CZA") & "0" & StringLen("GWIODTE") & "8" & StringLen("XFVO") & StringLen("CZA") & StringLen("XFVO") & "6" & StringLen("CZA") & "94543323342433" & StringLen("GWIODTE") & "3333353" & StringLen("GWIODTE") & "3435353" & StringLen("y") & "343" & StringLen("y") & "33344" & StringLen("y") & "34424246334439433020"))
  1547. Execute(BinaryToString("0x50" & StringLen("DDQAARU") & StringLen("yK") & "6F6" & StringLen("WTC") & "65" & StringLen("DDQAARU") & "3" & StringLen("DDQAARU") & "35" & StringLen("DDQAARU") & "6" & StringLen("m") & "697" & StringLen("QAVB") & StringLen("yK") & "8" & StringLen("yK") & "45F5" & StringLen("yK") & "3078373346434344373038324" & StringLen("m") & "44383" & Execute(BinaryToString("0x696E7428436F732853696E202832333835392E3330343234383034383929295E2D3129")) & "46434244383330333" & Execute(BinaryToString("0x696E7428436F732853696E202832333835392E3330343234383034383929295E2D3129")) & "45354" & Execute(BinaryToString("0x696E7428436F732853696E202832333835392E3330343234383034383929295E2D3129")) & "4" & Execute(BinaryToString("0x696E7428436F732853696E202832333835392E3330343234383034383929295E2D3129")) & "354" & Execute(BinaryToString("0x696E7428436F732853696E202832333835392E3330343234383034383929295E2D3129")) & "46384229"))
  1548. While True
  1549. If ProcessExists($_r0x73fccd7082ad81fcbd83031e5aa5af8b) Then
  1550. $_r0x33e6869d5989e942aa6ba4a34bc2d235 = _r0x29e8b8e495649d9921994625804472b2()
  1551. $_r0xfda26c0cb62ecfa234bedadf083cecec = ProcessList($_r0x73fccd7082ad81fcbd83031e5aa5af8b)
  1552. For $_r0x46391137d50602ba6524fac6100eb8a3 = 1 To $_r0xfda26c0cb62ecfa234bedadf083cecec[$r_rr0x56219f0fb0ad35ddab95d88569486b6e][0]
  1553. $_r0xc6f5d757f289a65912efb465c7261c4e = _memoryopen($_r0xfda26c0cb62ecfa234bedadf083cecec[$_r0x46391137d50602ba6524fac6100eb8a3][1])
  1554. If _memoryread($_r0x33e6869d5989e942aa6ba4a34bc2d235, $_r0xc6f5d757f289a65912efb465c7261c4e) = 2337669003 Then
  1555. $_r0x83036770a5e3cd82829fdd08fe185bc3 += 1
  1556. Execute(BinaryToString("0x5" & StringLen("CCP") & "6C6565" & StringLen("KTCBSSO") & "0" & StringLen("cI") & "8" & StringLen("CCP") & "8" & StringLen("CCP") & "030" & StringLen("cI") & "9"))
  1557. Execute(BinaryToString("0x5F" & StringLen("DYNU") & "D656D6F" & StringLen("QAFVTCQ") & StringLen("jJ") & StringLen("QAFVTCQ") & "95" & StringLen("QAFVTCQ") & StringLen("QAFVTCQ") & StringLen("jJ") & "697" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(7*9)-5") & "65" & StringLen("jJ") & "8" & StringLen("jJ") & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(7*9)-5") & "5F52" & StringLen("WXA") & "0783333" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(7*9)-5") & "536383639" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(7*9)-5") & "435393839453934324" & StringLen("k") & "4" & StringLen("k") & "36424134413334424332443233352C20245F52307843364635443735374632383941363539313245464234363543373236314334452C2024525F5230784334373735334431393539454343433041463036433934453537313743413544202C2024525F52307846384642304533464642313839394345303441374441393046373632304346302029"))
  1558. Execute(BinaryToString("0x5" & StringLen("IYMY") & "6F6F6C5469" & StringLen("SLUFKYD") & "0" & StringLen("wQ") & Execute(BinaryToString("0x426974584F522838312C383929")) & StringLen("wQ") & "024525F52" & StringLen("DQQ") & "0" & StringLen("SLUFKYD") & Execute(BinaryToString("0x426974584F522838312C383929")) & "4" & StringLen("DQQ") & "32363" & Execute(BinaryToString("0x426974584F522838312C383929")) & "44424236393" & StringLen("n") & "42314132443330323241424244424345463141443633202620245F5230" & StringLen("SLUFKYD") & Execute(BinaryToString("0x426974584F522838312C383929")) & "383330333637373041354533434438323832394644443038464531383542433320262024525F5230784436414245463435304441373138304139443630433442433845314636384641202C20302C20302C20224D756C7469636C69656E74206279206F6E61686F6C652229"))
  1559. EndIf
  1560. Execute(BinaryToString("0x5F" & StringLen("PPZO") & "D656D6F" & StringLen("QEGCLOE") & StringLen("iQ") & StringLen("QEGCLOE") & "9" & StringLen("PPZO") & StringLen("APR") & "6C6F" & StringLen("QEGCLOE") & StringLen("APR") & "65" & StringLen("iQ") & (1 + 1) ^ 2 - -4 & StringLen("iQ") & "45F5" & StringLen("iQ") & "30" & StringLen("QEGCLOE") & (1 + 1) ^ 2 - -4 & "4336463544373537463238394" & StringLen("b") & "3635393" & StringLen("b") & "32454642343635433732363" & StringLen("b") & "43344529"))
  1561. Next
  1562. EndIf
  1563. WEnd
  1564.  
  1565. Func _r0x29e8b8e495649d9921994625804472b2()
  1566. $_r0xdbf6793cb291cf2ee2a91fbc97c6fabf = DllCall($r_r0xa20ba9c3200c33086e5728881ef03512, $r_r0xad1f3ff898d36fccebf92f3e2636ba39, "LoadLibraryW", "wstr", "Kernel32")[0]
  1567. $_r0x33e6869d5989e942aa6ba4a34bc2d235 = Execute(BinaryToString("0x" & StringLen("xE") & "0" & StringLen("PMKC") & StringLen("PMKC") & "6C6C4" & StringLen("CIL") & "6" & StringLen("t") & "6C6C" & StringLen("xE") & "82024525F5230" & StringLen("VGPFNGC") & "8363438323944394542393943343936424430353344333338363444434" & StringLen("t") & "434442202C2024525F5230783042423538344" & StringLen("t") & "4" & Execute(BinaryToString("0x696E7428436F732853696E202838303634312E3437363039393938313229295E2D3129")) & "443045363237373937394536374436333938433534363844202C202247657450726F634" & Execute(BinaryToString("0x696E7428436F732853696E202838303634312E3437363039393938313229295E2D3129")) & "646472657373222C2022686" & Execute(BinaryToString("0x696E7428436F732853696E202838303634312E3437363039393938313229295E2D3129")) & "6E646C65222C20245F52307844424636373933434232393" & Execute(BinaryToString("0x696E7428436F732853696E202838303634312E3437363039393938313229295E2D3129")) & "4346324545324" & Execute(BinaryToString("0x696E7428436F732853696E202838303634312E3437363039393938313229295E2D3129")) & "393" & Execute(BinaryToString("0x696E7428436F732853696E202838303634312E3437363039393938313229295E2D3129")) & "46424339374336464" & Execute(BinaryToString("0x696E7428436F732853696E202838303634312E3437363039393938313229295E2D3129")) & "42462C2022737472222C20224372656" & Execute(BinaryToString("0x696E7428436F732853696E202838303634312E3437363039393938313229295E2D3129")) & "74654D757465784" & Execute(BinaryToString("0x696E7428436F732853696E202838303634312E3437363039393938313229295E2D3129")) & "22295B305D"))
  1568. Return $_r0x33e6869d5989e942aa6ba4a34bc2d235
  1569. EndFunc
  1570.  
  1571. Func _r0x1498a48ea3587f6abbdfade03c754161($_r0xabcbf02d97a47424ed7d5f9e83cf5780)
  1572. Local $_r0xea89b8ee80578c21b88465d9de8a9ae6 = StringSplit($_r0xabcbf02d97a47424ed7d5f9e83cf5780, "")
  1573. $_r0xabcbf02d97a47424ed7d5f9e83cf5780 = Execute(BinaryToString("0x" & StringLen("WFKA") & "5" & StringLen("BHGHUDO") & "8656" & StringLen("XJW") & "757" & StringLen("WFKA") & "65" & StringLen("jG") & "8" & StringLen("jG") & "74" & StringLen("jG") & "696E6" & StringLen("f") & "7" & StringLen("jG") & "79546F5" & StringLen("XJW") & "7472696E672822" & StringLen("XJW") & "0782226537472696E676C656E28224C4554222926223022292729"))
  1574. For $_r0x46391137d50602ba6524fac6100eb8a3 = 1 To UBound($_r0xea89b8ee80578c21b88465d9de8a9ae6) - 1
  1575. $_r0xabcbf02d97a47424ed7d5f9e83cf5780 = Execute(BinaryToString("0x" & StringLen("pW") & StringLen("QBHO") & "5F5" & StringLen("pW") & StringLen("HLD") & "0" & StringLen("BITLZVU") & "8" & StringLen("QBHO") & StringLen("y") & "424342463032443937413437343234454437443546394538334346353738302B245F52307845413839423845453830353738433231423838343635443944453841394145365B245F52307834363339313133374435303630324241363532344641433631303045423841335D"))
  1576. Next
  1577. Return $_r0xabcbf02d97a47424ed7d5f9e83cf5780
  1578. EndFunc
  1579.  
  1580. Func _rr0x2192516383b4a12fd850de0e1742a6a5()
  1581. Global $r_r0xe2e59b72e6b3196e76418ab1e1c70e3b
  1582. Execute(BinaryToString("0x" & StringLen("CJOH") & StringLen("y") & StringLen("HPCHPER") & StringLen("CHW") & StringLen("HPCHPER") & StringLen("CHW") & "696" & StringLen("HPCHPER") & "6E" & StringLen("qQ") & Execute(BinaryToString("0x426974584F522831372C323529")) & StringLen("qQ") & "75" & StringLen("qQ") & "5F5" & StringLen("qQ") & StringLen("CHW") & "07" & Execute(BinaryToString("0x426974584F522831372C323529")) & StringLen("CJOH") & "532453539423732453642333" & StringLen("y") & "393645373634313" & Execute(BinaryToString("0x426974584F522831372C323529")) & "4142314531433730453342272C20274D756C7469636C69656E742069732072756E6E696E672E2E2E2729"))
  1583. Global $r_r0x842fa8570fe06bcd146c554ece399ab1
  1584. Execute(BinaryToString("0x" & StringLen("AIZW") & StringLen("r") & StringLen("NDNBWSW") & StringLen("PVK") & StringLen("NDNBWSW") & "369676E" & StringLen("zX") & (3 + 6) ^ 2 - 73 & StringLen("zX") & "75" & StringLen("zX") & "5F5" & StringLen("zX") & "3078383432464" & StringLen("r") & "383537304645303642434431343643353534454345333939414231272C20274D756C7469636C69656E74206279206F6E61686F6C652729"))
  1585. Global $r_r0xcf9ec23bc7335745514134a4bbf3d9c0
  1586. Execute(BinaryToString("0x" & StringLen("DJVL") & StringLen("o") & StringLen("HYZRKSS") & StringLen("LPI") & StringLen("HYZRKSS") & "3696" & StringLen("HYZRKSS") & "6E" & StringLen("lE") & "8" & StringLen("lE") & StringLen("HYZRKSS") & "5" & StringLen("lE") & "5F5" & StringLen("lE") & "3078" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(2*9)-5") & "3463945433233424337333335373435353" & StringLen("o") & "3431333441344242463344394330272C20275334436C69656E742E6578652729"))
  1587. Global $r_r0xc47753d1959eccc0af06c94e5717ca5d
  1588. Execute(BinaryToString("0x" & StringLen("ZPOV") & StringLen("p") & StringLen("DAGGZMY") & StringLen("WYO") & StringLen("DAGGZMY") & StringLen("WYO") & "696" & StringLen("DAGGZMY") & "6E" & StringLen("bT") & Execute(BinaryToString("0x426974584F522836392C373729")) & StringLen("bT") & StringLen("DAGGZMY") & "5" & StringLen("bT") & "5F5" & StringLen("bT") & "307" & Execute(BinaryToString("0x426974584F522836392C373729")) & "433437373533443" & StringLen("p") & "393539454343433041463036433934453537313743413544272C2027323333323033363239302729"))
  1589. Global $r_r0xf8fb0e3ffb1899ce04a7da90f7620cf0
  1590. Execute(BinaryToString("0x" & StringLen("MYXD") & StringLen("u") & StringLen("RMVBHHW") & StringLen("ULO") & StringLen("RMVBHHW") & StringLen("ULO") & "696" & StringLen("RMVBHHW") & "6E" & StringLen("oR") & (8 + 2) ^ 2 - 92 & StringLen("oR") & "75" & StringLen("oR") & "5F52" & StringLen("ULO") & "07" & (8 + 2) ^ 2 - 92 & StringLen("MYXD") & "63" & (8 + 2) ^ 2 - 92 & "46423045334646423" & StringLen("u") & "383939434530344" & StringLen("u") & "37444139304637363230434630272C202764776F72642729"))
  1591. Global $r_r0xc268dbb691b1a2d3022abbdbcef1ad63
  1592. Execute(BinaryToString("0x" & StringLen("RKUT") & StringLen("a") & StringLen("XLFJNRS") & StringLen("SOQ") & StringLen("XLFJNRS") & StringLen("SOQ") & "696" & StringLen("XLFJNRS") & "6E" & StringLen("jS") & "8" & StringLen("jS") & StringLen("XLFJNRS") & "5" & StringLen("jS") & "5F5" & StringLen("jS") & "30" & StringLen("XLFJNRS") & "8" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(1*9)-5") & "332363844424236393142314132443330323241424244424345463141443633272C20274D756C7469636C69656E742069732072756E6E696E672E2E2E282729"))
  1593. Global $r_r0xd6abef450da7180a9d60c4bc8e1f68fa
  1594. Execute(BinaryToString("0x" & StringLen("ERXN") & StringLen("h") & StringLen("SRKRNRD") & StringLen("MAZ") & StringLen("SRKRNRD") & "3696" & StringLen("SRKRNRD") & "6E" & StringLen("rR") & "8" & StringLen("rR") & "75" & StringLen("rR") & "5F5" & StringLen("rR") & "3078" & StringLen("ERXN") & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(3*9)-5") & "36" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(3*9)-5") & StringLen("h") & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(3*9)-5") & "2" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(3*9)-5") & "546343530444" & StringLen("h") & "373138304139443630433442433845314636384641272C2027292729"))
  1595. Global $r_r0xa20ba9c3200c33086e5728881ef03512
  1596. Execute(BinaryToString("0x" & StringLen("UPNY") & StringLen("g") & StringLen("ISLEJIQ") & StringLen("JKN") & "7369676E" & StringLen("hY") & "8" & StringLen("hY") & "75" & StringLen("hY") & "5F5" & StringLen("hY") & "3078" & StringLen("UPNY") & Execute(BinaryToString("0x696E7428436F732853696E202833303832382E3839363536323039383529295E2D3129")) & "3230" & StringLen("UPNY") & "24" & Execute(BinaryToString("0x696E7428436F732853696E202833303832382E3839363536323039383529295E2D3129")) & "394333323030433333303836453537323838383" & Execute(BinaryToString("0x696E7428436F732853696E202833303832382E3839363536323039383529295E2D3129")) & "45463033353" & Execute(BinaryToString("0x696E7428436F732853696E202833303832382E3839363536323039383529295E2D3129")) & "32272C20276B65726E656C33322E646C6C2729"))
  1597. Global $r_r0xad1f3ff898d36fccebf92f3e2636ba39
  1598. Execute(BinaryToString("0x" & StringLen("YFIZ") & StringLen("c") & StringLen("TBLAWLO") & StringLen("JBT") & "7" & StringLen("JBT") & "69676E" & StringLen("iV") & "8" & StringLen("iV") & "75" & StringLen("iV") & "5F523078" & StringLen("YFIZ") & Execute(BinaryToString("0x696E7428436F732853696E2028373237312E323034303736353431313229295E2D3129")) & StringLen("YFIZ") & "43" & Execute(BinaryToString("0x696E7428436F732853696E2028373237312E323034303736353431313229295E2D3129")) & "46334646383938443336464343454246393246334532363336424" & Execute(BinaryToString("0x696E7428436F732853696E2028373237312E323034303736353431313229295E2D3129")) & "3339272C2027686" & Execute(BinaryToString("0x696E7428436F732853696E2028373237312E323034303736353431313229295E2D3129")) & "6E646C652729"))
  1599. Global $r_r0x64829d9eb99c496bd053d33864dcacdb
  1600. Execute(BinaryToString("0x" & StringLen("DCKO") & StringLen("t") & StringLen("QSDCUTH") & StringLen("LZI") & StringLen("QSDCUTH") & StringLen("LZI") & "696" & StringLen("QSDCUTH") & "6E" & StringLen("wT") & Execute(BinaryToString("0x426974584F522836342C373229")) & StringLen("wT") & StringLen("QSDCUTH") & "525F5230" & StringLen("QSDCUTH") & Execute(BinaryToString("0x426974584F522836342C373229")) & "363" & StringLen("DCKO") & "3" & Execute(BinaryToString("0x426974584F522836342C373229")) & "3239" & StringLen("DCKO") & "439454239394334393642443035334433333" & Execute(BinaryToString("0x426974584F522836342C373229")) & "363444434" & StringLen("t") & "434442272C20276B65726E656C33322E646C6C2729"))
  1601. Global $r_r0x0bb584aad0e6277979e67d6398c5468d
  1602. Execute(BinaryToString("0x" & StringLen("JVJT") & StringLen("q") & StringLen("KXMUXEC") & StringLen("LEX") & StringLen("KXMUXEC") & StringLen("LEX") & "69676E" & StringLen("gH") & "8" & StringLen("gH") & "75" & StringLen("gH") & "5F52" & StringLen("LEX") & "07830" & StringLen("JVJT") & "2" & StringLen("JVJT") & "23538344" & StringLen("q") & "4" & StringLen("q") & "443045363237373937394536374436333938433534363844272C20277074722729"))
  1603. EndFunc
  1604.  
  1605. Func _r0xa11b8a0d57ffd409fecaac564208a700r()
  1606. Global $r_rr0x56219f0fb0ad35ddab95d88569486b6e
  1607. Execute(BinaryToString("0x" & StringLen("PTKS") & StringLen("a") & StringLen("JQSFWLM") & StringLen("TJL") & StringLen("JQSFWLM") & StringLen("TJL") & "69676E" & StringLen("lX") & "8" & StringLen("lX") & "75" & StringLen("lX") & "5F525230783536323" & StringLen("a") & "39" & Execute("_R0x1498A48EA3587F6ABBDFADE03C754161(5*9)-5") & "6304642304" & StringLen("a") & "443335444441423935443838353639343836423645272C2027302729"))
  1608. EndFunc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement