Advertisement
Guest User

ROMedic v2 Assembly Code

a guest
May 17th, 2018
250
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. UPX1:00478020                 public start
  2. UPX1:00478020 start:
  3. UPX1:00478020                 pusha
  4. UPX1:00478021                 mov     esi, offset dword_448000
  5. UPX1:00478026                 lea     edi, [esi-47000h]
  6. UPX1:0047802C                 push    edi
  7. UPX1:0047802D                 mov     ebp, esp
  8. UPX1:0047802F                 lea     ebx, [esp-3E80h]
  9. UPX1:00478036                 xor     eax, eax
  10. UPX1:00478038
  11. UPX1:00478038 loc_478038:                             ; CODE XREF: UPX1:0047803B↓j
  12. UPX1:00478038                 push    eax
  13. UPX1:00478039                 cmp     esp, ebx
  14. UPX1:0047803B                 jnz     short loc_478038
  15. UPX1:0047803D                 inc     esi
  16. UPX1:0047803E                 inc     esi
  17. UPX1:0047803F                 push    ebx
  18. UPX1:00478040                 push    768A7h
  19. UPX1:00478045                 push    edi
  20. UPX1:00478046                 add     ebx, 4
  21. UPX1:00478049                 push    ebx
  22. UPX1:0047804A                 push    30018h
  23. UPX1:0047804F                 push    esi
  24. UPX1:00478050                 add     ebx, 4
  25. UPX1:00478053                 push    ebx
  26. UPX1:00478054                 push    eax
  27. UPX1:00478055                 mov     dword ptr [ebx], 20003h
  28. UPX1:0047805B                 nop
  29. UPX1:0047805C                 nop
  30. UPX1:0047805D                 nop
  31. UPX1:0047805E                 nop
  32. UPX1:0047805F                 nop
  33. UPX1:00478060                 push    ebp
  34. UPX1:00478061                 push    edi
  35. UPX1:00478062                 push    esi
  36. UPX1:00478063                 push    ebx
  37. UPX1:00478064                 sub     esp, 7Ch
  38. UPX1:00478067                 mov     edx, [esp+90h]
  39. UPX1:0047806E                 mov     dword ptr [esp+74h], 0
  40. UPX1:00478076                 mov     byte ptr [esp+73h], 0
  41. UPX1:0047807B                 mov     ebp, [esp+9Ch]
  42. UPX1:00478082                 lea     eax, [edx+4]
  43. UPX1:00478085                 mov     [esp+78h], eax
  44. UPX1:00478089                 mov     eax, 1
  45. UPX1:0047808E                 movzx   ecx, byte ptr [edx+2]
  46. UPX1:00478092                 mov     ebx, eax
  47. UPX1:00478094                 shl     ebx, cl
  48. UPX1:00478096                 mov     ecx, ebx
  49. UPX1:00478098                 dec     ecx
  50. UPX1:00478099                 mov     [esp+6Ch], ecx
  51. UPX1:0047809D                 movzx   ecx, byte ptr [edx+1]
  52. UPX1:004780A1                 shl     eax, cl
  53. UPX1:004780A3                 dec     eax
  54. UPX1:004780A4                 mov     [esp+68h], eax
  55. UPX1:004780A8                 mov     eax, [esp+0A8h]
  56. UPX1:004780AF                 movzx   esi, byte ptr [edx]
  57. UPX1:004780B2                 mov     dword ptr [ebp+0], 0
  58. UPX1:004780B9                 mov     dword ptr [esp+60h], 0
  59. UPX1:004780C1                 mov     dword ptr [eax], 0
  60. UPX1:004780C7                 mov     eax, 300h
  61. UPX1:004780CC                 mov     [esp+64h], esi
  62. UPX1:004780D0                 mov     dword ptr [esp+5Ch], 1
  63. UPX1:004780D8                 mov     dword ptr [esp+58h], 1
  64. UPX1:004780E0                 mov     dword ptr [esp+54h], 1
  65. UPX1:004780E8                 mov     dword ptr [esp+50h], 1
  66. UPX1:004780F0                 movzx   ecx, byte ptr [edx+1]
  67. UPX1:004780F4                 add     ecx, esi
  68. UPX1:004780F6                 shl     eax, cl
  69. UPX1:004780F8                 lea     ecx, [eax+736h]
  70. UPX1:004780FE                 cmp     [esp+74h], ecx
  71. UPX1:00478102                 jnb     short loc_478112
  72. UPX1:00478104                 mov     eax, [esp+78h]
  73. UPX1:00478108
  74. UPX1:00478108 loc_478108:                             ; CODE XREF: UPX1:00478110↓j
  75. UPX1:00478108                 mov     word ptr [eax], 400h
  76. UPX1:0047810D                 add     eax, 2
  77. UPX1:00478110                 loop    loc_478108
  78. UPX1:00478112
  79. UPX1:00478112 loc_478112:                             ; CODE XREF: UPX1:00478102↑j
  80. UPX1:00478112                 mov     ebx, [esp+94h]
  81. UPX1:00478119                 xor     edi, edi
  82. UPX1:0047811B                 mov     dword ptr [esp+48h], 0FFFFFFFFh
  83. UPX1:00478123                 mov     edx, ebx
  84. UPX1:00478125                 add     edx, [esp+98h]
  85. UPX1:0047812C                 mov     [esp+4Ch], edx
  86. UPX1:00478130                 xor     edx, edx
  87. UPX1:00478132
  88. UPX1:00478132 loc_478132:                             ; CODE XREF: UPX1:00478149↓j
  89. UPX1:00478132                 cmp     ebx, [esp+4Ch]
  90. UPX1:00478136                 jz      loc_478AB8
  91. UPX1:0047813C                 movzx   eax, byte ptr [ebx]
  92. UPX1:0047813F                 shl     edi, 8
  93. UPX1:00478142                 inc     edx
  94. UPX1:00478143                 inc     ebx
  95. UPX1:00478144                 or      edi, eax
  96. UPX1:00478146                 cmp     edx, 4
  97. UPX1:00478149                 jle     short loc_478132
  98. UPX1:0047814B                 mov     ecx, [esp+0A4h]
  99. UPX1:00478152                 cmp     [esp+74h], ecx
  100. UPX1:00478156                 jnb     loc_478AC0
  101. UPX1:0047815C
  102. UPX1:0047815C loc_47815C:                             ; CODE XREF: UPX1:00478A9B↓j
  103. UPX1:0047815C                 mov     esi, [esp+74h]
  104. UPX1:00478160                 and     esi, [esp+6Ch]
  105. UPX1:00478164                 mov     eax, [esp+60h]
  106. UPX1:00478168                 mov     edx, [esp+78h]
  107. UPX1:0047816C                 shl     eax, 4
  108. UPX1:0047816F                 mov     [esp+44h], esi
  109. UPX1:00478173                 add     eax, esi
  110. UPX1:00478175                 cmp     dword ptr [esp+48h], 0FFFFFFh
  111. UPX1:0047817D                 lea     ebp, [edx+eax*2]
  112. UPX1:00478180                 ja      short loc_47819A
  113. UPX1:00478182                 cmp     ebx, [esp+4Ch]
  114. UPX1:00478186                 jz      loc_478AB8
  115. UPX1:0047818C                 shl     dword ptr [esp+48h], 8
  116. UPX1:00478191                 movzx   eax, byte ptr [ebx]
  117. UPX1:00478194                 shl     edi, 8
  118. UPX1:00478197                 inc     ebx
  119. UPX1:00478198                 or      edi, eax
  120. UPX1:0047819A
  121. UPX1:0047819A loc_47819A:                             ; CODE XREF: UPX1:00478180↑j
  122. UPX1:0047819A                 mov     eax, [esp+48h]
  123. UPX1:0047819E                 mov     dx, [ebp+0]
  124. UPX1:004781A2                 shr     eax, 0Bh
  125. UPX1:004781A5                 movzx   ecx, dx
  126. UPX1:004781A8                 imul    eax, ecx
  127. UPX1:004781AB                 cmp     edi, eax
  128. UPX1:004781AD                 jnb     loc_478390
  129. UPX1:004781B3                 mov     [esp+48h], eax
  130. UPX1:004781B7                 mov     eax, 800h
  131. UPX1:004781BC                 sub     eax, ecx
  132. UPX1:004781BE                 mov     cl, [esp+64h]
  133. UPX1:004781C2                 sar     eax, 5
  134. UPX1:004781C5                 mov     esi, 1
  135. UPX1:004781CA                 lea     eax, [edx+eax]
  136. UPX1:004781CD                 movzx   edx, byte ptr [esp+73h]
  137. UPX1:004781D2                 mov     [ebp+0], ax
  138. UPX1:004781D6                 mov     eax, [esp+74h]
  139. UPX1:004781DA                 and     eax, [esp+68h]
  140. UPX1:004781DE                 mov     ebp, [esp+78h]
  141. UPX1:004781E2                 shl     eax, cl
  142. UPX1:004781E4                 mov     ecx, 8
  143. UPX1:004781E9                 sub     ecx, [esp+64h]
  144. UPX1:004781ED                 sar     edx, cl
  145. UPX1:004781EF                 add     eax, edx
  146. UPX1:004781F1                 imul    eax, 600h
  147. UPX1:004781F7                 cmp     dword ptr [esp+60h], 6
  148. UPX1:004781FC                 lea     eax, [ebp+eax+0E6Ch]
  149. UPX1:00478203                 mov     [esp+14h], eax
  150. UPX1:00478207                 jle     loc_4782D7
  151. UPX1:0047820D                 mov     eax, [esp+74h]
  152. UPX1:00478211                 sub     eax, [esp+5Ch]
  153. UPX1:00478215                 mov     edx, [esp+0A0h]
  154. UPX1:0047821C                 movzx   eax, byte ptr [edx+eax]
  155. UPX1:00478220                 mov     [esp+40h], eax
  156. UPX1:00478224
  157. UPX1:00478224 loc_478224:                             ; CODE XREF: UPX1:004782C7↓j
  158. UPX1:00478224                 shl     dword ptr [esp+40h], 1
  159. UPX1:00478228                 mov     ecx, [esp+40h]
  160. UPX1:0047822C                 lea     edx, [esi+esi]
  161. UPX1:0047822F                 mov     ebp, [esp+14h]
  162. UPX1:00478233                 and     ecx, 100h
  163. UPX1:00478239                 cmp     dword ptr [esp+48h], 0FFFFFFh
  164. UPX1:00478241                 lea     eax, [ebp+ecx*2+0]
  165. UPX1:00478245                 mov     [esp+3Ch], ecx
  166. UPX1:00478249                 lea     ebp, [eax+edx]
  167. UPX1:0047824C                 ja      short loc_478266
  168. UPX1:0047824E                 cmp     ebx, [esp+4Ch]
  169. UPX1:00478252                 jz      loc_478AB8
  170. UPX1:00478258                 shl     dword ptr [esp+48h], 8
  171. UPX1:0047825D                 movzx   eax, byte ptr [ebx]
  172. UPX1:00478260                 shl     edi, 8
  173. UPX1:00478263                 inc     ebx
  174. UPX1:00478264                 or      edi, eax
  175. UPX1:00478266
  176. UPX1:00478266 loc_478266:                             ; CODE XREF: UPX1:0047824C↑j
  177. UPX1:00478266                 mov     eax, [esp+48h]
  178. UPX1:0047826A                 mov     cx, [ebp+200h]
  179. UPX1:00478271                 shr     eax, 0Bh
  180. UPX1:00478274                 movzx   esi, cx
  181. UPX1:00478277                 imul    eax, esi
  182. UPX1:0047827A                 cmp     edi, eax
  183. UPX1:0047827C                 jnb     short loc_4782A1
  184. UPX1:0047827E                 mov     [esp+48h], eax
  185. UPX1:00478282                 mov     eax, 800h
  186. UPX1:00478287                 sub     eax, esi
  187. UPX1:00478289                 mov     esi, edx
  188. UPX1:0047828B                 sar     eax, 5
  189. UPX1:0047828E                 cmp     dword ptr [esp+3Ch], 0
  190. UPX1:00478293                 lea     eax, [ecx+eax]
  191. UPX1:00478296                 mov     [ebp+200h], ax
  192. UPX1:0047829D                 jz      short loc_4782C1
  193. UPX1:0047829F                 jmp     short loc_4782CF
  194. UPX1:004782A1 ; ---------------------------------------------------------------------------
  195. UPX1:004782A1
  196. UPX1:004782A1 loc_4782A1:                             ; CODE XREF: UPX1:0047827C↑j
  197. UPX1:004782A1                 sub     [esp+48h], eax
  198. UPX1:004782A5                 sub     edi, eax
  199. UPX1:004782A7                 mov     eax, ecx
  200. UPX1:004782A9                 lea     esi, [edx+1]
  201. UPX1:004782AC                 shr     ax, 5
  202. UPX1:004782B0                 sub     cx, ax
  203. UPX1:004782B3                 cmp     dword ptr [esp+3Ch], 0
  204. UPX1:004782B8                 mov     [ebp+200h], cx
  205. UPX1:004782BF                 jz      short loc_4782CF
  206. UPX1:004782C1
  207. UPX1:004782C1 loc_4782C1:                             ; CODE XREF: UPX1:0047829D↑j
  208. UPX1:004782C1                 cmp     esi, 0FFh
  209. UPX1:004782C7                 jle     loc_478224
  210. UPX1:004782CD                 jmp     short loc_478348
  211. UPX1:004782CF ; ---------------------------------------------------------------------------
  212. UPX1:004782CF
  213. UPX1:004782CF loc_4782CF:                             ; CODE XREF: UPX1:0047829F↑j
  214. UPX1:004782CF                                         ; UPX1:004782BF↑j ...
  215. UPX1:004782CF                 cmp     esi, 0FFh
  216. UPX1:004782D5                 jg      short loc_478348
  217. UPX1:004782D7
  218. UPX1:004782D7 loc_4782D7:                             ; CODE XREF: UPX1:00478207↑j
  219. UPX1:004782D7                 lea     edx, [esi+esi]
  220. UPX1:004782DA                 mov     ebp, [esp+14h]
  221. UPX1:004782DE                 add     ebp, edx
  222. UPX1:004782E0                 cmp     dword ptr [esp+48h], 0FFFFFFh
  223. UPX1:004782E8                 ja      short loc_478302
  224. UPX1:004782EA                 cmp     ebx, [esp+4Ch]
  225. UPX1:004782EE                 jz      loc_478AB8
  226. UPX1:004782F4                 shl     dword ptr [esp+48h], 8
  227. UPX1:004782F9                 movzx   eax, byte ptr [ebx]
  228. UPX1:004782FC                 shl     edi, 8
  229. UPX1:004782FF                 inc     ebx
  230. UPX1:00478300                 or      edi, eax
  231. UPX1:00478302
  232. UPX1:00478302 loc_478302:                             ; CODE XREF: UPX1:004782E8↑j
  233. UPX1:00478302                 mov     eax, [esp+48h]
  234. UPX1:00478306                 mov     cx, [ebp+0]
  235. UPX1:0047830A                 shr     eax, 0Bh
  236. UPX1:0047830D                 movzx   esi, cx
  237. UPX1:00478310                 imul    eax, esi
  238. UPX1:00478313                 cmp     edi, eax
  239. UPX1:00478315                 jnb     short loc_478330
  240. UPX1:00478317                 mov     [esp+48h], eax
  241. UPX1:0047831B                 mov     eax, 800h
  242. UPX1:00478320                 sub     eax, esi
  243. UPX1:00478322                 mov     esi, edx
  244. UPX1:00478324                 sar     eax, 5
  245. UPX1:00478327                 lea     eax, [ecx+eax]
  246. UPX1:0047832A                 mov     [ebp+0], ax
  247. UPX1:0047832E                 jmp     short loc_4782CF
  248. UPX1:00478330 ; ---------------------------------------------------------------------------
  249. UPX1:00478330
  250. UPX1:00478330 loc_478330:                             ; CODE XREF: UPX1:00478315↑j
  251. UPX1:00478330                 sub     [esp+48h], eax
  252. UPX1:00478334                 sub     edi, eax
  253. UPX1:00478336                 mov     eax, ecx
  254. UPX1:00478338                 lea     esi, [edx+1]
  255. UPX1:0047833B                 shr     ax, 5
  256. UPX1:0047833F                 sub     cx, ax
  257. UPX1:00478342                 mov     [ebp+0], cx
  258. UPX1:00478346                 jmp     short loc_4782CF
  259. UPX1:00478348 ; ---------------------------------------------------------------------------
  260. UPX1:00478348
  261. UPX1:00478348 loc_478348:                             ; CODE XREF: UPX1:004782CD↑j
  262. UPX1:00478348                                         ; UPX1:004782D5↑j
  263. UPX1:00478348                 mov     edx, [esp+74h]
  264. UPX1:0047834C                 mov     eax, esi
  265. UPX1:0047834E                 mov     ecx, [esp+0A0h]
  266. UPX1:00478355                 mov     [esp+73h], al
  267. UPX1:00478359                 mov     [edx+ecx], al
  268. UPX1:0047835C                 inc     edx
  269. UPX1:0047835D                 cmp     dword ptr [esp+60h], 3
  270. UPX1:00478362                 mov     [esp+74h], edx
  271. UPX1:00478366                 jg      short loc_478375
  272. UPX1:00478368                 mov     dword ptr [esp+60h], 0
  273. UPX1:00478370                 jmp     loc_478A90
  274. UPX1:00478375 ; ---------------------------------------------------------------------------
  275. UPX1:00478375
  276. UPX1:00478375 loc_478375:                             ; CODE XREF: UPX1:00478366↑j
  277. UPX1:00478375                 cmp     dword ptr [esp+60h], 9
  278. UPX1:0047837A                 jg      short loc_478386
  279. UPX1:0047837C                 sub     dword ptr [esp+60h], 3
  280. UPX1:00478381                 jmp     loc_478A90
  281. UPX1:00478386 ; ---------------------------------------------------------------------------
  282. UPX1:00478386
  283. UPX1:00478386 loc_478386:                             ; CODE XREF: UPX1:0047837A↑j
  284. UPX1:00478386                 sub     dword ptr [esp+60h], 6
  285. UPX1:0047838B                 jmp     loc_478A90
  286. UPX1:00478390 ; ---------------------------------------------------------------------------
  287. UPX1:00478390
  288. UPX1:00478390 loc_478390:                             ; CODE XREF: UPX1:004781AD↑j
  289. UPX1:00478390                 mov     ecx, [esp+48h]
  290. UPX1:00478394                 sub     edi, eax
  291. UPX1:00478396                 mov     esi, [esp+60h]
  292. UPX1:0047839A                 sub     ecx, eax
  293. UPX1:0047839C                 mov     eax, edx
  294. UPX1:0047839E                 shr     ax, 5
  295. UPX1:004783A2                 sub     dx, ax
  296. UPX1:004783A5                 cmp     ecx, 0FFFFFFh
  297. UPX1:004783AB                 mov     [ebp+0], dx
  298. UPX1:004783AF                 mov     ebp, [esp+78h]
  299. UPX1:004783B3                 lea     esi, [ebp+esi*2+0]
  300. UPX1:004783B7                 mov     [esp+38h], esi
  301. UPX1:004783BB                 ja      short loc_4783D3
  302. UPX1:004783BD                 cmp     ebx, [esp+4Ch]
  303. UPX1:004783C1                 jz      loc_478AB8
  304. UPX1:004783C7                 movzx   eax, byte ptr [ebx]
  305. UPX1:004783CA                 shl     edi, 8
  306. UPX1:004783CD                 shl     ecx, 8
  307. UPX1:004783D0                 inc     ebx
  308. UPX1:004783D1                 or      edi, eax
  309. UPX1:004783D3
  310. UPX1:004783D3 loc_4783D3:                             ; CODE XREF: UPX1:004783BB↑j
  311. UPX1:004783D3                 mov     ebp, [esp+38h]
  312. UPX1:004783D7                 mov     eax, ecx
  313. UPX1:004783D9                 shr     eax, 0Bh
  314. UPX1:004783DC                 mov     dx, [ebp+180h]
  315. UPX1:004783E3                 movzx   ebp, dx
  316. UPX1:004783E6                 imul    eax, ebp
  317. UPX1:004783E9                 cmp     edi, eax
  318. UPX1:004783EB                 jnb     short loc_47843F
  319. UPX1:004783ED                 mov     esi, eax
  320. UPX1:004783EF                 mov     eax, 800h
  321. UPX1:004783F4                 sub     eax, ebp
  322. UPX1:004783F6                 mov     ebp, [esp+58h]
  323. UPX1:004783FA                 sar     eax, 5
  324. UPX1:004783FD                 mov     ecx, [esp+54h]
  325. UPX1:00478401                 lea     eax, [edx+eax]
  326. UPX1:00478404                 mov     edx, [esp+38h]
  327. UPX1:00478408                 mov     [esp+50h], ecx
  328. UPX1:0047840C                 mov     ecx, [esp+78h]
  329. UPX1:00478410                 mov     [edx+180h], ax
  330. UPX1:00478417                 mov     eax, [esp+5Ch]
  331. UPX1:0047841B                 mov     [esp+54h], ebp
  332. UPX1:0047841F                 mov     [esp+58h], eax
  333. UPX1:00478423                 xor     eax, eax
  334. UPX1:00478425                 cmp     dword ptr [esp+60h], 6
  335. UPX1:0047842A                 setnle  al
  336. UPX1:0047842D                 add     ecx, 664h
  337. UPX1:00478433                 lea     eax, [eax+eax*2]
  338. UPX1:00478436                 mov     [esp+60h], eax
  339. UPX1:0047843A                 jmp     loc_4786B3
  340. UPX1:0047843F ; ---------------------------------------------------------------------------
  341. UPX1:0047843F
  342. UPX1:0047843F loc_47843F:                             ; CODE XREF: UPX1:004783EB↑j
  343. UPX1:0047843F                 mov     esi, ecx
  344. UPX1:00478441                 sub     edi, eax
  345. UPX1:00478443                 sub     esi, eax
  346. UPX1:00478445                 mov     eax, edx
  347. UPX1:00478447                 shr     ax, 5
  348. UPX1:0047844B                 mov     ecx, [esp+38h]
  349. UPX1:0047844F                 sub     dx, ax
  350. UPX1:00478452                 cmp     esi, 0FFFFFFh
  351. UPX1:00478458                 mov     [ecx+180h], dx
  352. UPX1:0047845F                 ja      short loc_478477
  353. UPX1:00478461                 cmp     ebx, [esp+4Ch]
  354. UPX1:00478465                 jz      loc_478AB8
  355. UPX1:0047846B                 movzx   eax, byte ptr [ebx]
  356. UPX1:0047846E                 shl     edi, 8
  357. UPX1:00478471                 shl     esi, 8
  358. UPX1:00478474                 inc     ebx
  359. UPX1:00478475                 or      edi, eax
  360. UPX1:00478477
  361. UPX1:00478477 loc_478477:                             ; CODE XREF: UPX1:0047845F↑j
  362. UPX1:00478477                 mov     ebp, [esp+38h]
  363. UPX1:0047847B                 mov     edx, esi
  364. UPX1:0047847D                 shr     edx, 0Bh
  365. UPX1:00478480                 mov     cx, [ebp+198h]
  366. UPX1:00478487                 movzx   eax, cx
  367. UPX1:0047848A                 imul    edx, eax
  368. UPX1:0047848D                 cmp     edi, edx
  369. UPX1:0047848F                 jnb     loc_478578
  370. UPX1:00478495                 mov     ebp, 800h
  371. UPX1:0047849A                 mov     esi, edx
  372. UPX1:0047849C                 sub     ebp, eax
  373. UPX1:0047849E                 mov     dword ptr [esp+34h], 800h
  374. UPX1:004784A6                 mov     eax, ebp
  375. UPX1:004784A8                 sar     eax, 5
  376. UPX1:004784AB                 lea     eax, [ecx+eax]
  377. UPX1:004784AE                 mov     ecx, [esp+38h]
  378. UPX1:004784B2                 mov     [ecx+198h], ax
  379. UPX1:004784B9                 mov     eax, [esp+60h]
  380. UPX1:004784BD                 mov     ecx, [esp+44h]
  381. UPX1:004784C1                 shl     eax, 5
  382. UPX1:004784C4                 add     eax, [esp+78h]
  383. UPX1:004784C8                 cmp     edx, 0FFFFFFh
  384. UPX1:004784CE                 lea     ebp, [eax+ecx*2]
  385. UPX1:004784D1                 ja      short loc_4784E9
  386. UPX1:004784D3                 cmp     ebx, [esp+4Ch]
  387. UPX1:004784D7                 jz      loc_478AB8
  388. UPX1:004784DD                 movzx   eax, byte ptr [ebx]
  389. UPX1:004784E0                 shl     edi, 8
  390. UPX1:004784E3                 shl     esi, 8
  391. UPX1:004784E6                 inc     ebx
  392. UPX1:004784E7                 or      edi, eax
  393. UPX1:004784E9
  394. UPX1:004784E9 loc_4784E9:                             ; CODE XREF: UPX1:004784D1↑j
  395. UPX1:004784E9                 mov     dx, [ebp+1E0h]
  396. UPX1:004784F0                 mov     eax, esi
  397. UPX1:004784F2                 shr     eax, 0Bh
  398. UPX1:004784F5                 movzx   ecx, dx
  399. UPX1:004784F8                 imul    eax, ecx
  400. UPX1:004784FB                 cmp     edi, eax
  401. UPX1:004784FD                 jnb     short loc_47855F
  402. UPX1:004784FF                 sub     [esp+34h], ecx
  403. UPX1:00478503                 sar     dword ptr [esp+34h], 5
  404. UPX1:00478508                 mov     esi, [esp+34h]
  405. UPX1:0047850C                 mov     [esp+48h], eax
  406. UPX1:00478510                 cmp     dword ptr [esp+74h], 0
  407. UPX1:00478515                 lea     eax, [edx+esi]
  408. UPX1:00478518                 mov     [ebp+1E0h], ax
  409. UPX1:0047851F                 jz      loc_478AB8
  410. UPX1:00478525                 xor     eax, eax
  411. UPX1:00478527                 cmp     dword ptr [esp+60h], 6
  412. UPX1:0047852C                 mov     ebp, [esp+0A0h]
  413. UPX1:00478533                 mov     edx, [esp+74h]
  414. UPX1:00478537                 setnle  al
  415. UPX1:0047853A                 lea     eax, [eax+eax+9]
  416. UPX1:0047853E                 mov     [esp+60h], eax
  417. UPX1:00478542                 mov     eax, [esp+74h]
  418. UPX1:00478546                 sub     eax, [esp+5Ch]
  419. UPX1:0047854A                 mov     al, [ebp+eax+0]
  420. UPX1:0047854E                 mov     [esp+73h], al
  421. UPX1:00478552                 mov     [edx+ebp], al
  422. UPX1:00478555                 inc     edx
  423. UPX1:00478556                 mov     [esp+74h], edx
  424. UPX1:0047855A                 jmp     loc_478A90
  425. UPX1:0047855F ; ---------------------------------------------------------------------------
  426. UPX1:0047855F
  427. UPX1:0047855F loc_47855F:                             ; CODE XREF: UPX1:004784FD↑j
  428. UPX1:0047855F                 sub     esi, eax
  429. UPX1:00478561                 sub     edi, eax
  430. UPX1:00478563                 mov     eax, edx
  431. UPX1:00478565                 shr     ax, 5
  432. UPX1:00478569                 sub     dx, ax
  433. UPX1:0047856C                 mov     [ebp+1E0h], dx
  434. UPX1:00478573                 jmp     loc_478697
  435. UPX1:00478578 ; ---------------------------------------------------------------------------
  436. UPX1:00478578
  437. UPX1:00478578 loc_478578:                             ; CODE XREF: UPX1:0047848F↑j
  438. UPX1:00478578                 mov     eax, ecx
  439. UPX1:0047857A                 sub     esi, edx
  440. UPX1:0047857C                 shr     ax, 5
  441. UPX1:00478580                 mov     ebp, [esp+38h]
  442. UPX1:00478584                 sub     cx, ax
  443. UPX1:00478587                 sub     edi, edx
  444. UPX1:00478589                 cmp     esi, 0FFFFFFh
  445. UPX1:0047858F                 mov     [ebp+198h], cx
  446. UPX1:00478596                 ja      short loc_4785AE
  447. UPX1:00478598                 cmp     ebx, [esp+4Ch]
  448. UPX1:0047859C                 jz      loc_478AB8
  449. UPX1:004785A2                 movzx   eax, byte ptr [ebx]
  450. UPX1:004785A5                 shl     edi, 8
  451. UPX1:004785A8                 shl     esi, 8
  452. UPX1:004785AB                 inc     ebx
  453. UPX1:004785AC                 or      edi, eax
  454. UPX1:004785AE
  455. UPX1:004785AE loc_4785AE:                             ; CODE XREF: UPX1:00478596↑j
  456. UPX1:004785AE                 mov     ecx, [esp+38h]
  457. UPX1:004785B2                 mov     eax, esi
  458. UPX1:004785B4                 shr     eax, 0Bh
  459. UPX1:004785B7                 mov     dx, [ecx+1B0h]
  460. UPX1:004785BE                 movzx   ecx, dx
  461. UPX1:004785C1                 imul    eax, ecx
  462. UPX1:004785C4                 cmp     edi, eax
  463. UPX1:004785C6                 jnb     short loc_4785EB
  464. UPX1:004785C8                 mov     esi, eax
  465. UPX1:004785CA                 mov     eax, 800h
  466. UPX1:004785CF                 sub     eax, ecx
  467. UPX1:004785D1                 mov     ebp, [esp+38h]
  468. UPX1:004785D5                 sar     eax, 5
  469. UPX1:004785D8                 lea     eax, [edx+eax]
  470. UPX1:004785DB                 mov     [ebp+1B0h], ax
  471. UPX1:004785E2                 mov     eax, [esp+58h]
  472. UPX1:004785E6                 jmp     loc_47868B
  473. UPX1:004785EB ; ---------------------------------------------------------------------------
  474. UPX1:004785EB
  475. UPX1:004785EB loc_4785EB:                             ; CODE XREF: UPX1:004785C6↑j
  476. UPX1:004785EB                 mov     ecx, esi
  477. UPX1:004785ED                 sub     edi, eax
  478. UPX1:004785EF                 sub     ecx, eax
  479. UPX1:004785F1                 mov     eax, edx
  480. UPX1:004785F3                 shr     ax, 5
  481. UPX1:004785F7                 sub     dx, ax
  482. UPX1:004785FA                 mov     eax, [esp+38h]
  483. UPX1:004785FE                 cmp     ecx, 0FFFFFFh
  484. UPX1:00478604                 mov     [eax+1B0h], dx
  485. UPX1:0047860B                 ja      short loc_478623
  486. UPX1:0047860D                 cmp     ebx, [esp+4Ch]
  487. UPX1:00478611                 jz      loc_478AB8
  488. UPX1:00478617                 movzx   eax, byte ptr [ebx]
  489. UPX1:0047861A                 shl     edi, 8
  490. UPX1:0047861D                 shl     ecx, 8
  491. UPX1:00478620                 inc     ebx
  492. UPX1:00478621                 or      edi, eax
  493. UPX1:00478623
  494. UPX1:00478623 loc_478623:                             ; CODE XREF: UPX1:0047860B↑j
  495. UPX1:00478623                 mov     esi, [esp+38h]
  496. UPX1:00478627                 mov     eax, ecx
  497. UPX1:00478629                 shr     eax, 0Bh
  498. UPX1:0047862C                 mov     dx, [esi+1C8h]
  499. UPX1:00478633                 movzx   ebp, dx
  500. UPX1:00478636                 imul    eax, ebp
  501. UPX1:00478639                 cmp     edi, eax
  502. UPX1:0047863B                 jnb     short loc_47865D
  503. UPX1:0047863D                 mov     esi, eax
  504. UPX1:0047863F                 mov     eax, 800h
  505. UPX1:00478644                 sub     eax, ebp
  506. UPX1:00478646                 mov     ebp, [esp+38h]
  507. UPX1:0047864A                 sar     eax, 5
  508. UPX1:0047864D                 lea     eax, [edx+eax]
  509. UPX1:00478650                 mov     [ebp+1C8h], ax
  510. UPX1:00478657                 mov     eax, [esp+54h]
  511. UPX1:0047865B                 jmp     short loc_478683
  512. UPX1:0047865D ; ---------------------------------------------------------------------------
  513. UPX1:0047865D
  514. UPX1:0047865D loc_47865D:                             ; CODE XREF: UPX1:0047863B↑j
  515. UPX1:0047865D                 mov     esi, ecx
  516. UPX1:0047865F                 sub     edi, eax
  517. UPX1:00478661                 sub     esi, eax
  518. UPX1:00478663                 mov     eax, edx
  519. UPX1:00478665                 shr     ax, 5
  520. UPX1:00478669                 sub     dx, ax
  521. UPX1:0047866C                 mov     eax, [esp+38h]
  522. UPX1:00478670                 mov     [eax+1C8h], dx
  523. UPX1:00478677                 mov     edx, [esp+54h]
  524. UPX1:0047867B                 mov     eax, [esp+50h]
  525. UPX1:0047867F                 mov     [esp+50h], edx
  526. UPX1:00478683
  527. UPX1:00478683 loc_478683:                             ; CODE XREF: UPX1:0047865B↑j
  528. UPX1:00478683                 mov     ecx, [esp+58h]
  529. UPX1:00478687                 mov     [esp+54h], ecx
  530. UPX1:0047868B
  531. UPX1:0047868B loc_47868B:                             ; CODE XREF: UPX1:004785E6↑j
  532. UPX1:0047868B                 mov     ebp, [esp+5Ch]
  533. UPX1:0047868F                 mov     [esp+5Ch], eax
  534. UPX1:00478693                 mov     [esp+58h], ebp
  535. UPX1:00478697
  536. UPX1:00478697 loc_478697:                             ; CODE XREF: UPX1:00478573↑j
  537. UPX1:00478697                 xor     eax, eax
  538. UPX1:00478699                 cmp     dword ptr [esp+60h], 6
  539. UPX1:0047869E                 mov     ecx, [esp+78h]
  540. UPX1:004786A2                 setnle  al
  541. UPX1:004786A5                 add     ecx, 0A68h
  542. UPX1:004786AB                 lea     eax, [eax+eax*2+8]
  543. UPX1:004786AF                 mov     [esp+60h], eax
  544. UPX1:004786B3
  545. UPX1:004786B3 loc_4786B3:                             ; CODE XREF: UPX1:0047843A↑j
  546. UPX1:004786B3                 cmp     esi, 0FFFFFFh
  547. UPX1:004786B9                 ja      short loc_4786D1
  548. UPX1:004786BB                 cmp     ebx, [esp+4Ch]
  549. UPX1:004786BF                 jz      loc_478AB8
  550. UPX1:004786C5                 movzx   eax, byte ptr [ebx]
  551. UPX1:004786C8                 shl     edi, 8
  552. UPX1:004786CB                 shl     esi, 8
  553. UPX1:004786CE                 inc     ebx
  554. UPX1:004786CF                 or      edi, eax
  555. UPX1:004786D1
  556. UPX1:004786D1 loc_4786D1:                             ; CODE XREF: UPX1:004786B9↑j
  557. UPX1:004786D1                 mov     dx, [ecx]
  558. UPX1:004786D4                 mov     eax, esi
  559. UPX1:004786D6                 shr     eax, 0Bh
  560. UPX1:004786D9                 movzx   ebp, dx
  561. UPX1:004786DC                 imul    eax, ebp
  562. UPX1:004786DF                 cmp     edi, eax
  563. UPX1:004786E1                 jnb     short loc_478712
  564. UPX1:004786E3                 mov     [esp+48h], eax
  565. UPX1:004786E7                 mov     eax, 800h
  566. UPX1:004786EC                 sub     eax, ebp
  567. UPX1:004786EE                 shl     dword ptr [esp+44h], 4
  568. UPX1:004786F3                 sar     eax, 5
  569. UPX1:004786F6                 mov     dword ptr [esp+2Ch], 0
  570. UPX1:004786FE                 lea     eax, [edx+eax]
  571. UPX1:00478701                 mov     [ecx], ax
  572. UPX1:00478704                 mov     eax, [esp+44h]
  573. UPX1:00478708                 lea     ecx, [ecx+eax+4]
  574. UPX1:0047870C                 mov     [esp+10h], ecx
  575. UPX1:00478710                 jmp     short loc_478784
  576. UPX1:00478712 ; ---------------------------------------------------------------------------
  577. UPX1:00478712
  578. UPX1:00478712 loc_478712:                             ; CODE XREF: UPX1:004786E1↑j
  579. UPX1:00478712                 sub     esi, eax
  580. UPX1:00478714                 sub     edi, eax
  581. UPX1:00478716                 mov     eax, edx
  582. UPX1:00478718                 shr     ax, 5
  583. UPX1:0047871C                 sub     dx, ax
  584. UPX1:0047871F                 cmp     esi, 0FFFFFFh
  585. UPX1:00478725                 mov     [ecx], dx
  586. UPX1:00478728                 ja      short loc_478740
  587. UPX1:0047872A                 cmp     ebx, [esp+4Ch]
  588. UPX1:0047872E                 jz      loc_478AB8
  589. UPX1:00478734                 movzx   eax, byte ptr [ebx]
  590. UPX1:00478737                 shl     edi, 8
  591. UPX1:0047873A                 shl     esi, 8
  592. UPX1:0047873D                 inc     ebx
  593. UPX1:0047873E                 or      edi, eax
  594. UPX1:00478740
  595. UPX1:00478740 loc_478740:                             ; CODE XREF: UPX1:00478728↑j
  596. UPX1:00478740                 mov     dx, [ecx+2]
  597. UPX1:00478744                 mov     eax, esi
  598. UPX1:00478746                 shr     eax, 0Bh
  599. UPX1:00478749                 movzx   ebp, dx
  600. UPX1:0047874C                 imul    eax, ebp
  601. UPX1:0047874F                 cmp     edi, eax
  602. UPX1:00478751                 jnb     short loc_47878E
  603. UPX1:00478753                 mov     [esp+48h], eax
  604. UPX1:00478757                 mov     eax, 800h
  605. UPX1:0047875C                 sub     eax, ebp
  606. UPX1:0047875E                 shl     dword ptr [esp+44h], 4
  607. UPX1:00478763                 sar     eax, 5
  608. UPX1:00478766                 mov     dword ptr [esp+2Ch], 8
  609. UPX1:0047876E                 lea     eax, [edx+eax]
  610. UPX1:00478771                 mov     edx, [esp+44h]
  611. UPX1:00478775                 mov     [ecx+2], ax
  612. UPX1:00478779                 lea     ecx, [ecx+edx+104h]
  613. UPX1:00478780                 mov     [esp+10h], ecx
  614. UPX1:00478784
  615. UPX1:00478784 loc_478784:                             ; CODE XREF: UPX1:00478710↑j
  616. UPX1:00478784                 mov     dword ptr [esp+30h], 3
  617. UPX1:0047878C                 jmp     short loc_4787BD
  618. UPX1:0047878E ; ---------------------------------------------------------------------------
  619. UPX1:0047878E
  620. UPX1:0047878E loc_47878E:                             ; CODE XREF: UPX1:00478751↑j
  621. UPX1:0047878E                 sub     esi, eax
  622. UPX1:00478790                 sub     edi, eax
  623. UPX1:00478792                 mov     eax, edx
  624. UPX1:00478794                 mov     [esp+48h], esi
  625. UPX1:00478798                 shr     ax, 5
  626. UPX1:0047879C                 mov     dword ptr [esp+2Ch], 10h
  627. UPX1:004787A4                 sub     dx, ax
  628. UPX1:004787A7                 mov     dword ptr [esp+30h], 8
  629. UPX1:004787AF                 mov     [ecx+2], dx
  630. UPX1:004787B3                 add     ecx, 204h
  631. UPX1:004787B9                 mov     [esp+10h], ecx
  632. UPX1:004787BD
  633. UPX1:004787BD loc_4787BD:                             ; CODE XREF: UPX1:0047878C↑j
  634. UPX1:004787BD                 mov     ecx, [esp+30h]
  635. UPX1:004787C1                 mov     edx, 1
  636. UPX1:004787C6                 mov     [esp+28h], ecx
  637. UPX1:004787CA
  638. UPX1:004787CA loc_4787CA:                             ; CODE XREF: UPX1:0047883F↓j
  639. UPX1:004787CA                 lea     ebp, [edx+edx]
  640. UPX1:004787CD                 mov     esi, [esp+10h]
  641. UPX1:004787D1                 add     esi, ebp
  642. UPX1:004787D3                 cmp     dword ptr [esp+48h], 0FFFFFFh
  643. UPX1:004787DB                 ja      short loc_4787F5
  644. UPX1:004787DD                 cmp     ebx, [esp+4Ch]
  645. UPX1:004787E1                 jz      loc_478AB8
  646. UPX1:004787E7                 shl     dword ptr [esp+48h], 8
  647. UPX1:004787EC                 movzx   eax, byte ptr [ebx]
  648. UPX1:004787EF                 shl     edi, 8
  649. UPX1:004787F2                 inc     ebx
  650. UPX1:004787F3                 or      edi, eax
  651. UPX1:004787F5
  652. UPX1:004787F5 loc_4787F5:                             ; CODE XREF: UPX1:004787DB↑j
  653. UPX1:004787F5                 mov     eax, [esp+48h]
  654. UPX1:004787F9                 mov     dx, [esi]
  655. UPX1:004787FC                 shr     eax, 0Bh
  656. UPX1:004787FF                 movzx   ecx, dx
  657. UPX1:00478802                 imul    eax, ecx
  658. UPX1:00478805                 cmp     edi, eax
  659. UPX1:00478807                 jnb     short loc_478821
  660. UPX1:00478809                 mov     [esp+48h], eax
  661. UPX1:0047880D                 mov     eax, 800h
  662. UPX1:00478812                 sub     eax, ecx
  663. UPX1:00478814                 sar     eax, 5
  664. UPX1:00478817                 lea     eax, [edx+eax]
  665. UPX1:0047881A                 mov     edx, ebp
  666. UPX1:0047881C                 mov     [esi], ax
  667. UPX1:0047881F                 jmp     short loc_478836
  668. UPX1:00478821 ; ---------------------------------------------------------------------------
  669. UPX1:00478821
  670. UPX1:00478821 loc_478821:                             ; CODE XREF: UPX1:00478807↑j
  671. UPX1:00478821                 sub     [esp+48h], eax
  672. UPX1:00478825                 sub     edi, eax
  673. UPX1:00478827                 mov     eax, edx
  674. UPX1:00478829                 shr     ax, 5
  675. UPX1:0047882D                 sub     dx, ax
  676. UPX1:00478830                 mov     [esi], dx
  677. UPX1:00478833                 lea     edx, [ebp+1]
  678. UPX1:00478836
  679. UPX1:00478836 loc_478836:                             ; CODE XREF: UPX1:0047881F↑j
  680. UPX1:00478836                 mov     esi, [esp+28h]
  681. UPX1:0047883A                 dec     esi
  682. UPX1:0047883B                 mov     [esp+28h], esi
  683. UPX1:0047883F                 jnz     short loc_4787CA
  684. UPX1:00478841                 mov     cl, [esp+30h]
  685. UPX1:00478845                 mov     eax, 1
  686. UPX1:0047884A                 shl     eax, cl
  687. UPX1:0047884C                 sub     edx, eax
  688. UPX1:0047884E                 add     edx, [esp+2Ch]
  689. UPX1:00478852                 cmp     dword ptr [esp+60h], 3
  690. UPX1:00478857                 mov     [esp+0Ch], edx
  691. UPX1:0047885B                 jg      loc_478A48
  692. UPX1:00478861                 add     dword ptr [esp+60h], 7
  693. UPX1:00478866                 cmp     edx, 3
  694. UPX1:00478869                 mov     eax, edx
  695. UPX1:0047886B                 jle     short loc_478872
  696. UPX1:0047886D                 mov     eax, 3
  697. UPX1:00478872
  698. UPX1:00478872 loc_478872:                             ; CODE XREF: UPX1:0047886B↑j
  699. UPX1:00478872                 mov     esi, [esp+78h]
  700. UPX1:00478876                 shl     eax, 7
  701. UPX1:00478879                 mov     dword ptr [esp+24h], 6
  702. UPX1:00478881                 lea     eax, [esi+eax+360h]
  703. UPX1:00478888                 mov     [esp+8], eax
  704. UPX1:0047888C                 mov     eax, 1
  705. UPX1:00478891
  706. UPX1:00478891 loc_478891:                             ; CODE XREF: UPX1:00478906↓j
  707. UPX1:00478891                 lea     ebp, [eax+eax]
  708. UPX1:00478894                 mov     esi, [esp+8]
  709. UPX1:00478898                 add     esi, ebp
  710. UPX1:0047889A                 cmp     dword ptr [esp+48h], 0FFFFFFh
  711. UPX1:004788A2                 ja      short loc_4788BC
  712. UPX1:004788A4                 cmp     ebx, [esp+4Ch]
  713. UPX1:004788A8                 jz      loc_478AB8
  714. UPX1:004788AE                 shl     dword ptr [esp+48h], 8
  715. UPX1:004788B3                 movzx   eax, byte ptr [ebx]
  716. UPX1:004788B6                 shl     edi, 8
  717. UPX1:004788B9                 inc     ebx
  718. UPX1:004788BA                 or      edi, eax
  719. UPX1:004788BC
  720. UPX1:004788BC loc_4788BC:                             ; CODE XREF: UPX1:004788A2↑j
  721. UPX1:004788BC                 mov     eax, [esp+48h]
  722. UPX1:004788C0                 mov     dx, [esi]
  723. UPX1:004788C3                 shr     eax, 0Bh
  724. UPX1:004788C6                 movzx   ecx, dx
  725. UPX1:004788C9                 imul    eax, ecx
  726. UPX1:004788CC                 cmp     edi, eax
  727. UPX1:004788CE                 jnb     short loc_4788E8
  728. UPX1:004788D0                 mov     [esp+48h], eax
  729. UPX1:004788D4                 mov     eax, 800h
  730. UPX1:004788D9                 sub     eax, ecx
  731. UPX1:004788DB                 sar     eax, 5
  732. UPX1:004788DE                 lea     eax, [edx+eax]
  733. UPX1:004788E1                 mov     [esi], ax
  734. UPX1:004788E4                 mov     eax, ebp
  735. UPX1:004788E6                 jmp     short loc_4788FD
  736. UPX1:004788E8 ; ---------------------------------------------------------------------------
  737. UPX1:004788E8
  738. UPX1:004788E8 loc_4788E8:                             ; CODE XREF: UPX1:004788CE↑j
  739. UPX1:004788E8                 sub     [esp+48h], eax
  740. UPX1:004788EC                 sub     edi, eax
  741. UPX1:004788EE                 mov     eax, edx
  742. UPX1:004788F0                 shr     ax, 5
  743. UPX1:004788F4                 sub     dx, ax
  744. UPX1:004788F7                 lea     eax, [ebp+1]
  745. UPX1:004788FA                 mov     [esi], dx
  746. UPX1:004788FD
  747. UPX1:004788FD loc_4788FD:                             ; CODE XREF: UPX1:004788E6↑j
  748. UPX1:004788FD                 mov     ebp, [esp+24h]
  749. UPX1:00478901                 dec     ebp
  750. UPX1:00478902                 mov     [esp+24h], ebp
  751. UPX1:00478906                 jnz     short loc_478891
  752. UPX1:00478908                 lea     edx, [eax-40h]
  753. UPX1:0047890B                 cmp     edx, 3
  754. UPX1:0047890E                 mov     [esp], edx
  755. UPX1:00478911                 jle     loc_478A3E
  756. UPX1:00478917                 mov     eax, edx
  757. UPX1:00478919                 mov     esi, edx
  758. UPX1:0047891B                 sar     eax, 1
  759. UPX1:0047891D                 and     esi, 1
  760. UPX1:00478920                 lea     ecx, [eax-1]
  761. UPX1:00478923                 or      esi, 2
  762. UPX1:00478926                 cmp     edx, 0Dh
  763. UPX1:00478929                 mov     [esp+20h], ecx
  764. UPX1:0047892D                 jg      short loc_47894B
  765. UPX1:0047892F                 mov     ebp, [esp+78h]
  766. UPX1:00478933                 shl     esi, cl
  767. UPX1:00478935                 add     edx, edx
  768. UPX1:00478937                 mov     [esp], esi
  769. UPX1:0047893A                 lea     eax, [ebp+esi*2+0]
  770. UPX1:0047893E                 sub     eax, edx
  771. UPX1:00478940                 add     eax, 55Eh
  772. UPX1:00478945                 mov     [esp+4], eax
  773. UPX1:00478949                 jmp     short loc_4789A1
  774. UPX1:0047894B ; ---------------------------------------------------------------------------
  775. UPX1:0047894B
  776. UPX1:0047894B loc_47894B:                             ; CODE XREF: UPX1:0047892D↑j
  777. UPX1:0047894B                 lea     edx, [eax-5]
  778. UPX1:0047894E
  779. UPX1:0047894E loc_47894E:                             ; CODE XREF: UPX1:00478984↓j
  780. UPX1:0047894E                 cmp     dword ptr [esp+48h], 0FFFFFFh
  781. UPX1:00478956                 ja      short loc_478970
  782. UPX1:00478958                 cmp     ebx, [esp+4Ch]
  783. UPX1:0047895C                 jz      loc_478AB8
  784. UPX1:00478962                 shl     dword ptr [esp+48h], 8
  785. UPX1:00478967                 movzx   eax, byte ptr [ebx]
  786. UPX1:0047896A                 shl     edi, 8
  787. UPX1:0047896D                 inc     ebx
  788. UPX1:0047896E                 or      edi, eax
  789. UPX1:00478970
  790. UPX1:00478970 loc_478970:                             ; CODE XREF: UPX1:00478956↑j
  791. UPX1:00478970                 shr     dword ptr [esp+48h], 1
  792. UPX1:00478974                 add     esi, esi
  793. UPX1:00478976                 cmp     edi, [esp+48h]
  794. UPX1:0047897A                 jb      short loc_478983
  795. UPX1:0047897C                 sub     edi, [esp+48h]
  796. UPX1:00478980                 or      esi, 1
  797. UPX1:00478983
  798. UPX1:00478983 loc_478983:                             ; CODE XREF: UPX1:0047897A↑j
  799. UPX1:00478983                 dec     edx
  800. UPX1:00478984                 jnz     short loc_47894E
  801. UPX1:00478986                 mov     eax, [esp+78h]
  802. UPX1:0047898A                 shl     esi, 4
  803. UPX1:0047898D                 mov     [esp], esi
  804. UPX1:00478990                 add     eax, 644h
  805. UPX1:00478995                 mov     dword ptr [esp+20h], 4
  806. UPX1:0047899D                 mov     [esp+4], eax
  807. UPX1:004789A1
  808. UPX1:004789A1 loc_4789A1:                             ; CODE XREF: UPX1:00478949↑j
  809. UPX1:004789A1                 mov     dword ptr [esp+1Ch], 1
  810. UPX1:004789A9                 mov     eax, 1
  811. UPX1:004789AE
  812. UPX1:004789AE loc_4789AE:                             ; CODE XREF: UPX1:00478A38↓j
  813. UPX1:004789AE                 mov     ebp, [esp+4]
  814. UPX1:004789B2                 add     eax, eax
  815. UPX1:004789B4                 mov     [esp+18h], eax
  816. UPX1:004789B8                 add     ebp, eax
  817. UPX1:004789BA                 cmp     dword ptr [esp+48h], 0FFFFFFh
  818. UPX1:004789C2                 ja      short loc_4789DC
  819. UPX1:004789C4                 cmp     ebx, [esp+4Ch]
  820. UPX1:004789C8                 jz      loc_478AB8
  821. UPX1:004789CE                 shl     dword ptr [esp+48h], 8
  822. UPX1:004789D3                 movzx   eax, byte ptr [ebx]
  823. UPX1:004789D6                 shl     edi, 8
  824. UPX1:004789D9                 inc     ebx
  825. UPX1:004789DA                 or      edi, eax
  826. UPX1:004789DC
  827. UPX1:004789DC loc_4789DC:                             ; CODE XREF: UPX1:004789C2↑j
  828. UPX1:004789DC                 mov     eax, [esp+48h]
  829. UPX1:004789E0                 mov     dx, [ebp+0]
  830. UPX1:004789E4                 shr     eax, 0Bh
  831. UPX1:004789E7                 movzx   esi, dx
  832. UPX1:004789EA                 imul    eax, esi
  833. UPX1:004789ED                 cmp     edi, eax
  834. UPX1:004789EF                 jnb     short loc_478A0C
  835. UPX1:004789F1                 mov     [esp+48h], eax
  836. UPX1:004789F5                 mov     eax, 800h
  837. UPX1:004789FA                 sub     eax, esi
  838. UPX1:004789FC                 sar     eax, 5
  839. UPX1:004789FF                 lea     eax, [edx+eax]
  840. UPX1:00478A02                 mov     [ebp+0], ax
  841. UPX1:00478A06                 mov     eax, [esp+18h]
  842. UPX1:00478A0A                 jmp     short loc_478A2B
  843. UPX1:00478A0C ; ---------------------------------------------------------------------------
  844. UPX1:00478A0C
  845. UPX1:00478A0C loc_478A0C:                             ; CODE XREF: UPX1:004789EF↑j
  846. UPX1:00478A0C                 sub     [esp+48h], eax
  847. UPX1:00478A10                 sub     edi, eax
  848. UPX1:00478A12                 mov     eax, edx
  849. UPX1:00478A14                 shr     ax, 5
  850. UPX1:00478A18                 sub     dx, ax
  851. UPX1:00478A1B                 mov     eax, [esp+18h]
  852. UPX1:00478A1F                 mov     [ebp+0], dx
  853. UPX1:00478A23                 mov     edx, [esp+1Ch]
  854. UPX1:00478A27                 inc     eax
  855. UPX1:00478A28                 or      [esp], edx
  856. UPX1:00478A2B
  857. UPX1:00478A2B loc_478A2B:                             ; CODE XREF: UPX1:00478A0A↑j
  858. UPX1:00478A2B                 mov     ecx, [esp+20h]
  859. UPX1:00478A2F                 shl     dword ptr [esp+1Ch], 1
  860. UPX1:00478A33                 dec     ecx
  861. UPX1:00478A34                 mov     [esp+20h], ecx
  862. UPX1:00478A38                 jnz     loc_4789AE
  863. UPX1:00478A3E
  864. UPX1:00478A3E loc_478A3E:                             ; CODE XREF: UPX1:00478911↑j
  865. UPX1:00478A3E                 mov     esi, [esp]
  866. UPX1:00478A41                 inc     esi
  867. UPX1:00478A42                 mov     [esp+5Ch], esi
  868. UPX1:00478A46                 jz      short loc_478AA1
  869. UPX1:00478A48
  870. UPX1:00478A48 loc_478A48:                             ; CODE XREF: UPX1:0047885B↑j
  871. UPX1:00478A48                 mov     ecx, [esp+0Ch]
  872. UPX1:00478A4C                 mov     ebp, [esp+74h]
  873. UPX1:00478A50                 add     ecx, 2
  874. UPX1:00478A53                 cmp     [esp+5Ch], ebp
  875. UPX1:00478A57                 ja      short loc_478AB8
  876. UPX1:00478A59                 mov     eax, [esp+0A0h]
  877. UPX1:00478A60                 mov     edx, ebp
  878. UPX1:00478A62                 sub     eax, [esp+5Ch]
  879. UPX1:00478A66                 add     edx, [esp+0A0h]
  880. UPX1:00478A6D                 lea     esi, [eax+ebp]
  881. UPX1:00478A70
  882. UPX1:00478A70 loc_478A70:                             ; CODE XREF: UPX1:00478A8C↓j
  883. UPX1:00478A70                 mov     al, [esi]
  884. UPX1:00478A72                 inc     esi
  885. UPX1:00478A73                 mov     [esp+73h], al
  886. UPX1:00478A77                 mov     [edx], al
  887. UPX1:00478A79                 inc     edx
  888. UPX1:00478A7A                 inc     dword ptr [esp+74h]
  889. UPX1:00478A7E                 dec     ecx
  890. UPX1:00478A7F                 jz      short loc_478A90
  891. UPX1:00478A81                 mov     ebp, [esp+0A4h]
  892. UPX1:00478A88                 cmp     [esp+74h], ebp
  893. UPX1:00478A8C                 jb      short loc_478A70
  894. UPX1:00478A8E                 jmp     short loc_478AA1
  895. UPX1:00478A90 ; ---------------------------------------------------------------------------
  896. UPX1:00478A90
  897. UPX1:00478A90 loc_478A90:                             ; CODE XREF: UPX1:00478370↑j
  898. UPX1:00478A90                                         ; UPX1:00478381↑j ...
  899. UPX1:00478A90                 mov     eax, [esp+0A4h]
  900. UPX1:00478A97                 cmp     [esp+74h], eax
  901. UPX1:00478A9B                 jb      loc_47815C
  902. UPX1:00478AA1
  903. UPX1:00478AA1 loc_478AA1:                             ; CODE XREF: UPX1:00478A46↑j
  904. UPX1:00478AA1                                         ; UPX1:00478A8E↑j
  905. UPX1:00478AA1                 cmp     dword ptr [esp+48h], 0FFFFFFh
  906. UPX1:00478AA9                 ja      short loc_478AC0
  907. UPX1:00478AAB                 cmp     ebx, [esp+4Ch]
  908. UPX1:00478AAF                 mov     eax, 1
  909. UPX1:00478AB4                 jz      short loc_478ADF
  910. UPX1:00478AB6                 jmp     short loc_478ABF
  911. UPX1:00478AB8 ; ---------------------------------------------------------------------------
  912. UPX1:00478AB8
  913. UPX1:00478AB8 loc_478AB8:                             ; CODE XREF: UPX1:00478136↑j
  914. UPX1:00478AB8                                         ; UPX1:00478186↑j ...
  915. UPX1:00478AB8                 mov     eax, 1
  916. UPX1:00478ABD                 jmp     short loc_478ADF
  917. UPX1:00478ABF ; ---------------------------------------------------------------------------
  918. UPX1:00478ABF
  919. UPX1:00478ABF loc_478ABF:                             ; CODE XREF: UPX1:00478AB6↑j
  920. UPX1:00478ABF                 inc     ebx
  921. UPX1:00478AC0
  922. UPX1:00478AC0 loc_478AC0:                             ; CODE XREF: UPX1:00478156↑j
  923. UPX1:00478AC0                                         ; UPX1:00478AA9↑j
  924. UPX1:00478AC0                 sub     ebx, [esp+94h]
  925. UPX1:00478AC7                 xor     eax, eax
  926. UPX1:00478AC9                 mov     edx, [esp+9Ch]
  927. UPX1:00478AD0                 mov     ecx, [esp+74h]
  928. UPX1:00478AD4                 mov     [edx], ebx
  929. UPX1:00478AD6                 mov     ebx, [esp+0A8h]
  930. UPX1:00478ADD                 mov     [ebx], ecx
  931. UPX1:00478ADF
  932. UPX1:00478ADF loc_478ADF:                             ; CODE XREF: UPX1:00478AB4↑j
  933. UPX1:00478ADF                                         ; UPX1:00478ABD↑j
  934. UPX1:00478ADF                 add     esp, 7Ch
  935. UPX1:00478AE2                 pop     ebx
  936. UPX1:00478AE3                 pop     esi
  937. UPX1:00478AE4                 pop     edi
  938. UPX1:00478AE5                 pop     ebp
  939. UPX1:00478AE6                 add     esi, [ebx-4]
  940. UPX1:00478AE9                 add     edi, [ebx-8]
  941. UPX1:00478AEC                 xor     eax, eax
  942. UPX1:00478AEE                 lea     ecx, [esp-100h]
  943. UPX1:00478AF5                 mov     esp, ebp
  944. UPX1:00478AF7
  945. UPX1:00478AF7 loc_478AF7:                             ; CODE XREF: UPX1:00478AFA↓j
  946. UPX1:00478AF7                 push    eax
  947. UPX1:00478AF8                 cmp     esp, ecx
  948. UPX1:00478AFA                 jnz     short loc_478AF7
  949. UPX1:00478AFC                 mov     esp, ebp
  950. UPX1:00478AFE                 xor     ecx, ecx
  951. UPX1:00478B00                 pop     esi
  952. UPX1:00478B01                 mov     edi, esi
  953. UPX1:00478B03                 mov     ecx, 58800h
  954. UPX1:00478B08                 jmp     short loc_478B3C
  955. UPX1:00478B0A ; ---------------------------------------------------------------------------
  956. UPX1:00478B0A
  957. UPX1:00478B0A loc_478B0A:                             ; CODE XREF: UPX1:00478B49↓j
  958. UPX1:00478B0A                 mov     al, [edi]
  959. UPX1:00478B0C                 add     edi, 1
  960. UPX1:00478B0F                 cmp     al, 80h
  961. UPX1:00478B11                 jb      short loc_478B1D
  962. UPX1:00478B13                 cmp     al, 8Fh
  963. UPX1:00478B15                 ja      short loc_478B1D
  964. UPX1:00478B17                 cmp     byte ptr [edi-2], 0Fh
  965. UPX1:00478B1B                 jz      short loc_478B23
  966. UPX1:00478B1D
  967. UPX1:00478B1D loc_478B1D:                             ; CODE XREF: UPX1:00478B11↑j
  968. UPX1:00478B1D                                         ; UPX1:00478B15↑j ...
  969. UPX1:00478B1D                 sub     al, 0E8h
  970. UPX1:00478B1F                 cmp     al, 1
  971. UPX1:00478B21                 ja      short loc_478B46
  972. UPX1:00478B23
  973. UPX1:00478B23 loc_478B23:                             ; CODE XREF: UPX1:00478B1B↑j
  974. UPX1:00478B23                 cmp     byte ptr [edi], 27h
  975. UPX1:00478B26                 jnz     short loc_478B46
  976. UPX1:00478B28                 mov     eax, [edi]
  977. UPX1:00478B2A                 shr     ax, 8
  978. UPX1:00478B2E                 rol     eax, 10h
  979. UPX1:00478B31                 xchg    al, ah
  980. UPX1:00478B33                 sub     eax, edi
  981. UPX1:00478B35                 add     eax, esi
  982. UPX1:00478B37                 mov     [edi], eax
  983. UPX1:00478B39                 add     edi, 4
  984. UPX1:00478B3C
  985. UPX1:00478B3C loc_478B3C:                             ; CODE XREF: UPX1:00478B08↑j
  986. UPX1:00478B3C                 sub     ecx, 4
  987. UPX1:00478B3F                 mov     al, [edi]
  988. UPX1:00478B41                 add     edi, 1
  989. UPX1:00478B44                 loop    loc_478B1D
  990. UPX1:00478B46
  991. UPX1:00478B46 loc_478B46:                             ; CODE XREF: UPX1:00478B21↑j
  992. UPX1:00478B46                                         ; UPX1:00478B26↑j
  993. UPX1:00478B46                 sub     ecx, 1
  994. UPX1:00478B49                 jg      short loc_478B0A
  995. UPX1:00478B4B                 lea     edi, [esi+75000h]
  996. UPX1:00478B51
  997. UPX1:00478B51 loc_478B51:                             ; CODE XREF: UPX1:00478B73↓j
  998. UPX1:00478B51                 mov     eax, [edi]
  999. UPX1:00478B53                 or      eax, eax
  1000. UPX1:00478B55                 jz      short loc_478B9C
  1001. UPX1:00478B57                 mov     ebx, [edi+4]
  1002. UPX1:00478B5A                 lea     eax, [eax+esi+808ECh]
  1003. UPX1:00478B61                 add     ebx, esi
  1004. UPX1:00478B63                 push    eax
  1005. UPX1:00478B64                 add     edi, 8
  1006. UPX1:00478B67                 call    dword ptr [esi+809F0h]
  1007. UPX1:00478B6D                 xchg    eax, ebp
  1008. UPX1:00478B6E
  1009. UPX1:00478B6E loc_478B6E:                             ; CODE XREF: UPX1:00478B94↓j
  1010. UPX1:00478B6E                 mov     al, [edi]
  1011. UPX1:00478B70                 inc     edi
  1012. UPX1:00478B71                 or      al, al
  1013. UPX1:00478B73                 jz      short loc_478B51
  1014. UPX1:00478B75                 mov     ecx, edi
  1015. UPX1:00478B77                 jns     short near ptr loc_478B7F+1
  1016. UPX1:00478B79                 movzx   eax, word ptr [edi]
  1017. UPX1:00478B7C                 inc     edi
  1018. UPX1:00478B7D                 push    eax
  1019. UPX1:00478B7E                 inc     edi
  1020. UPX1:00478B7F
  1021. UPX1:00478B7F loc_478B7F:                             ; CODE XREF: UPX1:00478B77↑j
  1022. UPX1:00478B7F                 mov     ecx, 0AEF24857h
  1023. UPX1:00478B84                 push    ebp
  1024. UPX1:00478B85                 call    dword ptr [esi+809F4h]
  1025. UPX1:00478B8B                 or      eax, eax
  1026. UPX1:00478B8D                 jz      short loc_478B96
  1027. UPX1:00478B8F                 mov     [ebx], eax
  1028. UPX1:00478B91                 add     ebx, 4
  1029. UPX1:00478B94                 jmp     short loc_478B6E
  1030. UPX1:00478B96 ; ---------------------------------------------------------------------------
  1031. UPX1:00478B96
  1032. UPX1:00478B96 loc_478B96:                             ; CODE XREF: UPX1:00478B8D↑j
  1033. UPX1:00478B96                 call    dword ptr [esi+80A04h]
  1034. UPX1:00478B9C
  1035. UPX1:00478B9C loc_478B9C:                             ; CODE XREF: UPX1:00478B55↑j
  1036. UPX1:00478B9C                 mov     ebp, [esi+809F8h]
  1037. UPX1:00478BA2                 lea     edi, [esi-1000h]
  1038. UPX1:00478BA8                 mov     ebx, 1000h
  1039. UPX1:00478BAD                 push    eax
  1040. UPX1:00478BAE                 push    esp
  1041. UPX1:00478BAF                 push    4
  1042. UPX1:00478BB1                 push    ebx
  1043. UPX1:00478BB2                 push    edi
  1044. UPX1:00478BB3                 call    ebp
  1045. UPX1:00478BB5                 lea     eax, [edi+22Fh]
  1046. UPX1:00478BBB                 and     byte ptr [eax], 7Fh
  1047. UPX1:00478BBE                 and     byte ptr [eax+28h], 7Fh
  1048. UPX1:00478BC2                 pop     eax
  1049. UPX1:00478BC3                 push    eax
  1050. UPX1:00478BC4                 push    esp
  1051. UPX1:00478BC5                 push    eax
  1052. UPX1:00478BC6                 push    ebx
  1053. UPX1:00478BC7                 push    edi
  1054. UPX1:00478BC8                 call    ebp
  1055. UPX1:00478BCA                 pop     eax
  1056. UPX1:00478BCB                 popa
  1057. UPX1:00478BCC                 lea     eax, [esp-80h]
  1058. UPX1:00478BD0
  1059. UPX1:00478BD0 loc_478BD0:                             ; CODE XREF: UPX1:00478BD4↓j
  1060. UPX1:00478BD0                 push    0
  1061. UPX1:00478BD2                 cmp     esp, eax
  1062. UPX1:00478BD4                 jnz     short loc_478BD0
  1063. UPX1:00478BD6                 sub     esp, 0FFFFFF80h
  1064. UPX1:00478BD9                 jmp     near ptr byte_442B4F
  1065. UPX1:00478BD9 ; ---------------------------------------------------------------------------
  1066. UPX1:00478BDE                 align 40h
  1067. UPX1:00478C00                 dd 100h dup(?)
  1068. UPX1:00478C00 UPX1            ends
  1069. UPX1:00478C00
  1070. UPX1:00478C00
  1071. UPX1:00478C00                 end start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement