Advertisement
Guest User

IDA

a guest
Jan 30th, 2012
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .text:0051CD00
  2. .text:0051CD00 ; =============== S U B R O U T I N E =======================================
  3. .text:0051CD00
  4. .text:0051CD00
  5. .text:0051CD00 sub_51CD00      proc near               ; CODE XREF: sub_51DB30+22p
  6. .text:0051CD00                                         ; sub_51DB60+F6p ...
  7. .text:0051CD00
  8. .text:0051CD00 var_15          = byte ptr -15h
  9. .text:0051CD00 var_14          = dword ptr -14h
  10. .text:0051CD00 var_10          = dword ptr -10h
  11. .text:0051CD00 arg_0           = dword ptr  4
  12. .text:0051CD00 arg_4           = dword ptr  8
  13. .text:0051CD00 arg_8           = dword ptr  0Ch
  14. .text:0051CD00 arg_C           = dword ptr  10h
  15. .text:0051CD00 arg_10          = dword ptr  14h
  16. .text:0051CD00
  17. .text:0051CD00                 sub     esp, 18h
  18. .text:0051CD03                 push    ebx
  19. .text:0051CD04                 push    ebp
  20. .text:0051CD05                 push    esi
  21. .text:0051CD06                 push    edi
  22. .text:0051CD07                 mov     edi, eax
  23. .text:0051CD09                 call    ?__uncaught_exception@@YA_NXZ_0 ; __uncaught_exception(void)
  24. .text:0051CD0E                 mov     eax, [edi+40h]
  25. .text:0051CD11                 mov     ecx, [edi+3Ch]
  26. .text:0051CD14                 mov     edx, [esp+28h+arg_0]
  27. .text:0051CD18                 mov     ebx, [esp+28h+arg_4]
  28. .text:0051CD1C                 mov     ebp, [esp+28h+arg_8]
  29. .text:0051CD20                 mov     esi, [esp+28h+arg_C]
  30. .text:0051CD24                 push    eax
  31. .text:0051CD25                 push    ecx
  32. .text:0051CD26                 sub     esp, 10h
  33. .text:0051CD29                 mov     eax, esp
  34. .text:0051CD2B                 mov     [eax], edx
  35. .text:0051CD2D                 mov     [eax+4], ebx
  36. .text:0051CD30                 mov     [eax+8], ebp
  37. .text:0051CD33                 mov     [eax+0Ch], esi
  38. .text:0051CD36                 movzx   eax, byte ptr [edi+8]
  39. .text:0051CD3A                 push    eax
  40. .text:0051CD3B                 call    sub_51C4F0
  41. .text:0051CD40                 add     esp, 1Ch
  42. .text:0051CD43                 test    al, al
  43. .text:0051CD45                 jnz     short loc_51CDB3
  44. .text:0051CD47                 mov     ecx, [edi]
  45. .text:0051CD49                 push    ecx
  46. .text:0051CD4A                 sub     esp, 10h
  47. .text:0051CD4D                 mov     eax, esp
  48. .text:0051CD4F                 mov     [eax], edx
  49. .text:0051CD51                 mov     [eax+4], ebx
  50. .text:0051CD54                 mov     [eax+8], ebp
  51. .text:0051CD57                 push    edi             ; int
  52. .text:0051CD58                 mov     [eax+0Ch], esi
  53. .text:0051CD5B                 call    sub_51BC40
  54. .text:0051CD60                 add     esp, 14h
  55. .text:0051CD63                 push    eax             ; char
  56. .text:0051CD64                 push    offset aSIsNotAValidVa ; "'%s' is not a valid value for dvar '%s'"...
  57. .text:0051CD69                 push    10h             ; int
  58. .text:0051CD6B                 push    edi             ; int
  59. .text:0051CD6C                 call    sub_51C9F0
  60. .text:0051CD71                 add     esp, 14h
  61. .text:0051CD74                 test    al, al
  62. .text:0051CD76                 jz      short loc_51CD8D
  63. .text:0051CD78                 mov     edx, [edi+40h]
  64. .text:0051CD7B                 mov     eax, [edi+3Ch]
  65. .text:0051CD7E                 movzx   ecx, byte ptr [edi+8]
  66. .text:0051CD82                 push    edx             ; float
  67. .text:0051CD83                 push    eax             ; float
  68. .text:0051CD84                 push    ecx             ; char
  69. .text:0051CD85                 call    sub_51CA60
  70. .text:0051CD8A                 add     esp, 0Ch
  71. .text:0051CD8D
  72. .text:0051CD8D loc_51CD8D:                             ; CODE XREF: sub_51CD00+76j
  73. .text:0051CD8D                 cmp     byte ptr [edi+8], 6
  74. .text:0051CD91                 jnz     loc_51D260
  75. .text:0051CD97                 mov     edx, [edi+2Ch]
  76. .text:0051CD9A                 mov     ebx, [edi+30h]
  77. .text:0051CD9D                 mov     ebp, [edi+34h]
  78. .text:0051CDA0                 mov     esi, [edi+38h]
  79. .text:0051CDA3                 mov     [esp+28h+arg_0], edx
  80. .text:0051CDA7                 mov     [esp+28h+arg_4], ebx
  81. .text:0051CDAB                 mov     [esp+28h+arg_8], ebp
  82. .text:0051CDAF                 mov     [esp+28h+arg_C], esi
  83. .text:0051CDB3
  84. .text:0051CDB3 loc_51CDB3:                             ; CODE XREF: sub_51CD00+45j
  85. .text:0051CDB3                 mov     ecx, [edi+44h]
  86. .text:0051CDB6                 test    ecx, ecx
  87. .text:0051CDB8                 jz      short loc_51CE29
  88. .text:0051CDBA                 sub     esp, 10h
  89. .text:0051CDBD                 mov     eax, esp
  90. .text:0051CDBF                 mov     [eax], edx
  91. .text:0051CDC1                 mov     [eax+4], ebx
  92. .text:0051CDC4                 mov     [eax+8], ebp
  93. .text:0051CDC7                 push    edi
  94. .text:0051CDC8                 mov     [eax+0Ch], esi
  95. .text:0051CDCB                 call    ecx
  96. .text:0051CDCD                 add     esp, 14h
  97. .text:0051CDD0                 test    al, al
  98. .text:0051CDD2                 jnz     short loc_51CE19
  99. .text:0051CDD4                 mov     eax, [edi]
  100. .text:0051CDD6                 mov     ecx, [esp+28h+arg_0]
  101. .text:0051CDDA                 mov     edx, [esp+28h+arg_4]
  102. .text:0051CDDE                 push    eax
  103. .text:0051CDDF                 sub     esp, 10h
  104. .text:0051CDE2                 mov     eax, esp
  105. .text:0051CDE4                 mov     [eax], ecx
  106. .text:0051CDE6                 mov     ecx, [esp+3Ch+arg_8]
  107. .text:0051CDEA                 mov     [eax+4], edx
  108. .text:0051CDED                 mov     edx, [esp+3Ch+arg_C]
  109. .text:0051CDF1                 mov     [eax+8], ecx
  110. .text:0051CDF4                 push    edi             ; int
  111. .text:0051CDF5                 mov     [eax+0Ch], edx
  112. .text:0051CDF8                 call    sub_51BC40
  113. .text:0051CDFD                 add     esp, 14h
  114. .text:0051CE00                 push    eax             ; char
  115. .text:0051CE01                 push    offset aSIsNotAValid_0 ; "'%s' is not a valid value for dvar '%s'"...
  116. .text:0051CE06                 push    10h             ; int
  117. .text:0051CE08                 push    edi             ; int
  118. .text:0051CE09                 call    sub_51C9F0
  119. .text:0051CE0E                 add     esp, 14h
  120. .text:0051CE11                 pop     edi
  121. .text:0051CE12                 pop     esi
  122. .text:0051CE13                 pop     ebp
  123. .text:0051CE14                 pop     ebx
  124. .text:0051CE15                 add     esp, 18h
  125. .text:0051CE18                 retn
  126. .text:0051CE19 ; ---------------------------------------------------------------------------
  127. .text:0051CE19
  128. .text:0051CE19 loc_51CE19:                             ; CODE XREF: sub_51CD00+D2j
  129. .text:0051CE19                 mov     esi, [esp+28h+arg_C]
  130. .text:0051CE1D                 mov     ebp, [esp+28h+arg_8]
  131. .text:0051CE21                 mov     ebx, [esp+28h+arg_4]
  132. .text:0051CE25                 mov     edx, [esp+28h+arg_0]
  133. .text:0051CE29
  134. .text:0051CE29 loc_51CE29:                             ; CODE XREF: sub_51CD00+B8j
  135. .text:0051CE29                 mov     ecx, [esp+28h+arg_10]
  136. .text:0051CE2D                 cmp     ecx, 1
  137. .text:0051CE30                 jz      short loc_51CE3B
  138. .text:0051CE32                 cmp     ecx, 2
  139. .text:0051CE35                 jnz     loc_51D056
  140. .text:0051CE3B
  141. .text:0051CE3B loc_51CE3B:                             ; CODE XREF: sub_51CD00+130j
  142. .text:0051CE3B                 mov     eax, [edi+4]
  143. .text:0051CE3E                 test    eax, 2000h
  144. .text:0051CE43                 jz      short loc_51CE9F
  145. .text:0051CE45                 mov     ecx, [edi+0Ch]
  146. .text:0051CE48                 sub     esp, 10h
  147. .text:0051CE4B                 mov     eax, esp
  148. .text:0051CE4D                 mov     [eax], edx
  149. .text:0051CE4F                 mov     edx, [edi+10h]
  150. .text:0051CE52                 mov     [eax+4], ebx
  151. .text:0051CE55                 mov     [eax+8], ebp
  152. .text:0051CE58                 mov     [eax+0Ch], esi
  153. .text:0051CE5B                 sub     esp, 10h
  154. .text:0051CE5E                 mov     eax, esp
  155. .text:0051CE60                 mov     [eax], ecx
  156. .text:0051CE62                 mov     ecx, [edi+14h]
  157. .text:0051CE65                 mov     [eax+4], edx
  158. .text:0051CE68                 mov     edx, [edi+18h]
  159. .text:0051CE6B                 mov     [eax+8], ecx
  160. .text:0051CE6E                 mov     [eax+0Ch], edx
  161. .text:0051CE71                 mov     al, [edi+8]
  162. .text:0051CE74                 call    sub_51CAA0
  163. .text:0051CE79                 add     esp, 20h
  164. .text:0051CE7C                 test    eax, eax
  165. .text:0051CE7E                 jnz     loc_51D260
  166. .text:0051CE84                 mov     eax, [edi]
  167. .text:0051CE86                 push    eax             ; char
  168. .text:0051CE87                 push    offset aSIsReadOnly_ ; "%s is read only.\n"
  169. .text:0051CE8C                 push    10h             ; int
  170. .text:0051CE8E                 push    edi             ; int
  171. .text:0051CE8F                 call    sub_51C9F0
  172. .text:0051CE94                 add     esp, 10h
  173. .text:0051CE97                 pop     edi
  174. .text:0051CE98                 pop     esi
  175. .text:0051CE99                 pop     ebp
  176. .text:0051CE9A                 pop     ebx
  177. .text:0051CE9B                 add     esp, 18h
  178. .text:0051CE9E                 retn
  179. .text:0051CE9F ; ---------------------------------------------------------------------------
  180. .text:0051CE9F
  181. .text:0051CE9F loc_51CE9F:                             ; CODE XREF: sub_51CD00+143j
  182. .text:0051CE9F                 test    eax, 800h
  183. .text:0051CEA4                 jz      short loc_51CF00
  184. .text:0051CEA6                 mov     ecx, [edi+0Ch]
  185. .text:0051CEA9                 sub     esp, 10h
  186. .text:0051CEAC                 mov     eax, esp
  187. .text:0051CEAE                 mov     [eax], edx
  188. .text:0051CEB0                 mov     edx, [edi+10h]
  189. .text:0051CEB3                 mov     [eax+4], ebx
  190. .text:0051CEB6                 mov     [eax+8], ebp
  191. .text:0051CEB9                 mov     [eax+0Ch], esi
  192. .text:0051CEBC                 sub     esp, 10h
  193. .text:0051CEBF                 mov     eax, esp
  194. .text:0051CEC1                 mov     [eax], ecx
  195. .text:0051CEC3                 mov     ecx, [edi+14h]
  196. .text:0051CEC6                 mov     [eax+4], edx
  197. .text:0051CEC9                 mov     edx, [edi+18h]
  198. .text:0051CECC                 mov     [eax+8], ecx
  199. .text:0051CECF                 mov     [eax+0Ch], edx
  200. .text:0051CED2                 mov     al, [edi+8]
  201. .text:0051CED5                 call    sub_51CAA0
  202. .text:0051CEDA                 add     esp, 20h
  203. .text:0051CEDD                 test    eax, eax
  204. .text:0051CEDF                 jnz     loc_51D260
  205. .text:0051CEE5                 mov     eax, [edi]
  206. .text:0051CEE7                 push    eax             ; char
  207. .text:0051CEE8                 push    offset aSIsWriteProtec ; "%s is write protected.\n"
  208. .text:0051CEED                 push    10h             ; int
  209. .text:0051CEEF                 push    edi             ; int
  210. .text:0051CEF0                 call    sub_51C9F0
  211. .text:0051CEF5                 add     esp, 10h
  212. .text:0051CEF8                 pop     edi
  213. .text:0051CEF9                 pop     esi
  214. .text:0051CEFA                 pop     ebp
  215. .text:0051CEFB                 pop     ebx
  216. .text:0051CEFC                 add     esp, 18h
  217. .text:0051CEFF                 retn
  218. .text:0051CF00 ; ---------------------------------------------------------------------------
  219. .text:0051CF00
  220. .text:0051CF00 loc_51CF00:                             ; CODE XREF: sub_51CD00+1A4j
  221. .text:0051CF00                 cmp     ecx, 1
  222. .text:0051CF03                 jnz     loc_51CFD8
  223. .text:0051CF09                 test    al, 4
  224. .text:0051CF0B                 jz      short loc_51CF70
  225. .text:0051CF0D                 cmp     byte_78ED24, 0
  226. .text:0051CF14                 jnz     short loc_51CF70
  227. .text:0051CF16                 mov     ecx, [edi+0Ch]
  228. .text:0051CF19                 sub     esp, 10h
  229. .text:0051CF1C                 mov     eax, esp
  230. .text:0051CF1E                 mov     [eax], edx
  231. .text:0051CF20                 mov     edx, [edi+10h]
  232. .text:0051CF23                 mov     [eax+4], ebx
  233. .text:0051CF26                 mov     [eax+8], ebp
  234. .text:0051CF29                 mov     [eax+0Ch], esi
  235. .text:0051CF2C                 sub     esp, 10h
  236. .text:0051CF2F                 mov     eax, esp
  237. .text:0051CF31                 mov     [eax], ecx
  238. .text:0051CF33                 mov     ecx, [edi+14h]
  239. .text:0051CF36                 mov     [eax+4], edx
  240. .text:0051CF39                 mov     edx, [edi+18h]
  241. .text:0051CF3C                 mov     [eax+8], ecx
  242. .text:0051CF3F                 mov     [eax+0Ch], edx
  243. .text:0051CF42                 mov     al, [edi+8]
  244. .text:0051CF45                 call    sub_51CAA0
  245. .text:0051CF4A                 add     esp, 20h
  246. .text:0051CF4D                 test    eax, eax
  247. .text:0051CF4F                 jnz     loc_51D260
  248. .text:0051CF55                 mov     eax, [edi]
  249. .text:0051CF57                 push    eax             ; char
  250. .text:0051CF58                 push    offset aSIsCheatProtec ; "%s is cheat protected.\n"
  251. .text:0051CF5D                 push    10h             ; int
  252. .text:0051CF5F                 push    edi             ; int
  253. .text:0051CF60                 call    sub_51C9F0
  254. .text:0051CF65                 add     esp, 10h
  255. .text:0051CF68                 pop     edi
  256. .text:0051CF69                 pop     esi
  257. .text:0051CF6A                 pop     ebp
  258. .text:0051CF6B                 pop     ebx
  259. .text:0051CF6C                 add     esp, 18h
  260. .text:0051CF6F                 retn
  261. .text:0051CF70 ; ---------------------------------------------------------------------------
  262. .text:0051CF70
  263. .text:0051CF70 loc_51CF70:                             ; CODE XREF: sub_51CD00+20Bj
  264. .text:0051CF70                                         ; sub_51CD00+214j
  265. .text:0051CF70                 cmp     eax, 100h
  266. .text:0051CF75                 jz      short loc_51CFD8
  267. .text:0051CF77                 test    eax, 10001h
  268. .text:0051CF7C                 jnz     short loc_51CFD8
  269. .text:0051CF7E                 mov     ecx, [edi+0Ch]
  270. .text:0051CF81                 sub     esp, 10h
  271. .text:0051CF84                 mov     eax, esp
  272. .text:0051CF86                 mov     [eax], edx
  273. .text:0051CF88                 mov     edx, [edi+10h]
  274. .text:0051CF8B                 mov     [eax+4], ebx
  275. .text:0051CF8E                 mov     [eax+8], ebp
  276. .text:0051CF91                 mov     [eax+0Ch], esi
  277. .text:0051CF94                 sub     esp, 10h
  278. .text:0051CF97                 mov     eax, esp
  279. .text:0051CF99                 mov     [eax], ecx
  280. .text:0051CF9B                 mov     ecx, [edi+14h]
  281. .text:0051CF9E                 mov     [eax+4], edx
  282. .text:0051CFA1                 mov     edx, [edi+18h]
  283. .text:0051CFA4                 mov     [eax+8], ecx
  284. .text:0051CFA7                 mov     [eax+0Ch], edx
  285. .text:0051CFAA                 mov     al, [edi+8]
  286. .text:0051CFAD                 call    sub_51CAA0
  287. .text:0051CFB2                 add     esp, 20h
  288. .text:0051CFB5                 test    eax, eax
  289. .text:0051CFB7                 jnz     loc_51D260
  290. .text:0051CFBD                 mov     eax, [edi]
  291. .text:0051CFBF                 push    eax             ; char
  292. .text:0051CFC0                 push    offset aSIsInternal_ ; "%s is internal.\n"
  293. .text:0051CFC5                 push    10h             ; int
  294. .text:0051CFC7                 push    edi             ; int
  295. .text:0051CFC8                 call    sub_51C9F0
  296. .text:0051CFCD                 add     esp, 10h
  297. .text:0051CFD0                 pop     edi
  298. .text:0051CFD1                 pop     esi
  299. .text:0051CFD2                 pop     ebp
  300. .text:0051CFD3                 pop     ebx
  301. .text:0051CFD4                 add     esp, 18h
  302. .text:0051CFD7                 retn
  303. .text:0051CFD8 ; ---------------------------------------------------------------------------
  304. .text:0051CFD8
  305. .text:0051CFD8 loc_51CFD8:                             ; CODE XREF: sub_51CD00+203j
  306. .text:0051CFD8                                         ; sub_51CD00+275j ...
  307. .text:0051CFD8                 test    al, 2
  308. .text:0051CFDA                 jz      short loc_51D056
  309. .text:0051CFDC                 sub     esp, 10h
  310. .text:0051CFDF                 mov     eax, esp
  311. .text:0051CFE1                 mov     [eax], edx
  312. .text:0051CFE3                 mov     [eax+4], ebx
  313. .text:0051CFE6                 mov     [eax+8], ebp
  314. .text:0051CFE9                 mov     [eax+0Ch], esi
  315. .text:0051CFEC                 mov     eax, edi
  316. .text:0051CFEE                 call    sub_51CBB0
  317. .text:0051CFF3                 mov     ecx, [edi+0Ch]
  318. .text:0051CFF6                 mov     edx, [edi+10h]
  319. .text:0051CFF9                 mov     eax, esp
  320. .text:0051CFFB                 mov     [eax], ecx
  321. .text:0051CFFD                 mov     ecx, [edi+14h]
  322. .text:0051D000                 mov     [eax+4], edx
  323. .text:0051D003                 mov     edx, [edi+18h]
  324. .text:0051D006                 mov     [eax+8], ecx
  325. .text:0051D009                 mov     ecx, [edi+1Ch]
  326. .text:0051D00C                 mov     [eax+0Ch], edx
  327. .text:0051D00F                 mov     edx, [edi+20h]
  328. .text:0051D012                 sub     esp, 10h
  329. .text:0051D015                 mov     eax, esp
  330. .text:0051D017                 mov     [eax], ecx
  331. .text:0051D019                 mov     ecx, [edi+24h]
  332. .text:0051D01C                 mov     [eax+4], edx
  333. .text:0051D01F                 mov     edx, [edi+28h]
  334. .text:0051D022                 mov     [eax+8], ecx
  335. .text:0051D025                 mov     [eax+0Ch], edx
  336. .text:0051D028                 mov     al, [edi+8]
  337. .text:0051D02B                 call    sub_51CAA0
  338. .text:0051D030                 add     esp, 20h
  339. .text:0051D033                 test    eax, eax
  340. .text:0051D035                 jnz     loc_51D260
  341. .text:0051D03B                 mov     eax, [edi]
  342. .text:0051D03D                 push    eax             ; char
  343. .text:0051D03E                 push    offset aSWillBeChanged ; "%s will be changed upon restarting.\n"
  344. .text:0051D043                 push    10h             ; int
  345. .text:0051D045                 push    edi             ; int
  346. .text:0051D046                 call    sub_51C9F0
  347. .text:0051D04B                 add     esp, 10h
  348. .text:0051D04E                 pop     edi
  349. .text:0051D04F                 pop     esi
  350. .text:0051D050                 pop     ebp
  351. .text:0051D051                 pop     ebx
  352. .text:0051D052                 add     esp, 18h
  353. .text:0051D055                 retn
  354. .text:0051D056 ; ---------------------------------------------------------------------------
  355. .text:0051D056
  356. .text:0051D056 loc_51D056:                             ; CODE XREF: sub_51CD00+135j
  357. .text:0051D056                                         ; sub_51CD00+2DAj
  358. .text:0051D056                 mov     eax, large fs:2Ch
  359. .text:0051D05C                 mov     ecx, TlsIndex
  360. .text:0051D062                 mov     ecx, [eax+ecx*4]
  361. .text:0051D065                 mov     eax, [edi+4]
  362. .text:0051D068                 mov     [esp+28h+var_14], ecx
  363. .text:0051D06C                 mov     ecx, [ecx+0DCh]
  364. .text:0051D072                 not     ecx
  365. .text:0051D074                 test    eax, ecx
  366. .text:0051D076                 jz      short loc_51D0CB
  367. .text:0051D078                 call    sub_4D5300
  368. .text:0051D07D                 test    al, al
  369. .text:0051D07F                 jz      short loc_51D0B0
  370. .text:0051D081                 test    dword ptr [edi+4], 1200h
  371. .text:0051D088                 jnz     short loc_51D0B0
  372. .text:0051D08A                 call    sub_4ECDF0
  373. .text:0051D08F                 call    sub_4CCC10
  374. .text:0051D094                 mov     edx, [edi+4]
  375. .text:0051D097                 mov     eax, dword_585132C
  376. .text:0051D09C                 or      [eax], edx
  377. .text:0051D09E                 mov     esi, [esp+28h+arg_C]
  378. .text:0051D0A2                 mov     ebp, [esp+28h+arg_8]
  379. .text:0051D0A6                 mov     ebx, [esp+28h+arg_4]
  380. .text:0051D0AA                 mov     edx, [esp+28h+arg_0]
  381. .text:0051D0AE                 jmp     short loc_51D0D5
  382. .text:0051D0B0 ; ---------------------------------------------------------------------------
  383. .text:0051D0B0
  384. .text:0051D0B0 loc_51D0B0:                             ; CODE XREF: sub_51CD00+37Fj
  385. .text:0051D0B0                                         ; sub_51CD00+388j
  386. .text:0051D0B0                 mov     eax, [edi]
  387. .text:0051D0B2                 push    eax             ; char
  388. .text:0051D0B3                 push    offset aSCannotBeChang ; "%s cannot be changed.\n"
  389. .text:0051D0B8                 push    10h             ; int
  390. .text:0051D0BA                 push    edi             ; int
  391. .text:0051D0BB                 call    sub_51C9F0
  392. .text:0051D0C0                 add     esp, 10h
  393. .text:0051D0C3                 pop     edi
  394. .text:0051D0C4                 pop     esi
  395. .text:0051D0C5                 pop     ebp
  396. .text:0051D0C6                 pop     ebx
  397. .text:0051D0C7                 add     esp, 18h
  398. .text:0051D0CA                 retn
  399. .text:0051D0CB ; ---------------------------------------------------------------------------
  400. .text:0051D0CB
  401. .text:0051D0CB loc_51D0CB:                             ; CODE XREF: sub_51CD00+376j
  402. .text:0051D0CB                 mov     ecx, [esp+28h+var_14]
  403. .text:0051D0CF                 or      [ecx+0D8h], eax
  404. .text:0051D0D5
  405. .text:0051D0D5 loc_51D0D5:                             ; CODE XREF: sub_51CD00+3AEj
  406. .text:0051D0D5                 mov     al, [edi+8]
  407. .text:0051D0D8                 sub     esp, 10h
  408. .text:0051D0DB                 mov     ecx, esp
  409. .text:0051D0DD                 mov     [ecx], edx
  410. .text:0051D0DF                 mov     edx, [edi+0Ch]
  411. .text:0051D0E2                 mov     [ecx+4], ebx
  412. .text:0051D0E5                 mov     [ecx+8], ebp
  413. .text:0051D0E8                 mov     [ecx+0Ch], esi
  414. .text:0051D0EB                 sub     esp, 10h
  415. .text:0051D0EE                 mov     ecx, esp
  416. .text:0051D0F0                 mov     [ecx], edx
  417. .text:0051D0F2                 mov     edx, [edi+10h]
  418. .text:0051D0F5                 mov     [ecx+4], edx
  419. .text:0051D0F8                 mov     edx, [edi+14h]
  420. .text:0051D0FB                 mov     [ecx+8], edx
  421. .text:0051D0FE                 mov     edx, [edi+18h]
  422. .text:0051D101                 mov     [ecx+0Ch], edx
  423. .text:0051D104                 call    sub_51CAA0
  424. .text:0051D109                 add     esp, 20h
  425. .text:0051D10C                 test    eax, eax
  426. .text:0051D10E                 jz      short loc_51D13E
  427. .text:0051D110                 mov     ecx, [edi+0Ch]
  428. .text:0051D113                 mov     edx, [edi+10h]
  429. .text:0051D116                 sub     esp, 10h
  430. .text:0051D119                 mov     eax, esp
  431. .text:0051D11B                 mov     [eax], ecx
  432. .text:0051D11D                 mov     ecx, [edi+14h]
  433. .text:0051D120                 mov     [eax+4], edx
  434. .text:0051D123                 mov     edx, [edi+18h]
  435. .text:0051D126                 mov     [eax+8], ecx
  436. .text:0051D129                 mov     [eax+0Ch], edx
  437. .text:0051D12C                 mov     eax, edi
  438. .text:0051D12E                 call    sub_51CBB0
  439. .text:0051D133                 add     esp, 10h
  440. .text:0051D136                 pop     edi
  441. .text:0051D137                 pop     esi
  442. .text:0051D138                 pop     ebp
  443. .text:0051D139                 pop     ebx
  444. .text:0051D13A                 add     esp, 18h
  445. .text:0051D13D                 retn
  446. .text:0051D13E ; ---------------------------------------------------------------------------
  447. .text:0051D13E
  448. .text:0051D13E loc_51D13E:                             ; CODE XREF: sub_51CD00+40Ej
  449. .text:0051D13E                 movzx   eax, byte ptr [edi+8]
  450. .text:0051D142                 add     eax, 0FFFFFFFEh ; switch 8 cases
  451. .text:0051D145                 cmp     eax, 7
  452. .text:0051D148                 ja      loc_51D240      ; default
  453. .text:0051D148                                         ; jumptable 0051D14E cases 5,6,8
  454. .text:0051D14E                 jmp     ds:off_51D268[eax*4] ; switch jump
  455. .text:0051D155
  456. .text:0051D155 loc_51D155:                             ; DATA XREF: .text:off_51D268o
  457. .text:0051D155                 mov     ecx, edi        ; jumptable 0051D14E case 7
  458. .text:0051D157                 call    sub_51B930
  459. .text:0051D15C                 mov     [esp+28h+var_15], al
  460. .text:0051D160                 test    al, al
  461. .text:0051D162                 jz      short loc_51D169
  462. .text:0051D164                 mov     ebp, [edi+0Ch]
  463. .text:0051D167                 jmp     short loc_51D16D
  464. .text:0051D169 ; ---------------------------------------------------------------------------
  465. .text:0051D169
  466. .text:0051D169 loc_51D169:                             ; CODE XREF: sub_51CD00+462j
  467. .text:0051D169                 mov     ebp, [esp+28h+var_10]
  468. .text:0051D16D
  469. .text:0051D16D loc_51D16D:                             ; CODE XREF: sub_51CD00+467j
  470. .text:0051D16D                 mov     ebx, [esp+28h+arg_0]
  471. .text:0051D171                 lea     eax, [esp+28h+var_10]
  472. .text:0051D175                 push    eax
  473. .text:0051D176                 call    sub_51B9B0
  474. .text:0051D17B                 mov     ecx, [esp+2Ch+var_10]
  475. .text:0051D17F                 mov     [edi+0Ch], ecx
  476. .text:0051D182                 add     esp, 4
  477. .text:0051D185                 mov     ecx, edi
  478. .text:0051D187                 call    sub_51B950
  479. .text:0051D18C                 test    al, al
  480. .text:0051D18E                 jz      short loc_51D198
  481. .text:0051D190                 lea     esi, [edi+1Ch]
  482. .text:0051D193                 call    sub_51B990
  483. .text:0051D198
  484. .text:0051D198 loc_51D198:                             ; CODE XREF: sub_51CD00+48Ej
  485. .text:0051D198                 cmp     [esp+28h+var_15], 0
  486. .text:0051D19D                 mov     edx, [edi+0Ch]
  487. .text:0051D1A0                 mov     [edi+1Ch], edx
  488. .text:0051D1A3                 jz      loc_51D25C
  489. .text:0051D1A9                 push    ebp
  490. .text:0051D1AA                 call    sub_516EA0
  491. .text:0051D1AF                 add     esp, 4
  492. .text:0051D1B2                 mov     byte ptr [edi+9], 1
  493. .text:0051D1B6                 pop     edi
  494. .text:0051D1B7                 pop     esi
  495. .text:0051D1B8                 pop     ebp
  496. .text:0051D1B9                 pop     ebx
  497. .text:0051D1BA                 add     esp, 18h
  498. .text:0051D1BD                 retn
  499. .text:0051D1BE ; ---------------------------------------------------------------------------
  500. .text:0051D1BE
  501. .text:0051D1BE loc_51D1BE:                             ; CODE XREF: sub_51CD00+44Ej
  502. .text:0051D1BE                                         ; DATA XREF: .text:off_51D268o
  503. .text:0051D1BE                 fld     [esp+28h+arg_0] ; jumptable 0051D14E case 2
  504. .text:0051D1C2                 fst     dword ptr [edi+0Ch]
  505. .text:0051D1C5                 fld     [esp+28h+arg_4]
  506. .text:0051D1C9                 fst     dword ptr [edi+10h]
  507. .text:0051D1CC                 fstp    dword ptr [edi+20h]
  508. .text:0051D1CF                 fstp    dword ptr [edi+1Ch]
  509. .text:0051D1D2                 mov     byte ptr [edi+9], 1
  510. .text:0051D1D6                 pop     edi
  511. .text:0051D1D7                 pop     esi
  512. .text:0051D1D8                 pop     ebp
  513. .text:0051D1D9                 pop     ebx
  514. .text:0051D1DA                 add     esp, 18h
  515. .text:0051D1DD                 retn
  516. .text:0051D1DE ; ---------------------------------------------------------------------------
  517. .text:0051D1DE
  518. .text:0051D1DE loc_51D1DE:                             ; CODE XREF: sub_51CD00+44Ej
  519. .text:0051D1DE                                         ; DATA XREF: .text:off_51D268o
  520. .text:0051D1DE                 fld     [esp+28h+arg_0] ; jumptable 0051D14E cases 3,9
  521. .text:0051D1E2                 fst     dword ptr [edi+0Ch]
  522. .text:0051D1E5                 fld     [esp+28h+arg_4]
  523. .text:0051D1E9                 fst     dword ptr [edi+10h]
  524. .text:0051D1EC                 fld     [esp+28h+arg_8]
  525. .text:0051D1F0                 fst     dword ptr [edi+14h]
  526. .text:0051D1F3                 fstp    dword ptr [edi+24h]
  527. .text:0051D1F6                 fxch    st(1)
  528. .text:0051D1F8                 fstp    dword ptr [edi+1Ch]
  529. .text:0051D1FB                 fstp    dword ptr [edi+20h]
  530. .text:0051D1FE                 mov     byte ptr [edi+9], 1
  531. .text:0051D202                 pop     edi
  532. .text:0051D203                 pop     esi
  533. .text:0051D204                 pop     ebp
  534. .text:0051D205                 pop     ebx
  535. .text:0051D206                 add     esp, 18h
  536. .text:0051D209                 retn
  537. .text:0051D20A ; ---------------------------------------------------------------------------
  538. .text:0051D20A
  539. .text:0051D20A loc_51D20A:                             ; CODE XREF: sub_51CD00+44Ej
  540. .text:0051D20A                                         ; DATA XREF: .text:off_51D268o
  541. .text:0051D20A                 fld     [esp+28h+arg_0] ; jumptable 0051D14E case 4
  542. .text:0051D20E                 fst     dword ptr [edi+0Ch]
  543. .text:0051D211                 fld     [esp+28h+arg_4]
  544. .text:0051D215                 fst     dword ptr [edi+10h]
  545. .text:0051D218                 fld     [esp+28h+arg_8]
  546. .text:0051D21C                 fst     dword ptr [edi+14h]
  547. .text:0051D21F                 fld     [esp+28h+arg_C]
  548. .text:0051D223                 fst     dword ptr [edi+18h]
  549. .text:0051D226                 fstp    dword ptr [edi+28h]
  550. .text:0051D229                 fxch    st(2)
  551. .text:0051D22B                 fstp    dword ptr [edi+1Ch]
  552. .text:0051D22E                 fstp    dword ptr [edi+20h]
  553. .text:0051D231                 fstp    dword ptr [edi+24h]
  554. .text:0051D234                 mov     byte ptr [edi+9], 1
  555. .text:0051D238                 pop     edi
  556. .text:0051D239                 pop     esi
  557. .text:0051D23A                 pop     ebp
  558. .text:0051D23B                 pop     ebx
  559. .text:0051D23C                 add     esp, 18h
  560. .text:0051D23F                 retn
  561. .text:0051D240 ; ---------------------------------------------------------------------------
  562. .text:0051D240
  563. .text:0051D240 loc_51D240:                             ; CODE XREF: sub_51CD00+448j
  564. .text:0051D240                                         ; sub_51CD00+44Ej
  565. .text:0051D240                                         ; DATA XREF: ...
  566. .text:0051D240                 mov     eax, [esp+28h+arg_0] ; default
  567. .text:0051D240                                         ; jumptable 0051D14E cases 5,6,8
  568. .text:0051D244                 mov     [edi+0Ch], eax
  569. .text:0051D247                 mov     [edi+1Ch], eax
  570. .text:0051D24A                 mov     [edi+10h], ebx
  571. .text:0051D24D                 mov     [edi+20h], ebx
  572. .text:0051D250                 mov     [edi+14h], ebp
  573. .text:0051D253                 mov     [edi+24h], ebp
  574. .text:0051D256                 mov     [edi+18h], esi
  575. .text:0051D259                 mov     [edi+28h], esi
  576. .text:0051D25C
  577. .text:0051D25C loc_51D25C:                             ; CODE XREF: sub_51CD00+4A3j
  578. .text:0051D25C                 mov     byte ptr [edi+9], 1
  579. .text:0051D260
  580. .text:0051D260 loc_51D260:                             ; CODE XREF: sub_51CD00+91j
  581. .text:0051D260                                         ; sub_51CD00+17Ej ...
  582. .text:0051D260                 pop     edi
  583. .text:0051D261                 pop     esi
  584. .text:0051D262                 pop     ebp
  585. .text:0051D263                 pop     ebx
  586. .text:0051D264                 add     esp, 18h
  587. .text:0051D267                 retn
  588. .text:0051D267 sub_51CD00      endp
  589. .text:0051D267
  590. .text:0051D267 ; ---------------------------------------------------------------------------
  591. .text:0051D268 off_51D268      dd offset loc_51D1BE    ; DATA XREF: sub_51CD00+44Er
  592. .text:0051D268                 dd offset loc_51D1DE    ; jump table for switch statement
  593. .text:0051D268                 dd offset loc_51D20A
  594. .text:0051D268                 dd offset loc_51D240
  595. .text:0051D268                 dd offset loc_51D240
  596. .text:0051D268                 dd offset loc_51D155
  597. .text:0051D268                 dd offset loc_51D240
  598. .text:0051D268                 dd offset loc_51D1DE
  599. .text:0051D288                 align 10h
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement