Guest User

Untitled

a guest
Apr 24th, 2015
450
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.98 KB | None | 0 0
  1. CODE:0042CAC5 ; ---------------------------------------------------------------------------
  2. CODE:0042CAC6 align 4
  3. CODE:0042CAC8 ; Exported entry 6. UnpackAFile
  4. CODE:0042CAC8
  5. CODE:0042CAC8 ; =============== S U B R O U T I N E =======================================
  6. CODE:0042CAC8
  7. CODE:0042CAC8 ; Attributes: bp-based frame
  8. CODE:0042CAC8
  9. CODE:0042CAC8 public UnpackAFile
  10. CODE:0042CAC8 UnpackAFile proc near ; CODE XREF: ReadArcBmp+33p
  11. CODE:0042CAC8 ; ReadArcBmp2+2Fp
  12. CODE:0042CAC8
  13. CODE:0042CAC8 var_10 = dword ptr -10h
  14. CODE:0042CAC8 var_C = dword ptr -0Ch
  15. CODE:0042CAC8 var_8 = dword ptr -8
  16. CODE:0042CAC8 var_4 = dword ptr -4
  17. CODE:0042CAC8 arg_0 = dword ptr 8
  18. CODE:0042CAC8
  19. CODE:0042CAC8 push ebp
  20. CODE:0042CAC9 mov ebp, esp
  21. CODE:0042CACB xor ecx, ecx
  22. CODE:0042CACD push ecx
  23. CODE:0042CACE push ecx
  24. CODE:0042CACF push ecx
  25. CODE:0042CAD0 push ecx
  26. CODE:0042CAD1 push ebx
  27. CODE:0042CAD2 push esi
  28. CODE:0042CAD3 push edi
  29. CODE:0042CAD4 mov edi, offset dword_42F764
  30. CODE:0042CAD9 xor eax, eax
  31. CODE:0042CADB push ebp
  32. CODE:0042CADC push offset loc_42CC52
  33. CODE:0042CAE1 push dword ptr fs:[eax]
  34. CODE:0042CAE4 mov fs:[eax], esp
  35. CODE:0042CAE7 lea edx, [ebp+var_8]
  36. CODE:0042CAEA mov eax, [ebp+arg_0]
  37. CODE:0042CAED call sub_406A80
  38. CODE:0042CAF2 cmp ds:dword_478430, 0
  39. CODE:0042CAF9 jnz short loc_42CB02
  40. CODE:0042CAFB xor ebx, ebx
  41. CODE:0042CAFD jmp loc_42CC37
  42. CODE:0042CB02 ; ---------------------------------------------------------------------------
  43. CODE:0042CB02
  44. CODE:0042CB02 loc_42CB02: ; CODE XREF: UnpackAFile+31j
  45. CODE:0042CB02 mov esi, ds:dword_478430
  46. CODE:0042CB08 dec esi
  47. CODE:0042CB09 test esi, esi
  48. CODE:0042CB0B jl loc_42CC26
  49. CODE:0042CB11 inc esi
  50. CODE:0042CB12 mov [ebp+var_4], 0
  51. CODE:0042CB19 mov ebx, offset unk_42F780
  52. CODE:0042CB1E
  53. CODE:0042CB1E loc_42CB1E: ; CODE XREF: UnpackAFile+158j
  54. CODE:0042CB1E lea eax, [ebp+var_10]
  55. CODE:0042CB21 mov edx, ebx
  56. CODE:0042CB23 call sub_4037BC
  57. CODE:0042CB28 mov eax, [ebp+var_10]
  58. CODE:0042CB2B lea edx, [ebp+var_C]
  59. CODE:0042CB2E call sub_406464
  60. CODE:0042CB33 mov eax, [ebp+var_C]
  61. CODE:0042CB36 push eax
  62. CODE:0042CB37 lea edx, [ebp+var_10]
  63. CODE:0042CB3A mov eax, [ebp+var_8]
  64. CODE:0042CB3D call sub_406464
  65. CODE:0042CB42 mov edx, [ebp+var_10]
  66. CODE:0042CB45 pop eax
  67. CODE:0042CB46 call sub_403928
  68. CODE:0042CB4B jnz loc_42CC19
  69. CODE:0042CB51 mov esi, [ebx+20h]
  70. CODE:0042CB54 mov eax, [ebx+1Ch]
  71. CODE:0042CB57 sub esi, eax
  72. CODE:0042CB59 inc esi
  73. CODE:0042CB5A xor ecx, ecx ; dwMoveMethod
  74. CODE:0042CB5C mov edx, eax ; lDistanceToMove
  75. CODE:0042CB5E mov eax, [edi]
  76. CODE:0042CB60 call sub_406704
  77. CODE:0042CB65 mov edx, offset unk_438420 ; lpBuffer
  78. CODE:0042CB6A mov ecx, esi ; nNumberOfBytesToRead
  79. CODE:0042CB6C mov eax, [edi]
  80. CODE:0042CB6E call sub_4066AC
  81. CODE:0042CB73 dec eax
  82. CODE:0042CB74 mov ds:dword_478424, eax
  83. CODE:0042CB79 xor esi, esi
  84. CODE:0042CB7B mov edx, ds:dword_478424
  85. CODE:0042CB81 test edx, edx
  86. CODE:0042CB83 jl short loc_42CB96
  87. CODE:0042CB85 inc edx
  88. CODE:0042CB86 mov eax, offset unk_438420
  89. CODE:0042CB8B
  90. CODE:0042CB8B loc_42CB8B: ; CODE XREF: UnpackAFile+CCj
  91. CODE:0042CB8B xor ecx, ecx
  92. CODE:0042CB8D mov cl, [eax]
  93. CODE:0042CB8F add si, cx
  94. CODE:0042CB92 inc eax
  95. CODE:0042CB93 dec edx
  96. CODE:0042CB94 jnz short loc_42CB8B
  97. CODE:0042CB96
  98. CODE:0042CB96 loc_42CB96: ; CODE XREF: UnpackAFile+BBj
  99. CODE:0042CB96 cmp si, [ebx+12h]
  100. CODE:0042CB9A jz short loc_42CBA3
  101. CODE:0042CB9C xor ebx, ebx
  102. CODE:0042CB9E jmp loc_42CC37
  103. CODE:0042CBA3 ; ---------------------------------------------------------------------------
  104. CODE:0042CBA3
  105. CODE:0042CBA3 loc_42CBA3: ; CODE XREF: UnpackAFile+D2j
  106. CODE:0042CBA3 xor eax, eax
  107. CODE:0042CBA5 mov ds:dword_478428, eax
  108. CODE:0042CBAA xor eax, eax
  109. CODE:0042CBAC mov ds:dword_47842C, eax
  110. CODE:0042CBB1 xor esi, esi
  111. CODE:0042CBB3 mov al, [ebx+0Fh]
  112. CODE:0042CBB6 cmp al, 2
  113. CODE:0042CBB8 jnz short loc_42CBC6
  114. CODE:0042CBBA mov eax, offset dword_42CC6C
  115. CODE:0042CBBF call sub_42B840
  116. CODE:0042CBC4 jmp short loc_42CBF9
  117. CODE:0042CBC6 ; ---------------------------------------------------------------------------
  118. CODE:0042CBC6
  119. CODE:0042CBC6 loc_42CBC6: ; CODE XREF: UnpackAFile+F0j
  120. CODE:0042CBC6 cmp al, 1
  121. CODE:0042CBC8 jnz short loc_42CBDB
  122. CODE:0042CBCA mov edx, offset sub_42C798
  123. CODE:0042CBCF mov eax, offset sub_42C74C
  124. CODE:0042CBD4 call sub_42C62C
  125. CODE:0042CBD9 jmp short loc_42CBF9
  126. CODE:0042CBDB ; ---------------------------------------------------------------------------
  127. CODE:0042CBDB
  128. CODE:0042CBDB loc_42CBDB: ; CODE XREF: UnpackAFile+100j
  129. CODE:0042CBDB mov eax, ds:dword_42F77C
  130. CODE:0042CBE0 push eax
  131. CODE:0042CBE1 push offset sub_42C6B4
  132. CODE:0042CBE6 mov eax, ds:dword_42F77C
  133. CODE:0042CBEB push eax
  134. CODE:0042CBEC push offset sub_42C718
  135. CODE:0042CBF1 mov eax, [ebx+14h]
  136. CODE:0042CBF4 call sub_42C2AC
  137. CODE:0042CBF9
  138. CODE:0042CBF9 loc_42CBF9: ; CODE XREF: UnpackAFile+FCj
  139. CODE:0042CBF9 ; UnpackAFile+111j
  140. CODE:0042CBF9 test esi, esi
  141. CODE:0042CBFB jz short loc_42CC01
  142. CODE:0042CBFD xor ebx, ebx
  143. CODE:0042CBFF jmp short loc_42CC37
  144. CODE:0042CC01 ; ---------------------------------------------------------------------------
  145. CODE:0042CC01
  146. CODE:0042CC01 loc_42CC01: ; CODE XREF: UnpackAFile+133j
  147. CODE:0042CC01 mov eax, [ebx+14h]
  148. CODE:0042CC04 mov ds:dword_42F76C, eax
  149. CODE:0042CC09 xor eax, eax
  150. CODE:0042CC0B mov ds:dword_42F774, eax
  151. CODE:0042CC10 mov ds:byte_42F778, 0
  152. CODE:0042CC17 jmp short loc_42CC26
  153. CODE:0042CC19 ; ---------------------------------------------------------------------------
  154. CODE:0042CC19
  155. CODE:0042CC19 loc_42CC19: ; CODE XREF: UnpackAFile+83j
  156. CODE:0042CC19 inc [ebp+var_4]
  157. CODE:0042CC1C add ebx, 24h
  158. CODE:0042CC1F dec esi
  159. CODE:0042CC20 jnz loc_42CB1E
  160. CODE:0042CC26
  161. CODE:0042CC26 loc_42CC26: ; CODE XREF: UnpackAFile+43j
  162. CODE:0042CC26 ; UnpackAFile+14Fj
  163. CODE:0042CC26 mov eax, [ebp+var_4]
  164. CODE:0042CC29 cmp eax, ds:dword_478430
  165. CODE:0042CC2F jnz short loc_42CC35
  166. CODE:0042CC31 xor ebx, ebx
  167. CODE:0042CC33 jmp short loc_42CC37
  168. CODE:0042CC35 ; ---------------------------------------------------------------------------
  169. CODE:0042CC35
  170. CODE:0042CC35 loc_42CC35: ; CODE XREF: UnpackAFile+167j
  171. CODE:0042CC35 mov bl, 1
  172. CODE:0042CC37
  173. CODE:0042CC37 loc_42CC37: ; CODE XREF: UnpackAFile+35j
  174. CODE:0042CC37 ; UnpackAFile+D6j ...
  175. CODE:0042CC37 xor eax, eax
  176. CODE:0042CC39 pop edx
  177. CODE:0042CC3A pop ecx
  178. CODE:0042CC3B pop ecx
  179. CODE:0042CC3C mov fs:[eax], edx
  180. CODE:0042CC3F push offset loc_42CC59
  181. CODE:0042CC44
  182. CODE:0042CC44 loc_42CC44: ; CODE XREF: UnpackAFile+18Fj
  183. CODE:0042CC44 lea eax, [ebp+var_10]
  184. CODE:0042CC47 mov edx, 3
  185. CODE:0042CC4C call sub_4035C0
  186. CODE:0042CC51 retn
  187. CODE:0042CC52 ; ---------------------------------------------------------------------------
  188. CODE:0042CC52
  189. CODE:0042CC52 loc_42CC52: ; DATA XREF: UnpackAFile+14o
  190. CODE:0042CC52 jmp loc_402FD4
  191. CODE:0042CC57 ; ---------------------------------------------------------------------------
  192. CODE:0042CC57 jmp short loc_42CC44
  193. CODE:0042CC59 ; ---------------------------------------------------------------------------
  194. CODE:0042CC59
  195. CODE:0042CC59 loc_42CC59: ; CODE XREF: UnpackAFile+189j
  196. CODE:0042CC59 ; DATA XREF: UnpackAFile+177o
  197. CODE:0042CC59 mov eax, ebx
  198. CODE:0042CC5B pop edi
  199. CODE:0042CC5C pop esi
  200. CODE:0042CC5D pop ebx
  201. CODE:0042CC5E mov esp, ebp
  202. CODE:0042CC60 pop ebp
  203. CODE:0042CC61 retn
  204. CODE:0042CC61 UnpackAFile endp
  205. CODE:0042CC61
  206. CODE:0042CC61 ; ---------------------------------------------------------------------------
  207. CODE:0042CC62 align 4
  208. CODE:0042CC64 dd 0FFFFFFFFh, 0Eh
  209. CODE:0042CC6C dword_42CC6C dd 697A6B70h, 6F632070h, 6572706Dh, 7373h
  210. CODE:0042CC6C ; DATA XREF: UnpackAFile+F2o
Advertisement
Add Comment
Please, Sign In to add comment