Advertisement
Guest User

pe

a guest
Jun 7th, 2015
359
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text:008E4C60     ; =============== S U B R O U T I N E =======================================
  2. .text:008E4C60
  3. .text:008E4C60     ; Attributes: bp-based frame
  4. .text:008E4C60
  5. .text:008E4C60     ; int __fastcall processevent(void *Dst)
  6. .text:008E4C60     processevent    proc near               ; CODE XREF: sub_8E3E70+A40p
  7. .text:008E4C60
  8. .text:008E4C60     var_80          = byte ptr -80h
  9. .text:008E4C60     var_78          = dword ptr -78h
  10. .text:008E4C60     var_74          = dword ptr -74h
  11. .text:008E4C60     var_70          = dword ptr -70h
  12. .text:008E4C60     var_6C          = dword ptr -6Ch
  13. .text:008E4C60     var_68          = dword ptr -68h
  14. .text:008E4C60     var_64          = dword ptr -64h
  15. .text:008E4C60     var_60          = dword ptr -60h
  16. .text:008E4C60     var_5C          = dword ptr -5Ch
  17. .text:008E4C60     var_58          = dword ptr -58h
  18. .text:008E4C60     var_54          = dword ptr -54h
  19. .text:008E4C60     var_50          = dword ptr -50h
  20. .text:008E4C60     var_4C          = dword ptr -4Ch
  21. .text:008E4C60     var_48          = dword ptr -48h
  22. .text:008E4C60     var_44          = dword ptr -44h
  23. .text:008E4C60     Src             = dword ptr -40h
  24. .text:008E4C60     var_3C          = dword ptr -3Ch
  25. .text:008E4C60     var_38          = dword ptr -38h
  26. .text:008E4C60     var_24          = dword ptr -24h
  27. .text:008E4C60     var_20          = dword ptr -20h
  28. .text:008E4C60     var_1C          = dword ptr -1Ch
  29. .text:008E4C60     var_18          = dword ptr -18h
  30. .text:008E4C60     var_14          = dword ptr -14h
  31. .text:008E4C60     var_10          = dword ptr -10h
  32. .text:008E4C60     var_C           = dword ptr -0Ch
  33. .text:008E4C60     var_4           = dword ptr -4
  34. .text:008E4C60
  35. .text:008E4C60 000                 push    ebp
  36. .text:008E4C61 004                 mov     ebp, esp
  37. .text:008E4C63 004                 push    0FFFFFFFFh
  38. .text:008E4C65 008                 push    offset sub_19051AE
  39. .text:008E4C6A 00C                 mov     eax, large fs:0
  40. .text:008E4C70 00C                 push    eax
  41. .text:008E4C71 010                 sub     esp, 7Ch
  42. .text:008E4C74 08C                 mov     eax, ___security_cookie
  43. .text:008E4C79 08C                 xor     eax, ebp
  44. .text:008E4C7B 08C                 mov     [ebp+var_10], eax
  45. .text:008E4C7E 08C                 push    ebx
  46. .text:008E4C7F 090                 push    esi
  47. .text:008E4C80 094                 push    edi
  48. .text:008E4C81 098                 push    eax
  49. .text:008E4C82 09C                 lea     eax, [ebp+var_C]
  50. .text:008E4C85 09C                 mov     large fs:0, eax
  51. .text:008E4C8B 09C                 mov     ebx, ecx
  52. .text:008E4C8D 09C                 mov     [ebp+var_58], ebx
  53. .text:008E4C90 09C                 mov     [ebp+Src], 0
  54. .text:008E4C97 09C                 mov     [ebp+var_3C], 0
  55. .text:008E4C9E 09C                 mov     [ebp+var_38], 0
  56. .text:008E4CA5 09C                 mov     [ebp+var_24], 0
  57. .text:008E4CAC 09C                 mov     [ebp+var_1C], 0
  58. .text:008E4CB3 09C                 mov     [ebp+var_20], 0
  59. .text:008E4CBA 09C                 mov     [ebp+var_18], 0
  60. .text:008E4CC1 09C                 mov     [ebp+var_14], 0
  61. .text:008E4CC8 09C                 mov     eax, [ebx+4]
  62. .text:008E4CCB 09C                 lea     ecx, [ebp+Src]
  63. .text:008E4CCE 09C                 sub     eax, [ebx+2Ch]
  64. .text:008E4CD1 09C                 push    eax
  65. .text:008E4CD2 0A0                 mov     [ebp+var_4], 2
  66. .text:008E4CD9 0A0                 call    sub_9EAF50
  67. .text:008E4CDE 09C                 push    0
  68. .text:008E4CE0 0A0                 lea     eax, [ebx+0Ch]
  69. .text:008E4CE3 0A0                 mov     [ebp+var_74], ebx
  70. .text:008E4CE6 0A0                 push    eax
  71. .text:008E4CE7 0A4                 lea     ecx, [ebp+var_70]
  72. .text:008E4CEA 0A4                 call    sub_8D1E40
  73. .text:008E4CEF 09C                 mov     eax, [ebp+var_68]
  74. .text:008E4CF2 09C                 mov     edi, [ebp+var_60]
  75. .text:008E4CF5 09C                 cmp     edi, [eax+14h]
  76. .text:008E4CF8 09C                 jge     loc_8E4E4D
  77. .text:008E4CFE 09C                 mov     eax, [ebp+var_64]
  78. .text:008E4D01 09C                 mov     ebx, [ebp+var_5C]
  79. .text:008E4D04 09C                 mov     esi, [ebp+var_70]
  80. .text:008E4D07 09C                 mov     [ebp+var_44], eax
  81. .text:008E4D0A 09C                 mov     eax, [ebp+var_6C]
  82. .text:008E4D0D 09C                 mov     [ebp+var_54], 0
  83. .text:008E4D14 09C                 mov     [ebp+var_4C], eax
  84. .text:008E4D17
  85. .text:008E4D17     loc_8E4D17:                             ; CODE XREF: processevent+1E4j
  86. .text:008E4D17 09C                 lea     eax, [ebp+var_80]
  87. .text:008E4D1A 09C                 push    eax
  88. .text:008E4D1B 0A0                 lea     ecx, [ebp+Src]
  89. .text:008E4D1E 0A0                 call    sub_1314D40
  90. .text:008E4D23 09C                 mov     edx, [eax+4]
  91. .text:008E4D26 09C                 mov     [ebp+var_48], edx
  92. .text:008E4D29 09C                 test    edx, edx
  93. .text:008E4D2B 09C                 jz      loc_8E4DB2
  94. .text:008E4D31 09C                 mov     eax, [ebp+var_74]
  95. .text:008E4D34 09C                 mov     ecx, [eax]
  96. .text:008E4D36 09C                 lea     eax, ds:0[edi*8]
  97. .text:008E4D3D 09C                 sub     eax, edi
  98. .text:008E4D3F 09C                 lea     edi, [edx+8]
  99. .text:008E4D42 09C                 mov     [ebp+var_78], edi
  100. .text:008E4D45 09C                 lea     ecx, [ecx+eax*4]
  101. .text:008E4D48 09C                 mov     eax, [ecx]
  102. .text:008E4D4A 09C                 mov     [edx], eax
  103. .text:008E4D4C 09C                 mov     eax, [ecx+4]
  104. .text:008E4D4F 09C                 mov     [edx+4], eax
  105. .text:008E4D52 09C                 mov     eax, [ecx+0Ch]
  106. .text:008E4D55 09C                 mov     [ebp+var_50], ecx
  107. .text:008E4D58 09C                 mov     dword ptr [edi], 0
  108. .text:008E4D5E 09C                 mov     [edi+4], eax
  109. .text:008E4D61 09C                 mov     [edi+8], eax
  110. .text:008E4D64 09C                 mov     edx, [edi]
  111. .text:008E4D66 09C                 mov     byte ptr [ebp+var_4], 3
  112. .text:008E4D6A 09C                 test    edx, edx
  113. .text:008E4D6C 09C                 jnz     short loc_8E4D72
  114. .text:008E4D6E 09C                 test    eax, eax
  115. .text:008E4D70 09C                 jz      short loc_8E4D85
  116. .text:008E4D72
  117. .text:008E4D72     loc_8E4D72:                             ; CODE XREF: processevent+10Cj
  118. .text:008E4D72 09C                 push    8
  119. .text:008E4D74 0A0                 add     eax, eax
  120. .text:008E4D76 0A0                 push    eax
  121. .text:008E4D77 0A4                 push    edx
  122. .text:008E4D78 0A8                 call    sub_9160F0
  123. .text:008E4D7D 0A8                 mov     ecx, [ebp+var_50]
  124. .text:008E4D80 0A8                 add     esp, 0Ch
  125. .text:008E4D83 09C                 mov     [edi], eax
  126. .text:008E4D85
  127. .text:008E4D85     loc_8E4D85:                             ; CODE XREF: processevent+110j
  128. .text:008E4D85 09C                 mov     eax, [edi+4]
  129. .text:008E4D88 09C                 mov     byte ptr [ebp+var_4], 2
  130. .text:008E4D8C 09C                 test    eax, eax
  131. .text:008E4D8E 09C                 jz      short loc_8E4DA0
  132. .text:008E4D90 09C                 add     eax, eax
  133. .text:008E4D92 09C                 push    eax             ; Size
  134. .text:008E4D93 0A0                 push    dword ptr [ecx+8] ; Src
  135. .text:008E4D96 0A4                 push    dword ptr [edi] ; Dst
  136. .text:008E4D98 0A8                 call    memcpy
  137. .text:008E4D9D 0A8                 add     esp, 0Ch
  138. .text:008E4DA0
  139. .text:008E4DA0     loc_8E4DA0:                             ; CODE XREF: processevent+12Ej
  140. .text:008E4DA0 09C                 mov     edx, [ebp+var_50]
  141. .text:008E4DA3 09C                 mov     ecx, [ebp+var_48]
  142. .text:008E4DA6 09C                 mov     eax, [edx+14h]
  143. .text:008E4DA9 09C                 mov     [ecx+14h], eax
  144. .text:008E4DAC 09C                 mov     eax, [edx+18h]
  145. .text:008E4DAF 09C                 mov     [ecx+18h], eax
  146. .text:008E4DB2
  147. .text:008E4DB2     loc_8E4DB2:                             ; CODE XREF: processevent+CBj
  148. .text:008E4DB2 09C                 mov     edx, [ebp+var_68]
  149. .text:008E4DB5 09C                 mov     eax, [ebp+var_4C]
  150. .text:008E4DB8 09C                 mov     edi, [ebp+var_44]
  151. .text:008E4DBB 09C                 not     eax
  152. .text:008E4DBD 09C                 and     edi, eax
  153. .text:008E4DBF 09C                 xor     eax, eax
  154. .text:008E4DC1 09C                 mov     ecx, [edx+10h]
  155. .text:008E4DC4 09C                 test    ecx, ecx
  156. .text:008E4DC6 09C                 mov     [ebp+var_44], edi
  157. .text:008E4DC9 09C                 setz    al
  158. .text:008E4DCC 09C                 neg     eax
  159. .text:008E4DCE 09C                 and     edx, eax
  160. .text:008E4DD0 09C                 lea     eax, [ebp+var_54]
  161. .text:008E4DD3 09C                 or      edx, ecx
  162. .text:008E4DD5 09C                 mov     ecx, 0
  163. .text:008E4DDA 09C                 setz    cl
  164. .text:008E4DDD 09C                 neg     ecx
  165. .text:008E4DDF 09C                 and     ecx, eax
  166. .text:008E4DE1 09C                 or      ecx, edx
  167. .text:008E4DE3 09C                 mov     eax, [ecx+esi*4]
  168. .text:008E4DE6 09C                 and     eax, edi
  169. .text:008E4DE8 09C                 jnz     short loc_8E4E16
  170. .text:008E4DEA 09C                 mov     eax, [ebp+var_68]
  171. .text:008E4DED 09C                 mov     edi, [eax+14h]
  172. .text:008E4DF0 09C                 lea     eax, [edi-1]
  173. .text:008E4DF3 09C                 cdq
  174. .text:008E4DF4 09C                 and     edx, 1Fh
  175. .text:008E4DF7 09C                 add     edx, eax
  176. .text:008E4DF9 09C                 sar     edx, 5
  177. .text:008E4DFC 09C                 lea     esp, [esp+0]
  178. .text:008E4E00
  179. .text:008E4E00     loc_8E4E00:                             ; CODE XREF: processevent+1B4j
  180. .text:008E4E00 09C                 inc     esi
  181. .text:008E4E01 09C                 add     ebx, 20h
  182. .text:008E4E04 09C                 cmp     esi, edx
  183. .text:008E4E06 09C                 jg      short loc_8E4E3E
  184. .text:008E4E08 09C                 mov     eax, [ecx+esi*4]
  185. .text:008E4E0B 09C                 mov     [ebp+var_44], 0FFFFFFFFh
  186. .text:008E4E12 09C                 test    eax, eax
  187. .text:008E4E14 09C                 jz      short loc_8E4E00
  188. .text:008E4E16
  189. .text:008E4E16     loc_8E4E16:                             ; CODE XREF: processevent+188j
  190. .text:008E4E16 09C                 lea     ecx, [eax-1]
  191. .text:008E4E19 09C                 and     ecx, eax
  192. .text:008E4E1B 09C                 xor     ecx, eax
  193. .text:008E4E1D 09C                 mov     [ebp+var_4C], ecx
  194. .text:008E4E20 09C                 jnz     short loc_8E4E29
  195. .text:008E4E22 09C                 mov     eax, 20h
  196. .text:008E4E27 09C                 jmp     short loc_8E4E37
  197. .text:008E4E29     ; ---------------------------------------------------------------------------
  198. .text:008E4E29
  199. .text:008E4E29     loc_8E4E29:                             ; CODE XREF: processevent+1C0j
  200. .text:008E4E29 09C                 bsr     eax, ecx
  201. .text:008E4E2C 09C                 mov     [ebp+var_48], eax
  202. .text:008E4E2F 09C                 mov     eax, 1Fh
  203. .text:008E4E34 09C                 sub     eax, [ebp+var_48]
  204. .text:008E4E37
  205. .text:008E4E37     loc_8E4E37:                             ; CODE XREF: processevent+1C7j
  206. .text:008E4E37 09C                 mov     edi, ebx
  207. .text:008E4E39 09C                 sub     edi, eax
  208. .text:008E4E3B 09C                 add     edi, 1Fh
  209. .text:008E4E3E
  210. .text:008E4E3E     loc_8E4E3E:                             ; CODE XREF: processevent+1A6j
  211. .text:008E4E3E 09C                 mov     eax, [ebp+var_68]
  212. .text:008E4E41 09C                 cmp     edi, [eax+14h]
  213. .text:008E4E44 09C                 jl      loc_8E4D17
  214. .text:008E4E4A 09C                 mov     ebx, [ebp+var_58]
  215. .text:008E4E4D
  216. .text:008E4E4D     loc_8E4E4D:                             ; CODE XREF: processevent+98j
  217. .text:008E4E4D 09C                 mov     eax, 30h
  218. .text:008E4E52 09C                 call    sub_1900220
  219. .text:008E4E57 09C                 mov     esi, esp
  220. .text:008E4E59 09C                 push    30h             ; Size
  221. .text:008E4E5B 0A0                 push    ebx             ; Src
  222. .text:008E4E5C 0A4                 push    esi             ; Dst
  223. .text:008E4E5D 0A8                 call    memcpy
  224. .text:008E4E62 0A8                 push    30h             ; Size
  225. .text:008E4E64 0AC                 lea     eax, [ebp+Src]
  226. .text:008E4E67 0AC                 push    eax             ; Src
  227. .text:008E4E68 0B0                 push    ebx             ; Dst
  228. .text:008E4E69 0B4                 call    memcpy
  229. .text:008E4E6E 0B4                 push    30h             ; Size
  230. .text:008E4E70 0B8                 lea     eax, [ebp+Src]
  231. .text:008E4E73 0B8                 push    esi             ; Src
  232. .text:008E4E74 0BC                 push    eax             ; Dst
  233. .text:008E4E75 0C0                 call    memcpy
  234. .text:008E4E7A 0C0                 add     esp, 24h
  235. .text:008E4E7D 09C                 push    0
  236. .text:008E4E7F 0A0                 lea     ecx, [ebp+Src]
  237. .text:008E4E82 0A0                 mov     [ebp+var_4], 5
  238. .text:008E4E89 0A0                 call    sub_9EAF50
  239. .text:008E4E8E 09C                 mov     eax, [ebp+var_24]
  240. .text:008E4E91 09C                 mov     byte ptr [ebp+var_4], 4
  241. .text:008E4E95 09C                 test    eax, eax
  242. .text:008E4E97 09C                 jz      short loc_8E4EA9
  243. .text:008E4E99 09C                 push    eax
  244. .text:008E4E9A 0A0                 call    sub_915C70
  245. .text:008E4E9F 0A0                 add     esp, 4
  246. .text:008E4EA2 09C                 mov     [ebp+var_24], 0
  247. .text:008E4EA9
  248. .text:008E4EA9     loc_8E4EA9:                             ; CODE XREF: processevent+237j
  249. .text:008E4EA9 09C                 mov     eax, [ebp+Src]
  250. .text:008E4EAC 09C                 mov     [ebp+var_38], 0
  251. .text:008E4EB3 09C                 mov     [ebp+var_3C], 0
  252. .text:008E4EBA 09C                 mov     [ebp+var_4], 0FFFFFFFFh
  253. .text:008E4EC1 09C                 test    eax, eax
  254. .text:008E4EC3 09C                 jz      short loc_8E4ECE
  255. .text:008E4EC5 09C                 push    eax
  256. .text:008E4EC6 0A0                 call    sub_915C70
  257. .text:008E4ECB 0A0                 add     esp, 4
  258. .text:008E4ECE
  259. .text:008E4ECE     loc_8E4ECE:                             ; CODE XREF: processevent+263j
  260. .text:008E4ECE 09C                 lea     esp, [ebp-98h]
  261. .text:008E4ED4 09C                 mov     ecx, [ebp+var_C]
  262. .text:008E4ED7 09C                 mov     large fs:0, ecx
  263. .text:008E4EDE 09C                 pop     ecx
  264. .text:008E4EDF 098                 pop     edi
  265. .text:008E4EE0 094                 pop     esi
  266. .text:008E4EE1 090                 pop     ebx
  267. .text:008E4EE2 08C                 mov     ecx, [ebp+var_10]
  268. .text:008E4EE5 08C                 xor     ecx, ebp
  269. .text:008E4EE7 08C                 call    sub_1900196
  270. .text:008E4EEC 08C                 mov     esp, ebp
  271. .text:008E4EEE 004                 pop     ebp
  272. .text:008E4EEF 000                 retn
  273. .text:008E4EEF     processevent    endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement