Advertisement
lienminhld

Untitled

Sep 12th, 2016
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 77.04 KB | None | 0 0
  1. //***************************************************
  2. //IDR home page: http://kpnc.org/idr32/en
  3. //Decompiled by IDR v.29.07.2015 test private version
  4. //***************************************************
  5. unit _Unit202;
  6.  
  7. interface
  8.  
  9. uses
  10. SysUtils, Classes;
  11.  
  12. type
  13. TContactServerThread = class(TThread)
  14. public
  15. f40:dword;//f40
  16. f44:byte;//f44
  17. f45:byte;//f45
  18. f48:dword;//f48
  19. f4C:dword;//f4C
  20. destructor Destroy; virtual;//0050C82C
  21. procedure Execute; virtual;//v4//0050B018
  22. constructor Create;
  23. end;
  24.  
  25. implementation
  26.  
  27. //0050A8DC
  28. procedure sub_0050A8DC;
  29. begin
  30. {*
  31. 0050A8DC cmp dword ptr ds:[53E010],0;gvar_0053E010:TContactServerThread
  32. >0050A8E3 jne 0050A900
  33. 0050A8E5 mov dl,1
  34. 0050A8E7 mov eax,[0050A870];TContactServerThread
  35. 0050A8EC call TContactServerThread.Create;TContactServerThread.Create
  36. 0050A8F1 mov [0053E010],eax;gvar_0053E010:TContactServerThread
  37. 0050A8F6 mov eax,[0053E010];0x0 gvar_0053E010:TContactServerThread
  38. 0050A8FB call 0042F2FC
  39. 0050A900 ret
  40. *}
  41. end;
  42.  
  43. //0050A904
  44. {*procedure sub_0050A904(?:AnsiString; ?:AnsiString);
  45. begin
  46. 0050A904 push ebp
  47. 0050A905 mov ebp,esp
  48. 0050A907 add esp,0FFFFF7E8
  49. 0050A90D mov dword ptr [ebp-8],edx
  50. 0050A910 mov dword ptr [ebp-4],eax
  51. 0050A913 mov eax,dword ptr [ebp-4]
  52. 0050A916 call @LStrLen
  53. 0050A91B mov dword ptr [ebp-10],eax
  54. 0050A91E lea eax,[ebp-815]
  55. 0050A924 xor ecx,ecx
  56. 0050A926 mov edx,800
  57. 0050A92B call @FillChar
  58. 0050A930 lea eax,[ebp-815]
  59. 0050A936 mov edx,dword ptr [ebp-4]
  60. 0050A939 call 0040C4FC
  61. 0050A93E mov eax,dword ptr [ebp-10]
  62. 0050A941 dec eax
  63. 0050A942 test eax,eax
  64. >0050A944 jl 0050A96F
  65. 0050A946 inc eax
  66. 0050A947 mov dword ptr [ebp-14],eax
  67. 0050A94A mov dword ptr [ebp-0C],0
  68. 0050A951 mov eax,dword ptr [ebp-0C]
  69. 0050A954 mov al,byte ptr [ebp+eax-815]
  70. 0050A95B xor al,81
  71. 0050A95D mov edx,dword ptr [ebp-0C]
  72. 0050A960 mov byte ptr [ebp+edx-815],al
  73. 0050A967 inc dword ptr [ebp-0C]
  74. 0050A96A dec dword ptr [ebp-14]
  75. <0050A96D jne 0050A951
  76. 0050A96F mov eax,dword ptr [ebp-8]
  77. 0050A972 lea edx,[ebp-815]
  78. 0050A978 mov ecx,801
  79. 0050A97D call @LStrFromArray
  80. 0050A982 mov esp,ebp
  81. 0050A984 pop ebp
  82. 0050A985 ret
  83. end;*}
  84.  
  85. //0050A988
  86. {*procedure sub_0050A988(?:AnsiString);
  87. begin
  88. 0050A988 push ebp
  89. 0050A989 mov ebp,esp
  90. 0050A98B push ecx
  91. 0050A98C mov dword ptr [ebp-4],eax
  92. 0050A98F mov eax,dword ptr [ebp-4]
  93. 0050A992 mov edx,50A9A8;'148348760270428475248277468536449365380014705767794542885528540488840384993102735169681728886154553359079083996567172623160729960692113794999915989151446092821328005694069547217413135950160792320425963465473794812832768838742754357280166652424353374094351915566029597359235765535467844470935797793204031863139'
  94. 0050A997 call @LStrAsg
  95. 0050A99C pop ecx
  96. 0050A99D pop ebp
  97. 0050A99E ret
  98. end;*}
  99.  
  100. //0050AAE0
  101. {*procedure sub_0050AAE0(?:?; ?:?);
  102. begin
  103. 0050AAE0 push ebp
  104. 0050AAE1 mov ebp,esp
  105. 0050AAE3 add esp,0FFFFFFF4
  106. 0050AAE6 mov dword ptr [ebp-8],edx
  107. 0050AAE9 mov dword ptr [ebp-4],eax
  108. 0050AAEC imul eax,dword ptr [ebp-8],3E8
  109. 0050AAF3 mov dword ptr [ebp-0C],eax
  110. 0050AAF6 push 4
  111. 0050AAF8 lea eax,[ebp-0C]
  112. 0050AAFB push eax
  113. 0050AAFC push 1006
  114. 0050AB01 push 0FFFF
  115. 0050AB06 mov eax,dword ptr [ebp-4]
  116. 0050AB09 push eax
  117. 0050AB0A call wsock32.setsockopt
  118. 0050AB0F mov esp,ebp
  119. 0050AB11 pop ebp
  120. 0050AB12 ret
  121. end;*}
  122.  
  123. //0050AB14
  124. {*function sub_0050AB14(?:AnsiString):?;
  125. begin
  126. 0050AB14 push ebp
  127. 0050AB15 mov ebp,esp
  128. 0050AB17 add esp,0FFFFFFDC
  129. 0050AB1A push ebx
  130. 0050AB1B push esi
  131. 0050AB1C push edi
  132. 0050AB1D xor edx,edx
  133. 0050AB1F mov dword ptr [ebp-24],edx
  134. 0050AB22 mov dword ptr [ebp-20],edx
  135. 0050AB25 mov dword ptr [ebp-4],eax
  136. 0050AB28 mov eax,dword ptr [ebp-4]
  137. 0050AB2B call @LStrAddRef
  138. 0050AB30 xor eax,eax
  139. 0050AB32 push ebp
  140. 0050AB33 push 50AC39
  141. 0050AB38 push dword ptr fs:[eax]
  142. 0050AB3B mov dword ptr fs:[eax],esp
  143. 0050AB3E mov dl,1
  144. 0050AB40 mov eax,[00420070];TStringList
  145. 0050AB45 call TObject.Create;TStringList.Create
  146. 0050AB4A mov dword ptr [ebp-0C],eax
  147. 0050AB4D mov byte ptr [ebp-5],1
  148. 0050AB51 xor eax,eax
  149. 0050AB53 push ebp
  150. 0050AB54 push 50ABF1
  151. 0050AB59 push dword ptr fs:[eax]
  152. 0050AB5C mov dword ptr fs:[eax],esp
  153. 0050AB5F mov al,[0050AC4C];0x1
  154. 0050AB64 push eax
  155. 0050AB65 lea eax,[ebp-20]
  156. 0050AB68 push eax
  157. 0050AB69 mov ecx,50AC58;'
  158.  
  159. '
  160. 0050AB6E mov edx,50AC64;'.'
  161. 0050AB73 mov eax,dword ptr [ebp-4]
  162. 0050AB76 call 00411568
  163. 0050AB7B mov edx,dword ptr [ebp-20]
  164. 0050AB7E mov eax,dword ptr [ebp-0C]
  165. 0050AB81 mov ecx,dword ptr [eax]
  166. 0050AB83 call dword ptr [ecx+2C];TStrings.SetTextStr
  167. 0050AB86 mov eax,dword ptr [ebp-0C]
  168. 0050AB89 mov edx,dword ptr [eax]
  169. 0050AB8B call dword ptr [edx+14];TStringList.GetCount
  170. 0050AB8E cmp eax,4
  171. >0050AB91 jne 0050ABE3
  172. 0050AB93 mov eax,dword ptr [ebp-0C]
  173. 0050AB96 mov edx,dword ptr [eax]
  174. 0050AB98 call dword ptr [edx+14];TStringList.GetCount
  175. 0050AB9B dec eax
  176. 0050AB9C test eax,eax
  177. >0050AB9E jl 0050ABE7
  178. 0050ABA0 inc eax
  179. 0050ABA1 mov dword ptr [ebp-18],eax
  180. 0050ABA4 mov dword ptr [ebp-10],0
  181. 0050ABAB lea ecx,[ebp-24]
  182. 0050ABAE mov edx,dword ptr [ebp-10]
  183. 0050ABB1 mov eax,dword ptr [ebp-0C]
  184. 0050ABB4 mov ebx,dword ptr [eax]
  185. 0050ABB6 call dword ptr [ebx+0C];TStringList.Get
  186. 0050ABB9 mov eax,dword ptr [ebp-24]
  187. 0050ABBC call 0040B654
  188. 0050ABC1 mov dword ptr [ebp-14],eax
  189. 0050ABC4 cmp dword ptr [ebp-14],0
  190. >0050ABC8 jl 0050ABD3
  191. 0050ABCA cmp dword ptr [ebp-14],0FF
  192. >0050ABD1 jle 0050ABD9
  193. 0050ABD3 mov byte ptr [ebp-5],0
  194. >0050ABD7 jmp 0050ABE7
  195. 0050ABD9 inc dword ptr [ebp-10]
  196. 0050ABDC dec dword ptr [ebp-18]
  197. <0050ABDF jne 0050ABAB
  198. >0050ABE1 jmp 0050ABE7
  199. 0050ABE3 mov byte ptr [ebp-5],0
  200. 0050ABE7 xor eax,eax
  201. 0050ABE9 pop edx
  202. 0050ABEA pop ecx
  203. 0050ABEB pop ecx
  204. 0050ABEC mov dword ptr fs:[eax],edx
  205. >0050ABEF jmp 0050AC0E
  206. <0050ABF1 jmp @HandleOnException
  207. 0050ABF6 dd 1
  208. 0050ABFA dd 40A298;Exception
  209. 0050ABFE dd 50AC02
  210. 0050AC02 mov dword ptr [ebp-1C],eax
  211. 0050AC05 mov byte ptr [ebp-5],0
  212. 0050AC09 call @DoneExcept
  213. 0050AC0E mov eax,dword ptr [ebp-0C]
  214. 0050AC11 call TObject.Free
  215. 0050AC16 xor eax,eax
  216. 0050AC18 pop edx
  217. 0050AC19 pop ecx
  218. 0050AC1A pop ecx
  219. 0050AC1B mov dword ptr fs:[eax],edx
  220. 0050AC1E push 50AC40
  221. 0050AC23 lea eax,[ebp-24]
  222. 0050AC26 mov edx,2
  223. 0050AC2B call @LStrArrayClr
  224. 0050AC30 lea eax,[ebp-4]
  225. 0050AC33 call @LStrClr
  226. 0050AC38 ret
  227. <0050AC39 jmp @HandleFinally
  228. <0050AC3E jmp 0050AC23
  229. 0050AC40 mov al,byte ptr [ebp-5]
  230. 0050AC43 pop edi
  231. 0050AC44 pop esi
  232. 0050AC45 pop ebx
  233. 0050AC46 mov esp,ebp
  234. 0050AC48 pop ebp
  235. 0050AC49 ret
  236. end;*}
  237.  
  238. //0050AC68
  239. {*function sub_0050AC68(?:?; ?:AnsiString; ?:?):?;
  240. begin
  241. 0050AC68 push ebp
  242. 0050AC69 mov ebp,esp
  243. 0050AC6B add esp,0FFFFFEC8
  244. 0050AC71 push ebx
  245. 0050AC72 push esi
  246. 0050AC73 push edi
  247. 0050AC74 xor ebx,ebx
  248. 0050AC76 mov dword ptr [ebp-18],ebx
  249. 0050AC79 mov dword ptr [ebp-0C],ecx
  250. 0050AC7C mov dword ptr [ebp-8],edx
  251. 0050AC7F mov dword ptr [ebp-4],eax
  252. 0050AC82 mov eax,dword ptr [ebp-8]
  253. 0050AC85 call @LStrAddRef
  254. 0050AC8A xor eax,eax
  255. 0050AC8C push ebp
  256. 0050AC8D push 50AE1E
  257. 0050AC92 push dword ptr fs:[eax]
  258. 0050AC95 mov dword ptr fs:[eax],esp
  259. 0050AC98 mov byte ptr [ebp-0D],0
  260. 0050AC9C xor eax,eax
  261. 0050AC9E push ebp
  262. 0050AC9F push 50ADF6
  263. 0050ACA4 push dword ptr fs:[eax]
  264. 0050ACA7 mov dword ptr fs:[eax],esp
  265. 0050ACAA mov eax,dword ptr [ebp-8]
  266. 0050ACAD call 0050AB14
  267. 0050ACB2 test al,al
  268. >0050ACB4 je 0050ACC3
  269. 0050ACB6 lea eax,[ebp-18]
  270. 0050ACB9 mov edx,dword ptr [ebp-8]
  271. 0050ACBC call @LStrLAsg
  272. >0050ACC1 jmp 0050ACE1
  273. 0050ACC3 lea edx,[ebp-18]
  274. 0050ACC6 mov eax,dword ptr [ebp-8]
  275. 0050ACC9 call 00482A80
  276. 0050ACCE cmp dword ptr [ebp-18],0
  277. >0050ACD2 jne 0050ACE1
  278. 0050ACD4 xor eax,eax
  279. 0050ACD6 pop edx
  280. 0050ACD7 pop ecx
  281. 0050ACD8 pop ecx
  282. 0050ACD9 mov dword ptr fs:[eax],edx
  283. >0050ACDC jmp 0050AE00
  284. 0050ACE1 mov eax,dword ptr [ebp-4]
  285. 0050ACE4 xor edx,edx
  286. 0050ACE6 mov dword ptr [eax],edx
  287. 0050ACE8 push 0
  288. 0050ACEA push 1
  289. 0050ACEC push 2
  290. 0050ACEE call wsock32.socket
  291. 0050ACF3 mov edx,dword ptr [ebp-4]
  292. 0050ACF6 mov dword ptr [edx],eax
  293. 0050ACF8 mov eax,dword ptr [ebp-4]
  294. 0050ACFB mov eax,dword ptr [eax]
  295. 0050ACFD mov edx,3C
  296. 0050AD02 call 0050AAE0
  297. 0050AD07 mov word ptr [ebp-34],2
  298. 0050AD0D mov eax,dword ptr [ebp-18]
  299. 0050AD10 call @LStrToPChar
  300. 0050AD15 push eax
  301. 0050AD16 call wsock32.inet_addr
  302. 0050AD1B mov dword ptr [ebp-30],eax
  303. 0050AD1E mov ax,word ptr [ebp-0C]
  304. 0050AD22 push eax
  305. 0050AD23 call wsock32.htons
  306. 0050AD28 mov word ptr [ebp-32],ax
  307. 0050AD2C mov dword ptr [ebp-20],5
  308. 0050AD33 xor eax,eax
  309. 0050AD35 mov dword ptr [ebp-1C],eax
  310. 0050AD38 lea eax,[ebp-138]
  311. 0050AD3E call 00479D40
  312. 0050AD43 lea edx,[ebp-138]
  313. 0050AD49 mov eax,dword ptr [ebp-4]
  314. 0050AD4C mov eax,dword ptr [eax]
  315. 0050AD4E call 00479D14
  316. 0050AD53 mov dword ptr [ebp-24],1
  317. 0050AD5A lea eax,[ebp-24]
  318. 0050AD5D push eax
  319. 0050AD5E push 8004667E
  320. 0050AD63 mov eax,dword ptr [ebp-4]
  321. 0050AD66 mov eax,dword ptr [eax]
  322. 0050AD68 push eax
  323. 0050AD69 call wsock32.ioctlsocket
  324. 0050AD6E mov dword ptr [ebp-14],eax
  325. 0050AD71 cmp dword ptr [ebp-14],0FFFFFFFF
  326. >0050AD75 je 0050ADD3
  327. 0050AD77 push 10
  328. 0050AD79 lea eax,[ebp-34]
  329. 0050AD7C push eax
  330. 0050AD7D mov eax,dword ptr [ebp-4]
  331. 0050AD80 mov eax,dword ptr [eax]
  332. 0050AD82 push eax
  333. 0050AD83 call wsock32.connect
  334. 0050AD88 lea eax,[ebp-20]
  335. 0050AD8B push eax
  336. 0050AD8C push 0
  337. 0050AD8E lea eax,[ebp-138]
  338. 0050AD94 push eax
  339. 0050AD95 push 0
  340. 0050AD97 push 0FF
  341. 0050AD99 call wsock32.select
  342. 0050AD9E mov dword ptr [ebp-14],eax
  343. 0050ADA1 cmp dword ptr [ebp-14],0
  344. >0050ADA5 je 0050ADD3
  345. 0050ADA7 cmp dword ptr [ebp-14],0FFFFFFFF
  346. >0050ADAB je 0050ADD3
  347. 0050ADAD xor eax,eax
  348. 0050ADAF mov dword ptr [ebp-24],eax
  349. 0050ADB2 lea eax,[ebp-24]
  350. 0050ADB5 push eax
  351. 0050ADB6 push 8004667E
  352. 0050ADBB mov eax,dword ptr [ebp-4]
  353. 0050ADBE mov eax,dword ptr [eax]
  354. 0050ADC0 push eax
  355. 0050ADC1 call wsock32.ioctlsocket
  356. 0050ADC6 mov dword ptr [ebp-14],eax
  357. 0050ADC9 cmp dword ptr [ebp-14],0FFFFFFFF
  358. >0050ADCD je 0050ADD3
  359. 0050ADCF mov byte ptr [ebp-0D],1
  360. 0050ADD3 cmp byte ptr [ebp-0D],0
  361. >0050ADD7 jne 0050ADEC
  362. 0050ADD9 mov eax,dword ptr [ebp-4]
  363. 0050ADDC cmp dword ptr [eax],0
  364. >0050ADDF je 0050ADEC
  365. 0050ADE1 mov eax,dword ptr [ebp-4]
  366. 0050ADE4 mov eax,dword ptr [eax]
  367. 0050ADE6 push eax
  368. 0050ADE7 call wsock32.closesocket
  369. 0050ADEC xor eax,eax
  370. 0050ADEE pop edx
  371. 0050ADEF pop ecx
  372. 0050ADF0 pop ecx
  373. 0050ADF1 mov dword ptr fs:[eax],edx
  374. >0050ADF4 jmp 0050AE00
  375. <0050ADF6 jmp @HandleAnyException
  376. 0050ADFB call @DoneExcept
  377. 0050AE00 xor eax,eax
  378. 0050AE02 pop edx
  379. 0050AE03 pop ecx
  380. 0050AE04 pop ecx
  381. 0050AE05 mov dword ptr fs:[eax],edx
  382. 0050AE08 push 50AE25
  383. 0050AE0D lea eax,[ebp-18]
  384. 0050AE10 call @LStrClr
  385. 0050AE15 lea eax,[ebp-8]
  386. 0050AE18 call @LStrClr
  387. 0050AE1D ret
  388. <0050AE1E jmp @HandleFinally
  389. <0050AE23 jmp 0050AE0D
  390. 0050AE25 mov al,byte ptr [ebp-0D]
  391. 0050AE28 pop edi
  392. 0050AE29 pop esi
  393. 0050AE2A pop ebx
  394. 0050AE2B mov esp,ebp
  395. 0050AE2D pop ebp
  396. 0050AE2E ret 4
  397. end;*}
  398.  
  399. //0050AE98
  400. {*procedure sub_0050AE98(?:AnsiString);
  401. begin
  402. 0050AE98 push ebp
  403. 0050AE99 mov ebp,esp
  404. 0050AE9B add esp,0FFFFFFF8
  405. 0050AE9E xor edx,edx
  406. 0050AEA0 mov dword ptr [ebp-8],edx
  407. 0050AEA3 mov dword ptr [ebp-4],eax
  408. 0050AEA6 xor eax,eax
  409. 0050AEA8 push ebp
  410. 0050AEA9 push 50AF3D
  411. 0050AEAE push dword ptr fs:[eax]
  412. 0050AEB1 mov dword ptr fs:[eax],esp
  413. 0050AEB4 cmp dword ptr ds:[53E024],309;gvar_0053E024
  414. >0050AEBE jne 0050AED6
  415. 0050AEC0 call Randomize
  416. 0050AEC5 mov edx,3
  417. 0050AECA xor eax,eax
  418. 0050AECC call 0043C0D8
  419. 0050AED1 mov [0053E024],eax;gvar_0053E024
  420. 0050AED6 mov eax,dword ptr [ebp-4]
  421. 0050AED9 mov edx,dword ptr ds:[53E024];0x309 gvar_0053E024
  422. 0050AEDF mov edx,dword ptr [edx*4+53E018];gvar_0053E018:array[3] of String
  423. 0050AEE6 call @LStrAsg
  424. 0050AEEB inc dword ptr ds:[53E024];gvar_0053E024
  425. 0050AEF1 cmp dword ptr ds:[53E024],3;gvar_0053E024
  426. >0050AEF8 jl 0050AF01
  427. 0050AEFA xor eax,eax
  428. 0050AEFC mov [0053E024],eax;gvar_0053E024
  429. 0050AF01 mov eax,dword ptr [ebp-4]
  430. 0050AF04 mov eax,dword ptr [eax]
  431. 0050AF06 call 0050AB14
  432. 0050AF0B test al,al
  433. >0050AF0D jne 0050AF27
  434. 0050AF0F lea edx,[ebp-8]
  435. 0050AF12 mov eax,dword ptr [ebp-4]
  436. 0050AF15 mov eax,dword ptr [eax]
  437. 0050AF17 call 00482A80
  438. 0050AF1C mov eax,dword ptr [ebp-4]
  439. 0050AF1F mov edx,dword ptr [ebp-8]
  440. 0050AF22 call @LStrAsg
  441. 0050AF27 xor eax,eax
  442. 0050AF29 pop edx
  443. 0050AF2A pop ecx
  444. 0050AF2B pop ecx
  445. 0050AF2C mov dword ptr fs:[eax],edx
  446. 0050AF2F push 50AF44
  447. 0050AF34 lea eax,[ebp-8]
  448. 0050AF37 call @LStrClr
  449. 0050AF3C ret
  450. <0050AF3D jmp @HandleFinally
  451. <0050AF42 jmp 0050AF34
  452. 0050AF44 pop ecx
  453. 0050AF45 pop ecx
  454. 0050AF46 pop ebp
  455. 0050AF47 ret
  456. end;*}
  457.  
  458. //0050AF48
  459. {*function sub_0050AF48(?:TContactServerThread; ?:?; ?:?; ?:?):?;
  460. begin
  461. 0050AF48 push ebp
  462. 0050AF49 mov ebp,esp
  463. 0050AF4B add esp,0FFFFFFF0
  464. 0050AF4E push ebx
  465. 0050AF4F xor ebx,ebx
  466. 0050AF51 mov dword ptr [ebp-10],ebx
  467. 0050AF54 mov byte ptr [ebp-0A],cl
  468. 0050AF57 mov dword ptr [ebp-8],edx
  469. 0050AF5A mov dword ptr [ebp-4],eax
  470. 0050AF5D xor eax,eax
  471. 0050AF5F push ebp
  472. 0050AF60 push 50AFEB
  473. 0050AF65 push dword ptr fs:[eax]
  474. 0050AF68 mov dword ptr fs:[eax],esp
  475. 0050AF6B mov byte ptr [ebp-9],0
  476. 0050AF6F mov byte ptr [ebp+8],0
  477. 0050AF73 mov al,byte ptr [ebp+8]
  478. 0050AF76 mov edx,dword ptr [ebp-4]
  479. 0050AF79 mov byte ptr [edx+45],al;TContactServerThread.?f45:byte
  480. 0050AF7C mov eax,dword ptr [ebp-4]
  481. 0050AF7F cmp byte ptr [eax+45],0;TContactServerThread.?f45:byte
  482. >0050AF83 jne 0050AF9C
  483. 0050AF85 push 5
  484. 0050AF87 mov eax,dword ptr [ebp-8]
  485. 0050AF8A mov ecx,3E80
  486. 0050AF8F mov edx,50B004;'bt.netzone.net'
  487. 0050AF94 call 0050AC68
  488. 0050AF99 mov byte ptr [ebp-9],al
  489. 0050AF9C cmp byte ptr [ebp-9],0
  490. >0050AFA0 jne 0050AFD5
  491. 0050AFA2 push 5
  492. 0050AFA4 lea eax,[ebp-10]
  493. 0050AFA7 call 0050AE98
  494. 0050AFAC mov edx,dword ptr [ebp-10]
  495. 0050AFAF mov eax,dword ptr [ebp-8]
  496. 0050AFB2 mov ecx,3E80
  497. 0050AFB7 call 0050AC68
  498. 0050AFBC mov byte ptr [ebp-9],al
  499. 0050AFBF cmp byte ptr [ebp-9],0
  500. >0050AFC3 jne 0050AFCE
  501. 0050AFC5 mov eax,dword ptr [ebp-4]
  502. 0050AFC8 mov byte ptr [eax+45],0;TContactServerThread.?f45:byte
  503. >0050AFCC jmp 0050AFD5
  504. 0050AFCE mov eax,dword ptr [ebp-4]
  505. 0050AFD1 mov byte ptr [eax+45],1;TContactServerThread.?f45:byte
  506. 0050AFD5 xor eax,eax
  507. 0050AFD7 pop edx
  508. 0050AFD8 pop ecx
  509. 0050AFD9 pop ecx
  510. 0050AFDA mov dword ptr fs:[eax],edx
  511. 0050AFDD push 50AFF2
  512. 0050AFE2 lea eax,[ebp-10]
  513. 0050AFE5 call @LStrClr
  514. 0050AFEA ret
  515. <0050AFEB jmp @HandleFinally
  516. <0050AFF0 jmp 0050AFE2
  517. 0050AFF2 mov al,byte ptr [ebp-9]
  518. 0050AFF5 pop ebx
  519. 0050AFF6 mov esp,ebp
  520. 0050AFF8 pop ebp
  521. 0050AFF9 ret 4
  522. end;*}
  523.  
  524. //0050B018
  525. procedure TContactServerThread.Execute;
  526. begin
  527. {*
  528. 0050B018 push ebp
  529. 0050B019 mov ebp,esp
  530. 0050B01B add esp,0FFFFFFF8
  531. 0050B01E push ebx
  532. 0050B01F push esi
  533. 0050B020 push edi
  534. 0050B021 mov dword ptr [ebp-4],eax
  535. 0050B024 mov eax,dword ptr [ebp-4]
  536. 0050B027 mov dword ptr [eax+4C],18;TContactServerThread.?f4C:dword
  537. 0050B02E xor eax,eax
  538. 0050B030 mov dword ptr ds:[545DC8],eax
  539. 0050B036 mov dword ptr ds:[545DCC],eax
  540. 0050B03C mov edx,545DC8
  541. 0050B041 mov eax,[0053E408];^gvar_0053E034:TServiceObject
  542. 0050B046 mov eax,dword ptr [eax]
  543. 0050B048 call 005243B0
  544. >0050B04D jmp 0050B062
  545. 0050B04F cmp dword ptr ds:[545DD8],0
  546. >0050B056 je 0050B06B
  547. 0050B058 push 3E8
  548. 0050B05D call kernel32.Sleep
  549. 0050B062 mov eax,dword ptr [ebp-4]
  550. 0050B065 cmp byte ptr [eax+0D],0;TContactServerThread.FTerminated:Boolean
  551. <0050B069 je 0050B04F
  552. 0050B06B mov eax,dword ptr [ebp-4]
  553. 0050B06E xor edx,edx
  554. 0050B070 mov dword ptr [eax+48],edx;TContactServerThread.?f48:dword
  555. 0050B073 call 0040DA44
  556. 0050B078 fsub qword ptr ds:[545DC8]
  557. 0050B07E fabs
  558. 0050B080 fcomp dword ptr ds:[50B138];5:Single
  559. 0050B086 fnstsw al
  560. 0050B088 sahf
  561. >0050B089 ja 0050B121
  562. 0050B08F mov dword ptr ds:[53E004],1;gvar_0053E004
  563. >0050B099 jmp 0050B121
  564. 0050B09E cmp dword ptr ds:[545DD8],0
  565. >0050B0A5 je 0050B0B3
  566. 0050B0A7 push 3E8
  567. 0050B0AC call kernel32.Sleep
  568. >0050B0B1 jmp 0050B121
  569. 0050B0B3 mov eax,dword ptr [ebp-4]
  570. 0050B0B6 dec dword ptr [eax+48];TContactServerThread.?f48:dword
  571. 0050B0B9 mov eax,dword ptr [ebp-4]
  572. 0050B0BC cmp dword ptr [eax+48],0;TContactServerThread.?f48:dword
  573. >0050B0C0 jg 0050B117
  574. 0050B0C2 xor eax,eax
  575. 0050B0C4 push ebp
  576. 0050B0C5 push 50B0F2
  577. 0050B0CA push dword ptr fs:[eax]
  578. 0050B0CD mov dword ptr fs:[eax],esp
  579. 0050B0D0 mov eax,dword ptr [ebp-4]
  580. 0050B0D3 call 0050C30C
  581. 0050B0D8 test al,al
  582. >0050B0DA jne 0050B0E8
  583. 0050B0DC mov eax,dword ptr [ebp-4]
  584. 0050B0DF mov edx,dword ptr ds:[53E028];0x12C gvar_0053E028
  585. 0050B0E5 mov dword ptr [eax+40],edx;TContactServerThread.?f40:dword
  586. 0050B0E8 xor eax,eax
  587. 0050B0EA pop edx
  588. 0050B0EB pop ecx
  589. 0050B0EC pop ecx
  590. 0050B0ED mov dword ptr fs:[eax],edx
  591. >0050B0F0 jmp 0050B10B
  592. <0050B0F2 jmp @HandleOnException
  593. 0050B0F7 dd 1
  594. 0050B0FB dd 40A298;Exception
  595. 0050B0FF dd 50B103
  596. 0050B103 mov dword ptr [ebp-8],eax
  597. 0050B106 call @DoneExcept
  598. 0050B10B mov eax,dword ptr [ebp-4]
  599. 0050B10E mov eax,dword ptr [eax+40];TContactServerThread.?f40:dword
  600. 0050B111 mov edx,dword ptr [ebp-4]
  601. 0050B114 mov dword ptr [edx+48],eax;TContactServerThread.?f48:dword
  602. 0050B117 push 3E8
  603. 0050B11C call kernel32.Sleep
  604. 0050B121 mov eax,dword ptr [ebp-4]
  605. 0050B124 cmp byte ptr [eax+0D],0;TContactServerThread.FTerminated:Boolean
  606. <0050B128 je 0050B09E
  607. 0050B12E pop edi
  608. 0050B12F pop esi
  609. 0050B130 pop ebx
  610. 0050B131 pop ecx
  611. 0050B132 pop ecx
  612. 0050B133 pop ebp
  613. 0050B134 ret
  614. *}
  615. end;
  616.  
  617. //0050B13C
  618. {*function sub_0050B13C(?:TContactServerThread; ?:?; ?:?; ?:?; ?:?):?;
  619. begin
  620. 0050B13C push ebp
  621. 0050B13D mov ebp,esp
  622. 0050B13F add esp,0FFFFFFC0
  623. 0050B142 push ebx
  624. 0050B143 push esi
  625. 0050B144 push edi
  626. 0050B145 xor ebx,ebx
  627. 0050B147 mov dword ptr [ebp-30],ebx
  628. 0050B14A mov dword ptr [ebp-18],ebx
  629. 0050B14D mov dword ptr [ebp-0C],ecx
  630. 0050B150 mov dword ptr [ebp-8],edx
  631. 0050B153 mov dword ptr [ebp-4],eax
  632. 0050B156 xor eax,eax
  633. 0050B158 push ebp
  634. 0050B159 push 50B290
  635. 0050B15E push dword ptr fs:[eax]
  636. 0050B161 mov dword ptr fs:[eax],esp
  637. 0050B164 mov byte ptr [ebp-0D],0
  638. 0050B168 lea eax,[ebp-18]
  639. 0050B16B mov edx,dword ptr ds:[545DD0]
  640. 0050B171 call @LStrLAsg
  641. 0050B176 mov eax,dword ptr [ebp-18]
  642. 0050B179 call @LStrLen
  643. 0050B17E mov dword ptr [ebp-1C],eax
  644. 0050B181 lea eax,[ebp-30]
  645. 0050B184 push eax
  646. 0050B185 mov eax,dword ptr [ebp-1C]
  647. 0050B188 mov dword ptr [ebp-40],eax
  648. 0050B18B mov byte ptr [ebp-3C],0
  649. 0050B18F mov eax,dword ptr [ebp-18]
  650. 0050B192 mov dword ptr [ebp-38],eax
  651. 0050B195 mov byte ptr [ebp-34],0B
  652. 0050B199 lea edx,[ebp-40]
  653. 0050B19C mov ecx,1
  654. 0050B1A1 mov eax,50B2AC;'%d:%s'
  655. 0050B1A6 call 0040CC48
  656. 0050B1AB mov edx,dword ptr [ebp-30]
  657. 0050B1AE lea eax,[ebp-18]
  658. 0050B1B1 call @LStrLAsg
  659. 0050B1B6 mov eax,dword ptr [ebp-18]
  660. 0050B1B9 call @LStrLen
  661. 0050B1BE mov dword ptr [ebp-1C],eax
  662. 0050B1C1 mov eax,dword ptr [ebp+8]
  663. 0050B1C4 add eax,dword ptr [ebp-1C]
  664. 0050B1C7 mov dword ptr [ebp-24],eax
  665. 0050B1CA mov eax,[0053E02C];0x8179840 gvar_0053E02C
  666. 0050B1CF mov dword ptr [ebp-2C],eax
  667. 0050B1D2 mov eax,dword ptr [ebp-0C]
  668. 0050B1D5 mov dword ptr [ebp-28],eax
  669. 0050B1D8 push 0
  670. 0050B1DA push 0C
  671. 0050B1DC lea eax,[ebp-2C]
  672. 0050B1DF push eax
  673. 0050B1E0 mov eax,dword ptr [ebp-8]
  674. 0050B1E3 push eax
  675. 0050B1E4 call wsock32.send
  676. 0050B1E9 mov dword ptr [ebp-14],eax
  677. 0050B1EC cmp dword ptr [ebp-14],0FFFFFFFF
  678. >0050B1F0 je 0050B1F6
  679. 0050B1F2 mov byte ptr [ebp-0D],1
  680. 0050B1F6 cmp dword ptr [ebp-24],0
  681. >0050B1FA je 0050B272
  682. 0050B1FC mov byte ptr [ebp-0D],0
  683. 0050B200 xor eax,eax
  684. 0050B202 push ebp
  685. 0050B203 push 50B259
  686. 0050B208 push dword ptr fs:[eax]
  687. 0050B20B mov dword ptr fs:[eax],esp
  688. 0050B20E push 0
  689. 0050B210 mov eax,dword ptr [ebp-1C]
  690. 0050B213 push eax
  691. 0050B214 mov eax,dword ptr [ebp-18]
  692. 0050B217 call @LStrToPChar
  693. 0050B21C push eax
  694. 0050B21D mov eax,dword ptr [ebp-8]
  695. 0050B220 push eax
  696. 0050B221 call wsock32.send
  697. 0050B226 mov dword ptr [ebp-14],eax
  698. 0050B229 cmp dword ptr [ebp-14],0FFFFFFFF
  699. >0050B22D je 0050B24F
  700. 0050B22F push 0
  701. 0050B231 mov eax,dword ptr [ebp+8]
  702. 0050B234 push eax
  703. 0050B235 mov eax,dword ptr [ebp+0C]
  704. 0050B238 push eax
  705. 0050B239 mov eax,dword ptr [ebp-8]
  706. 0050B23C push eax
  707. 0050B23D call wsock32.send
  708. 0050B242 mov dword ptr [ebp-14],eax
  709. 0050B245 cmp dword ptr [ebp-14],0FFFFFFFF
  710. >0050B249 je 0050B24F
  711. 0050B24B mov byte ptr [ebp-0D],1
  712. 0050B24F xor eax,eax
  713. 0050B251 pop edx
  714. 0050B252 pop ecx
  715. 0050B253 pop ecx
  716. 0050B254 mov dword ptr fs:[eax],edx
  717. >0050B257 jmp 0050B272
  718. <0050B259 jmp @HandleOnException
  719. 0050B25E dd 1
  720. 0050B262 dd 40A298;Exception
  721. 0050B266 dd 50B26A
  722. 0050B26A mov dword ptr [ebp-20],eax
  723. 0050B26D call @DoneExcept
  724. 0050B272 xor eax,eax
  725. 0050B274 pop edx
  726. 0050B275 pop ecx
  727. 0050B276 pop ecx
  728. 0050B277 mov dword ptr fs:[eax],edx
  729. 0050B27A push 50B297
  730. 0050B27F lea eax,[ebp-30]
  731. 0050B282 call @LStrClr
  732. 0050B287 lea eax,[ebp-18]
  733. 0050B28A call @LStrClr
  734. 0050B28F ret
  735. <0050B290 jmp @HandleFinally
  736. <0050B295 jmp 0050B27F
  737. 0050B297 mov al,byte ptr [ebp-0D]
  738. 0050B29A pop edi
  739. 0050B29B pop esi
  740. 0050B29C pop ebx
  741. 0050B29D mov esp,ebp
  742. 0050B29F pop ebp
  743. 0050B2A0 ret 8
  744. end;*}
  745.  
  746. //0050B2B4
  747. {*function sub_0050B2B4(?:TContactServerThread; ?:?; ?:Byte; ?:?; ?:?):?;
  748. begin
  749. 0050B2B4 push ebp
  750. 0050B2B5 mov ebp,esp
  751. 0050B2B7 add esp,0FFFFFFE0
  752. 0050B2BA mov dword ptr [ebp-0C],ecx
  753. 0050B2BD mov dword ptr [ebp-8],edx
  754. 0050B2C0 mov dword ptr [ebp-4],eax
  755. 0050B2C3 mov byte ptr [ebp-19],0
  756. 0050B2C7 xor eax,eax
  757. 0050B2C9 mov dword ptr [ebp-18],eax
  758. 0050B2CC mov eax,dword ptr [ebp+8]
  759. 0050B2CF cmp eax,dword ptr [ebp+0C]
  760. >0050B2D2 jg 0050B324
  761. 0050B2D4 mov eax,dword ptr [ebp-18]
  762. 0050B2D7 cmp eax,dword ptr [ebp+8]
  763. >0050B2DA jge 0050B318
  764. 0050B2DC mov eax,dword ptr [ebp-0C]
  765. 0050B2DF add eax,dword ptr [ebp-18]
  766. 0050B2E2 mov dword ptr [ebp-14],eax
  767. 0050B2E5 push 0
  768. 0050B2E7 mov eax,dword ptr [ebp+8]
  769. 0050B2EA sub eax,dword ptr [ebp-18]
  770. 0050B2ED push eax
  771. 0050B2EE mov eax,dword ptr [ebp-14]
  772. 0050B2F1 push eax
  773. 0050B2F2 mov eax,dword ptr [ebp-8]
  774. 0050B2F5 push eax
  775. 0050B2F6 call wsock32.recv
  776. 0050B2FB mov dword ptr [ebp-20],eax
  777. 0050B2FE cmp dword ptr [ebp-20],0
  778. >0050B302 jg 0050B30A
  779. 0050B304 mov byte ptr [ebp-19],0
  780. >0050B308 jmp 0050B318
  781. 0050B30A mov eax,dword ptr [ebp-20]
  782. 0050B30D add dword ptr [ebp-18],eax
  783. 0050B310 mov eax,dword ptr [ebp-18]
  784. 0050B313 cmp eax,dword ptr [ebp+8]
  785. <0050B316 jl 0050B2DC
  786. 0050B318 mov eax,dword ptr [ebp-18]
  787. 0050B31B cmp eax,dword ptr [ebp+8]
  788. >0050B31E jne 0050B324
  789. 0050B320 mov byte ptr [ebp-19],1
  790. 0050B324 mov al,byte ptr [ebp-19]
  791. 0050B327 mov byte ptr [ebp-0D],al
  792. 0050B32A mov al,byte ptr [ebp-0D]
  793. 0050B32D mov esp,ebp
  794. 0050B32F pop ebp
  795. 0050B330 ret 8
  796. end;*}
  797.  
  798. //0050B334
  799. {*procedure sub_0050B334(?:AnsiString; ?:AnsiString; ?:AnsiString);
  800. begin
  801. 0050B334 push ebp
  802. 0050B335 mov ebp,esp
  803. 0050B337 add esp,0FFFFF7B8
  804. 0050B33D push ebx
  805. 0050B33E push esi
  806. 0050B33F push edi
  807. 0050B340 xor ebx,ebx
  808. 0050B342 mov dword ptr [ebp-848],ebx
  809. 0050B348 mov dword ptr [ebp-844],ebx
  810. 0050B34E mov dword ptr [ebp-0C],ecx
  811. 0050B351 mov dword ptr [ebp-8],edx
  812. 0050B354 mov dword ptr [ebp-4],eax
  813. 0050B357 mov eax,dword ptr [ebp-4]
  814. 0050B35A call @LStrAddRef
  815. 0050B35F mov eax,dword ptr [ebp-8]
  816. 0050B362 call @LStrAddRef
  817. 0050B367 xor eax,eax
  818. 0050B369 push ebp
  819. 0050B36A push 50B58C
  820. 0050B36F push dword ptr fs:[eax]
  821. 0050B372 mov dword ptr fs:[eax],esp
  822. 0050B375 mov byte ptr [ebp-19],0
  823. >0050B379 jmp 0050B557
  824. 0050B37E xor ecx,ecx
  825. 0050B380 mov dl,1
  826. 0050B382 mov eax,[00420408];TStringStream
  827. 0050B387 call TStringStream.Create;TStringStream.Create
  828. 0050B38C mov dword ptr [ebp-18],eax
  829. 0050B38F xor ecx,ecx
  830. 0050B391 mov dl,1
  831. 0050B393 mov eax,[00420408];TStringStream
  832. 0050B398 call TStringStream.Create;TStringStream.Create
  833. 0050B39D mov dword ptr [ebp-14],eax
  834. 0050B3A0 mov dl,1
  835. 0050B3A2 mov eax,[004935AC];TMemoryStreamEx
  836. 0050B3A7 call TObject.Create;TMemoryStreamEx.Create
  837. 0050B3AC mov dword ptr [ebp-10],eax
  838. 0050B3AF mov dl,1
  839. 0050B3B1 mov eax,[00420070];TStringList
  840. 0050B3B6 call TObject.Create;TStringList.Create
  841. 0050B3BB mov dword ptr [ebp-20],eax
  842. 0050B3BE xor eax,eax
  843. 0050B3C0 push ebp
  844. 0050B3C1 push 50B51E
  845. 0050B3C6 push dword ptr fs:[eax]
  846. 0050B3C9 mov dword ptr fs:[eax],esp
  847. 0050B3CC mov al,[0050B59C];0x1
  848. 0050B3D1 push eax
  849. 0050B3D2 lea eax,[ebp-844]
  850. 0050B3D8 push eax
  851. 0050B3D9 mov ecx,50B5A8;'
  852.  
  853. '
  854. 0050B3DE mov edx,50B5B4;','
  855. 0050B3E3 mov eax,dword ptr [ebp-8]
  856. 0050B3E6 call 00411568
  857. 0050B3EB mov edx,dword ptr [ebp-844]
  858. 0050B3F1 mov eax,dword ptr [ebp-20]
  859. 0050B3F4 mov ecx,dword ptr [eax]
  860. 0050B3F6 call dword ptr [ecx+2C];TStrings.SetTextStr
  861. 0050B3F9 lea eax,[ebp-83D]
  862. 0050B3FF xor ecx,ecx
  863. 0050B401 mov edx,800
  864. 0050B406 call @FillChar
  865. 0050B40B lea eax,[ebp-83D]
  866. 0050B411 mov edx,dword ptr [ebp-4]
  867. 0050B414 call 0040C4FC
  868. 0050B419 mov eax,dword ptr [ebp-4]
  869. 0050B41C call @LStrLen
  870. 0050B421 mov dword ptr [ebp-30],eax
  871. 0050B424 mov eax,dword ptr [ebp-20]
  872. 0050B427 mov edx,dword ptr [eax]
  873. 0050B429 call dword ptr [edx+14];TStringList.GetCount
  874. 0050B42C dec eax
  875. 0050B42D test eax,eax
  876. >0050B42F jl 0050B4A1
  877. 0050B431 inc eax
  878. 0050B432 mov dword ptr [ebp-34],eax
  879. 0050B435 mov dword ptr [ebp-24],0
  880. 0050B43C lea ecx,[ebp-848]
  881. 0050B442 mov edx,dword ptr [ebp-24]
  882. 0050B445 mov eax,dword ptr [ebp-20]
  883. 0050B448 mov ebx,dword ptr [eax]
  884. 0050B44A call dword ptr [ebx+0C];TStringList.Get
  885. 0050B44D mov eax,dword ptr [ebp-848]
  886. 0050B453 xor edx,edx
  887. 0050B455 call 0040B694
  888. 0050B45A mov dword ptr [ebp-2C],eax
  889. 0050B45D mov eax,dword ptr [ebp-30]
  890. 0050B460 mov edx,dword ptr [ebp-2C]
  891. 0050B463 inc edx
  892. 0050B464 sub edx,eax
  893. >0050B466 jg 0050B48B
  894. 0050B468 dec edx
  895. 0050B469 mov dword ptr [ebp-38],edx
  896. 0050B46C mov dword ptr [ebp-28],eax
  897. 0050B46F mov eax,dword ptr [ebp-28]
  898. 0050B472 mov al,byte ptr [ebp+eax-83E]
  899. 0050B479 mov edx,dword ptr [ebp-28]
  900. 0050B47C mov byte ptr [ebp+edx-83D],al
  901. 0050B483 dec dword ptr [ebp-28]
  902. 0050B486 inc dword ptr [ebp-38]
  903. <0050B489 jne 0050B46F
  904. 0050B48B mov eax,dword ptr [ebp-2C]
  905. 0050B48E mov byte ptr [ebp+eax-83D],0
  906. 0050B496 inc dword ptr [ebp-30]
  907. 0050B499 inc dword ptr [ebp-24]
  908. 0050B49C dec dword ptr [ebp-34]
  909. <0050B49F jne 0050B43C
  910. 0050B4A1 push 0
  911. 0050B4A3 push 0
  912. 0050B4A5 mov eax,dword ptr [ebp-14]
  913. 0050B4A8 call TStream.SetPosition
  914. 0050B4AD lea edx,[ebp-83D]
  915. 0050B4B3 mov ecx,dword ptr [ebp-30]
  916. 0050B4B6 mov eax,dword ptr [ebp-14]
  917. 0050B4B9 call 00425F3C
  918. 0050B4BE push 0
  919. 0050B4C0 push 0
  920. 0050B4C2 mov eax,dword ptr [ebp-14]
  921. 0050B4C5 call TStream.SetPosition
  922. 0050B4CA mov ecx,dword ptr ds:[53E02C];0x8179840 gvar_0053E02C
  923. 0050B4D0 mov edx,dword ptr [ebp-10]
  924. 0050B4D3 mov eax,dword ptr [ebp-14]
  925. 0050B4D6 call 004955C0
  926. 0050B4DB xor edx,edx
  927. 0050B4DD mov eax,dword ptr [ebp-10]
  928. 0050B4E0 call 0048C010
  929. 0050B4E5 mov ecx,dword ptr ds:[53E02C];0x8179840 gvar_0053E02C
  930. 0050B4EB mov edx,dword ptr [ebp-18]
  931. 0050B4EE mov eax,dword ptr [ebp-10]
  932. 0050B4F1 call 004955C0
  933. 0050B4F6 push 0
  934. 0050B4F8 push 0
  935. 0050B4FA mov eax,dword ptr [ebp-18]
  936. 0050B4FD call TStream.SetPosition
  937. 0050B502 mov eax,dword ptr [ebp-0C]
  938. 0050B505 mov edx,dword ptr [ebp-18]
  939. 0050B508 mov edx,dword ptr [edx+4];TStringStream.FDataString:String
  940. 0050B50B call @LStrAsg
  941. 0050B510 mov byte ptr [ebp-19],1
  942. 0050B514 xor eax,eax
  943. 0050B516 pop edx
  944. 0050B517 pop ecx
  945. 0050B518 pop ecx
  946. 0050B519 mov dword ptr fs:[eax],edx
  947. >0050B51C jmp 0050B537
  948. <0050B51E jmp @HandleOnException
  949. 0050B523 dd 1
  950. 0050B527 dd 40A298;Exception
  951. 0050B52B dd 50B52F
  952. 0050B52F mov dword ptr [ebp-3C],eax
  953. 0050B532 call @DoneExcept
  954. 0050B537 mov eax,dword ptr [ebp-20]
  955. 0050B53A call TObject.Free
  956. 0050B53F mov eax,dword ptr [ebp-10]
  957. 0050B542 call TObject.Free
  958. 0050B547 mov eax,dword ptr [ebp-14]
  959. 0050B54A call TObject.Free
  960. 0050B54F mov eax,dword ptr [ebp-18]
  961. 0050B552 call TObject.Free
  962. 0050B557 cmp byte ptr [ebp-19],0
  963. <0050B55B je 0050B37E
  964. 0050B561 xor eax,eax
  965. 0050B563 pop edx
  966. 0050B564 pop ecx
  967. 0050B565 pop ecx
  968. 0050B566 mov dword ptr fs:[eax],edx
  969. 0050B569 push 50B593
  970. 0050B56E lea eax,[ebp-848]
  971. 0050B574 mov edx,2
  972. 0050B579 call @LStrArrayClr
  973. 0050B57E lea eax,[ebp-8]
  974. 0050B581 mov edx,2
  975. 0050B586 call @LStrArrayClr
  976. 0050B58B ret
  977. <0050B58C jmp @HandleFinally
  978. <0050B591 jmp 0050B56E
  979. 0050B593 pop edi
  980. 0050B594 pop esi
  981. 0050B595 pop ebx
  982. 0050B596 mov esp,ebp
  983. 0050B598 pop ebp
  984. 0050B599 ret
  985. end;*}
  986.  
  987. //0050B5B8
  988. {*function sub_0050B5B8(?:?):?;
  989. begin
  990. 0050B5B8 push ebp
  991. 0050B5B9 mov ebp,esp
  992. 0050B5BB add esp,0FFFFFFF8
  993. 0050B5BE mov dword ptr [ebp-4],eax
  994. 0050B5C1 mov eax,dword ptr [ebp-4]
  995. 0050B5C4 push eax
  996. 0050B5C5 call wsock32.closesocket
  997. 0050B5CA test eax,eax
  998. 0050B5CC mov byte ptr [ebp-5],1
  999. 0050B5D0 mov al,byte ptr [ebp-5]
  1000. 0050B5D3 pop ecx
  1001. 0050B5D4 pop ecx
  1002. 0050B5D5 pop ebp
  1003. 0050B5D6 ret
  1004. end;*}
  1005.  
  1006. //0050B5D8
  1007. {*function sub_0050B5D8(?:TContactServerThread):?;
  1008. begin
  1009. 0050B5D8 push ebp
  1010. 0050B5D9 mov ebp,esp
  1011. 0050B5DB mov ecx,41A
  1012. 0050B5E0 push 0
  1013. 0050B5E2 push 0
  1014. 0050B5E4 dec ecx
  1015. <0050B5E5 jne 0050B5E0
  1016. 0050B5E7 push ecx
  1017. 0050B5E8 push ebx
  1018. 0050B5E9 push esi
  1019. 0050B5EA push edi
  1020. 0050B5EB mov dword ptr [ebp-4],eax
  1021. 0050B5EE lea eax,[ebp-38]
  1022. 0050B5F1 mov edx,dword ptr ds:[506F5C];TFGInt:Pointer
  1023. 0050B5F7 call @InitializeRecord
  1024. 0050B5FC lea eax,[ebp-40]
  1025. 0050B5FF mov edx,dword ptr ds:[506F5C];TFGInt:Pointer
  1026. 0050B605 call @InitializeRecord
  1027. 0050B60A lea eax,[ebp-48]
  1028. 0050B60D mov edx,dword ptr ds:[506F5C];TFGInt:Pointer
  1029. 0050B613 call @InitializeRecord
  1030. 0050B618 xor eax,eax
  1031. 0050B61A push ebp
  1032. 0050B61B push 50BEB3
  1033. 0050B620 push dword ptr fs:[eax]
  1034. 0050B623 mov dword ptr fs:[eax],esp
  1035. 0050B626 mov byte ptr [ebp-5],0
  1036. 0050B62A mov eax,dword ptr [ebp-4]
  1037. 0050B62D cmp dword ptr [eax+4C],0;TContactServerThread.?f4C:dword
  1038. >0050B631 jle 0050BE5B
  1039. 0050B637 lea eax,[ebp-50]
  1040. 0050B63A mov edx,dword ptr ds:[53E8CC];^gvar_0053E044
  1041. 0050B640 mov edx,dword ptr [edx]
  1042. 0050B642 call @LStrLAsg
  1043. 0050B647 cmp dword ptr [ebp-50],0
  1044. >0050B64B jne 0050B65A
  1045. 0050B64D lea eax,[ebp-50]
  1046. 0050B650 mov edx,50BECC;'nxd'
  1047. 0050B655 call @LStrLAsg
  1048. 0050B65A mov dword ptr ds:[53E014],0FFFFFFFF;gvar_0053E014
  1049. 0050B664 mov dword ptr [ebp-18],2000
  1050. 0050B66B mov dl,1
  1051. 0050B66D mov eax,[00420070];TStringList
  1052. 0050B672 call TObject.Create;TStringList.Create
  1053. 0050B677 mov dword ptr [ebp-1C],eax
  1054. 0050B67A xor eax,eax
  1055. 0050B67C push ebp
  1056. 0050B67D push 50BE3A
  1057. 0050B682 push dword ptr fs:[eax]
  1058. 0050B685 mov dword ptr fs:[eax],esp
  1059. 0050B688 mov eax,545DE0
  1060. 0050B68D xor ecx,ecx
  1061. 0050B68F mov edx,514
  1062. 0050B694 call @FillChar
  1063. 0050B699 cmp dword ptr ds:[545DD0],0
  1064. >0050B6A0 jne 0050B6AF
  1065. 0050B6A2 xor eax,eax
  1066. 0050B6A4 pop edx
  1067. 0050B6A5 pop ecx
  1068. 0050B6A6 pop ecx
  1069. 0050B6A7 mov dword ptr fs:[eax],edx
  1070. >0050B6AA jmp 0050BE5B
  1071. 0050B6AF cmp dword ptr ds:[545DD4],0
  1072. >0050B6B6 jne 0050B6C5
  1073. 0050B6B8 xor eax,eax
  1074. 0050B6BA pop edx
  1075. 0050B6BB pop ecx
  1076. 0050B6BC pop ecx
  1077. 0050B6BD mov dword ptr fs:[eax],edx
  1078. >0050B6C0 jmp 0050BE5B
  1079. 0050B6C5 lea eax,[ebp-0C]
  1080. 0050B6C8 push eax
  1081. 0050B6C9 mov eax,[00545DD0]
  1082. 0050B6CE mov dword ptr [ebp-2094],eax
  1083. 0050B6D4 mov byte ptr [ebp-2090],0B
  1084. 0050B6DB mov eax,[00545DD4]
  1085. 0050B6E0 mov dword ptr [ebp-208C],eax
  1086. 0050B6E6 mov byte ptr [ebp-2088],0B
  1087. 0050B6ED xor eax,eax
  1088. 0050B6EF mov dword ptr [ebp-2084],eax
  1089. 0050B6F5 mov byte ptr [ebp-2080],0
  1090. 0050B6FC xor eax,eax
  1091. 0050B6FE mov dword ptr [ebp-207C],eax
  1092. 0050B704 mov byte ptr [ebp-2078],0B
  1093. 0050B70B mov eax,dword ptr [ebp-50]
  1094. 0050B70E mov dword ptr [ebp-2074],eax
  1095. 0050B714 mov byte ptr [ebp-2070],0B
  1096. 0050B71B lea edx,[ebp-2094]
  1097. 0050B721 mov ecx,4
  1098. 0050B726 mov eax,50BED8;'un=%s
  1099.  
  1100. pwd=%s
  1101.  
  1102. port=%d
  1103.  
  1104. version=%s
  1105.  
  1106. ct=%s
  1107.  
  1108. '
  1109. 0050B72B call 0040CC48
  1110. 0050B730 lea eax,[ebp-2098]
  1111. 0050B736 call 0050A988
  1112. 0050B73B mov eax,dword ptr [ebp-2098]
  1113. 0050B741 lea edx,[ebp-38]
  1114. 0050B744 call 00507954
  1115. 0050B749 lea edx,[ebp-40]
  1116. 0050B74C mov eax,50BF0C;'65537'
  1117. 0050B751 call 00507954
  1118. 0050B756 lea eax,[ebp-0C]
  1119. 0050B759 push eax
  1120. 0050B75A lea ecx,[ebp-38]
  1121. 0050B75D lea edx,[ebp-40]
  1122. 0050B760 mov eax,dword ptr [ebp-0C]
  1123. 0050B763 call 0050A17C
  1124. 0050B768 lea edx,[ebp-0C]
  1125. 0050B76B mov eax,dword ptr [ebp-0C]
  1126. 0050B76E call 00507368
  1127. 0050B773 lea eax,[ebp-0C]
  1128. 0050B776 mov ecx,dword ptr [ebp-0C]
  1129. 0050B779 mov edx,50BF1C;'0001'
  1130. 0050B77E call @LStrCat3
  1131. 0050B783 mov dword ptr [ebp-54],1
  1132. 0050B78A lea eax,[ebp-4C]
  1133. 0050B78D mov edx,50BF2C;'%%LOGIN_RetryLogin2:正在验证用户...%%'
  1134. 0050B792 call @LStrLAsg
  1135. 0050B797 mov eax,53E008
  1136. 0050B79C mov edx,dword ptr [ebp-4C]
  1137. 0050B79F call @LStrAsg
  1138. 0050B7A4 mov eax,dword ptr [ebp-4]
  1139. 0050B7A7 mov al,byte ptr [eax+44];TContactServerThread.?f44:byte
  1140. 0050B7AA push eax
  1141. 0050B7AB lea edx,[ebp-14]
  1142. 0050B7AE xor ecx,ecx
  1143. 0050B7B0 mov eax,dword ptr [ebp-4]
  1144. 0050B7B3 call 0050AF48
  1145. 0050B7B8 test al,al
  1146. >0050B7BA je 0050BDDB
  1147. 0050B7C0 mov eax,dword ptr [ebp-4]
  1148. 0050B7C3 dec dword ptr [eax+4C];TContactServerThread.?f4C:dword
  1149. 0050B7C6 mov eax,dword ptr [ebp-0C]
  1150. 0050B7C9 call @LStrToPChar
  1151. 0050B7CE push eax
  1152. 0050B7CF mov eax,dword ptr [ebp-0C]
  1153. 0050B7D2 call @LStrLen
  1154. 0050B7D7 push eax
  1155. 0050B7D8 mov ecx,3F6
  1156. 0050B7DD mov edx,dword ptr [ebp-14]
  1157. 0050B7E0 mov eax,dword ptr [ebp-4]
  1158. 0050B7E3 call 0050B13C
  1159. 0050B7E8 mov byte ptr [ebp-55],al
  1160. 0050B7EB cmp byte ptr [ebp-55],0
  1161. >0050B7EF je 0050BDC4
  1162. 0050B7F5 lea eax,[ebp-68]
  1163. 0050B7F8 xor ecx,ecx
  1164. 0050B7FA mov edx,0C
  1165. 0050B7FF call @FillChar
  1166. 0050B804 push 0C
  1167. 0050B806 push 0C
  1168. 0050B808 lea ecx,[ebp-68]
  1169. 0050B80B mov edx,dword ptr [ebp-14]
  1170. 0050B80E mov eax,dword ptr [ebp-4]
  1171. 0050B811 call 0050B2B4
  1172. 0050B816 test al,al
  1173. >0050B818 je 0050BDB5
  1174. 0050B81E cmp dword ptr [ebp-64],7DA
  1175. >0050B825 jne 0050BD2B
  1176. 0050B82B lea eax,[ebp-2069]
  1177. 0050B831 xor ecx,ecx
  1178. 0050B833 mov edx,dword ptr [ebp-18]
  1179. 0050B836 call @FillChar
  1180. 0050B83B lea eax,[ebp-4C]
  1181. 0050B83E mov edx,50BF5C;'%%LOGIN_FailDueDataError:登录失败, 数据错误%%'
  1182. 0050B843 call @LStrLAsg
  1183. 0050B848 cmp dword ptr [ebp-60],0
  1184. >0050B84C jbe 0050BDD1
  1185. 0050B852 push 1FFF
  1186. 0050B857 mov eax,dword ptr [ebp-60]
  1187. 0050B85A push eax
  1188. 0050B85B lea ecx,[ebp-2069]
  1189. 0050B861 mov edx,dword ptr [ebp-14]
  1190. 0050B864 mov eax,dword ptr [ebp-4]
  1191. 0050B867 call 0050B2B4
  1192. 0050B86C test al,al
  1193. >0050B86E je 0050BDD1
  1194. 0050B874 lea eax,[ebp-10]
  1195. 0050B877 lea edx,[ebp-2069]
  1196. 0050B87D mov ecx,2001
  1197. 0050B882 call @LStrFromArray
  1198. 0050B887 lea edx,[ebp-10]
  1199. 0050B88A mov eax,dword ptr [ebp-10]
  1200. 0050B88D call 00507504
  1201. 0050B892 lea eax,[ebp-48]
  1202. 0050B895 push eax
  1203. 0050B896 lea eax,[ebp-48]
  1204. 0050B899 push eax
  1205. 0050B89A lea eax,[ebp-48]
  1206. 0050B89D push eax
  1207. 0050B89E lea eax,[ebp-48]
  1208. 0050B8A1 push eax
  1209. 0050B8A2 lea eax,[ebp-10]
  1210. 0050B8A5 push eax
  1211. 0050B8A6 lea ecx,[ebp-38]
  1212. 0050B8A9 lea edx,[ebp-40]
  1213. 0050B8AC mov eax,dword ptr [ebp-10]
  1214. 0050B8AF call 0050A410
  1215. 0050B8B4 mov edx,dword ptr [ebp-10]
  1216. 0050B8B7 mov eax,50BF94;'temp1'
  1217. 0050B8BC call @LStrPos
  1218. 0050B8C1 mov dword ptr [ebp-2C],eax
  1219. 0050B8C4 mov edx,dword ptr [ebp-10]
  1220. 0050B8C7 mov eax,50BFA4;'temp2'
  1221. 0050B8CC call @LStrPos
  1222. 0050B8D1 mov dword ptr [ebp-30],eax
  1223. 0050B8D4 mov eax,dword ptr [ebp-2C]
  1224. 0050B8D7 cmp eax,dword ptr [ebp-30]
  1225. >0050B8DA jge 0050BDD1
  1226. 0050B8E0 mov edx,dword ptr [ebp-10]
  1227. 0050B8E3 mov eax,dword ptr [ebp-1C]
  1228. 0050B8E6 mov ecx,dword ptr [eax]
  1229. 0050B8E8 call dword ptr [ecx+2C];TStrings.SetTextStr
  1230. 0050B8EB lea eax,[ebp-28]
  1231. 0050B8EE push eax
  1232. 0050B8EF mov eax,dword ptr [ebp-10]
  1233. 0050B8F2 call @LStrLen
  1234. 0050B8F7 mov ecx,eax
  1235. 0050B8F9 mov edx,dword ptr [ebp-30]
  1236. 0050B8FC add edx,6
  1237. 0050B8FF mov eax,dword ptr [ebp-10]
  1238. 0050B902 call @LStrCopy
  1239. 0050B907 lea ecx,[ebp-20A0]
  1240. 0050B90D mov edx,50BF94;'temp1'
  1241. 0050B912 mov eax,dword ptr [ebp-1C]
  1242. 0050B915 call 004248A0
  1243. 0050B91A mov edx,dword ptr [ebp-20A0]
  1244. 0050B920 lea ecx,[ebp-209C]
  1245. 0050B926 mov eax,dword ptr [ebp-28]
  1246. 0050B929 call 0050B334
  1247. 0050B92E mov edx,dword ptr [ebp-209C]
  1248. 0050B934 mov eax,dword ptr [ebp-1C]
  1249. 0050B937 mov ecx,dword ptr [eax]
  1250. 0050B939 call dword ptr [ecx+2C];TStrings.SetTextStr
  1251. 0050B93C mov edx,50BFB4;'ClientIP'
  1252. 0050B941 mov eax,dword ptr [ebp-1C]
  1253. 0050B944 mov ecx,dword ptr [eax]
  1254. 0050B946 call dword ptr [ecx+58];TStrings.IndexOfName
  1255. 0050B949 test eax,eax
  1256. >0050B94B jl 0050B9C2
  1257. 0050B94D mov edx,50BFC8;'Server'
  1258. 0050B952 mov eax,dword ptr [ebp-1C]
  1259. 0050B955 mov ecx,dword ptr [eax]
  1260. 0050B957 call dword ptr [ecx+58];TStrings.IndexOfName
  1261. 0050B95A test eax,eax
  1262. >0050B95C jl 0050B9C2
  1263. 0050B95E mov edx,50BFD8;'ServerPort'
  1264. 0050B963 mov eax,dword ptr [ebp-1C]
  1265. 0050B966 mov ecx,dword ptr [eax]
  1266. 0050B968 call dword ptr [ecx+58];TStrings.IndexOfName
  1267. 0050B96B test eax,eax
  1268. >0050B96D jl 0050B9C2
  1269. 0050B96F mov edx,50BFEC;'Id'
  1270. 0050B974 mov eax,dword ptr [ebp-1C]
  1271. 0050B977 mov ecx,dword ptr [eax]
  1272. 0050B979 call dword ptr [ecx+58];TStrings.IndexOfName
  1273. 0050B97C test eax,eax
  1274. >0050B97E jl 0050B9C2
  1275. 0050B980 mov edx,50BFF8;'IsAgent'
  1276. 0050B985 mov eax,dword ptr [ebp-1C]
  1277. 0050B988 mov ecx,dword ptr [eax]
  1278. 0050B98A call dword ptr [ecx+58];TStrings.IndexOfName
  1279. 0050B98D test eax,eax
  1280. >0050B98F jl 0050B9C2
  1281. 0050B991 mov edx,50C008;'OfficialServer'
  1282. 0050B996 mov eax,dword ptr [ebp-1C]
  1283. 0050B999 mov ecx,dword ptr [eax]
  1284. 0050B99B call dword ptr [ecx+58];TStrings.IndexOfName
  1285. 0050B99E test eax,eax
  1286. >0050B9A0 jl 0050B9C2
  1287. 0050B9A2 mov edx,50C020;'OfficialServerPort'
  1288. 0050B9A7 mov eax,dword ptr [ebp-1C]
  1289. 0050B9AA mov ecx,dword ptr [eax]
  1290. 0050B9AC call dword ptr [ecx+58];TStrings.IndexOfName
  1291. 0050B9AF test eax,eax
  1292. >0050B9B1 jl 0050B9C2
  1293. 0050B9B3 mov edx,50C03C;'OfficialTrackerServerPort'
  1294. 0050B9B8 mov eax,dword ptr [ebp-1C]
  1295. 0050B9BB mov ecx,dword ptr [eax]
  1296. 0050B9BD call dword ptr [ecx+58];TStrings.IndexOfName
  1297. 0050B9C0 test eax,eax
  1298. 0050B9C2 lea ecx,[ebp-20A4]
  1299. 0050B9C8 mov edx,50C060;'key'
  1300. 0050B9CD mov eax,dword ptr [ebp-1C]
  1301. 0050B9D0 call 004248A0
  1302. 0050B9D5 mov edx,dword ptr [ebp-20A4]
  1303. 0050B9DB mov eax,545DDC
  1304. 0050B9E0 call @LStrAsg
  1305. 0050B9E5 lea ecx,[ebp-20A8]
  1306. 0050B9EB mov edx,50BFD8;'ServerPort'
  1307. 0050B9F0 mov eax,dword ptr [ebp-1C]
  1308. 0050B9F3 call 004248A0
  1309. 0050B9F8 mov eax,dword ptr [ebp-20A8]
  1310. 0050B9FE xor edx,edx
  1311. 0050BA00 call 0040B694
  1312. 0050BA05 test eax,eax
  1313. >0050BA07 jle 0050BA30
  1314. 0050BA09 lea ecx,[ebp-20AC]
  1315. 0050BA0F mov edx,50BFD8;'ServerPort'
  1316. 0050BA14 mov eax,dword ptr [ebp-1C]
  1317. 0050BA17 call 004248A0
  1318. 0050BA1C mov eax,dword ptr [ebp-20AC]
  1319. 0050BA22 xor edx,edx
  1320. 0050BA24 call 0040B694
  1321. 0050BA29 mov [0053E014],eax;gvar_0053E014
  1322. >0050BA2E jmp 0050BA3A
  1323. 0050BA30 mov dword ptr ds:[53E014],0D431;gvar_0053E014
  1324. 0050BA3A mov eax,[00545DD0]
  1325. 0050BA3F call @LStrLen
  1326. 0050BA44 mov dword ptr [ebp-20],eax
  1327. 0050BA47 mov edx,dword ptr [ebp-20]
  1328. 0050BA4A mov eax,13
  1329. 0050BA4F call 0043C040
  1330. 0050BA54 mov dword ptr [ebp-20],eax
  1331. 0050BA57 mov eax,545DE0
  1332. 0050BA5C mov ecx,dword ptr [ebp-20]
  1333. 0050BA5F mov edx,dword ptr ds:[545DD0]
  1334. 0050BA65 call 0040C530
  1335. 0050BA6A lea ecx,[ebp-24]
  1336. 0050BA6D mov edx,50C06C;'bn'
  1337. 0050BA72 mov eax,dword ptr [ebp-1C]
  1338. 0050BA75 call 004248A0
  1339. 0050BA7A mov eax,dword ptr [ebp-24]
  1340. 0050BA7D call @LStrLen
  1341. 0050BA82 mov dword ptr [ebp-20],eax
  1342. 0050BA85 mov edx,dword ptr [ebp-20]
  1343. 0050BA88 mov eax,27
  1344. 0050BA8D call 0043C040
  1345. 0050BA92 mov dword ptr [ebp-20],eax
  1346. 0050BA95 mov eax,545DF4
  1347. 0050BA9A mov ecx,dword ptr [ebp-20]
  1348. 0050BA9D mov edx,dword ptr [ebp-24]
  1349. 0050BAA0 call 0040C530
  1350. 0050BAA5 lea ecx,[ebp-20B0]
  1351. 0050BAAB mov edx,50C078;'cid'
  1352. 0050BAB0 mov eax,dword ptr [ebp-1C]
  1353. 0050BAB3 call 004248A0
  1354. 0050BAB8 mov eax,dword ptr [ebp-20B0]
  1355. 0050BABE xor edx,edx
  1356. 0050BAC0 call 0040B694
  1357. 0050BAC5 mov [00545E1C],eax
  1358. 0050BACA lea ecx,[ebp-20B4]
  1359. 0050BAD0 mov edx,50C084;'ld'
  1360. 0050BAD5 mov eax,dword ptr [ebp-1C]
  1361. 0050BAD8 call 004248A0
  1362. 0050BADD mov eax,dword ptr [ebp-20B4]
  1363. 0050BAE3 xor edx,edx
  1364. 0050BAE5 call 0040B694
  1365. 0050BAEA mov [00545E20],eax
  1366. 0050BAEF lea ecx,[ebp-20B8]
  1367. 0050BAF5 mov edx,50C090;'wc'
  1368. 0050BAFA mov eax,dword ptr [ebp-1C]
  1369. 0050BAFD call 004248A0
  1370. 0050BB02 mov eax,dword ptr [ebp-20B8]
  1371. 0050BB08 xor edx,edx
  1372. 0050BB0A call 0040B694
  1373. 0050BB0F mov [00545E24],eax
  1374. 0050BB14 lea ecx,[ebp-20BC]
  1375. 0050BB1A mov edx,50C09C;'hf'
  1376. 0050BB1F mov eax,dword ptr [ebp-1C]
  1377. 0050BB22 call 004248A0
  1378. 0050BB27 mov eax,dword ptr [ebp-20BC]
  1379. 0050BB2D xor edx,edx
  1380. 0050BB2F call 0040B694
  1381. 0050BB34 mov [00545E34],eax
  1382. 0050BB39 push 0
  1383. 0050BB3B push 0
  1384. 0050BB3D push 0
  1385. 0050BB3F lea ecx,[ebp-20C0]
  1386. 0050BB45 mov edx,50C0A8;'ed'
  1387. 0050BB4A mov eax,dword ptr [ebp-1C]
  1388. 0050BB4D call 004248A0
  1389. 0050BB52 mov eax,dword ptr [ebp-20C0]
  1390. 0050BB58 call 0040D480
  1391. 0050BB5D fstp qword ptr ds:[545E39]
  1392. 0050BB63 wait
  1393. 0050BB64 push 0
  1394. 0050BB66 push 0
  1395. 0050BB68 push 0
  1396. 0050BB6A lea ecx,[ebp-20C4]
  1397. 0050BB70 mov edx,50C0B4;'rd'
  1398. 0050BB75 mov eax,dword ptr [ebp-1C]
  1399. 0050BB78 call 004248A0
  1400. 0050BB7D mov eax,dword ptr [ebp-20C4]
  1401. 0050BB83 call 0040D480
  1402. 0050BB88 fstp qword ptr ds:[545E41]
  1403. 0050BB8E wait
  1404. 0050BB8F fild dword ptr ds:[545E20]
  1405. 0050BB95 fsubr qword ptr ds:[545E39]
  1406. 0050BB9B add esp,0FFFFFFF8
  1407. 0050BB9E fstp qword ptr [esp]
  1408. 0050BBA1 wait
  1409. 0050BBA2 push dword ptr ds:[545E45]
  1410. 0050BBA8 push dword ptr ds:[545E41]
  1411. 0050BBAE call 0047DC04
  1412. 0050BBB3 mov [00545E28],eax
  1413. 0050BBB8 mov dword ptr ds:[545E30],32
  1414. 0050BBC2 mov dword ptr ds:[545E2C],2D
  1415. 0050BBCC lea ecx,[ebp-20C8]
  1416. 0050BBD2 mov edx,50BFEC;'Id'
  1417. 0050BBD7 mov eax,dword ptr [ebp-1C]
  1418. 0050BBDA call 004248A0
  1419. 0050BBDF mov eax,dword ptr [ebp-20C8]
  1420. 0050BBE5 xor edx,edx
  1421. 0050BBE7 call 0040B694
  1422. 0050BBEC mov [00545E4A],ax
  1423. 0050BBF2 lea ecx,[ebp-20CC]
  1424. 0050BBF8 mov edx,50C0C0;'ac'
  1425. 0050BBFD mov eax,dword ptr [ebp-1C]
  1426. 0050BC00 call 004248A0
  1427. 0050BC05 mov eax,dword ptr [ebp-20CC]
  1428. 0050BC0B xor edx,edx
  1429. 0050BC0D call 0040B694
  1430. 0050BC12 mov [00545E4C],ax
  1431. 0050BC18 lea ecx,[ebp-20D0]
  1432. 0050BC1E mov edx,50C0CC;'pc'
  1433. 0050BC23 mov eax,dword ptr [ebp-1C]
  1434. 0050BC26 call 004248A0
  1435. 0050BC2B mov eax,dword ptr [ebp-20D0]
  1436. 0050BC31 xor edx,edx
  1437. 0050BC33 call 0040B694
  1438. 0050BC38 mov [00545E4E],ax
  1439. 0050BC3E lea ecx,[ebp-20D4]
  1440. 0050BC44 mov edx,50C0D8;'eb'
  1441. 0050BC49 mov eax,dword ptr [ebp-1C]
  1442. 0050BC4C call 004248A0
  1443. 0050BC51 mov eax,dword ptr [ebp-20D4]
  1444. 0050BC57 xor edx,edx
  1445. 0050BC59 call 0040B694
  1446. 0050BC5E test eax,eax
  1447. 0050BC60 setne al
  1448. 0050BC63 mov [00545E38],al
  1449. 0050BC68 cmp byte ptr ds:[545E38],0
  1450. >0050BC6F jne 0050BC80
  1451. 0050BC71 lea eax,[ebp-4C]
  1452. 0050BC74 mov edx,50C0E4;'%%LOGIN_NonBoot:非启动版本%%'
  1453. 0050BC79 call @LStrLAsg
  1454. >0050BC7E jmp 0050BCA5
  1455. 0050BC80 cmp dword ptr ds:[545E20],0
  1456. >0050BC87 jg 0050BC98
  1457. 0050BC89 lea eax,[ebp-4C]
  1458. 0050BC8C mov edx,50C10C;'%%LOGIN_NoLeftDay:没有可用时间%%'
  1459. 0050BC91 call @LStrLAsg
  1460. >0050BC96 jmp 0050BCA5
  1461. 0050BC98 lea eax,[ebp-4C]
  1462. 0050BC9B mov edx,50C138;'%%LOGIN_LoginOK:登录成功%%'
  1463. 0050BCA0 call @LStrLAsg
  1464. 0050BCA5 cmp byte ptr ds:[545E38],0
  1465. >0050BCAC je 0050BCC3
  1466. 0050BCAE cmp dword ptr ds:[545E20],0
  1467. >0050BCB5 jle 0050BCC3
  1468. 0050BCB7 mov dword ptr ds:[53E004],1;gvar_0053E004
  1469. >0050BCC1 jmp 0050BCCD
  1470. 0050BCC3 mov dword ptr ds:[53E004],2;gvar_0053E004
  1471. 0050BCCD cmp dword ptr ds:[53E004],1;gvar_0053E004
  1472. 0050BCD4 mov eax,[0053E0C0];^gvar_0053E03C
  1473. 0050BCD9 sete byte ptr [eax]
  1474. 0050BCDC mov eax,dword ptr [ebp-50]
  1475. 0050BCDF call 00480098
  1476. 0050BCE4 mov edx,dword ptr ds:[53E358];^gvar_0053D9F4
  1477. 0050BCEA mov byte ptr [edx],al
  1478. 0050BCEC mov eax,[0053E358];^gvar_0053D9F4
  1479. 0050BCF1 mov al,byte ptr [eax]
  1480. 0050BCF3 mov [00545E50],al
  1481. 0050BCF8 call 0040DA44
  1482. 0050BCFD fstp qword ptr ds:[545DC8]
  1483. 0050BD03 wait
  1484. 0050BD04 mov edx,545DC8
  1485. 0050BD09 mov eax,[0053E408];^gvar_0053E034:TServiceObject
  1486. 0050BD0E mov eax,dword ptr [eax]
  1487. 0050BD10 call 005245F4
  1488. 0050BD15 mov edx,545DE0
  1489. 0050BD1A mov eax,[0053E408];^gvar_0053E034:TServiceObject
  1490. 0050BD1F mov eax,dword ptr [eax]
  1491. 0050BD21 call 00523D08
  1492. >0050BD26 jmp 0050BDD1
  1493. 0050BD2B cmp dword ptr [ebp-64],7DE
  1494. >0050BD32 jne 0050BD46
  1495. 0050BD34 lea eax,[ebp-4C]
  1496. 0050BD37 mov edx,50C15C;'%%LOGIN_FailDueErrAgentServer:登录失败, 无法登录不兼容的代理商服务器%%'
  1497. 0050BD3C call @LStrLAsg
  1498. >0050BD41 jmp 0050BDD1
  1499. 0050BD46 cmp dword ptr [ebp-64],7DC
  1500. >0050BD4D jne 0050BD5E
  1501. 0050BD4F lea eax,[ebp-4C]
  1502. 0050BD52 mov edx,50C1AC;'%%LOGIN_AccountExired:登录失败, 帐号已过期%%'
  1503. 0050BD57 call @LStrLAsg
  1504. >0050BD5C jmp 0050BDD1
  1505. 0050BD5E cmp dword ptr [ebp-64],7DD
  1506. >0050BD65 jne 0050BD76
  1507. 0050BD67 lea eax,[ebp-4C]
  1508. 0050BD6A mov edx,50C1E4;'%%LOGIN_AccountStopped:登录失败, 帐号已停用%%'
  1509. 0050BD6F call @LStrLAsg
  1510. >0050BD74 jmp 0050BDD1
  1511. 0050BD76 cmp dword ptr [ebp-64],7DF
  1512. >0050BD7D jne 0050BD8E
  1513. 0050BD7F lea eax,[ebp-4C]
  1514. 0050BD82 mov edx,50C21C;'%%LOGIN_AgentServerDisabled:登录失败, 代理商服务器已关闭%%'
  1515. 0050BD87 call @LStrLAsg
  1516. >0050BD8C jmp 0050BDD1
  1517. 0050BD8E cmp dword ptr [ebp-64],7E0
  1518. >0050BD95 jne 0050BDA6
  1519. 0050BD97 lea eax,[ebp-4C]
  1520. 0050BD9A mov edx,50C260;'%%LOGIN_FailDueInvalidIP:登录失败, 此帐号不允许从本IP登录%%'
  1521. 0050BD9F call @LStrLAsg
  1522. >0050BDA4 jmp 0050BDD1
  1523. 0050BDA6 lea eax,[ebp-4C]
  1524. 0050BDA9 mov edx,50C2A4;'%%LOGIN_InvalidUserPass:登录失败, 用户名或密码错误%%'
  1525. 0050BDAE call @LStrLAsg
  1526. >0050BDB3 jmp 0050BDD1
  1527. 0050BDB5 lea eax,[ebp-4C]
  1528. 0050BDB8 mov edx,50C2E4;'%%LOGIN_ConnectSvrFail:无法连接服务器%%'
  1529. 0050BDBD call @LStrLAsg
  1530. >0050BDC2 jmp 0050BDD1
  1531. 0050BDC4 lea eax,[ebp-4C]
  1532. 0050BDC7 mov edx,50C2E4;'%%LOGIN_ConnectSvrFail:无法连接服务器%%'
  1533. 0050BDCC call @LStrLAsg
  1534. 0050BDD1 mov eax,dword ptr [ebp-14]
  1535. 0050BDD4 call 0050B5B8
  1536. >0050BDD9 jmp 0050BDEF
  1537. 0050BDDB lea eax,[ebp-4C]
  1538. 0050BDDE mov edx,50C2E4;'%%LOGIN_ConnectSvrFail:无法连接服务器%%'
  1539. 0050BDE3 call @LStrLAsg
  1540. 0050BDE8 xor eax,eax
  1541. 0050BDEA mov [0053E004],eax;gvar_0053E004
  1542. 0050BDEF mov eax,53E008
  1543. 0050BDF4 mov edx,dword ptr [ebp-4C]
  1544. 0050BDF7 call @LStrAsg
  1545. 0050BDFC cmp dword ptr ds:[53E004],1;gvar_0053E004
  1546. >0050BE03 je 0050BE1D
  1547. 0050BE05 cmp dword ptr [ebp-54],5
  1548. >0050BE09 jge 0050BE1D
  1549. 0050BE0B inc dword ptr [ebp-54]
  1550. 0050BE0E push 3E8
  1551. 0050BE13 call kernel32.Sleep
  1552. <0050BE18 jmp 0050B7A4
  1553. 0050BE1D cmp dword ptr ds:[53E004],1;gvar_0053E004
  1554. >0050BE24 je 0050BE30
  1555. 0050BE26 mov dword ptr ds:[53E004],2;gvar_0053E004
  1556. 0050BE30 xor eax,eax
  1557. 0050BE32 pop edx
  1558. 0050BE33 pop ecx
  1559. 0050BE34 pop ecx
  1560. 0050BE35 mov dword ptr fs:[eax],edx
  1561. >0050BE38 jmp 0050BE53
  1562. <0050BE3A jmp @HandleOnException
  1563. 0050BE3F dd 1
  1564. 0050BE43 dd 40A298;Exception
  1565. 0050BE47 dd 50BE4B
  1566. 0050BE4B mov dword ptr [ebp-5C],eax
  1567. 0050BE4E call @DoneExcept
  1568. 0050BE53 mov eax,dword ptr [ebp-1C]
  1569. 0050BE56 call TObject.Free
  1570. 0050BE5B xor eax,eax
  1571. 0050BE5D pop edx
  1572. 0050BE5E pop ecx
  1573. 0050BE5F pop ecx
  1574. 0050BE60 mov dword ptr fs:[eax],edx
  1575. 0050BE63 push 50BEBA
  1576. 0050BE68 lea eax,[ebp-20D4]
  1577. 0050BE6E mov edx,10
  1578. 0050BE73 call @LStrArrayClr
  1579. 0050BE78 lea eax,[ebp-50]
  1580. 0050BE7B mov edx,2
  1581. 0050BE80 call @LStrArrayClr
  1582. 0050BE85 lea eax,[ebp-48]
  1583. 0050BE88 mov edx,dword ptr ds:[506F5C];TFGInt:Pointer
  1584. 0050BE8E mov ecx,3
  1585. 0050BE93 call @FinalizeArray
  1586. 0050BE98 lea eax,[ebp-28]
  1587. 0050BE9B mov edx,2
  1588. 0050BEA0 call @LStrArrayClr
  1589. 0050BEA5 lea eax,[ebp-10]
  1590. 0050BEA8 mov edx,2
  1591. 0050BEAD call @LStrArrayClr
  1592. 0050BEB2 ret
  1593. <0050BEB3 jmp @HandleFinally
  1594. <0050BEB8 jmp 0050BE68
  1595. 0050BEBA mov al,byte ptr [ebp-5]
  1596. 0050BEBD pop edi
  1597. 0050BEBE pop esi
  1598. 0050BEBF pop ebx
  1599. 0050BEC0 mov esp,ebp
  1600. 0050BEC2 pop ebp
  1601. 0050BEC3 ret
  1602. end;*}
  1603.  
  1604. //0050C30C
  1605. {*function sub_0050C30C(?:TContactServerThread):?;
  1606. begin
  1607. 0050C30C push ebp
  1608. 0050C30D mov ebp,esp
  1609. 0050C30F mov ecx,1B2
  1610. 0050C314 push 0
  1611. 0050C316 push 0
  1612. 0050C318 dec ecx
  1613. <0050C319 jne 0050C314
  1614. 0050C31B push ebx
  1615. 0050C31C push esi
  1616. 0050C31D push edi
  1617. 0050C31E mov dword ptr [ebp-4],eax
  1618. 0050C321 xor eax,eax
  1619. 0050C323 push ebp
  1620. 0050C324 push 50C72A
  1621. 0050C329 push dword ptr fs:[eax]
  1622. 0050C32C mov dword ptr fs:[eax],esp
  1623. 0050C32F mov byte ptr [ebp-5],0
  1624. 0050C333 xor eax,eax
  1625. 0050C335 mov dword ptr [ebp-18],eax
  1626. 0050C338 lea eax,[ebp-10]
  1627. 0050C33B mov edx,dword ptr ds:[53E8CC];^gvar_0053E044
  1628. 0050C341 mov edx,dword ptr [edx]
  1629. 0050C343 call @LStrLAsg
  1630. 0050C348 cmp dword ptr [ebp-10],0
  1631. >0050C34C jne 0050C35B
  1632. 0050C34E lea eax,[ebp-10]
  1633. 0050C351 mov edx,50C744;'nxd'
  1634. 0050C356 call @LStrLAsg
  1635. 0050C35B mov esi,545DE0
  1636. 0050C360 lea edi,[ebp-0D49]
  1637. 0050C366 mov ecx,145
  1638. 0050C36B rep movs dword ptr [edi],dword ptr [esi]
  1639. 0050C36D mov dl,1
  1640. 0050C36F mov eax,[00420070];TStringList
  1641. 0050C374 call TObject.Create;TStringList.Create
  1642. 0050C379 mov dword ptr [ebp-1C],eax
  1643. 0050C37C xor eax,eax
  1644. 0050C37E push ebp
  1645. 0050C37F push 50C6D0
  1646. 0050C384 push dword ptr fs:[eax]
  1647. 0050C387 mov dword ptr fs:[eax],esp
  1648. 0050C38A mov byte ptr [ebp-21],0
  1649. 0050C38E cmp dword ptr ds:[53E004],1;gvar_0053E004
  1650. >0050C395 je 0050C3AD
  1651. 0050C397 mov eax,dword ptr [ebp-4]
  1652. 0050C39A call 0050B5D8
  1653. 0050C39F mov byte ptr [ebp-5],al
  1654. 0050C3A2 mov al,byte ptr [ebp-5]
  1655. 0050C3A5 mov byte ptr [ebp-21],al
  1656. >0050C3A8 jmp 0050C6AF
  1657. 0050C3AD cmp dword ptr ds:[53E004],1;gvar_0053E004
  1658. >0050C3B4 jne 0050C6AF
  1659. 0050C3BA mov eax,dword ptr [ebp-4]
  1660. 0050C3BD mov al,byte ptr [eax+44];TContactServerThread.?f44:byte
  1661. 0050C3C0 push eax
  1662. 0050C3C1 lea edx,[ebp-18]
  1663. 0050C3C4 xor ecx,ecx
  1664. 0050C3C6 mov eax,dword ptr [ebp-4]
  1665. 0050C3C9 call 0050AF48
  1666. 0050C3CE test al,al
  1667. >0050C3D0 je 0050C6AF
  1668. 0050C3D6 mov eax,dword ptr [ebp-4]
  1669. 0050C3D9 mov byte ptr [eax+44],0;TContactServerThread.?f44:byte
  1670. 0050C3DD lea eax,[ebp-0C]
  1671. 0050C3E0 push eax
  1672. 0050C3E1 mov eax,[00545DD0]
  1673. 0050C3E6 mov dword ptr [ebp-0D6C],eax
  1674. 0050C3EC mov byte ptr [ebp-0D68],0B
  1675. 0050C3F3 xor eax,eax
  1676. 0050C3F5 mov dword ptr [ebp-0D64],eax
  1677. 0050C3FB mov byte ptr [ebp-0D60],0B
  1678. 0050C402 mov eax,dword ptr [ebp-10]
  1679. 0050C405 mov dword ptr [ebp-0D5C],eax
  1680. 0050C40B mov byte ptr [ebp-0D58],0B
  1681. 0050C412 mov eax,[00545DDC]
  1682. 0050C417 mov dword ptr [ebp-0D54],eax
  1683. 0050C41D mov byte ptr [ebp-0D50],0B
  1684. 0050C424 lea edx,[ebp-0D6C]
  1685. 0050C42A mov ecx,3
  1686. 0050C42F mov eax,50C750;'username=%s
  1687.  
  1688. version=%s
  1689.  
  1690. clitype=%s
  1691.  
  1692. temp=%s
  1693.  
  1694. '
  1695. 0050C434 call 0040CC48
  1696. 0050C439 mov dword ptr [ebp-20],3F7
  1697. 0050C440 mov eax,dword ptr [ebp-0C]
  1698. 0050C443 call @LStrToPChar
  1699. 0050C448 push eax
  1700. 0050C449 mov eax,dword ptr [ebp-0C]
  1701. 0050C44C call @LStrLen
  1702. 0050C451 push eax
  1703. 0050C452 mov ecx,dword ptr [ebp-20]
  1704. 0050C455 mov edx,dword ptr [ebp-18]
  1705. 0050C458 mov eax,dword ptr [ebp-4]
  1706. 0050C45B call 0050B13C
  1707. 0050C460 test al,al
  1708. >0050C462 je 0050C6AF
  1709. 0050C468 lea eax,[ebp-34]
  1710. 0050C46B xor ecx,ecx
  1711. 0050C46D mov edx,0C
  1712. 0050C472 call @FillChar
  1713. 0050C477 push 0
  1714. 0050C479 push 0C
  1715. 0050C47B lea eax,[ebp-34]
  1716. 0050C47E push eax
  1717. 0050C47F mov eax,dword ptr [ebp-18]
  1718. 0050C482 push eax
  1719. 0050C483 call wsock32.recv
  1720. 0050C488 test eax,eax
  1721. >0050C48A jle 0050C6AF
  1722. 0050C490 mov eax,dword ptr [ebp-30]
  1723. 0050C493 sub eax,7DA
  1724. >0050C498 jne 0050C699
  1725. 0050C49E cmp dword ptr [ebp-2C],0
  1726. >0050C4A2 jbe 0050C6AF
  1727. 0050C4A8 lea eax,[ebp-835]
  1728. 0050C4AE xor ecx,ecx
  1729. 0050C4B0 mov edx,800
  1730. 0050C4B5 call @FillChar
  1731. 0050C4BA push 800
  1732. 0050C4BF mov eax,dword ptr [ebp-2C]
  1733. 0050C4C2 push eax
  1734. 0050C4C3 lea ecx,[ebp-835]
  1735. 0050C4C9 mov edx,dword ptr [ebp-18]
  1736. 0050C4CC mov eax,dword ptr [ebp-4]
  1737. 0050C4CF call 0050B2B4
  1738. 0050C4D4 test al,al
  1739. >0050C4D6 je 0050C6AF
  1740. 0050C4DC mov byte ptr [ebp-21],1
  1741. 0050C4E0 lea eax,[ebp-0D70]
  1742. 0050C4E6 lea edx,[ebp-835]
  1743. 0050C4EC mov ecx,801
  1744. 0050C4F1 call @LStrFromArray
  1745. 0050C4F6 mov edx,dword ptr [ebp-0D70]
  1746. 0050C4FC mov eax,dword ptr [ebp-1C]
  1747. 0050C4FF mov ecx,dword ptr [eax]
  1748. 0050C501 call dword ptr [ecx+2C];TStrings.SetTextStr
  1749. 0050C504 lea edx,[ebp-0D78]
  1750. 0050C50A mov eax,dword ptr [ebp-1C]
  1751. 0050C50D mov ecx,dword ptr [eax]
  1752. 0050C50F call dword ptr [ecx+1C];TStrings.GetTextStr
  1753. 0050C512 mov eax,dword ptr [ebp-0D78]
  1754. 0050C518 lea edx,[ebp-0D74]
  1755. 0050C51E call 0050A904
  1756. 0050C523 mov edx,dword ptr [ebp-0D74]
  1757. 0050C529 mov eax,dword ptr [ebp-1C]
  1758. 0050C52C mov ecx,dword ptr [eax]
  1759. 0050C52E call dword ptr [ecx+2C];TStrings.SetTextStr
  1760. 0050C531 lea ecx,[ebp-0D7C]
  1761. 0050C537 mov edx,50C788;'TimeSpan'
  1762. 0050C53C mov eax,dword ptr [ebp-1C]
  1763. 0050C53F call 004248A0
  1764. 0050C544 mov eax,dword ptr [ebp-0D7C]
  1765. 0050C54A xor edx,edx
  1766. 0050C54C call 0040B694
  1767. 0050C551 mov dword ptr [ebp-14],eax
  1768. 0050C554 lea ecx,[ebp-0D80]
  1769. 0050C55A mov edx,50C79C;'ld'
  1770. 0050C55F mov eax,dword ptr [ebp-1C]
  1771. 0050C562 call 004248A0
  1772. 0050C567 mov eax,dword ptr [ebp-0D80]
  1773. 0050C56D xor edx,edx
  1774. 0050C56F call 0040B694
  1775. 0050C574 mov dword ptr [ebp-0D09],eax
  1776. 0050C57A push 0
  1777. 0050C57C push 0
  1778. 0050C57E push 0
  1779. 0050C580 lea ecx,[ebp-0D84]
  1780. 0050C586 mov edx,50C7A8;'ed'
  1781. 0050C58B mov eax,dword ptr [ebp-1C]
  1782. 0050C58E call 004248A0
  1783. 0050C593 mov eax,dword ptr [ebp-0D84]
  1784. 0050C599 call 0040D480
  1785. 0050C59E fstp qword ptr [ebp-0CF0]
  1786. 0050C5A4 wait
  1787. 0050C5A5 cmp dword ptr [ebp-14],12C
  1788. >0050C5AC jbe 0050C5B7
  1789. 0050C5AE mov eax,dword ptr [ebp-4]
  1790. 0050C5B1 mov edx,dword ptr [ebp-14]
  1791. 0050C5B4 mov dword ptr [eax+40],edx;TContactServerThread.?f40:dword
  1792. 0050C5B7 mov edx,50C7B4;'wc'
  1793. 0050C5BC mov eax,dword ptr [ebp-1C]
  1794. 0050C5BF mov ecx,dword ptr [eax]
  1795. 0050C5C1 call dword ptr [ecx+58];TStrings.IndexOfName
  1796. 0050C5C4 test eax,eax
  1797. >0050C5C6 jl 0050C5EE
  1798. 0050C5C8 lea ecx,[ebp-0D88]
  1799. 0050C5CE mov edx,50C7B4;'wc'
  1800. 0050C5D3 mov eax,dword ptr [ebp-1C]
  1801. 0050C5D6 call 004248A0
  1802. 0050C5DB mov eax,dword ptr [ebp-0D88]
  1803. 0050C5E1 xor edx,edx
  1804. 0050C5E3 call 0040B694
  1805. 0050C5E8 mov dword ptr [ebp-0D05],eax
  1806. 0050C5EE mov edx,50C7C0;'eb'
  1807. 0050C5F3 mov eax,dword ptr [ebp-1C]
  1808. 0050C5F6 mov ecx,dword ptr [eax]
  1809. 0050C5F8 call dword ptr [ecx+58];TStrings.IndexOfName
  1810. 0050C5FB test eax,eax
  1811. >0050C5FD jl 0050C62A
  1812. 0050C5FF lea ecx,[ebp-0D8C]
  1813. 0050C605 mov edx,50C7C0;'eb'
  1814. 0050C60A mov eax,dword ptr [ebp-1C]
  1815. 0050C60D call 004248A0
  1816. 0050C612 mov eax,dword ptr [ebp-0D8C]
  1817. 0050C618 xor edx,edx
  1818. 0050C61A call 0040B694
  1819. 0050C61F test eax,eax
  1820. 0050C621 setne al
  1821. 0050C624 mov byte ptr [ebp-0CF1],al
  1822. 0050C62A mov edx,50C7CC;'hf'
  1823. 0050C62F mov eax,dword ptr [ebp-1C]
  1824. 0050C632 mov ecx,dword ptr [eax]
  1825. 0050C634 call dword ptr [ecx+58];TStrings.IndexOfName
  1826. 0050C637 test eax,eax
  1827. >0050C639 jl 0050C661
  1828. 0050C63B lea ecx,[ebp-0D90]
  1829. 0050C641 mov edx,50C7CC;'hf'
  1830. 0050C646 mov eax,dword ptr [ebp-1C]
  1831. 0050C649 call 004248A0
  1832. 0050C64E mov eax,dword ptr [ebp-0D90]
  1833. 0050C654 xor edx,edx
  1834. 0050C656 call 0040B694
  1835. 0050C65B mov dword ptr [ebp-0CF5],eax
  1836. 0050C661 lea edx,[ebp-0D49]
  1837. 0050C667 mov eax,[0053E408];^gvar_0053E034:TServiceObject
  1838. 0050C66C mov eax,dword ptr [eax]
  1839. 0050C66E call 00523D08
  1840. 0050C673 cmp byte ptr [ebp-0CF1],0
  1841. >0050C67A je 0050C685
  1842. 0050C67C cmp dword ptr [ebp-0D09],0
  1843. >0050C683 jg 0050C689
  1844. 0050C685 xor eax,eax
  1845. >0050C687 jmp 0050C68B
  1846. 0050C689 mov al,1
  1847. 0050C68B mov edx,dword ptr ds:[53E0C0];^gvar_0053E03C
  1848. 0050C691 mov byte ptr [edx],al
  1849. 0050C693 mov byte ptr [ebp-5],1
  1850. >0050C697 jmp 0050C6AF
  1851. 0050C699 mov byte ptr [ebp-21],1
  1852. 0050C69D mov eax,dword ptr [ebp-4]
  1853. 0050C6A0 xor edx,edx
  1854. 0050C6A2 mov dword ptr [eax+4C],edx;TContactServerThread.?f4C:dword
  1855. 0050C6A5 mov dword ptr ds:[53E004],2;gvar_0053E004
  1856. 0050C6AF cmp byte ptr [ebp-21],0
  1857. >0050C6B3 jne 0050C6C6
  1858. 0050C6B5 mov eax,dword ptr [ebp-4]
  1859. 0050C6B8 mov byte ptr [eax+44],1;TContactServerThread.?f44:byte
  1860. 0050C6BC mov eax,dword ptr [ebp-4]
  1861. 0050C6BF mov dword ptr [eax+40],12C;TContactServerThread.?f40:dword
  1862. 0050C6C6 xor eax,eax
  1863. 0050C6C8 pop edx
  1864. 0050C6C9 pop ecx
  1865. 0050C6CA pop ecx
  1866. 0050C6CB mov dword ptr fs:[eax],edx
  1867. >0050C6CE jmp 0050C6E9
  1868. <0050C6D0 jmp @HandleOnException
  1869. 0050C6D5 dd 1
  1870. 0050C6D9 dd 40A298;Exception
  1871. 0050C6DD dd 50C6E1
  1872. 0050C6E1 mov dword ptr [ebp-28],eax
  1873. 0050C6E4 call @DoneExcept
  1874. 0050C6E9 mov eax,dword ptr [ebp-1C]
  1875. 0050C6EC call TObject.Free
  1876. 0050C6F1 cmp dword ptr [ebp-18],0
  1877. >0050C6F5 je 0050C6FF
  1878. 0050C6F7 mov eax,dword ptr [ebp-18]
  1879. 0050C6FA call 0050B5B8
  1880. 0050C6FF xor eax,eax
  1881. 0050C701 pop edx
  1882. 0050C702 pop ecx
  1883. 0050C703 pop ecx
  1884. 0050C704 mov dword ptr fs:[eax],edx
  1885. 0050C707 push 50C731
  1886. 0050C70C lea eax,[ebp-0D90]
  1887. 0050C712 mov edx,9
  1888. 0050C717 call @LStrArrayClr
  1889. 0050C71C lea eax,[ebp-10]
  1890. 0050C71F mov edx,2
  1891. 0050C724 call @LStrArrayClr
  1892. 0050C729 ret
  1893. <0050C72A jmp @HandleFinally
  1894. <0050C72F jmp 0050C70C
  1895. 0050C731 mov al,byte ptr [ebp-5]
  1896. 0050C734 pop edi
  1897. 0050C735 pop esi
  1898. 0050C736 pop ebx
  1899. 0050C737 mov esp,ebp
  1900. 0050C739 pop ebp
  1901. 0050C73A ret
  1902. end;*}
  1903.  
  1904. //0050C7D0
  1905. constructor TContactServerThread.Create;
  1906. begin
  1907. {*
  1908. 0050C7D0 push ebp
  1909. 0050C7D1 mov ebp,esp
  1910. 0050C7D3 add esp,0FFFFFFF8
  1911. 0050C7D6 test dl,dl
  1912. >0050C7D8 je 0050C7E2
  1913. 0050C7DA add esp,0FFFFFFF0
  1914. 0050C7DD call @ClassCreate
  1915. 0050C7E2 mov byte ptr [ebp-5],dl
  1916. 0050C7E5 mov dword ptr [ebp-4],eax
  1917. 0050C7E8 mov cl,1
  1918. 0050C7EA xor edx,edx
  1919. 0050C7EC mov eax,dword ptr [ebp-4]
  1920. 0050C7EF call TSysLoadThread.Create
  1921. 0050C7F4 mov eax,dword ptr [ebp-4]
  1922. 0050C7F7 mov dword ptr [eax+40],12C;TContactServerThread.?f40:dword
  1923. 0050C7FE xor eax,eax
  1924. 0050C800 mov [0053E004],eax;gvar_0053E004
  1925. 0050C805 mov eax,dword ptr [ebp-4]
  1926. 0050C808 mov byte ptr [eax+0F],1;TContactServerThread.FFreeOnTerminate:Boolean
  1927. 0050C80C mov eax,dword ptr [ebp-4]
  1928. 0050C80F cmp byte ptr [ebp-5],0
  1929. >0050C813 je 0050C824
  1930. 0050C815 call @AfterConstruction
  1931. 0050C81A pop dword ptr fs:[0]
  1932. 0050C821 add esp,0C
  1933. 0050C824 mov eax,dword ptr [ebp-4]
  1934. 0050C827 pop ecx
  1935. 0050C828 pop ecx
  1936. 0050C829 pop ebp
  1937. 0050C82A ret
  1938. *}
  1939. end;
  1940.  
  1941. //0050C82C
  1942. destructor TContactServerThread.Destroy;
  1943. begin
  1944. {*
  1945. 0050C82C push ebp
  1946. 0050C82D mov ebp,esp
  1947. 0050C82F add esp,0FFFFFFF8
  1948. 0050C832 call @BeforeDestruction
  1949. 0050C837 mov byte ptr [ebp-5],dl
  1950. 0050C83A mov dword ptr [ebp-4],eax
  1951. 0050C83D mov dl,byte ptr [ebp-5]
  1952. 0050C840 and dl,0FC
  1953. 0050C843 mov eax,dword ptr [ebp-4]
  1954. 0050C846 call TThread.Destroy
  1955. 0050C84B cmp byte ptr [ebp-5],0
  1956. >0050C84F jle 0050C859
  1957. 0050C851 mov eax,dword ptr [ebp-4]
  1958. 0050C854 call @ClassDestroy
  1959. 0050C859 pop ecx
  1960. 0050C85A pop ecx
  1961. 0050C85B pop ebp
  1962. 0050C85C ret
  1963. *}
  1964. end;
  1965.  
  1966. Initialization
  1967. Finalization
  1968. //0050C860
  1969. {*
  1970. 0050C860 push ebp
  1971. 0050C861 mov ebp,esp
  1972. 0050C863 xor eax,eax
  1973. 0050C865 push ebp
  1974. 0050C866 push 50C8B6
  1975. 0050C86B push dword ptr fs:[eax]
  1976. 0050C86E mov dword ptr fs:[eax],esp
  1977. 0050C871 inc dword ptr ds:[5462F4]
  1978. >0050C877 jne 0050C8A8
  1979. 0050C879 mov eax,53E018;gvar_0053E018:array[3] of String
  1980. 0050C87E mov ecx,3
  1981. 0050C883 mov edx,dword ptr ds:[4010D8];String:Pointer
  1982. 0050C889 call @FinalizeArray
  1983. 0050C88E mov eax,545DC8
  1984. 0050C893 mov edx,dword ptr ds:[48005C];THxDLoginInfo
  1985. 0050C899 call @FinalizeRecord
  1986. 0050C89E mov eax,53E008
  1987. 0050C8A3 call @LStrClr
  1988. 0050C8A8 xor eax,eax
  1989. 0050C8AA pop edx
  1990. 0050C8AB pop ecx
  1991. 0050C8AC pop ecx
  1992. 0050C8AD mov dword ptr fs:[eax],edx
  1993. 0050C8B0 push 50C8BD
  1994. 0050C8B5 ret
  1995. <0050C8B6 jmp @HandleFinally
  1996. <0050C8BB jmp 0050C8B5
  1997. 0050C8BD pop ebp
  1998. 0050C8BE ret
  1999. *}
  2000. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement