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.

257 lines
8.1 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 = "clsBonziEventSkeleton"
  10. Attribute VB_GlobalNameSpace = False
  11. Attribute VB_Creatable = True
  12. Attribute VB_PredeclaredId = False
  13. Attribute VB_Exposed = False
  14. Public Sub RunEvent() '653BE0
  15. loc_00653BE0: push ebp
  16. loc_00653BE1: mov ebp, esp
  17. loc_00653BE3: sub esp, 0000000Ch
  18. loc_00653BE6: push 00412856h ; __vbaExceptHandler
  19. loc_00653BEB: mov eax, fs:[00000000h]
  20. loc_00653BF1: push eax
  21. loc_00653BF2: mov fs:[00000000h], esp
  22. loc_00653BF9: sub esp, 00000040h
  23. loc_00653BFC: push ebx
  24. loc_00653BFD: push esi
  25. loc_00653BFE: push edi
  26. loc_00653BFF: mov var_C, esp
  27. loc_00653C02: mov var_8, 00406DC0h
  28. loc_00653C09: xor edi, edi
  29. loc_00653C0B: mov var_4, edi
  30. loc_00653C0E: mov esi, Me
  31. loc_00653C11: push esi
  32. loc_00653C12: mov eax, [esi]
  33. loc_00653C14: call [eax+00000004h]
  34. loc_00653C17: movsx eax, [esi+00000034h]
  35. loc_00653C1B: dec eax
  36. loc_00653C1C: mov var_18, edi
  37. loc_00653C1F: mov var_28, edi
  38. loc_00653C22: mov var_38, edi
  39. loc_00653C25: mov var_3C, edi
  40. loc_00653C28: jz 00653C5Fh
  41. loc_00653C2A: mov eax, [esi+00000038h]
  42. loc_00653C2D: lea edx, var_3C
  43. loc_00653C30: mov var_3C, 00000003h
  44. loc_00653C37: push edx
  45. loc_00653C38: mov ecx, [eax]
  46. loc_00653C3A: push eax
  47. loc_00653C3B: call [ecx+00000030h]
  48. loc_00653C3E: cmp eax, edi
  49. loc_00653C40: fnclex
  50. loc_00653C42: jge 00653D3Ch
  51. loc_00653C48: mov ecx, [esi+00000038h]
  52. loc_00653C4B: push 00000030h
  53. loc_00653C4D: push 004523F0h ; "�" & Chr(37) & "�R���@�" & Chr(13) & "�X�Y�'BBEvent"
  54. loc_00653C52: push ecx
  55. loc_00653C53: push eax
  56. loc_00653C54: call [004010CCh] ; __vbaHresultCheckObj
  57. loc_00653C5A: jmp 00653D3Ch
  58. loc_00653C5F: call 00621930h
  59. loc_00653C64: mov dx, [esi+00000034h]
  60. loc_00653C68: add dx, 0001h
  61. loc_00653C6C: jo 00653D6Dh
  62. loc_00653C72: mov [esi+00000034h], dx
  63. loc_00653C76: mov eax, [0073A254h]
  64. loc_00653C7B: cmp eax, edi
  65. loc_00653C7D: jnz 00653C8Fh
  66. loc_00653C7F: push 0073A254h
  67. loc_00653C84: push 00431838h
  68. loc_00653C89: call [004012FCh] ; __vbaNew2
  69. loc_00653C8F: mov esi, [0073A254h]
  70. loc_00653C95: push esi
  71. loc_00653C96: mov eax, [esi]
  72. loc_00653C98: call [eax+0000074Ch]
  73. loc_00653C9E: cmp eax, edi
  74. loc_00653CA0: fnclex
  75. loc_00653CA2: jge 00653CB6h
  76. loc_00653CA4: push 0000074Ch
  77. loc_00653CA9: push 004408D0h
  78. loc_00653CAE: push esi
  79. loc_00653CAF: push eax
  80. loc_00653CB0: call [004010CCh] ; __vbaHresultCheckObj
  81. loc_00653CB6: lea ebx, var_18
  82. loc_00653CB9: mov ecx, 0000000Ah
  83. loc_00653CBE: push ebx
  84. loc_00653CBF: mov eax, 80020004h
  85. loc_00653CC4: sub esp, 00000010h
  86. loc_00653CC7: mov edi, [0073A08Ch]
  87. loc_00653CCD: mov ebx, esp
  88. loc_00653CCF: sub esp, 00000010h
  89. loc_00653CD2: mov esi, 00000008h
  90. loc_00653CD7: mov edi, [edi]
  91. loc_00653CD9: mov [ebx], ecx
  92. loc_00653CDB: mov ecx, var_34
  93. loc_00653CDE: mov edx, 0045257Ch ; "last spoken text"
  94. loc_00653CE3: mov [ebx+00000004h], ecx
  95. loc_00653CE6: mov ecx, esp
  96. loc_00653CE8: mov [ebx+00000008h], eax
  97. loc_00653CEB: mov eax, var_2C
  98. loc_00653CEE: mov [ebx+0000000Ch], eax
  99. loc_00653CF1: mov eax, var_24
  100. loc_00653CF4: mov [ecx], esi
  101. loc_00653CF6: mov [ecx+00000004h], eax
  102. loc_00653CF9: mov eax, [0073A08Ch]
  103. loc_00653CFE: push eax
  104. loc_00653CFF: mov [ecx+00000008h], edx
  105. loc_00653D02: mov edx, var_1C
  106. loc_00653D05: mov [ecx+0000000Ch], edx
  107. loc_00653D08: call [edi+00000078h]
  108. loc_00653D0B: test eax, eax
  109. loc_00653D0D: fnclex
  110. loc_00653D0F: jge 00653D26h
  111. loc_00653D11: mov ecx, [0073A08Ch]
  112. loc_00653D17: push 00000078h
  113. loc_00653D19: push 004419ACh
  114. loc_00653D1E: push ecx
  115. loc_00653D1F: push eax
  116. loc_00653D20: call [004010CCh] ; __vbaHresultCheckObj
  117. loc_00653D26: mov eax, var_18
  118. loc_00653D29: mov var_18, 00000000h
  119. loc_00653D30: push eax
  120. loc_00653D31: push 0073A208h
  121. loc_00653D36: call [00401128h] ; __vbaObjSet
  122. loc_00653D3C: push 00653D4Eh
  123. loc_00653D41: jmp 00653D4Dh
  124. loc_00653D43: lea ecx, var_18
  125. loc_00653D46: call [0040142Ch] ; __vbaFreeObj
  126. loc_00653D4C: ret
  127. loc_00653D4D: ret
  128. loc_00653D4E: mov eax, Me
  129. loc_00653D51: push eax
  130. loc_00653D52: mov edx, [eax]
  131. loc_00653D54: call [edx+00000008h]
  132. loc_00653D57: mov eax, var_4
  133. loc_00653D5A: mov ecx, var_14
  134. loc_00653D5D: pop edi
  135. loc_00653D5E: pop esi
  136. loc_00653D5F: mov fs:[00000000h], ecx
  137. loc_00653D66: pop ebx
  138. loc_00653D67: mov esp, ebp
  139. loc_00653D69: pop ebp
  140. loc_00653D6A: retn 0004h
  141. End Sub
  142. Public Sub SetParentReference(ParentObject) '653D80
  143. loc_00653D80: push ebp
  144. loc_00653D81: mov ebp, esp
  145. loc_00653D83: sub esp, 0000000Ch
  146. loc_00653D86: push 00412856h ; __vbaExceptHandler
  147. loc_00653D8B: mov eax, fs:[00000000h]
  148. loc_00653D91: push eax
  149. loc_00653D92: mov fs:[00000000h], esp
  150. loc_00653D99: sub esp, 00000014h
  151. loc_00653D9C: push ebx
  152. loc_00653D9D: push esi
  153. loc_00653D9E: push edi
  154. loc_00653D9F: mov var_C, esp
  155. loc_00653DA2: mov var_8, 00406DD0h
  156. loc_00653DA9: xor ebx, ebx
  157. loc_00653DAB: mov var_4, ebx
  158. loc_00653DAE: mov esi, Me
  159. loc_00653DB1: push esi
  160. loc_00653DB2: mov eax, [esi]
  161. loc_00653DB4: call [eax+00000004h]
  162. loc_00653DB7: mov ecx, ParentObject
  163. loc_00653DBA: mov edi, [00401130h] ; __vbaObjSetAddref
  164. loc_00653DC0: lea edx, var_18
  165. loc_00653DC3: push ecx
  166. loc_00653DC4: push edx
  167. loc_00653DC5: mov var_18, ebx
  168. loc_00653DC8: mov var_1C, ebx
  169. loc_00653DCB: call edi
  170. loc_00653DCD: mov eax, var_18
  171. loc_00653DD0: add esi, 00000038h
  172. loc_00653DD3: push eax
  173. loc_00653DD4: push esi
  174. loc_00653DD5: call edi
  175. loc_00653DD7: mov ecx, [esi]
  176. loc_00653DD9: push ebx
  177. loc_00653DDA: push ecx
  178. loc_00653DDB: call [00401238h] ; __vbaObjIs
  179. loc_00653DE1: test ax, ax
  180. loc_00653DE4: jnz 00653E0Ch
  181. loc_00653DE6: mov eax, [esi]
  182. loc_00653DE8: lea ecx, var_1C
  183. loc_00653DEB: mov var_1C, ebx
  184. loc_00653DEE: push ecx
  185. loc_00653DEF: mov edx, [eax]
  186. loc_00653DF1: push eax
  187. loc_00653DF2: call [edx+00000038h]
  188. loc_00653DF5: cmp eax, ebx
  189. loc_00653DF7: fnclex
  190. loc_00653DF9: jge 00653E0Ch
  191. loc_00653DFB: mov edx, [esi]
  192. loc_00653DFD: push 00000038h
  193. loc_00653DFF: push 004523F0h ; "�" & Chr(37) & "�R���@�" & Chr(13) & "�X�Y�'BBEvent"
  194. loc_00653E04: push edx
  195. loc_00653E05: push eax
  196. loc_00653E06: call [004010CCh] ; __vbaHresultCheckObj
  197. loc_00653E0C: push 00653E1Bh
  198. loc_00653E11: lea ecx, var_18
  199. loc_00653E14: call [0040142Ch] ; __vbaFreeObj
  200. loc_00653E1A: ret
  201. loc_00653E1B: mov eax, Me
  202. loc_00653E1E: push eax
  203. loc_00653E1F: mov ecx, [eax]
  204. loc_00653E21: call [ecx+00000008h]
  205. loc_00653E24: mov eax, var_4
  206. loc_00653E27: mov ecx, var_14
  207. loc_00653E2A: pop edi
  208. loc_00653E2B: pop esi
  209. loc_00653E2C: mov fs:[00000000h], ecx
  210. loc_00653E33: pop ebx
  211. loc_00653E34: mov esp, ebp
  212. loc_00653E36: pop ebp
  213. loc_00653E37: retn 0008h
  214. End Sub
  215. Private Sub Proc_32_2_653E40
  216. loc_00653E40: push ebp
  217. loc_00653E41: mov ebp, esp
  218. loc_00653E43: sub esp, 0000000Ch
  219. loc_00653E46: push 00412856h ; __vbaExceptHandler
  220. loc_00653E4B: mov eax, fs:[00000000h]
  221. loc_00653E51: push eax
  222. loc_00653E52: mov fs:[00000000h], esp
  223. loc_00653E59: sub esp, 00000008h
  224. loc_00653E5C: push ebx
  225. loc_00653E5D: push esi
  226. loc_00653E5E: push edi
  227. loc_00653E5F: mov var_C, esp
  228. loc_00653E62: mov var_8, 00406DE0h
  229. loc_00653E69: mov esi, Me
  230. loc_00653E6C: mov eax, esi
  231. loc_00653E6E: and eax, 00000001h
  232. loc_00653E71: mov var_4, eax
  233. loc_00653E74: and esi, FFFFFFFEh
  234. loc_00653E77: push esi
  235. loc_00653E78: mov Me, esi
  236. loc_00653E7B: mov ecx, [esi]
  237. loc_00653E7D: call [ecx+00000004h]
  238. loc_00653E80: mov [esi+00000034h], 0001h
  239. loc_00653E86: mov var_4, 00000000h
  240. loc_00653E8D: mov eax, Me
  241. loc_00653E90: push eax
  242. loc_00653E91: mov edx, [eax]
  243. loc_00653E93: call [edx+00000008h]
  244. loc_00653E96: mov eax, var_4
  245. loc_00653E99: mov ecx, var_14
  246. loc_00653E9C: pop edi
  247. loc_00653E9D: pop esi
  248. loc_00653E9E: mov fs:[00000000h], ecx
  249. loc_00653EA5: pop ebx
  250. loc_00653EA6: mov esp, ebp
  251. loc_00653EA8: pop ebp
  252. loc_00653EA9: retn 0004h
  253. End Sub