BonziBuddy Leaked Source Code by NixButterPlay
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

453 lines
15 KiB

  1. VERSION 1.0 CLASS
  2. BEGIN
  3. MultiUse = -1 'True
  4. Persistable = 0 'NotPersistable
  5. DataBindingBehavior = 0 'vbNone
  6. DataSourceBehavior = 0 'vbNone
  7. MTSTransactionMode = 0 'NotAnMTSObject
  8. END
  9. Attribute VB_Name = "clsDownloadManager"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = True
  14. Public Function DownloadManagerHandleDownload(strURL) '5F8B60
  15. loc_005F8B60: push ebp
  16. loc_005F8B61: mov ebp, esp
  17. loc_005F8B63: sub esp, 00000014h
  18. loc_005F8B66: push 00412856h ; __vbaExceptHandler
  19. loc_005F8B6B: mov eax, fs:[00000000h]
  20. loc_005F8B71: push eax
  21. loc_005F8B72: mov fs:[00000000h], esp
  22. loc_005F8B79: sub esp, 00000088h
  23. loc_005F8B7F: push ebx
  24. loc_005F8B80: push esi
  25. loc_005F8B81: push edi
  26. loc_005F8B82: mov var_14, esp
  27. loc_005F8B85: mov var_10, 00403BA0h
  28. loc_005F8B8C: xor esi, esi
  29. loc_005F8B8E: mov var_C, esi
  30. loc_005F8B91: mov var_8, esi
  31. loc_005F8B94: mov eax, Me
  32. loc_005F8B97: mov ecx, [eax]
  33. loc_005F8B99: push eax
  34. loc_005F8B9A: call [ecx+00000004h]
  35. loc_005F8B9D: mov ecx, 00000008h
  36. loc_005F8BA2: xor eax, eax
  37. loc_005F8BA4: lea edi, var_3C
  38. loc_005F8BA7: repz stosd
  39. loc_005F8BA9: mov var_40, esi
  40. loc_005F8BAC: mov var_44, esi
  41. loc_005F8BAF: mov var_48, esi
  42. loc_005F8BB2: mov var_4C, esi
  43. loc_005F8BB5: mov var_50, esi
  44. loc_005F8BB8: mov var_60, esi
  45. loc_005F8BBB: mov var_70, esi
  46. loc_005F8BBE: mov var_80, esi
  47. loc_005F8BC1: mov var_84, esi
  48. loc_005F8BC7: mov edx, strURL
  49. loc_005F8BCA: lea ecx, var_44
  50. loc_005F8BCD: call [00401310h] ; __vbaStrCopy
  51. loc_005F8BD3: push 00000001h
  52. loc_005F8BD5: call [00401124h] ; __vbaOnError
  53. loc_005F8BDB: mov [0073A21Eh], FFFFFFh
  54. loc_005F8BE4: cmp [0073A254h], esi
  55. loc_005F8BEA: jnz 005F8BFCh
  56. loc_005F8BEC: push 0073A254h
  57. loc_005F8BF1: push 00431838h
  58. loc_005F8BF6: call [004012FCh] ; __vbaNew2
  59. loc_005F8BFC: mov esi, [0073A254h]
  60. loc_005F8C02: mov eax, 80020004h
  61. loc_005F8C07: mov var_78, eax
  62. loc_005F8C0A: mov ecx, 0000000Ah
  63. loc_005F8C0F: mov var_80, ecx
  64. loc_005F8C12: mov edx, eax
  65. loc_005F8C14: mov var_68, edx
  66. loc_005F8C17: mov var_70, ecx
  67. loc_005F8C1A: mov edi, [esi]
  68. loc_005F8C1C: sub esp, 00000010h
  69. loc_005F8C1F: mov ebx, esp
  70. loc_005F8C21: mov [ebx], ecx
  71. loc_005F8C23: mov ecx, var_7C
  72. loc_005F8C26: mov [ebx+00000004h], ecx
  73. loc_005F8C29: mov [ebx+00000008h], eax
  74. loc_005F8C2C: mov eax, var_74
  75. loc_005F8C2F: mov [ebx+0000000Ch], eax
  76. loc_005F8C32: sub esp, 00000010h
  77. loc_005F8C35: mov ecx, esp
  78. loc_005F8C37: mov eax, var_70
  79. loc_005F8C3A: mov [ecx], eax
  80. loc_005F8C3C: mov eax, var_6C
  81. loc_005F8C3F: mov [ecx+00000004h], eax
  82. loc_005F8C42: mov [ecx+00000008h], edx
  83. loc_005F8C45: mov edx, var_64
  84. loc_005F8C48: mov [ecx+0000000Ch], edx
  85. loc_005F8C4B: push esi
  86. loc_005F8C4C: call [edi+000002B0h]
  87. loc_005F8C52: fnclex
  88. loc_005F8C54: test eax, eax
  89. loc_005F8C56: jge 005F8C6Ah
  90. loc_005F8C58: push 000002B0h
  91. loc_005F8C5D: push 00440B20h
  92. loc_005F8C62: push esi
  93. loc_005F8C63: push eax
  94. loc_005F8C64: call [004010CCh] ; __vbaHresultCheckObj
  95. loc_005F8C6A: mov eax, [0073C818h]
  96. loc_005F8C6F: test eax, eax
  97. loc_005F8C71: jnz 005F8C87h
  98. loc_005F8C73: push 0073C818h
  99. loc_005F8C78: push 00441F00h
  100. loc_005F8C7D: mov edi, [004012FCh] ; __vbaNew2
  101. loc_005F8C83: call edi
  102. loc_005F8C85: jmp 005F8C8Dh
  103. loc_005F8C87: mov edi, [004012FCh] ; __vbaNew2
  104. loc_005F8C8D: mov esi, [0073C818h]
  105. loc_005F8C93: mov eax, [0073A2D4h]
  106. loc_005F8C98: test eax, eax
  107. loc_005F8C9A: jnz 005F8CA8h
  108. loc_005F8C9C: push 0073A2D4h
  109. loc_005F8CA1: push 00420A7Ch
  110. loc_005F8CA6: call edi
  111. loc_005F8CA8: mov ebx, [esi]
  112. loc_005F8CAA: mov eax, [0073A2D4h]
  113. loc_005F8CAF: push eax
  114. loc_005F8CB0: lea ecx, var_50
  115. loc_005F8CB3: push ecx
  116. loc_005F8CB4: call [00401130h] ; __vbaObjSetAddref
  117. loc_005F8CBA: push eax
  118. loc_005F8CBB: push esi
  119. loc_005F8CBC: call [ebx+0000000Ch]
  120. loc_005F8CBF: fnclex
  121. loc_005F8CC1: test eax, eax
  122. loc_005F8CC3: jge 005F8CD4h
  123. loc_005F8CC5: push 0000000Ch
  124. loc_005F8CC7: push 00441EF0h
  125. loc_005F8CCC: push esi
  126. loc_005F8CCD: push eax
  127. loc_005F8CCE: call [004010CCh] ; __vbaHresultCheckObj
  128. loc_005F8CD4: lea ecx, var_50
  129. loc_005F8CD7: call [0040142Ch] ; __vbaFreeObj
  130. loc_005F8CDD: mov edx, var_44
  131. loc_005F8CE0: push edx
  132. loc_005F8CE1: mov esi, [00401088h] ; rtcTrimBstr
  133. loc_005F8CE7: call rtcTrimBstr
  134. loc_005F8CE9: mov edx, eax
  135. loc_005F8CEB: lea ecx, var_48
  136. loc_005F8CEE: call [004013C0h] ; __vbaStrMove
  137. loc_005F8CF4: mov edx, eax
  138. loc_005F8CF6: lea ecx, var_38
  139. loc_005F8CF9: mov ebx, [00401310h] ; __vbaStrCopy
  140. loc_005F8CFF: call ebx
  141. loc_005F8D01: lea ecx, var_48
  142. loc_005F8D04: call [00401430h] ; __vbaFreeStr
  143. loc_005F8D0A: mov eax, [0073A2D4h]
  144. loc_005F8D0F: test eax, eax
  145. loc_005F8D11: jnz 005F8D1Fh
  146. loc_005F8D13: push 0073A2D4h
  147. loc_005F8D18: push 00420A7Ch
  148. loc_005F8D1D: call edi
  149. loc_005F8D1F: lea eax, var_4C
  150. loc_005F8D22: push eax
  151. loc_005F8D23: mov ecx, var_44
  152. loc_005F8D26: push ecx
  153. loc_005F8D27: call rtcTrimBstr
  154. loc_005F8D29: mov edx, eax
  155. loc_005F8D2B: lea ecx, var_48
  156. loc_005F8D2E: call [004013C0h] ; __vbaStrMove
  157. loc_005F8D34: push eax
  158. loc_005F8D35: mov edx, [0073A2D4h]
  159. loc_005F8D3B: push edx
  160. loc_005F8D3C: call 005CB3F0h
  161. loc_005F8D41: mov edx, var_4C
  162. loc_005F8D44: lea ecx, var_3C
  163. loc_005F8D47: call ebx
  164. loc_005F8D49: lea eax, var_4C
  165. loc_005F8D4C: push eax
  166. loc_005F8D4D: lea ecx, var_48
  167. loc_005F8D50: push ecx
  168. loc_005F8D51: push 00000002h
  169. loc_005F8D53: call [00401324h] ; __vbaFreeStrList
  170. loc_005F8D59: add esp, 0000000Ch
  171. loc_005F8D5C: mov edx, 0044379Ch ; "NEW"
  172. loc_005F8D61: lea ecx, var_28
  173. loc_005F8D64: call ebx
  174. loc_005F8D66: mov eax, [0073A2D4h]
  175. loc_005F8D6B: test eax, eax
  176. loc_005F8D6D: jnz 005F8D7Bh
  177. loc_005F8D6F: push 0073A2D4h
  178. loc_005F8D74: push 00420A7Ch
  179. loc_005F8D79: call edi
  180. loc_005F8D7B: lea edx, var_84
  181. loc_005F8D81: push edx
  182. loc_005F8D82: lea eax, var_3C
  183. loc_005F8D85: push eax
  184. loc_005F8D86: mov ecx, [0073A2D4h]
  185. loc_005F8D8C: push ecx
  186. loc_005F8D8D: call 005C3670h
  187. loc_005F8D92: cmp var_84, 0000h
  188. loc_005F8D9A: jz 005F908Ch
  189. loc_005F8DA0: mov eax, [0073A2D4h]
  190. loc_005F8DA5: test eax, eax
  191. loc_005F8DA7: jnz 005F8DB5h
  192. loc_005F8DA9: push 0073A2D4h
  193. loc_005F8DAE: push 00420A7Ch
  194. loc_005F8DB3: call edi
  195. loc_005F8DB5: mov edx, [0073A2D4h]
  196. loc_005F8DBB: push edx
  197. loc_005F8DBC: call 005C55E0h
  198. loc_005F8DC1: mov eax, [0073A2D4h]
  199. loc_005F8DC6: test eax, eax
  200. loc_005F8DC8: jnz 005F8DD6h
  201. loc_005F8DCA: push 0073A2D4h
  202. loc_005F8DCF: push 00420A7Ch
  203. loc_005F8DD4: call edi
  204. loc_005F8DD6: mov esi, [0073A2D4h]
  205. loc_005F8DDC: mov eax, [esi]
  206. loc_005F8DDE: lea ecx, var_84
  207. loc_005F8DE4: push ecx
  208. loc_005F8DE5: push esi
  209. loc_005F8DE6: call [eax+000006F8h]
  210. loc_005F8DEC: fnclex
  211. loc_005F8DEE: test eax, eax
  212. loc_005F8DF0: jge 005F8E04h
  213. loc_005F8DF2: push 000006F8h
  214. loc_005F8DF7: push 00443270h ; "lm�MI��I�9˒�٣�mnuPopupEdit"
  215. loc_005F8DFC: push esi
  216. loc_005F8DFD: push eax
  217. loc_005F8DFE: call [004010CCh] ; __vbaHresultCheckObj
  218. loc_005F8E04: mov eax, [0073A254h]
  219. loc_005F8E09: test eax, eax
  220. loc_005F8E0B: jnz 005F8E19h
  221. loc_005F8E0D: push 0073A254h
  222. loc_005F8E12: push 00431838h
  223. loc_005F8E17: call edi
  224. loc_005F8E19: mov esi, [0073A254h]
  225. loc_005F8E1F: mov edx, 004479E8h ; "DownloadManagerHandleDownload"
  226. loc_005F8E24: lea ecx, var_4C
  227. loc_005F8E27: call ebx
  228. loc_005F8E29: mov var_68, 004479A0h ; "DownloadInProgress = "
  229. loc_005F8E30: mov var_70, 00000008h
  230. loc_005F8E37: mov dx, var_84
  231. loc_005F8E3E: mov var_78, dx
  232. loc_005F8E42: mov var_80, 0000000Bh
  233. loc_005F8E49: lea eax, var_70
  234. loc_005F8E4C: push eax
  235. loc_005F8E4D: lea ecx, var_80
  236. loc_005F8E50: push ecx
  237. loc_005F8E51: lea edx, var_60
  238. loc_005F8E54: push edx
  239. loc_005F8E55: call [004012B0h] ; __vbaVarCat
  240. loc_005F8E5B: push eax
  241. loc_005F8E5C: call [00401040h] ; __vbaStrVarMove
  242. loc_005F8E62: mov edx, eax
  243. loc_005F8E64: lea ecx, var_48
  244. loc_005F8E67: call [004013C0h] ; __vbaStrMove
  245. loc_005F8E6D: mov eax, [esi]
  246. loc_005F8E6F: lea ecx, var_4C
  247. loc_005F8E72: push ecx
  248. loc_005F8E73: lea edx, var_48
  249. loc_005F8E76: push edx
  250. loc_005F8E77: push esi
  251. loc_005F8E78: call [eax+00000748h]
  252. loc_005F8E7E: fnclex
  253. loc_005F8E80: test eax, eax
  254. loc_005F8E82: jge 005F8E9Ah
  255. loc_005F8E84: push 00000748h
  256. loc_005F8E89: push 004408D0h
  257. loc_005F8E8E: push esi
  258. loc_005F8E8F: push eax
  259. loc_005F8E90: mov ebx, [004010CCh] ; __vbaHresultCheckObj
  260. loc_005F8E96: call ebx
  261. loc_005F8E98: jmp 005F8EA0h
  262. loc_005F8E9A: mov ebx, [004010CCh] ; __vbaHresultCheckObj
  263. loc_005F8EA0: lea eax, var_4C
  264. loc_005F8EA3: push eax
  265. loc_005F8EA4: lea ecx, var_48
  266. loc_005F8EA7: push ecx
  267. loc_005F8EA8: push 00000002h
  268. loc_005F8EAA: call [00401324h] ; __vbaFreeStrList
  269. loc_005F8EB0: lea edx, var_60
  270. loc_005F8EB3: push edx
  271. loc_005F8EB4: lea eax, var_80
  272. loc_005F8EB7: push eax
  273. loc_005F8EB8: push 00000002h
  274. loc_005F8EBA: call [00401050h] ; __vbaFreeVarList
  275. loc_005F8EC0: add esp, 00000018h
  276. loc_005F8EC3: mov eax, [0073A2D4h]
  277. loc_005F8EC8: test eax, eax
  278. loc_005F8ECA: jnz 005F8ED8h
  279. loc_005F8ECC: push 0073A2D4h
  280. loc_005F8ED1: push 00420A7Ch
  281. loc_005F8ED6: call edi
  282. loc_005F8ED8: mov esi, [0073A2D4h]
  283. loc_005F8EDE: mov ecx, [esi]
  284. loc_005F8EE0: lea edx, var_84
  285. loc_005F8EE6: push edx
  286. loc_005F8EE7: push esi
  287. loc_005F8EE8: call [ecx+000006F8h]
  288. loc_005F8EEE: fnclex
  289. loc_005F8EF0: test eax, eax
  290. loc_005F8EF2: jge 005F8F02h
  291. loc_005F8EF4: push 000006F8h
  292. loc_005F8EF9: push 00443270h ; "lm�MI��I�9˒�٣�mnuPopupEdit"
  293. loc_005F8EFE: push esi
  294. loc_005F8EFF: push eax
  295. loc_005F8F00: call ebx
  296. loc_005F8F02: cmp var_84, 0000h
  297. loc_005F8F0A: mov eax, [0073A2D4h]
  298. loc_005F8F0F: jnz 005F8F72h
  299. loc_005F8F11: test eax, eax
  300. loc_005F8F13: jnz 005F8F21h
  301. loc_005F8F15: push 0073A2D4h
  302. loc_005F8F1A: push 00420A7Ch
  303. loc_005F8F1F: call edi
  304. loc_005F8F21: mov eax, [0073A2D4h]
  305. loc_005F8F26: push eax
  306. loc_005F8F27: call 005C80F0h
  307. loc_005F8F2C: mov eax, [0073A2D4h]
  308. loc_005F8F31: test eax, eax
  309. loc_005F8F33: jnz 005F8F41h
  310. loc_005F8F35: push 0073A2D4h
  311. loc_005F8F3A: push 00420A7Ch
  312. loc_005F8F3F: call edi
  313. loc_005F8F41: mov ecx, [0073A2D4h]
  314. loc_005F8F47: push ecx
  315. loc_005F8F48: call 005C2CB0h
  316. loc_005F8F4D: mov eax, [0073A2D4h]
  317. loc_005F8F52: test eax, eax
  318. loc_005F8F54: jnz 005F8F62h
  319. loc_005F8F56: push 0073A2D4h
  320. loc_005F8F5B: push 00420A7Ch
  321. loc_005F8F60: call edi
  322. loc_005F8F62: push 00000000h
  323. loc_005F8F64: mov edx, [0073A2D4h]
  324. loc_005F8F6A: push edx
  325. loc_005F8F6B: call 005C18E0h
  326. loc_005F8F70: jmp 005F8FB3h
  327. loc_005F8F72: test eax, eax
  328. loc_005F8F74: jnz 005F8F82h
  329. loc_005F8F76: push 0073A2D4h
  330. loc_005F8F7B: push 00420A7Ch
  331. loc_005F8F80: call edi
  332. loc_005F8F82: lea eax, var_3C
  333. loc_005F8F85: push eax
  334. loc_005F8F86: mov ecx, [0073A2D4h]
  335. loc_005F8F8C: push ecx
  336. loc_005F8F8D: call 005C7BE0h
  337. loc_005F8F92: mov eax, [0073A2D4h]
  338. loc_005F8F97: test eax, eax
  339. loc_005F8F99: jnz 005F8FA7h
  340. loc_005F8F9B: push 0073A2D4h
  341. loc_005F8FA0: push 00420A7Ch
  342. loc_005F8FA5: call edi
  343. loc_005F8FA7: mov edx, [0073A2D4h]
  344. loc_005F8FAD: push edx
  345. loc_005F8FAE: call 005C1C60h
  346. loc_005F8FB3: mov eax, [0073A2D4h]
  347. loc_005F8FB8: test eax, eax
  348. loc_005F8FBA: jnz 005F8FC8h
  349. loc_005F8FBC: push 0073A2D4h
  350. loc_005F8FC1: push 00420A7Ch
  351. loc_005F8FC6: call edi
  352. loc_005F8FC8: mov esi, [0073A2D4h]
  353. loc_005F8FCE: mov eax, [esi]
  354. loc_005F8FD0: lea ecx, var_84
  355. loc_005F8FD6: push ecx
  356. loc_005F8FD7: push esi
  357. loc_005F8FD8: call [eax+000001B8h]
  358. loc_005F8FDE: fnclex
  359. loc_005F8FE0: test eax, eax
  360. loc_005F8FE2: jge 005F8FF2h
  361. loc_005F8FE4: push 000001B8h
  362. loc_005F8FE9: push 00443240h
  363. loc_005F8FEE: push esi
  364. loc_005F8FEF: push eax
  365. loc_005F8FF0: call ebx
  366. loc_005F8FF2: cmp var_84, 0000h
  367. loc_005F8FFA: jnz 005F9083h
  368. loc_005F9000: mov eax, [0073A2D4h]
  369. loc_005F9005: test eax, eax
  370. loc_005F9007: jnz 005F9015h
  371. loc_005F9009: push 0073A2D4h
  372. loc_005F900E: push 00420A7Ch
  373. loc_005F9013: call edi
  374. loc_005F9015: mov esi, [0073A2D4h]
  375. loc_005F901B: mov eax, 80020004h
  376. loc_005F9020: mov var_78, eax
  377. loc_005F9023: mov ecx, 0000000Ah
  378. loc_005F9028: mov var_80, ecx
  379. loc_005F902B: mov edx, eax
  380. loc_005F902D: mov var_68, edx
  381. loc_005F9030: mov var_70, ecx
  382. loc_005F9033: mov edi, [esi]
  383. loc_005F9035: sub esp, 00000010h
  384. loc_005F9038: mov ebx, esp
  385. loc_005F903A: mov [ebx], ecx
  386. loc_005F903C: mov ecx, var_7C
  387. loc_005F903F: mov [ebx+00000004h], ecx
  388. loc_005F9042: mov [ebx+00000008h], eax
  389. loc_005F9045: mov eax, var_74
  390. loc_005F9048: mov [ebx+0000000Ch], eax
  391. loc_005F904B: sub esp, 00000010h
  392. loc_005F904E: mov ecx, esp
  393. loc_005F9050: mov eax, var_70
  394. loc_005F9053: mov [ecx], eax
  395. loc_005F9055: mov eax, var_6C
  396. loc_005F9058: mov [ecx+00000004h], eax
  397. loc_005F905B: mov [ecx+00000008h], edx
  398. loc_005F905E: mov edx, var_64
  399. loc_005F9061: mov [ecx+0000000Ch], edx
  400. loc_005F9064: push esi
  401. loc_005F9065: call [edi+000002B0h]
  402. loc_005F906B: fnclex
  403. loc_005F906D: test eax, eax
  404. loc_005F906F: jge 005F9083h
  405. loc_005F9071: push 000002B0h
  406. loc_005F9076: push 00443240h
  407. loc_005F907B: push esi
  408. loc_005F907C: push eax
  409. loc_005F907D: call [004010CCh] ; __vbaHresultCheckObj
  410. loc_005F9083: mov var_40, FFFFFFFFh
  411. loc_005F908A: jmp 005F9093h
  412. loc_005F908C: mov var_40, 00000000h
  413. loc_005F9093: call [00401114h] ; __vbaExitProc
  414. loc_005F9099: push 005F90DFh
  415. loc_005F909E: jmp 005F90C6h
  416. loc_005F90A0: lea eax, var_4C
  417. loc_005F90A3: push eax
  418. loc_005F90A4: lea ecx, var_48
  419. loc_005F90A7: push ecx
  420. loc_005F90A8: push 00000002h
  421. loc_005F90AA: call [00401324h] ; __vbaFreeStrList
  422. loc_005F90B0: add esp, 0000000Ch
  423. loc_005F90B3: lea ecx, var_50
  424. loc_005F90B6: call [0040142Ch] ; __vbaFreeObj
  425. loc_005F90BC: lea ecx, var_60
  426. loc_005F90BF: call [00401030h] ; __vbaFreeVar
  427. loc_005F90C5: ret
  428. loc_005F90C6: lea edx, var_3C
  429. loc_005F90C9: push edx
  430. loc_005F90CA: push 0043E41Ch ; ", "
  431. loc_005F90CF: call [004010C0h] ; __vbaRecDestruct
  432. loc_005F90D5: lea ecx, var_44
  433. loc_005F90D8: call [00401430h] ; __vbaFreeStr
  434. loc_005F90DE: ret
  435. loc_005F90DF: mov eax, Me
  436. loc_005F90E2: mov ecx, [eax]
  437. loc_005F90E4: push eax
  438. loc_005F90E5: call [ecx+00000008h]
  439. loc_005F90E8: mov edx, arg_10
  440. loc_005F90EB: mov ax, var_40
  441. loc_005F90EF: mov [edx], ax
  442. loc_005F90F2: mov eax, var_C
  443. loc_005F90F5: mov ecx, var_1C
  444. loc_005F90F8: mov fs:[00000000h], ecx
  445. loc_005F90FF: pop edi
  446. loc_005F9100: pop esi
  447. loc_005F9101: pop ebx
  448. loc_005F9102: mov esp, ebp
  449. loc_005F9104: pop ebp
  450. loc_005F9105: retn 000Ch
  451. End Function