Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //***************************************************
- //IDR home page: http://kpnc.org/idr32/en
- //Decompiled by IDR v.29.07.2015 test private version
- //***************************************************
- unit _Unit202;
- interface
- uses
- SysUtils, Classes;
- type
- TContactServerThread = class(TThread)
- public
- f40:dword;//f40
- f44:byte;//f44
- f45:byte;//f45
- f48:dword;//f48
- f4C:dword;//f4C
- destructor Destroy; virtual;//0050C82C
- procedure Execute; virtual;//v4//0050B018
- constructor Create;
- end;
- implementation
- //0050A8DC
- procedure sub_0050A8DC;
- begin
- {*
- 0050A8DC cmp dword ptr ds:[53E010],0;gvar_0053E010:TContactServerThread
- >0050A8E3 jne 0050A900
- 0050A8E5 mov dl,1
- 0050A8E7 mov eax,[0050A870];TContactServerThread
- 0050A8EC call TContactServerThread.Create;TContactServerThread.Create
- 0050A8F1 mov [0053E010],eax;gvar_0053E010:TContactServerThread
- 0050A8F6 mov eax,[0053E010];0x0 gvar_0053E010:TContactServerThread
- 0050A8FB call 0042F2FC
- 0050A900 ret
- *}
- end;
- //0050A904
- {*procedure sub_0050A904(?:AnsiString; ?:AnsiString);
- begin
- 0050A904 push ebp
- 0050A905 mov ebp,esp
- 0050A907 add esp,0FFFFF7E8
- 0050A90D mov dword ptr [ebp-8],edx
- 0050A910 mov dword ptr [ebp-4],eax
- 0050A913 mov eax,dword ptr [ebp-4]
- 0050A916 call @LStrLen
- 0050A91B mov dword ptr [ebp-10],eax
- 0050A91E lea eax,[ebp-815]
- 0050A924 xor ecx,ecx
- 0050A926 mov edx,800
- 0050A92B call @FillChar
- 0050A930 lea eax,[ebp-815]
- 0050A936 mov edx,dword ptr [ebp-4]
- 0050A939 call 0040C4FC
- 0050A93E mov eax,dword ptr [ebp-10]
- 0050A941 dec eax
- 0050A942 test eax,eax
- >0050A944 jl 0050A96F
- 0050A946 inc eax
- 0050A947 mov dword ptr [ebp-14],eax
- 0050A94A mov dword ptr [ebp-0C],0
- 0050A951 mov eax,dword ptr [ebp-0C]
- 0050A954 mov al,byte ptr [ebp+eax-815]
- 0050A95B xor al,81
- 0050A95D mov edx,dword ptr [ebp-0C]
- 0050A960 mov byte ptr [ebp+edx-815],al
- 0050A967 inc dword ptr [ebp-0C]
- 0050A96A dec dword ptr [ebp-14]
- <0050A96D jne 0050A951
- 0050A96F mov eax,dword ptr [ebp-8]
- 0050A972 lea edx,[ebp-815]
- 0050A978 mov ecx,801
- 0050A97D call @LStrFromArray
- 0050A982 mov esp,ebp
- 0050A984 pop ebp
- 0050A985 ret
- end;*}
- //0050A988
- {*procedure sub_0050A988(?:AnsiString);
- begin
- 0050A988 push ebp
- 0050A989 mov ebp,esp
- 0050A98B push ecx
- 0050A98C mov dword ptr [ebp-4],eax
- 0050A98F mov eax,dword ptr [ebp-4]
- 0050A992 mov edx,50A9A8;'148348760270428475248277468536449365380014705767794542885528540488840384993102735169681728886154553359079083996567172623160729960692113794999915989151446092821328005694069547217413135950160792320425963465473794812832768838742754357280166652424353374094351915566029597359235765535467844470935797793204031863139'
- 0050A997 call @LStrAsg
- 0050A99C pop ecx
- 0050A99D pop ebp
- 0050A99E ret
- end;*}
- //0050AAE0
- {*procedure sub_0050AAE0(?:?; ?:?);
- begin
- 0050AAE0 push ebp
- 0050AAE1 mov ebp,esp
- 0050AAE3 add esp,0FFFFFFF4
- 0050AAE6 mov dword ptr [ebp-8],edx
- 0050AAE9 mov dword ptr [ebp-4],eax
- 0050AAEC imul eax,dword ptr [ebp-8],3E8
- 0050AAF3 mov dword ptr [ebp-0C],eax
- 0050AAF6 push 4
- 0050AAF8 lea eax,[ebp-0C]
- 0050AAFB push eax
- 0050AAFC push 1006
- 0050AB01 push 0FFFF
- 0050AB06 mov eax,dword ptr [ebp-4]
- 0050AB09 push eax
- 0050AB0A call wsock32.setsockopt
- 0050AB0F mov esp,ebp
- 0050AB11 pop ebp
- 0050AB12 ret
- end;*}
- //0050AB14
- {*function sub_0050AB14(?:AnsiString):?;
- begin
- 0050AB14 push ebp
- 0050AB15 mov ebp,esp
- 0050AB17 add esp,0FFFFFFDC
- 0050AB1A push ebx
- 0050AB1B push esi
- 0050AB1C push edi
- 0050AB1D xor edx,edx
- 0050AB1F mov dword ptr [ebp-24],edx
- 0050AB22 mov dword ptr [ebp-20],edx
- 0050AB25 mov dword ptr [ebp-4],eax
- 0050AB28 mov eax,dword ptr [ebp-4]
- 0050AB2B call @LStrAddRef
- 0050AB30 xor eax,eax
- 0050AB32 push ebp
- 0050AB33 push 50AC39
- 0050AB38 push dword ptr fs:[eax]
- 0050AB3B mov dword ptr fs:[eax],esp
- 0050AB3E mov dl,1
- 0050AB40 mov eax,[00420070];TStringList
- 0050AB45 call TObject.Create;TStringList.Create
- 0050AB4A mov dword ptr [ebp-0C],eax
- 0050AB4D mov byte ptr [ebp-5],1
- 0050AB51 xor eax,eax
- 0050AB53 push ebp
- 0050AB54 push 50ABF1
- 0050AB59 push dword ptr fs:[eax]
- 0050AB5C mov dword ptr fs:[eax],esp
- 0050AB5F mov al,[0050AC4C];0x1
- 0050AB64 push eax
- 0050AB65 lea eax,[ebp-20]
- 0050AB68 push eax
- 0050AB69 mov ecx,50AC58;'
- '
- 0050AB6E mov edx,50AC64;'.'
- 0050AB73 mov eax,dword ptr [ebp-4]
- 0050AB76 call 00411568
- 0050AB7B mov edx,dword ptr [ebp-20]
- 0050AB7E mov eax,dword ptr [ebp-0C]
- 0050AB81 mov ecx,dword ptr [eax]
- 0050AB83 call dword ptr [ecx+2C];TStrings.SetTextStr
- 0050AB86 mov eax,dword ptr [ebp-0C]
- 0050AB89 mov edx,dword ptr [eax]
- 0050AB8B call dword ptr [edx+14];TStringList.GetCount
- 0050AB8E cmp eax,4
- >0050AB91 jne 0050ABE3
- 0050AB93 mov eax,dword ptr [ebp-0C]
- 0050AB96 mov edx,dword ptr [eax]
- 0050AB98 call dword ptr [edx+14];TStringList.GetCount
- 0050AB9B dec eax
- 0050AB9C test eax,eax
- >0050AB9E jl 0050ABE7
- 0050ABA0 inc eax
- 0050ABA1 mov dword ptr [ebp-18],eax
- 0050ABA4 mov dword ptr [ebp-10],0
- 0050ABAB lea ecx,[ebp-24]
- 0050ABAE mov edx,dword ptr [ebp-10]
- 0050ABB1 mov eax,dword ptr [ebp-0C]
- 0050ABB4 mov ebx,dword ptr [eax]
- 0050ABB6 call dword ptr [ebx+0C];TStringList.Get
- 0050ABB9 mov eax,dword ptr [ebp-24]
- 0050ABBC call 0040B654
- 0050ABC1 mov dword ptr [ebp-14],eax
- 0050ABC4 cmp dword ptr [ebp-14],0
- >0050ABC8 jl 0050ABD3
- 0050ABCA cmp dword ptr [ebp-14],0FF
- >0050ABD1 jle 0050ABD9
- 0050ABD3 mov byte ptr [ebp-5],0
- >0050ABD7 jmp 0050ABE7
- 0050ABD9 inc dword ptr [ebp-10]
- 0050ABDC dec dword ptr [ebp-18]
- <0050ABDF jne 0050ABAB
- >0050ABE1 jmp 0050ABE7
- 0050ABE3 mov byte ptr [ebp-5],0
- 0050ABE7 xor eax,eax
- 0050ABE9 pop edx
- 0050ABEA pop ecx
- 0050ABEB pop ecx
- 0050ABEC mov dword ptr fs:[eax],edx
- >0050ABEF jmp 0050AC0E
- <0050ABF1 jmp @HandleOnException
- 0050ABF6 dd 1
- 0050ABFA dd 40A298;Exception
- 0050ABFE dd 50AC02
- 0050AC02 mov dword ptr [ebp-1C],eax
- 0050AC05 mov byte ptr [ebp-5],0
- 0050AC09 call @DoneExcept
- 0050AC0E mov eax,dword ptr [ebp-0C]
- 0050AC11 call TObject.Free
- 0050AC16 xor eax,eax
- 0050AC18 pop edx
- 0050AC19 pop ecx
- 0050AC1A pop ecx
- 0050AC1B mov dword ptr fs:[eax],edx
- 0050AC1E push 50AC40
- 0050AC23 lea eax,[ebp-24]
- 0050AC26 mov edx,2
- 0050AC2B call @LStrArrayClr
- 0050AC30 lea eax,[ebp-4]
- 0050AC33 call @LStrClr
- 0050AC38 ret
- <0050AC39 jmp @HandleFinally
- <0050AC3E jmp 0050AC23
- 0050AC40 mov al,byte ptr [ebp-5]
- 0050AC43 pop edi
- 0050AC44 pop esi
- 0050AC45 pop ebx
- 0050AC46 mov esp,ebp
- 0050AC48 pop ebp
- 0050AC49 ret
- end;*}
- //0050AC68
- {*function sub_0050AC68(?:?; ?:AnsiString; ?:?):?;
- begin
- 0050AC68 push ebp
- 0050AC69 mov ebp,esp
- 0050AC6B add esp,0FFFFFEC8
- 0050AC71 push ebx
- 0050AC72 push esi
- 0050AC73 push edi
- 0050AC74 xor ebx,ebx
- 0050AC76 mov dword ptr [ebp-18],ebx
- 0050AC79 mov dword ptr [ebp-0C],ecx
- 0050AC7C mov dword ptr [ebp-8],edx
- 0050AC7F mov dword ptr [ebp-4],eax
- 0050AC82 mov eax,dword ptr [ebp-8]
- 0050AC85 call @LStrAddRef
- 0050AC8A xor eax,eax
- 0050AC8C push ebp
- 0050AC8D push 50AE1E
- 0050AC92 push dword ptr fs:[eax]
- 0050AC95 mov dword ptr fs:[eax],esp
- 0050AC98 mov byte ptr [ebp-0D],0
- 0050AC9C xor eax,eax
- 0050AC9E push ebp
- 0050AC9F push 50ADF6
- 0050ACA4 push dword ptr fs:[eax]
- 0050ACA7 mov dword ptr fs:[eax],esp
- 0050ACAA mov eax,dword ptr [ebp-8]
- 0050ACAD call 0050AB14
- 0050ACB2 test al,al
- >0050ACB4 je 0050ACC3
- 0050ACB6 lea eax,[ebp-18]
- 0050ACB9 mov edx,dword ptr [ebp-8]
- 0050ACBC call @LStrLAsg
- >0050ACC1 jmp 0050ACE1
- 0050ACC3 lea edx,[ebp-18]
- 0050ACC6 mov eax,dword ptr [ebp-8]
- 0050ACC9 call 00482A80
- 0050ACCE cmp dword ptr [ebp-18],0
- >0050ACD2 jne 0050ACE1
- 0050ACD4 xor eax,eax
- 0050ACD6 pop edx
- 0050ACD7 pop ecx
- 0050ACD8 pop ecx
- 0050ACD9 mov dword ptr fs:[eax],edx
- >0050ACDC jmp 0050AE00
- 0050ACE1 mov eax,dword ptr [ebp-4]
- 0050ACE4 xor edx,edx
- 0050ACE6 mov dword ptr [eax],edx
- 0050ACE8 push 0
- 0050ACEA push 1
- 0050ACEC push 2
- 0050ACEE call wsock32.socket
- 0050ACF3 mov edx,dword ptr [ebp-4]
- 0050ACF6 mov dword ptr [edx],eax
- 0050ACF8 mov eax,dword ptr [ebp-4]
- 0050ACFB mov eax,dword ptr [eax]
- 0050ACFD mov edx,3C
- 0050AD02 call 0050AAE0
- 0050AD07 mov word ptr [ebp-34],2
- 0050AD0D mov eax,dword ptr [ebp-18]
- 0050AD10 call @LStrToPChar
- 0050AD15 push eax
- 0050AD16 call wsock32.inet_addr
- 0050AD1B mov dword ptr [ebp-30],eax
- 0050AD1E mov ax,word ptr [ebp-0C]
- 0050AD22 push eax
- 0050AD23 call wsock32.htons
- 0050AD28 mov word ptr [ebp-32],ax
- 0050AD2C mov dword ptr [ebp-20],5
- 0050AD33 xor eax,eax
- 0050AD35 mov dword ptr [ebp-1C],eax
- 0050AD38 lea eax,[ebp-138]
- 0050AD3E call 00479D40
- 0050AD43 lea edx,[ebp-138]
- 0050AD49 mov eax,dword ptr [ebp-4]
- 0050AD4C mov eax,dword ptr [eax]
- 0050AD4E call 00479D14
- 0050AD53 mov dword ptr [ebp-24],1
- 0050AD5A lea eax,[ebp-24]
- 0050AD5D push eax
- 0050AD5E push 8004667E
- 0050AD63 mov eax,dword ptr [ebp-4]
- 0050AD66 mov eax,dword ptr [eax]
- 0050AD68 push eax
- 0050AD69 call wsock32.ioctlsocket
- 0050AD6E mov dword ptr [ebp-14],eax
- 0050AD71 cmp dword ptr [ebp-14],0FFFFFFFF
- >0050AD75 je 0050ADD3
- 0050AD77 push 10
- 0050AD79 lea eax,[ebp-34]
- 0050AD7C push eax
- 0050AD7D mov eax,dword ptr [ebp-4]
- 0050AD80 mov eax,dword ptr [eax]
- 0050AD82 push eax
- 0050AD83 call wsock32.connect
- 0050AD88 lea eax,[ebp-20]
- 0050AD8B push eax
- 0050AD8C push 0
- 0050AD8E lea eax,[ebp-138]
- 0050AD94 push eax
- 0050AD95 push 0
- 0050AD97 push 0FF
- 0050AD99 call wsock32.select
- 0050AD9E mov dword ptr [ebp-14],eax
- 0050ADA1 cmp dword ptr [ebp-14],0
- >0050ADA5 je 0050ADD3
- 0050ADA7 cmp dword ptr [ebp-14],0FFFFFFFF
- >0050ADAB je 0050ADD3
- 0050ADAD xor eax,eax
- 0050ADAF mov dword ptr [ebp-24],eax
- 0050ADB2 lea eax,[ebp-24]
- 0050ADB5 push eax
- 0050ADB6 push 8004667E
- 0050ADBB mov eax,dword ptr [ebp-4]
- 0050ADBE mov eax,dword ptr [eax]
- 0050ADC0 push eax
- 0050ADC1 call wsock32.ioctlsocket
- 0050ADC6 mov dword ptr [ebp-14],eax
- 0050ADC9 cmp dword ptr [ebp-14],0FFFFFFFF
- >0050ADCD je 0050ADD3
- 0050ADCF mov byte ptr [ebp-0D],1
- 0050ADD3 cmp byte ptr [ebp-0D],0
- >0050ADD7 jne 0050ADEC
- 0050ADD9 mov eax,dword ptr [ebp-4]
- 0050ADDC cmp dword ptr [eax],0
- >0050ADDF je 0050ADEC
- 0050ADE1 mov eax,dword ptr [ebp-4]
- 0050ADE4 mov eax,dword ptr [eax]
- 0050ADE6 push eax
- 0050ADE7 call wsock32.closesocket
- 0050ADEC xor eax,eax
- 0050ADEE pop edx
- 0050ADEF pop ecx
- 0050ADF0 pop ecx
- 0050ADF1 mov dword ptr fs:[eax],edx
- >0050ADF4 jmp 0050AE00
- <0050ADF6 jmp @HandleAnyException
- 0050ADFB call @DoneExcept
- 0050AE00 xor eax,eax
- 0050AE02 pop edx
- 0050AE03 pop ecx
- 0050AE04 pop ecx
- 0050AE05 mov dword ptr fs:[eax],edx
- 0050AE08 push 50AE25
- 0050AE0D lea eax,[ebp-18]
- 0050AE10 call @LStrClr
- 0050AE15 lea eax,[ebp-8]
- 0050AE18 call @LStrClr
- 0050AE1D ret
- <0050AE1E jmp @HandleFinally
- <0050AE23 jmp 0050AE0D
- 0050AE25 mov al,byte ptr [ebp-0D]
- 0050AE28 pop edi
- 0050AE29 pop esi
- 0050AE2A pop ebx
- 0050AE2B mov esp,ebp
- 0050AE2D pop ebp
- 0050AE2E ret 4
- end;*}
- //0050AE98
- {*procedure sub_0050AE98(?:AnsiString);
- begin
- 0050AE98 push ebp
- 0050AE99 mov ebp,esp
- 0050AE9B add esp,0FFFFFFF8
- 0050AE9E xor edx,edx
- 0050AEA0 mov dword ptr [ebp-8],edx
- 0050AEA3 mov dword ptr [ebp-4],eax
- 0050AEA6 xor eax,eax
- 0050AEA8 push ebp
- 0050AEA9 push 50AF3D
- 0050AEAE push dword ptr fs:[eax]
- 0050AEB1 mov dword ptr fs:[eax],esp
- 0050AEB4 cmp dword ptr ds:[53E024],309;gvar_0053E024
- >0050AEBE jne 0050AED6
- 0050AEC0 call Randomize
- 0050AEC5 mov edx,3
- 0050AECA xor eax,eax
- 0050AECC call 0043C0D8
- 0050AED1 mov [0053E024],eax;gvar_0053E024
- 0050AED6 mov eax,dword ptr [ebp-4]
- 0050AED9 mov edx,dword ptr ds:[53E024];0x309 gvar_0053E024
- 0050AEDF mov edx,dword ptr [edx*4+53E018];gvar_0053E018:array[3] of String
- 0050AEE6 call @LStrAsg
- 0050AEEB inc dword ptr ds:[53E024];gvar_0053E024
- 0050AEF1 cmp dword ptr ds:[53E024],3;gvar_0053E024
- >0050AEF8 jl 0050AF01
- 0050AEFA xor eax,eax
- 0050AEFC mov [0053E024],eax;gvar_0053E024
- 0050AF01 mov eax,dword ptr [ebp-4]
- 0050AF04 mov eax,dword ptr [eax]
- 0050AF06 call 0050AB14
- 0050AF0B test al,al
- >0050AF0D jne 0050AF27
- 0050AF0F lea edx,[ebp-8]
- 0050AF12 mov eax,dword ptr [ebp-4]
- 0050AF15 mov eax,dword ptr [eax]
- 0050AF17 call 00482A80
- 0050AF1C mov eax,dword ptr [ebp-4]
- 0050AF1F mov edx,dword ptr [ebp-8]
- 0050AF22 call @LStrAsg
- 0050AF27 xor eax,eax
- 0050AF29 pop edx
- 0050AF2A pop ecx
- 0050AF2B pop ecx
- 0050AF2C mov dword ptr fs:[eax],edx
- 0050AF2F push 50AF44
- 0050AF34 lea eax,[ebp-8]
- 0050AF37 call @LStrClr
- 0050AF3C ret
- <0050AF3D jmp @HandleFinally
- <0050AF42 jmp 0050AF34
- 0050AF44 pop ecx
- 0050AF45 pop ecx
- 0050AF46 pop ebp
- 0050AF47 ret
- end;*}
- //0050AF48
- {*function sub_0050AF48(?:TContactServerThread; ?:?; ?:?; ?:?):?;
- begin
- 0050AF48 push ebp
- 0050AF49 mov ebp,esp
- 0050AF4B add esp,0FFFFFFF0
- 0050AF4E push ebx
- 0050AF4F xor ebx,ebx
- 0050AF51 mov dword ptr [ebp-10],ebx
- 0050AF54 mov byte ptr [ebp-0A],cl
- 0050AF57 mov dword ptr [ebp-8],edx
- 0050AF5A mov dword ptr [ebp-4],eax
- 0050AF5D xor eax,eax
- 0050AF5F push ebp
- 0050AF60 push 50AFEB
- 0050AF65 push dword ptr fs:[eax]
- 0050AF68 mov dword ptr fs:[eax],esp
- 0050AF6B mov byte ptr [ebp-9],0
- 0050AF6F mov byte ptr [ebp+8],0
- 0050AF73 mov al,byte ptr [ebp+8]
- 0050AF76 mov edx,dword ptr [ebp-4]
- 0050AF79 mov byte ptr [edx+45],al;TContactServerThread.?f45:byte
- 0050AF7C mov eax,dword ptr [ebp-4]
- 0050AF7F cmp byte ptr [eax+45],0;TContactServerThread.?f45:byte
- >0050AF83 jne 0050AF9C
- 0050AF85 push 5
- 0050AF87 mov eax,dword ptr [ebp-8]
- 0050AF8A mov ecx,3E80
- 0050AF8F mov edx,50B004;'bt.netzone.net'
- 0050AF94 call 0050AC68
- 0050AF99 mov byte ptr [ebp-9],al
- 0050AF9C cmp byte ptr [ebp-9],0
- >0050AFA0 jne 0050AFD5
- 0050AFA2 push 5
- 0050AFA4 lea eax,[ebp-10]
- 0050AFA7 call 0050AE98
- 0050AFAC mov edx,dword ptr [ebp-10]
- 0050AFAF mov eax,dword ptr [ebp-8]
- 0050AFB2 mov ecx,3E80
- 0050AFB7 call 0050AC68
- 0050AFBC mov byte ptr [ebp-9],al
- 0050AFBF cmp byte ptr [ebp-9],0
- >0050AFC3 jne 0050AFCE
- 0050AFC5 mov eax,dword ptr [ebp-4]
- 0050AFC8 mov byte ptr [eax+45],0;TContactServerThread.?f45:byte
- >0050AFCC jmp 0050AFD5
- 0050AFCE mov eax,dword ptr [ebp-4]
- 0050AFD1 mov byte ptr [eax+45],1;TContactServerThread.?f45:byte
- 0050AFD5 xor eax,eax
- 0050AFD7 pop edx
- 0050AFD8 pop ecx
- 0050AFD9 pop ecx
- 0050AFDA mov dword ptr fs:[eax],edx
- 0050AFDD push 50AFF2
- 0050AFE2 lea eax,[ebp-10]
- 0050AFE5 call @LStrClr
- 0050AFEA ret
- <0050AFEB jmp @HandleFinally
- <0050AFF0 jmp 0050AFE2
- 0050AFF2 mov al,byte ptr [ebp-9]
- 0050AFF5 pop ebx
- 0050AFF6 mov esp,ebp
- 0050AFF8 pop ebp
- 0050AFF9 ret 4
- end;*}
- //0050B018
- procedure TContactServerThread.Execute;
- begin
- {*
- 0050B018 push ebp
- 0050B019 mov ebp,esp
- 0050B01B add esp,0FFFFFFF8
- 0050B01E push ebx
- 0050B01F push esi
- 0050B020 push edi
- 0050B021 mov dword ptr [ebp-4],eax
- 0050B024 mov eax,dword ptr [ebp-4]
- 0050B027 mov dword ptr [eax+4C],18;TContactServerThread.?f4C:dword
- 0050B02E xor eax,eax
- 0050B030 mov dword ptr ds:[545DC8],eax
- 0050B036 mov dword ptr ds:[545DCC],eax
- 0050B03C mov edx,545DC8
- 0050B041 mov eax,[0053E408];^gvar_0053E034:TServiceObject
- 0050B046 mov eax,dword ptr [eax]
- 0050B048 call 005243B0
- >0050B04D jmp 0050B062
- 0050B04F cmp dword ptr ds:[545DD8],0
- >0050B056 je 0050B06B
- 0050B058 push 3E8
- 0050B05D call kernel32.Sleep
- 0050B062 mov eax,dword ptr [ebp-4]
- 0050B065 cmp byte ptr [eax+0D],0;TContactServerThread.FTerminated:Boolean
- <0050B069 je 0050B04F
- 0050B06B mov eax,dword ptr [ebp-4]
- 0050B06E xor edx,edx
- 0050B070 mov dword ptr [eax+48],edx;TContactServerThread.?f48:dword
- 0050B073 call 0040DA44
- 0050B078 fsub qword ptr ds:[545DC8]
- 0050B07E fabs
- 0050B080 fcomp dword ptr ds:[50B138];5:Single
- 0050B086 fnstsw al
- 0050B088 sahf
- >0050B089 ja 0050B121
- 0050B08F mov dword ptr ds:[53E004],1;gvar_0053E004
- >0050B099 jmp 0050B121
- 0050B09E cmp dword ptr ds:[545DD8],0
- >0050B0A5 je 0050B0B3
- 0050B0A7 push 3E8
- 0050B0AC call kernel32.Sleep
- >0050B0B1 jmp 0050B121
- 0050B0B3 mov eax,dword ptr [ebp-4]
- 0050B0B6 dec dword ptr [eax+48];TContactServerThread.?f48:dword
- 0050B0B9 mov eax,dword ptr [ebp-4]
- 0050B0BC cmp dword ptr [eax+48],0;TContactServerThread.?f48:dword
- >0050B0C0 jg 0050B117
- 0050B0C2 xor eax,eax
- 0050B0C4 push ebp
- 0050B0C5 push 50B0F2
- 0050B0CA push dword ptr fs:[eax]
- 0050B0CD mov dword ptr fs:[eax],esp
- 0050B0D0 mov eax,dword ptr [ebp-4]
- 0050B0D3 call 0050C30C
- 0050B0D8 test al,al
- >0050B0DA jne 0050B0E8
- 0050B0DC mov eax,dword ptr [ebp-4]
- 0050B0DF mov edx,dword ptr ds:[53E028];0x12C gvar_0053E028
- 0050B0E5 mov dword ptr [eax+40],edx;TContactServerThread.?f40:dword
- 0050B0E8 xor eax,eax
- 0050B0EA pop edx
- 0050B0EB pop ecx
- 0050B0EC pop ecx
- 0050B0ED mov dword ptr fs:[eax],edx
- >0050B0F0 jmp 0050B10B
- <0050B0F2 jmp @HandleOnException
- 0050B0F7 dd 1
- 0050B0FB dd 40A298;Exception
- 0050B0FF dd 50B103
- 0050B103 mov dword ptr [ebp-8],eax
- 0050B106 call @DoneExcept
- 0050B10B mov eax,dword ptr [ebp-4]
- 0050B10E mov eax,dword ptr [eax+40];TContactServerThread.?f40:dword
- 0050B111 mov edx,dword ptr [ebp-4]
- 0050B114 mov dword ptr [edx+48],eax;TContactServerThread.?f48:dword
- 0050B117 push 3E8
- 0050B11C call kernel32.Sleep
- 0050B121 mov eax,dword ptr [ebp-4]
- 0050B124 cmp byte ptr [eax+0D],0;TContactServerThread.FTerminated:Boolean
- <0050B128 je 0050B09E
- 0050B12E pop edi
- 0050B12F pop esi
- 0050B130 pop ebx
- 0050B131 pop ecx
- 0050B132 pop ecx
- 0050B133 pop ebp
- 0050B134 ret
- *}
- end;
- //0050B13C
- {*function sub_0050B13C(?:TContactServerThread; ?:?; ?:?; ?:?; ?:?):?;
- begin
- 0050B13C push ebp
- 0050B13D mov ebp,esp
- 0050B13F add esp,0FFFFFFC0
- 0050B142 push ebx
- 0050B143 push esi
- 0050B144 push edi
- 0050B145 xor ebx,ebx
- 0050B147 mov dword ptr [ebp-30],ebx
- 0050B14A mov dword ptr [ebp-18],ebx
- 0050B14D mov dword ptr [ebp-0C],ecx
- 0050B150 mov dword ptr [ebp-8],edx
- 0050B153 mov dword ptr [ebp-4],eax
- 0050B156 xor eax,eax
- 0050B158 push ebp
- 0050B159 push 50B290
- 0050B15E push dword ptr fs:[eax]
- 0050B161 mov dword ptr fs:[eax],esp
- 0050B164 mov byte ptr [ebp-0D],0
- 0050B168 lea eax,[ebp-18]
- 0050B16B mov edx,dword ptr ds:[545DD0]
- 0050B171 call @LStrLAsg
- 0050B176 mov eax,dword ptr [ebp-18]
- 0050B179 call @LStrLen
- 0050B17E mov dword ptr [ebp-1C],eax
- 0050B181 lea eax,[ebp-30]
- 0050B184 push eax
- 0050B185 mov eax,dword ptr [ebp-1C]
- 0050B188 mov dword ptr [ebp-40],eax
- 0050B18B mov byte ptr [ebp-3C],0
- 0050B18F mov eax,dword ptr [ebp-18]
- 0050B192 mov dword ptr [ebp-38],eax
- 0050B195 mov byte ptr [ebp-34],0B
- 0050B199 lea edx,[ebp-40]
- 0050B19C mov ecx,1
- 0050B1A1 mov eax,50B2AC;'%d:%s'
- 0050B1A6 call 0040CC48
- 0050B1AB mov edx,dword ptr [ebp-30]
- 0050B1AE lea eax,[ebp-18]
- 0050B1B1 call @LStrLAsg
- 0050B1B6 mov eax,dword ptr [ebp-18]
- 0050B1B9 call @LStrLen
- 0050B1BE mov dword ptr [ebp-1C],eax
- 0050B1C1 mov eax,dword ptr [ebp+8]
- 0050B1C4 add eax,dword ptr [ebp-1C]
- 0050B1C7 mov dword ptr [ebp-24],eax
- 0050B1CA mov eax,[0053E02C];0x8179840 gvar_0053E02C
- 0050B1CF mov dword ptr [ebp-2C],eax
- 0050B1D2 mov eax,dword ptr [ebp-0C]
- 0050B1D5 mov dword ptr [ebp-28],eax
- 0050B1D8 push 0
- 0050B1DA push 0C
- 0050B1DC lea eax,[ebp-2C]
- 0050B1DF push eax
- 0050B1E0 mov eax,dword ptr [ebp-8]
- 0050B1E3 push eax
- 0050B1E4 call wsock32.send
- 0050B1E9 mov dword ptr [ebp-14],eax
- 0050B1EC cmp dword ptr [ebp-14],0FFFFFFFF
- >0050B1F0 je 0050B1F6
- 0050B1F2 mov byte ptr [ebp-0D],1
- 0050B1F6 cmp dword ptr [ebp-24],0
- >0050B1FA je 0050B272
- 0050B1FC mov byte ptr [ebp-0D],0
- 0050B200 xor eax,eax
- 0050B202 push ebp
- 0050B203 push 50B259
- 0050B208 push dword ptr fs:[eax]
- 0050B20B mov dword ptr fs:[eax],esp
- 0050B20E push 0
- 0050B210 mov eax,dword ptr [ebp-1C]
- 0050B213 push eax
- 0050B214 mov eax,dword ptr [ebp-18]
- 0050B217 call @LStrToPChar
- 0050B21C push eax
- 0050B21D mov eax,dword ptr [ebp-8]
- 0050B220 push eax
- 0050B221 call wsock32.send
- 0050B226 mov dword ptr [ebp-14],eax
- 0050B229 cmp dword ptr [ebp-14],0FFFFFFFF
- >0050B22D je 0050B24F
- 0050B22F push 0
- 0050B231 mov eax,dword ptr [ebp+8]
- 0050B234 push eax
- 0050B235 mov eax,dword ptr [ebp+0C]
- 0050B238 push eax
- 0050B239 mov eax,dword ptr [ebp-8]
- 0050B23C push eax
- 0050B23D call wsock32.send
- 0050B242 mov dword ptr [ebp-14],eax
- 0050B245 cmp dword ptr [ebp-14],0FFFFFFFF
- >0050B249 je 0050B24F
- 0050B24B mov byte ptr [ebp-0D],1
- 0050B24F xor eax,eax
- 0050B251 pop edx
- 0050B252 pop ecx
- 0050B253 pop ecx
- 0050B254 mov dword ptr fs:[eax],edx
- >0050B257 jmp 0050B272
- <0050B259 jmp @HandleOnException
- 0050B25E dd 1
- 0050B262 dd 40A298;Exception
- 0050B266 dd 50B26A
- 0050B26A mov dword ptr [ebp-20],eax
- 0050B26D call @DoneExcept
- 0050B272 xor eax,eax
- 0050B274 pop edx
- 0050B275 pop ecx
- 0050B276 pop ecx
- 0050B277 mov dword ptr fs:[eax],edx
- 0050B27A push 50B297
- 0050B27F lea eax,[ebp-30]
- 0050B282 call @LStrClr
- 0050B287 lea eax,[ebp-18]
- 0050B28A call @LStrClr
- 0050B28F ret
- <0050B290 jmp @HandleFinally
- <0050B295 jmp 0050B27F
- 0050B297 mov al,byte ptr [ebp-0D]
- 0050B29A pop edi
- 0050B29B pop esi
- 0050B29C pop ebx
- 0050B29D mov esp,ebp
- 0050B29F pop ebp
- 0050B2A0 ret 8
- end;*}
- //0050B2B4
- {*function sub_0050B2B4(?:TContactServerThread; ?:?; ?:Byte; ?:?; ?:?):?;
- begin
- 0050B2B4 push ebp
- 0050B2B5 mov ebp,esp
- 0050B2B7 add esp,0FFFFFFE0
- 0050B2BA mov dword ptr [ebp-0C],ecx
- 0050B2BD mov dword ptr [ebp-8],edx
- 0050B2C0 mov dword ptr [ebp-4],eax
- 0050B2C3 mov byte ptr [ebp-19],0
- 0050B2C7 xor eax,eax
- 0050B2C9 mov dword ptr [ebp-18],eax
- 0050B2CC mov eax,dword ptr [ebp+8]
- 0050B2CF cmp eax,dword ptr [ebp+0C]
- >0050B2D2 jg 0050B324
- 0050B2D4 mov eax,dword ptr [ebp-18]
- 0050B2D7 cmp eax,dword ptr [ebp+8]
- >0050B2DA jge 0050B318
- 0050B2DC mov eax,dword ptr [ebp-0C]
- 0050B2DF add eax,dword ptr [ebp-18]
- 0050B2E2 mov dword ptr [ebp-14],eax
- 0050B2E5 push 0
- 0050B2E7 mov eax,dword ptr [ebp+8]
- 0050B2EA sub eax,dword ptr [ebp-18]
- 0050B2ED push eax
- 0050B2EE mov eax,dword ptr [ebp-14]
- 0050B2F1 push eax
- 0050B2F2 mov eax,dword ptr [ebp-8]
- 0050B2F5 push eax
- 0050B2F6 call wsock32.recv
- 0050B2FB mov dword ptr [ebp-20],eax
- 0050B2FE cmp dword ptr [ebp-20],0
- >0050B302 jg 0050B30A
- 0050B304 mov byte ptr [ebp-19],0
- >0050B308 jmp 0050B318
- 0050B30A mov eax,dword ptr [ebp-20]
- 0050B30D add dword ptr [ebp-18],eax
- 0050B310 mov eax,dword ptr [ebp-18]
- 0050B313 cmp eax,dword ptr [ebp+8]
- <0050B316 jl 0050B2DC
- 0050B318 mov eax,dword ptr [ebp-18]
- 0050B31B cmp eax,dword ptr [ebp+8]
- >0050B31E jne 0050B324
- 0050B320 mov byte ptr [ebp-19],1
- 0050B324 mov al,byte ptr [ebp-19]
- 0050B327 mov byte ptr [ebp-0D],al
- 0050B32A mov al,byte ptr [ebp-0D]
- 0050B32D mov esp,ebp
- 0050B32F pop ebp
- 0050B330 ret 8
- end;*}
- //0050B334
- {*procedure sub_0050B334(?:AnsiString; ?:AnsiString; ?:AnsiString);
- begin
- 0050B334 push ebp
- 0050B335 mov ebp,esp
- 0050B337 add esp,0FFFFF7B8
- 0050B33D push ebx
- 0050B33E push esi
- 0050B33F push edi
- 0050B340 xor ebx,ebx
- 0050B342 mov dword ptr [ebp-848],ebx
- 0050B348 mov dword ptr [ebp-844],ebx
- 0050B34E mov dword ptr [ebp-0C],ecx
- 0050B351 mov dword ptr [ebp-8],edx
- 0050B354 mov dword ptr [ebp-4],eax
- 0050B357 mov eax,dword ptr [ebp-4]
- 0050B35A call @LStrAddRef
- 0050B35F mov eax,dword ptr [ebp-8]
- 0050B362 call @LStrAddRef
- 0050B367 xor eax,eax
- 0050B369 push ebp
- 0050B36A push 50B58C
- 0050B36F push dword ptr fs:[eax]
- 0050B372 mov dword ptr fs:[eax],esp
- 0050B375 mov byte ptr [ebp-19],0
- >0050B379 jmp 0050B557
- 0050B37E xor ecx,ecx
- 0050B380 mov dl,1
- 0050B382 mov eax,[00420408];TStringStream
- 0050B387 call TStringStream.Create;TStringStream.Create
- 0050B38C mov dword ptr [ebp-18],eax
- 0050B38F xor ecx,ecx
- 0050B391 mov dl,1
- 0050B393 mov eax,[00420408];TStringStream
- 0050B398 call TStringStream.Create;TStringStream.Create
- 0050B39D mov dword ptr [ebp-14],eax
- 0050B3A0 mov dl,1
- 0050B3A2 mov eax,[004935AC];TMemoryStreamEx
- 0050B3A7 call TObject.Create;TMemoryStreamEx.Create
- 0050B3AC mov dword ptr [ebp-10],eax
- 0050B3AF mov dl,1
- 0050B3B1 mov eax,[00420070];TStringList
- 0050B3B6 call TObject.Create;TStringList.Create
- 0050B3BB mov dword ptr [ebp-20],eax
- 0050B3BE xor eax,eax
- 0050B3C0 push ebp
- 0050B3C1 push 50B51E
- 0050B3C6 push dword ptr fs:[eax]
- 0050B3C9 mov dword ptr fs:[eax],esp
- 0050B3CC mov al,[0050B59C];0x1
- 0050B3D1 push eax
- 0050B3D2 lea eax,[ebp-844]
- 0050B3D8 push eax
- 0050B3D9 mov ecx,50B5A8;'
- '
- 0050B3DE mov edx,50B5B4;','
- 0050B3E3 mov eax,dword ptr [ebp-8]
- 0050B3E6 call 00411568
- 0050B3EB mov edx,dword ptr [ebp-844]
- 0050B3F1 mov eax,dword ptr [ebp-20]
- 0050B3F4 mov ecx,dword ptr [eax]
- 0050B3F6 call dword ptr [ecx+2C];TStrings.SetTextStr
- 0050B3F9 lea eax,[ebp-83D]
- 0050B3FF xor ecx,ecx
- 0050B401 mov edx,800
- 0050B406 call @FillChar
- 0050B40B lea eax,[ebp-83D]
- 0050B411 mov edx,dword ptr [ebp-4]
- 0050B414 call 0040C4FC
- 0050B419 mov eax,dword ptr [ebp-4]
- 0050B41C call @LStrLen
- 0050B421 mov dword ptr [ebp-30],eax
- 0050B424 mov eax,dword ptr [ebp-20]
- 0050B427 mov edx,dword ptr [eax]
- 0050B429 call dword ptr [edx+14];TStringList.GetCount
- 0050B42C dec eax
- 0050B42D test eax,eax
- >0050B42F jl 0050B4A1
- 0050B431 inc eax
- 0050B432 mov dword ptr [ebp-34],eax
- 0050B435 mov dword ptr [ebp-24],0
- 0050B43C lea ecx,[ebp-848]
- 0050B442 mov edx,dword ptr [ebp-24]
- 0050B445 mov eax,dword ptr [ebp-20]
- 0050B448 mov ebx,dword ptr [eax]
- 0050B44A call dword ptr [ebx+0C];TStringList.Get
- 0050B44D mov eax,dword ptr [ebp-848]
- 0050B453 xor edx,edx
- 0050B455 call 0040B694
- 0050B45A mov dword ptr [ebp-2C],eax
- 0050B45D mov eax,dword ptr [ebp-30]
- 0050B460 mov edx,dword ptr [ebp-2C]
- 0050B463 inc edx
- 0050B464 sub edx,eax
- >0050B466 jg 0050B48B
- 0050B468 dec edx
- 0050B469 mov dword ptr [ebp-38],edx
- 0050B46C mov dword ptr [ebp-28],eax
- 0050B46F mov eax,dword ptr [ebp-28]
- 0050B472 mov al,byte ptr [ebp+eax-83E]
- 0050B479 mov edx,dword ptr [ebp-28]
- 0050B47C mov byte ptr [ebp+edx-83D],al
- 0050B483 dec dword ptr [ebp-28]
- 0050B486 inc dword ptr [ebp-38]
- <0050B489 jne 0050B46F
- 0050B48B mov eax,dword ptr [ebp-2C]
- 0050B48E mov byte ptr [ebp+eax-83D],0
- 0050B496 inc dword ptr [ebp-30]
- 0050B499 inc dword ptr [ebp-24]
- 0050B49C dec dword ptr [ebp-34]
- <0050B49F jne 0050B43C
- 0050B4A1 push 0
- 0050B4A3 push 0
- 0050B4A5 mov eax,dword ptr [ebp-14]
- 0050B4A8 call TStream.SetPosition
- 0050B4AD lea edx,[ebp-83D]
- 0050B4B3 mov ecx,dword ptr [ebp-30]
- 0050B4B6 mov eax,dword ptr [ebp-14]
- 0050B4B9 call 00425F3C
- 0050B4BE push 0
- 0050B4C0 push 0
- 0050B4C2 mov eax,dword ptr [ebp-14]
- 0050B4C5 call TStream.SetPosition
- 0050B4CA mov ecx,dword ptr ds:[53E02C];0x8179840 gvar_0053E02C
- 0050B4D0 mov edx,dword ptr [ebp-10]
- 0050B4D3 mov eax,dword ptr [ebp-14]
- 0050B4D6 call 004955C0
- 0050B4DB xor edx,edx
- 0050B4DD mov eax,dword ptr [ebp-10]
- 0050B4E0 call 0048C010
- 0050B4E5 mov ecx,dword ptr ds:[53E02C];0x8179840 gvar_0053E02C
- 0050B4EB mov edx,dword ptr [ebp-18]
- 0050B4EE mov eax,dword ptr [ebp-10]
- 0050B4F1 call 004955C0
- 0050B4F6 push 0
- 0050B4F8 push 0
- 0050B4FA mov eax,dword ptr [ebp-18]
- 0050B4FD call TStream.SetPosition
- 0050B502 mov eax,dword ptr [ebp-0C]
- 0050B505 mov edx,dword ptr [ebp-18]
- 0050B508 mov edx,dword ptr [edx+4];TStringStream.FDataString:String
- 0050B50B call @LStrAsg
- 0050B510 mov byte ptr [ebp-19],1
- 0050B514 xor eax,eax
- 0050B516 pop edx
- 0050B517 pop ecx
- 0050B518 pop ecx
- 0050B519 mov dword ptr fs:[eax],edx
- >0050B51C jmp 0050B537
- <0050B51E jmp @HandleOnException
- 0050B523 dd 1
- 0050B527 dd 40A298;Exception
- 0050B52B dd 50B52F
- 0050B52F mov dword ptr [ebp-3C],eax
- 0050B532 call @DoneExcept
- 0050B537 mov eax,dword ptr [ebp-20]
- 0050B53A call TObject.Free
- 0050B53F mov eax,dword ptr [ebp-10]
- 0050B542 call TObject.Free
- 0050B547 mov eax,dword ptr [ebp-14]
- 0050B54A call TObject.Free
- 0050B54F mov eax,dword ptr [ebp-18]
- 0050B552 call TObject.Free
- 0050B557 cmp byte ptr [ebp-19],0
- <0050B55B je 0050B37E
- 0050B561 xor eax,eax
- 0050B563 pop edx
- 0050B564 pop ecx
- 0050B565 pop ecx
- 0050B566 mov dword ptr fs:[eax],edx
- 0050B569 push 50B593
- 0050B56E lea eax,[ebp-848]
- 0050B574 mov edx,2
- 0050B579 call @LStrArrayClr
- 0050B57E lea eax,[ebp-8]
- 0050B581 mov edx,2
- 0050B586 call @LStrArrayClr
- 0050B58B ret
- <0050B58C jmp @HandleFinally
- <0050B591 jmp 0050B56E
- 0050B593 pop edi
- 0050B594 pop esi
- 0050B595 pop ebx
- 0050B596 mov esp,ebp
- 0050B598 pop ebp
- 0050B599 ret
- end;*}
- //0050B5B8
- {*function sub_0050B5B8(?:?):?;
- begin
- 0050B5B8 push ebp
- 0050B5B9 mov ebp,esp
- 0050B5BB add esp,0FFFFFFF8
- 0050B5BE mov dword ptr [ebp-4],eax
- 0050B5C1 mov eax,dword ptr [ebp-4]
- 0050B5C4 push eax
- 0050B5C5 call wsock32.closesocket
- 0050B5CA test eax,eax
- 0050B5CC mov byte ptr [ebp-5],1
- 0050B5D0 mov al,byte ptr [ebp-5]
- 0050B5D3 pop ecx
- 0050B5D4 pop ecx
- 0050B5D5 pop ebp
- 0050B5D6 ret
- end;*}
- //0050B5D8
- {*function sub_0050B5D8(?:TContactServerThread):?;
- begin
- 0050B5D8 push ebp
- 0050B5D9 mov ebp,esp
- 0050B5DB mov ecx,41A
- 0050B5E0 push 0
- 0050B5E2 push 0
- 0050B5E4 dec ecx
- <0050B5E5 jne 0050B5E0
- 0050B5E7 push ecx
- 0050B5E8 push ebx
- 0050B5E9 push esi
- 0050B5EA push edi
- 0050B5EB mov dword ptr [ebp-4],eax
- 0050B5EE lea eax,[ebp-38]
- 0050B5F1 mov edx,dword ptr ds:[506F5C];TFGInt:Pointer
- 0050B5F7 call @InitializeRecord
- 0050B5FC lea eax,[ebp-40]
- 0050B5FF mov edx,dword ptr ds:[506F5C];TFGInt:Pointer
- 0050B605 call @InitializeRecord
- 0050B60A lea eax,[ebp-48]
- 0050B60D mov edx,dword ptr ds:[506F5C];TFGInt:Pointer
- 0050B613 call @InitializeRecord
- 0050B618 xor eax,eax
- 0050B61A push ebp
- 0050B61B push 50BEB3
- 0050B620 push dword ptr fs:[eax]
- 0050B623 mov dword ptr fs:[eax],esp
- 0050B626 mov byte ptr [ebp-5],0
- 0050B62A mov eax,dword ptr [ebp-4]
- 0050B62D cmp dword ptr [eax+4C],0;TContactServerThread.?f4C:dword
- >0050B631 jle 0050BE5B
- 0050B637 lea eax,[ebp-50]
- 0050B63A mov edx,dword ptr ds:[53E8CC];^gvar_0053E044
- 0050B640 mov edx,dword ptr [edx]
- 0050B642 call @LStrLAsg
- 0050B647 cmp dword ptr [ebp-50],0
- >0050B64B jne 0050B65A
- 0050B64D lea eax,[ebp-50]
- 0050B650 mov edx,50BECC;'nxd'
- 0050B655 call @LStrLAsg
- 0050B65A mov dword ptr ds:[53E014],0FFFFFFFF;gvar_0053E014
- 0050B664 mov dword ptr [ebp-18],2000
- 0050B66B mov dl,1
- 0050B66D mov eax,[00420070];TStringList
- 0050B672 call TObject.Create;TStringList.Create
- 0050B677 mov dword ptr [ebp-1C],eax
- 0050B67A xor eax,eax
- 0050B67C push ebp
- 0050B67D push 50BE3A
- 0050B682 push dword ptr fs:[eax]
- 0050B685 mov dword ptr fs:[eax],esp
- 0050B688 mov eax,545DE0
- 0050B68D xor ecx,ecx
- 0050B68F mov edx,514
- 0050B694 call @FillChar
- 0050B699 cmp dword ptr ds:[545DD0],0
- >0050B6A0 jne 0050B6AF
- 0050B6A2 xor eax,eax
- 0050B6A4 pop edx
- 0050B6A5 pop ecx
- 0050B6A6 pop ecx
- 0050B6A7 mov dword ptr fs:[eax],edx
- >0050B6AA jmp 0050BE5B
- 0050B6AF cmp dword ptr ds:[545DD4],0
- >0050B6B6 jne 0050B6C5
- 0050B6B8 xor eax,eax
- 0050B6BA pop edx
- 0050B6BB pop ecx
- 0050B6BC pop ecx
- 0050B6BD mov dword ptr fs:[eax],edx
- >0050B6C0 jmp 0050BE5B
- 0050B6C5 lea eax,[ebp-0C]
- 0050B6C8 push eax
- 0050B6C9 mov eax,[00545DD0]
- 0050B6CE mov dword ptr [ebp-2094],eax
- 0050B6D4 mov byte ptr [ebp-2090],0B
- 0050B6DB mov eax,[00545DD4]
- 0050B6E0 mov dword ptr [ebp-208C],eax
- 0050B6E6 mov byte ptr [ebp-2088],0B
- 0050B6ED xor eax,eax
- 0050B6EF mov dword ptr [ebp-2084],eax
- 0050B6F5 mov byte ptr [ebp-2080],0
- 0050B6FC xor eax,eax
- 0050B6FE mov dword ptr [ebp-207C],eax
- 0050B704 mov byte ptr [ebp-2078],0B
- 0050B70B mov eax,dword ptr [ebp-50]
- 0050B70E mov dword ptr [ebp-2074],eax
- 0050B714 mov byte ptr [ebp-2070],0B
- 0050B71B lea edx,[ebp-2094]
- 0050B721 mov ecx,4
- 0050B726 mov eax,50BED8;'un=%s
- pwd=%s
- port=%d
- version=%s
- ct=%s
- '
- 0050B72B call 0040CC48
- 0050B730 lea eax,[ebp-2098]
- 0050B736 call 0050A988
- 0050B73B mov eax,dword ptr [ebp-2098]
- 0050B741 lea edx,[ebp-38]
- 0050B744 call 00507954
- 0050B749 lea edx,[ebp-40]
- 0050B74C mov eax,50BF0C;'65537'
- 0050B751 call 00507954
- 0050B756 lea eax,[ebp-0C]
- 0050B759 push eax
- 0050B75A lea ecx,[ebp-38]
- 0050B75D lea edx,[ebp-40]
- 0050B760 mov eax,dword ptr [ebp-0C]
- 0050B763 call 0050A17C
- 0050B768 lea edx,[ebp-0C]
- 0050B76B mov eax,dword ptr [ebp-0C]
- 0050B76E call 00507368
- 0050B773 lea eax,[ebp-0C]
- 0050B776 mov ecx,dword ptr [ebp-0C]
- 0050B779 mov edx,50BF1C;'0001'
- 0050B77E call @LStrCat3
- 0050B783 mov dword ptr [ebp-54],1
- 0050B78A lea eax,[ebp-4C]
- 0050B78D mov edx,50BF2C;'%%LOGIN_RetryLogin2:正在验证用户...%%'
- 0050B792 call @LStrLAsg
- 0050B797 mov eax,53E008
- 0050B79C mov edx,dword ptr [ebp-4C]
- 0050B79F call @LStrAsg
- 0050B7A4 mov eax,dword ptr [ebp-4]
- 0050B7A7 mov al,byte ptr [eax+44];TContactServerThread.?f44:byte
- 0050B7AA push eax
- 0050B7AB lea edx,[ebp-14]
- 0050B7AE xor ecx,ecx
- 0050B7B0 mov eax,dword ptr [ebp-4]
- 0050B7B3 call 0050AF48
- 0050B7B8 test al,al
- >0050B7BA je 0050BDDB
- 0050B7C0 mov eax,dword ptr [ebp-4]
- 0050B7C3 dec dword ptr [eax+4C];TContactServerThread.?f4C:dword
- 0050B7C6 mov eax,dword ptr [ebp-0C]
- 0050B7C9 call @LStrToPChar
- 0050B7CE push eax
- 0050B7CF mov eax,dword ptr [ebp-0C]
- 0050B7D2 call @LStrLen
- 0050B7D7 push eax
- 0050B7D8 mov ecx,3F6
- 0050B7DD mov edx,dword ptr [ebp-14]
- 0050B7E0 mov eax,dword ptr [ebp-4]
- 0050B7E3 call 0050B13C
- 0050B7E8 mov byte ptr [ebp-55],al
- 0050B7EB cmp byte ptr [ebp-55],0
- >0050B7EF je 0050BDC4
- 0050B7F5 lea eax,[ebp-68]
- 0050B7F8 xor ecx,ecx
- 0050B7FA mov edx,0C
- 0050B7FF call @FillChar
- 0050B804 push 0C
- 0050B806 push 0C
- 0050B808 lea ecx,[ebp-68]
- 0050B80B mov edx,dword ptr [ebp-14]
- 0050B80E mov eax,dword ptr [ebp-4]
- 0050B811 call 0050B2B4
- 0050B816 test al,al
- >0050B818 je 0050BDB5
- 0050B81E cmp dword ptr [ebp-64],7DA
- >0050B825 jne 0050BD2B
- 0050B82B lea eax,[ebp-2069]
- 0050B831 xor ecx,ecx
- 0050B833 mov edx,dword ptr [ebp-18]
- 0050B836 call @FillChar
- 0050B83B lea eax,[ebp-4C]
- 0050B83E mov edx,50BF5C;'%%LOGIN_FailDueDataError:登录失败, 数据错误%%'
- 0050B843 call @LStrLAsg
- 0050B848 cmp dword ptr [ebp-60],0
- >0050B84C jbe 0050BDD1
- 0050B852 push 1FFF
- 0050B857 mov eax,dword ptr [ebp-60]
- 0050B85A push eax
- 0050B85B lea ecx,[ebp-2069]
- 0050B861 mov edx,dword ptr [ebp-14]
- 0050B864 mov eax,dword ptr [ebp-4]
- 0050B867 call 0050B2B4
- 0050B86C test al,al
- >0050B86E je 0050BDD1
- 0050B874 lea eax,[ebp-10]
- 0050B877 lea edx,[ebp-2069]
- 0050B87D mov ecx,2001
- 0050B882 call @LStrFromArray
- 0050B887 lea edx,[ebp-10]
- 0050B88A mov eax,dword ptr [ebp-10]
- 0050B88D call 00507504
- 0050B892 lea eax,[ebp-48]
- 0050B895 push eax
- 0050B896 lea eax,[ebp-48]
- 0050B899 push eax
- 0050B89A lea eax,[ebp-48]
- 0050B89D push eax
- 0050B89E lea eax,[ebp-48]
- 0050B8A1 push eax
- 0050B8A2 lea eax,[ebp-10]
- 0050B8A5 push eax
- 0050B8A6 lea ecx,[ebp-38]
- 0050B8A9 lea edx,[ebp-40]
- 0050B8AC mov eax,dword ptr [ebp-10]
- 0050B8AF call 0050A410
- 0050B8B4 mov edx,dword ptr [ebp-10]
- 0050B8B7 mov eax,50BF94;'temp1'
- 0050B8BC call @LStrPos
- 0050B8C1 mov dword ptr [ebp-2C],eax
- 0050B8C4 mov edx,dword ptr [ebp-10]
- 0050B8C7 mov eax,50BFA4;'temp2'
- 0050B8CC call @LStrPos
- 0050B8D1 mov dword ptr [ebp-30],eax
- 0050B8D4 mov eax,dword ptr [ebp-2C]
- 0050B8D7 cmp eax,dword ptr [ebp-30]
- >0050B8DA jge 0050BDD1
- 0050B8E0 mov edx,dword ptr [ebp-10]
- 0050B8E3 mov eax,dword ptr [ebp-1C]
- 0050B8E6 mov ecx,dword ptr [eax]
- 0050B8E8 call dword ptr [ecx+2C];TStrings.SetTextStr
- 0050B8EB lea eax,[ebp-28]
- 0050B8EE push eax
- 0050B8EF mov eax,dword ptr [ebp-10]
- 0050B8F2 call @LStrLen
- 0050B8F7 mov ecx,eax
- 0050B8F9 mov edx,dword ptr [ebp-30]
- 0050B8FC add edx,6
- 0050B8FF mov eax,dword ptr [ebp-10]
- 0050B902 call @LStrCopy
- 0050B907 lea ecx,[ebp-20A0]
- 0050B90D mov edx,50BF94;'temp1'
- 0050B912 mov eax,dword ptr [ebp-1C]
- 0050B915 call 004248A0
- 0050B91A mov edx,dword ptr [ebp-20A0]
- 0050B920 lea ecx,[ebp-209C]
- 0050B926 mov eax,dword ptr [ebp-28]
- 0050B929 call 0050B334
- 0050B92E mov edx,dword ptr [ebp-209C]
- 0050B934 mov eax,dword ptr [ebp-1C]
- 0050B937 mov ecx,dword ptr [eax]
- 0050B939 call dword ptr [ecx+2C];TStrings.SetTextStr
- 0050B93C mov edx,50BFB4;'ClientIP'
- 0050B941 mov eax,dword ptr [ebp-1C]
- 0050B944 mov ecx,dword ptr [eax]
- 0050B946 call dword ptr [ecx+58];TStrings.IndexOfName
- 0050B949 test eax,eax
- >0050B94B jl 0050B9C2
- 0050B94D mov edx,50BFC8;'Server'
- 0050B952 mov eax,dword ptr [ebp-1C]
- 0050B955 mov ecx,dword ptr [eax]
- 0050B957 call dword ptr [ecx+58];TStrings.IndexOfName
- 0050B95A test eax,eax
- >0050B95C jl 0050B9C2
- 0050B95E mov edx,50BFD8;'ServerPort'
- 0050B963 mov eax,dword ptr [ebp-1C]
- 0050B966 mov ecx,dword ptr [eax]
- 0050B968 call dword ptr [ecx+58];TStrings.IndexOfName
- 0050B96B test eax,eax
- >0050B96D jl 0050B9C2
- 0050B96F mov edx,50BFEC;'Id'
- 0050B974 mov eax,dword ptr [ebp-1C]
- 0050B977 mov ecx,dword ptr [eax]
- 0050B979 call dword ptr [ecx+58];TStrings.IndexOfName
- 0050B97C test eax,eax
- >0050B97E jl 0050B9C2
- 0050B980 mov edx,50BFF8;'IsAgent'
- 0050B985 mov eax,dword ptr [ebp-1C]
- 0050B988 mov ecx,dword ptr [eax]
- 0050B98A call dword ptr [ecx+58];TStrings.IndexOfName
- 0050B98D test eax,eax
- >0050B98F jl 0050B9C2
- 0050B991 mov edx,50C008;'OfficialServer'
- 0050B996 mov eax,dword ptr [ebp-1C]
- 0050B999 mov ecx,dword ptr [eax]
- 0050B99B call dword ptr [ecx+58];TStrings.IndexOfName
- 0050B99E test eax,eax
- >0050B9A0 jl 0050B9C2
- 0050B9A2 mov edx,50C020;'OfficialServerPort'
- 0050B9A7 mov eax,dword ptr [ebp-1C]
- 0050B9AA mov ecx,dword ptr [eax]
- 0050B9AC call dword ptr [ecx+58];TStrings.IndexOfName
- 0050B9AF test eax,eax
- >0050B9B1 jl 0050B9C2
- 0050B9B3 mov edx,50C03C;'OfficialTrackerServerPort'
- 0050B9B8 mov eax,dword ptr [ebp-1C]
- 0050B9BB mov ecx,dword ptr [eax]
- 0050B9BD call dword ptr [ecx+58];TStrings.IndexOfName
- 0050B9C0 test eax,eax
- 0050B9C2 lea ecx,[ebp-20A4]
- 0050B9C8 mov edx,50C060;'key'
- 0050B9CD mov eax,dword ptr [ebp-1C]
- 0050B9D0 call 004248A0
- 0050B9D5 mov edx,dword ptr [ebp-20A4]
- 0050B9DB mov eax,545DDC
- 0050B9E0 call @LStrAsg
- 0050B9E5 lea ecx,[ebp-20A8]
- 0050B9EB mov edx,50BFD8;'ServerPort'
- 0050B9F0 mov eax,dword ptr [ebp-1C]
- 0050B9F3 call 004248A0
- 0050B9F8 mov eax,dword ptr [ebp-20A8]
- 0050B9FE xor edx,edx
- 0050BA00 call 0040B694
- 0050BA05 test eax,eax
- >0050BA07 jle 0050BA30
- 0050BA09 lea ecx,[ebp-20AC]
- 0050BA0F mov edx,50BFD8;'ServerPort'
- 0050BA14 mov eax,dword ptr [ebp-1C]
- 0050BA17 call 004248A0
- 0050BA1C mov eax,dword ptr [ebp-20AC]
- 0050BA22 xor edx,edx
- 0050BA24 call 0040B694
- 0050BA29 mov [0053E014],eax;gvar_0053E014
- >0050BA2E jmp 0050BA3A
- 0050BA30 mov dword ptr ds:[53E014],0D431;gvar_0053E014
- 0050BA3A mov eax,[00545DD0]
- 0050BA3F call @LStrLen
- 0050BA44 mov dword ptr [ebp-20],eax
- 0050BA47 mov edx,dword ptr [ebp-20]
- 0050BA4A mov eax,13
- 0050BA4F call 0043C040
- 0050BA54 mov dword ptr [ebp-20],eax
- 0050BA57 mov eax,545DE0
- 0050BA5C mov ecx,dword ptr [ebp-20]
- 0050BA5F mov edx,dword ptr ds:[545DD0]
- 0050BA65 call 0040C530
- 0050BA6A lea ecx,[ebp-24]
- 0050BA6D mov edx,50C06C;'bn'
- 0050BA72 mov eax,dword ptr [ebp-1C]
- 0050BA75 call 004248A0
- 0050BA7A mov eax,dword ptr [ebp-24]
- 0050BA7D call @LStrLen
- 0050BA82 mov dword ptr [ebp-20],eax
- 0050BA85 mov edx,dword ptr [ebp-20]
- 0050BA88 mov eax,27
- 0050BA8D call 0043C040
- 0050BA92 mov dword ptr [ebp-20],eax
- 0050BA95 mov eax,545DF4
- 0050BA9A mov ecx,dword ptr [ebp-20]
- 0050BA9D mov edx,dword ptr [ebp-24]
- 0050BAA0 call 0040C530
- 0050BAA5 lea ecx,[ebp-20B0]
- 0050BAAB mov edx,50C078;'cid'
- 0050BAB0 mov eax,dword ptr [ebp-1C]
- 0050BAB3 call 004248A0
- 0050BAB8 mov eax,dword ptr [ebp-20B0]
- 0050BABE xor edx,edx
- 0050BAC0 call 0040B694
- 0050BAC5 mov [00545E1C],eax
- 0050BACA lea ecx,[ebp-20B4]
- 0050BAD0 mov edx,50C084;'ld'
- 0050BAD5 mov eax,dword ptr [ebp-1C]
- 0050BAD8 call 004248A0
- 0050BADD mov eax,dword ptr [ebp-20B4]
- 0050BAE3 xor edx,edx
- 0050BAE5 call 0040B694
- 0050BAEA mov [00545E20],eax
- 0050BAEF lea ecx,[ebp-20B8]
- 0050BAF5 mov edx,50C090;'wc'
- 0050BAFA mov eax,dword ptr [ebp-1C]
- 0050BAFD call 004248A0
- 0050BB02 mov eax,dword ptr [ebp-20B8]
- 0050BB08 xor edx,edx
- 0050BB0A call 0040B694
- 0050BB0F mov [00545E24],eax
- 0050BB14 lea ecx,[ebp-20BC]
- 0050BB1A mov edx,50C09C;'hf'
- 0050BB1F mov eax,dword ptr [ebp-1C]
- 0050BB22 call 004248A0
- 0050BB27 mov eax,dword ptr [ebp-20BC]
- 0050BB2D xor edx,edx
- 0050BB2F call 0040B694
- 0050BB34 mov [00545E34],eax
- 0050BB39 push 0
- 0050BB3B push 0
- 0050BB3D push 0
- 0050BB3F lea ecx,[ebp-20C0]
- 0050BB45 mov edx,50C0A8;'ed'
- 0050BB4A mov eax,dword ptr [ebp-1C]
- 0050BB4D call 004248A0
- 0050BB52 mov eax,dword ptr [ebp-20C0]
- 0050BB58 call 0040D480
- 0050BB5D fstp qword ptr ds:[545E39]
- 0050BB63 wait
- 0050BB64 push 0
- 0050BB66 push 0
- 0050BB68 push 0
- 0050BB6A lea ecx,[ebp-20C4]
- 0050BB70 mov edx,50C0B4;'rd'
- 0050BB75 mov eax,dword ptr [ebp-1C]
- 0050BB78 call 004248A0
- 0050BB7D mov eax,dword ptr [ebp-20C4]
- 0050BB83 call 0040D480
- 0050BB88 fstp qword ptr ds:[545E41]
- 0050BB8E wait
- 0050BB8F fild dword ptr ds:[545E20]
- 0050BB95 fsubr qword ptr ds:[545E39]
- 0050BB9B add esp,0FFFFFFF8
- 0050BB9E fstp qword ptr [esp]
- 0050BBA1 wait
- 0050BBA2 push dword ptr ds:[545E45]
- 0050BBA8 push dword ptr ds:[545E41]
- 0050BBAE call 0047DC04
- 0050BBB3 mov [00545E28],eax
- 0050BBB8 mov dword ptr ds:[545E30],32
- 0050BBC2 mov dword ptr ds:[545E2C],2D
- 0050BBCC lea ecx,[ebp-20C8]
- 0050BBD2 mov edx,50BFEC;'Id'
- 0050BBD7 mov eax,dword ptr [ebp-1C]
- 0050BBDA call 004248A0
- 0050BBDF mov eax,dword ptr [ebp-20C8]
- 0050BBE5 xor edx,edx
- 0050BBE7 call 0040B694
- 0050BBEC mov [00545E4A],ax
- 0050BBF2 lea ecx,[ebp-20CC]
- 0050BBF8 mov edx,50C0C0;'ac'
- 0050BBFD mov eax,dword ptr [ebp-1C]
- 0050BC00 call 004248A0
- 0050BC05 mov eax,dword ptr [ebp-20CC]
- 0050BC0B xor edx,edx
- 0050BC0D call 0040B694
- 0050BC12 mov [00545E4C],ax
- 0050BC18 lea ecx,[ebp-20D0]
- 0050BC1E mov edx,50C0CC;'pc'
- 0050BC23 mov eax,dword ptr [ebp-1C]
- 0050BC26 call 004248A0
- 0050BC2B mov eax,dword ptr [ebp-20D0]
- 0050BC31 xor edx,edx
- 0050BC33 call 0040B694
- 0050BC38 mov [00545E4E],ax
- 0050BC3E lea ecx,[ebp-20D4]
- 0050BC44 mov edx,50C0D8;'eb'
- 0050BC49 mov eax,dword ptr [ebp-1C]
- 0050BC4C call 004248A0
- 0050BC51 mov eax,dword ptr [ebp-20D4]
- 0050BC57 xor edx,edx
- 0050BC59 call 0040B694
- 0050BC5E test eax,eax
- 0050BC60 setne al
- 0050BC63 mov [00545E38],al
- 0050BC68 cmp byte ptr ds:[545E38],0
- >0050BC6F jne 0050BC80
- 0050BC71 lea eax,[ebp-4C]
- 0050BC74 mov edx,50C0E4;'%%LOGIN_NonBoot:非启动版本%%'
- 0050BC79 call @LStrLAsg
- >0050BC7E jmp 0050BCA5
- 0050BC80 cmp dword ptr ds:[545E20],0
- >0050BC87 jg 0050BC98
- 0050BC89 lea eax,[ebp-4C]
- 0050BC8C mov edx,50C10C;'%%LOGIN_NoLeftDay:没有可用时间%%'
- 0050BC91 call @LStrLAsg
- >0050BC96 jmp 0050BCA5
- 0050BC98 lea eax,[ebp-4C]
- 0050BC9B mov edx,50C138;'%%LOGIN_LoginOK:登录成功%%'
- 0050BCA0 call @LStrLAsg
- 0050BCA5 cmp byte ptr ds:[545E38],0
- >0050BCAC je 0050BCC3
- 0050BCAE cmp dword ptr ds:[545E20],0
- >0050BCB5 jle 0050BCC3
- 0050BCB7 mov dword ptr ds:[53E004],1;gvar_0053E004
- >0050BCC1 jmp 0050BCCD
- 0050BCC3 mov dword ptr ds:[53E004],2;gvar_0053E004
- 0050BCCD cmp dword ptr ds:[53E004],1;gvar_0053E004
- 0050BCD4 mov eax,[0053E0C0];^gvar_0053E03C
- 0050BCD9 sete byte ptr [eax]
- 0050BCDC mov eax,dword ptr [ebp-50]
- 0050BCDF call 00480098
- 0050BCE4 mov edx,dword ptr ds:[53E358];^gvar_0053D9F4
- 0050BCEA mov byte ptr [edx],al
- 0050BCEC mov eax,[0053E358];^gvar_0053D9F4
- 0050BCF1 mov al,byte ptr [eax]
- 0050BCF3 mov [00545E50],al
- 0050BCF8 call 0040DA44
- 0050BCFD fstp qword ptr ds:[545DC8]
- 0050BD03 wait
- 0050BD04 mov edx,545DC8
- 0050BD09 mov eax,[0053E408];^gvar_0053E034:TServiceObject
- 0050BD0E mov eax,dword ptr [eax]
- 0050BD10 call 005245F4
- 0050BD15 mov edx,545DE0
- 0050BD1A mov eax,[0053E408];^gvar_0053E034:TServiceObject
- 0050BD1F mov eax,dword ptr [eax]
- 0050BD21 call 00523D08
- >0050BD26 jmp 0050BDD1
- 0050BD2B cmp dword ptr [ebp-64],7DE
- >0050BD32 jne 0050BD46
- 0050BD34 lea eax,[ebp-4C]
- 0050BD37 mov edx,50C15C;'%%LOGIN_FailDueErrAgentServer:登录失败, 无法登录不兼容的代理商服务器%%'
- 0050BD3C call @LStrLAsg
- >0050BD41 jmp 0050BDD1
- 0050BD46 cmp dword ptr [ebp-64],7DC
- >0050BD4D jne 0050BD5E
- 0050BD4F lea eax,[ebp-4C]
- 0050BD52 mov edx,50C1AC;'%%LOGIN_AccountExired:登录失败, 帐号已过期%%'
- 0050BD57 call @LStrLAsg
- >0050BD5C jmp 0050BDD1
- 0050BD5E cmp dword ptr [ebp-64],7DD
- >0050BD65 jne 0050BD76
- 0050BD67 lea eax,[ebp-4C]
- 0050BD6A mov edx,50C1E4;'%%LOGIN_AccountStopped:登录失败, 帐号已停用%%'
- 0050BD6F call @LStrLAsg
- >0050BD74 jmp 0050BDD1
- 0050BD76 cmp dword ptr [ebp-64],7DF
- >0050BD7D jne 0050BD8E
- 0050BD7F lea eax,[ebp-4C]
- 0050BD82 mov edx,50C21C;'%%LOGIN_AgentServerDisabled:登录失败, 代理商服务器已关闭%%'
- 0050BD87 call @LStrLAsg
- >0050BD8C jmp 0050BDD1
- 0050BD8E cmp dword ptr [ebp-64],7E0
- >0050BD95 jne 0050BDA6
- 0050BD97 lea eax,[ebp-4C]
- 0050BD9A mov edx,50C260;'%%LOGIN_FailDueInvalidIP:登录失败, 此帐号不允许从本IP登录%%'
- 0050BD9F call @LStrLAsg
- >0050BDA4 jmp 0050BDD1
- 0050BDA6 lea eax,[ebp-4C]
- 0050BDA9 mov edx,50C2A4;'%%LOGIN_InvalidUserPass:登录失败, 用户名或密码错误%%'
- 0050BDAE call @LStrLAsg
- >0050BDB3 jmp 0050BDD1
- 0050BDB5 lea eax,[ebp-4C]
- 0050BDB8 mov edx,50C2E4;'%%LOGIN_ConnectSvrFail:无法连接服务器%%'
- 0050BDBD call @LStrLAsg
- >0050BDC2 jmp 0050BDD1
- 0050BDC4 lea eax,[ebp-4C]
- 0050BDC7 mov edx,50C2E4;'%%LOGIN_ConnectSvrFail:无法连接服务器%%'
- 0050BDCC call @LStrLAsg
- 0050BDD1 mov eax,dword ptr [ebp-14]
- 0050BDD4 call 0050B5B8
- >0050BDD9 jmp 0050BDEF
- 0050BDDB lea eax,[ebp-4C]
- 0050BDDE mov edx,50C2E4;'%%LOGIN_ConnectSvrFail:无法连接服务器%%'
- 0050BDE3 call @LStrLAsg
- 0050BDE8 xor eax,eax
- 0050BDEA mov [0053E004],eax;gvar_0053E004
- 0050BDEF mov eax,53E008
- 0050BDF4 mov edx,dword ptr [ebp-4C]
- 0050BDF7 call @LStrAsg
- 0050BDFC cmp dword ptr ds:[53E004],1;gvar_0053E004
- >0050BE03 je 0050BE1D
- 0050BE05 cmp dword ptr [ebp-54],5
- >0050BE09 jge 0050BE1D
- 0050BE0B inc dword ptr [ebp-54]
- 0050BE0E push 3E8
- 0050BE13 call kernel32.Sleep
- <0050BE18 jmp 0050B7A4
- 0050BE1D cmp dword ptr ds:[53E004],1;gvar_0053E004
- >0050BE24 je 0050BE30
- 0050BE26 mov dword ptr ds:[53E004],2;gvar_0053E004
- 0050BE30 xor eax,eax
- 0050BE32 pop edx
- 0050BE33 pop ecx
- 0050BE34 pop ecx
- 0050BE35 mov dword ptr fs:[eax],edx
- >0050BE38 jmp 0050BE53
- <0050BE3A jmp @HandleOnException
- 0050BE3F dd 1
- 0050BE43 dd 40A298;Exception
- 0050BE47 dd 50BE4B
- 0050BE4B mov dword ptr [ebp-5C],eax
- 0050BE4E call @DoneExcept
- 0050BE53 mov eax,dword ptr [ebp-1C]
- 0050BE56 call TObject.Free
- 0050BE5B xor eax,eax
- 0050BE5D pop edx
- 0050BE5E pop ecx
- 0050BE5F pop ecx
- 0050BE60 mov dword ptr fs:[eax],edx
- 0050BE63 push 50BEBA
- 0050BE68 lea eax,[ebp-20D4]
- 0050BE6E mov edx,10
- 0050BE73 call @LStrArrayClr
- 0050BE78 lea eax,[ebp-50]
- 0050BE7B mov edx,2
- 0050BE80 call @LStrArrayClr
- 0050BE85 lea eax,[ebp-48]
- 0050BE88 mov edx,dword ptr ds:[506F5C];TFGInt:Pointer
- 0050BE8E mov ecx,3
- 0050BE93 call @FinalizeArray
- 0050BE98 lea eax,[ebp-28]
- 0050BE9B mov edx,2
- 0050BEA0 call @LStrArrayClr
- 0050BEA5 lea eax,[ebp-10]
- 0050BEA8 mov edx,2
- 0050BEAD call @LStrArrayClr
- 0050BEB2 ret
- <0050BEB3 jmp @HandleFinally
- <0050BEB8 jmp 0050BE68
- 0050BEBA mov al,byte ptr [ebp-5]
- 0050BEBD pop edi
- 0050BEBE pop esi
- 0050BEBF pop ebx
- 0050BEC0 mov esp,ebp
- 0050BEC2 pop ebp
- 0050BEC3 ret
- end;*}
- //0050C30C
- {*function sub_0050C30C(?:TContactServerThread):?;
- begin
- 0050C30C push ebp
- 0050C30D mov ebp,esp
- 0050C30F mov ecx,1B2
- 0050C314 push 0
- 0050C316 push 0
- 0050C318 dec ecx
- <0050C319 jne 0050C314
- 0050C31B push ebx
- 0050C31C push esi
- 0050C31D push edi
- 0050C31E mov dword ptr [ebp-4],eax
- 0050C321 xor eax,eax
- 0050C323 push ebp
- 0050C324 push 50C72A
- 0050C329 push dword ptr fs:[eax]
- 0050C32C mov dword ptr fs:[eax],esp
- 0050C32F mov byte ptr [ebp-5],0
- 0050C333 xor eax,eax
- 0050C335 mov dword ptr [ebp-18],eax
- 0050C338 lea eax,[ebp-10]
- 0050C33B mov edx,dword ptr ds:[53E8CC];^gvar_0053E044
- 0050C341 mov edx,dword ptr [edx]
- 0050C343 call @LStrLAsg
- 0050C348 cmp dword ptr [ebp-10],0
- >0050C34C jne 0050C35B
- 0050C34E lea eax,[ebp-10]
- 0050C351 mov edx,50C744;'nxd'
- 0050C356 call @LStrLAsg
- 0050C35B mov esi,545DE0
- 0050C360 lea edi,[ebp-0D49]
- 0050C366 mov ecx,145
- 0050C36B rep movs dword ptr [edi],dword ptr [esi]
- 0050C36D mov dl,1
- 0050C36F mov eax,[00420070];TStringList
- 0050C374 call TObject.Create;TStringList.Create
- 0050C379 mov dword ptr [ebp-1C],eax
- 0050C37C xor eax,eax
- 0050C37E push ebp
- 0050C37F push 50C6D0
- 0050C384 push dword ptr fs:[eax]
- 0050C387 mov dword ptr fs:[eax],esp
- 0050C38A mov byte ptr [ebp-21],0
- 0050C38E cmp dword ptr ds:[53E004],1;gvar_0053E004
- >0050C395 je 0050C3AD
- 0050C397 mov eax,dword ptr [ebp-4]
- 0050C39A call 0050B5D8
- 0050C39F mov byte ptr [ebp-5],al
- 0050C3A2 mov al,byte ptr [ebp-5]
- 0050C3A5 mov byte ptr [ebp-21],al
- >0050C3A8 jmp 0050C6AF
- 0050C3AD cmp dword ptr ds:[53E004],1;gvar_0053E004
- >0050C3B4 jne 0050C6AF
- 0050C3BA mov eax,dword ptr [ebp-4]
- 0050C3BD mov al,byte ptr [eax+44];TContactServerThread.?f44:byte
- 0050C3C0 push eax
- 0050C3C1 lea edx,[ebp-18]
- 0050C3C4 xor ecx,ecx
- 0050C3C6 mov eax,dword ptr [ebp-4]
- 0050C3C9 call 0050AF48
- 0050C3CE test al,al
- >0050C3D0 je 0050C6AF
- 0050C3D6 mov eax,dword ptr [ebp-4]
- 0050C3D9 mov byte ptr [eax+44],0;TContactServerThread.?f44:byte
- 0050C3DD lea eax,[ebp-0C]
- 0050C3E0 push eax
- 0050C3E1 mov eax,[00545DD0]
- 0050C3E6 mov dword ptr [ebp-0D6C],eax
- 0050C3EC mov byte ptr [ebp-0D68],0B
- 0050C3F3 xor eax,eax
- 0050C3F5 mov dword ptr [ebp-0D64],eax
- 0050C3FB mov byte ptr [ebp-0D60],0B
- 0050C402 mov eax,dword ptr [ebp-10]
- 0050C405 mov dword ptr [ebp-0D5C],eax
- 0050C40B mov byte ptr [ebp-0D58],0B
- 0050C412 mov eax,[00545DDC]
- 0050C417 mov dword ptr [ebp-0D54],eax
- 0050C41D mov byte ptr [ebp-0D50],0B
- 0050C424 lea edx,[ebp-0D6C]
- 0050C42A mov ecx,3
- 0050C42F mov eax,50C750;'username=%s
- version=%s
- clitype=%s
- temp=%s
- '
- 0050C434 call 0040CC48
- 0050C439 mov dword ptr [ebp-20],3F7
- 0050C440 mov eax,dword ptr [ebp-0C]
- 0050C443 call @LStrToPChar
- 0050C448 push eax
- 0050C449 mov eax,dword ptr [ebp-0C]
- 0050C44C call @LStrLen
- 0050C451 push eax
- 0050C452 mov ecx,dword ptr [ebp-20]
- 0050C455 mov edx,dword ptr [ebp-18]
- 0050C458 mov eax,dword ptr [ebp-4]
- 0050C45B call 0050B13C
- 0050C460 test al,al
- >0050C462 je 0050C6AF
- 0050C468 lea eax,[ebp-34]
- 0050C46B xor ecx,ecx
- 0050C46D mov edx,0C
- 0050C472 call @FillChar
- 0050C477 push 0
- 0050C479 push 0C
- 0050C47B lea eax,[ebp-34]
- 0050C47E push eax
- 0050C47F mov eax,dword ptr [ebp-18]
- 0050C482 push eax
- 0050C483 call wsock32.recv
- 0050C488 test eax,eax
- >0050C48A jle 0050C6AF
- 0050C490 mov eax,dword ptr [ebp-30]
- 0050C493 sub eax,7DA
- >0050C498 jne 0050C699
- 0050C49E cmp dword ptr [ebp-2C],0
- >0050C4A2 jbe 0050C6AF
- 0050C4A8 lea eax,[ebp-835]
- 0050C4AE xor ecx,ecx
- 0050C4B0 mov edx,800
- 0050C4B5 call @FillChar
- 0050C4BA push 800
- 0050C4BF mov eax,dword ptr [ebp-2C]
- 0050C4C2 push eax
- 0050C4C3 lea ecx,[ebp-835]
- 0050C4C9 mov edx,dword ptr [ebp-18]
- 0050C4CC mov eax,dword ptr [ebp-4]
- 0050C4CF call 0050B2B4
- 0050C4D4 test al,al
- >0050C4D6 je 0050C6AF
- 0050C4DC mov byte ptr [ebp-21],1
- 0050C4E0 lea eax,[ebp-0D70]
- 0050C4E6 lea edx,[ebp-835]
- 0050C4EC mov ecx,801
- 0050C4F1 call @LStrFromArray
- 0050C4F6 mov edx,dword ptr [ebp-0D70]
- 0050C4FC mov eax,dword ptr [ebp-1C]
- 0050C4FF mov ecx,dword ptr [eax]
- 0050C501 call dword ptr [ecx+2C];TStrings.SetTextStr
- 0050C504 lea edx,[ebp-0D78]
- 0050C50A mov eax,dword ptr [ebp-1C]
- 0050C50D mov ecx,dword ptr [eax]
- 0050C50F call dword ptr [ecx+1C];TStrings.GetTextStr
- 0050C512 mov eax,dword ptr [ebp-0D78]
- 0050C518 lea edx,[ebp-0D74]
- 0050C51E call 0050A904
- 0050C523 mov edx,dword ptr [ebp-0D74]
- 0050C529 mov eax,dword ptr [ebp-1C]
- 0050C52C mov ecx,dword ptr [eax]
- 0050C52E call dword ptr [ecx+2C];TStrings.SetTextStr
- 0050C531 lea ecx,[ebp-0D7C]
- 0050C537 mov edx,50C788;'TimeSpan'
- 0050C53C mov eax,dword ptr [ebp-1C]
- 0050C53F call 004248A0
- 0050C544 mov eax,dword ptr [ebp-0D7C]
- 0050C54A xor edx,edx
- 0050C54C call 0040B694
- 0050C551 mov dword ptr [ebp-14],eax
- 0050C554 lea ecx,[ebp-0D80]
- 0050C55A mov edx,50C79C;'ld'
- 0050C55F mov eax,dword ptr [ebp-1C]
- 0050C562 call 004248A0
- 0050C567 mov eax,dword ptr [ebp-0D80]
- 0050C56D xor edx,edx
- 0050C56F call 0040B694
- 0050C574 mov dword ptr [ebp-0D09],eax
- 0050C57A push 0
- 0050C57C push 0
- 0050C57E push 0
- 0050C580 lea ecx,[ebp-0D84]
- 0050C586 mov edx,50C7A8;'ed'
- 0050C58B mov eax,dword ptr [ebp-1C]
- 0050C58E call 004248A0
- 0050C593 mov eax,dword ptr [ebp-0D84]
- 0050C599 call 0040D480
- 0050C59E fstp qword ptr [ebp-0CF0]
- 0050C5A4 wait
- 0050C5A5 cmp dword ptr [ebp-14],12C
- >0050C5AC jbe 0050C5B7
- 0050C5AE mov eax,dword ptr [ebp-4]
- 0050C5B1 mov edx,dword ptr [ebp-14]
- 0050C5B4 mov dword ptr [eax+40],edx;TContactServerThread.?f40:dword
- 0050C5B7 mov edx,50C7B4;'wc'
- 0050C5BC mov eax,dword ptr [ebp-1C]
- 0050C5BF mov ecx,dword ptr [eax]
- 0050C5C1 call dword ptr [ecx+58];TStrings.IndexOfName
- 0050C5C4 test eax,eax
- >0050C5C6 jl 0050C5EE
- 0050C5C8 lea ecx,[ebp-0D88]
- 0050C5CE mov edx,50C7B4;'wc'
- 0050C5D3 mov eax,dword ptr [ebp-1C]
- 0050C5D6 call 004248A0
- 0050C5DB mov eax,dword ptr [ebp-0D88]
- 0050C5E1 xor edx,edx
- 0050C5E3 call 0040B694
- 0050C5E8 mov dword ptr [ebp-0D05],eax
- 0050C5EE mov edx,50C7C0;'eb'
- 0050C5F3 mov eax,dword ptr [ebp-1C]
- 0050C5F6 mov ecx,dword ptr [eax]
- 0050C5F8 call dword ptr [ecx+58];TStrings.IndexOfName
- 0050C5FB test eax,eax
- >0050C5FD jl 0050C62A
- 0050C5FF lea ecx,[ebp-0D8C]
- 0050C605 mov edx,50C7C0;'eb'
- 0050C60A mov eax,dword ptr [ebp-1C]
- 0050C60D call 004248A0
- 0050C612 mov eax,dword ptr [ebp-0D8C]
- 0050C618 xor edx,edx
- 0050C61A call 0040B694
- 0050C61F test eax,eax
- 0050C621 setne al
- 0050C624 mov byte ptr [ebp-0CF1],al
- 0050C62A mov edx,50C7CC;'hf'
- 0050C62F mov eax,dword ptr [ebp-1C]
- 0050C632 mov ecx,dword ptr [eax]
- 0050C634 call dword ptr [ecx+58];TStrings.IndexOfName
- 0050C637 test eax,eax
- >0050C639 jl 0050C661
- 0050C63B lea ecx,[ebp-0D90]
- 0050C641 mov edx,50C7CC;'hf'
- 0050C646 mov eax,dword ptr [ebp-1C]
- 0050C649 call 004248A0
- 0050C64E mov eax,dword ptr [ebp-0D90]
- 0050C654 xor edx,edx
- 0050C656 call 0040B694
- 0050C65B mov dword ptr [ebp-0CF5],eax
- 0050C661 lea edx,[ebp-0D49]
- 0050C667 mov eax,[0053E408];^gvar_0053E034:TServiceObject
- 0050C66C mov eax,dword ptr [eax]
- 0050C66E call 00523D08
- 0050C673 cmp byte ptr [ebp-0CF1],0
- >0050C67A je 0050C685
- 0050C67C cmp dword ptr [ebp-0D09],0
- >0050C683 jg 0050C689
- 0050C685 xor eax,eax
- >0050C687 jmp 0050C68B
- 0050C689 mov al,1
- 0050C68B mov edx,dword ptr ds:[53E0C0];^gvar_0053E03C
- 0050C691 mov byte ptr [edx],al
- 0050C693 mov byte ptr [ebp-5],1
- >0050C697 jmp 0050C6AF
- 0050C699 mov byte ptr [ebp-21],1
- 0050C69D mov eax,dword ptr [ebp-4]
- 0050C6A0 xor edx,edx
- 0050C6A2 mov dword ptr [eax+4C],edx;TContactServerThread.?f4C:dword
- 0050C6A5 mov dword ptr ds:[53E004],2;gvar_0053E004
- 0050C6AF cmp byte ptr [ebp-21],0
- >0050C6B3 jne 0050C6C6
- 0050C6B5 mov eax,dword ptr [ebp-4]
- 0050C6B8 mov byte ptr [eax+44],1;TContactServerThread.?f44:byte
- 0050C6BC mov eax,dword ptr [ebp-4]
- 0050C6BF mov dword ptr [eax+40],12C;TContactServerThread.?f40:dword
- 0050C6C6 xor eax,eax
- 0050C6C8 pop edx
- 0050C6C9 pop ecx
- 0050C6CA pop ecx
- 0050C6CB mov dword ptr fs:[eax],edx
- >0050C6CE jmp 0050C6E9
- <0050C6D0 jmp @HandleOnException
- 0050C6D5 dd 1
- 0050C6D9 dd 40A298;Exception
- 0050C6DD dd 50C6E1
- 0050C6E1 mov dword ptr [ebp-28],eax
- 0050C6E4 call @DoneExcept
- 0050C6E9 mov eax,dword ptr [ebp-1C]
- 0050C6EC call TObject.Free
- 0050C6F1 cmp dword ptr [ebp-18],0
- >0050C6F5 je 0050C6FF
- 0050C6F7 mov eax,dword ptr [ebp-18]
- 0050C6FA call 0050B5B8
- 0050C6FF xor eax,eax
- 0050C701 pop edx
- 0050C702 pop ecx
- 0050C703 pop ecx
- 0050C704 mov dword ptr fs:[eax],edx
- 0050C707 push 50C731
- 0050C70C lea eax,[ebp-0D90]
- 0050C712 mov edx,9
- 0050C717 call @LStrArrayClr
- 0050C71C lea eax,[ebp-10]
- 0050C71F mov edx,2
- 0050C724 call @LStrArrayClr
- 0050C729 ret
- <0050C72A jmp @HandleFinally
- <0050C72F jmp 0050C70C
- 0050C731 mov al,byte ptr [ebp-5]
- 0050C734 pop edi
- 0050C735 pop esi
- 0050C736 pop ebx
- 0050C737 mov esp,ebp
- 0050C739 pop ebp
- 0050C73A ret
- end;*}
- //0050C7D0
- constructor TContactServerThread.Create;
- begin
- {*
- 0050C7D0 push ebp
- 0050C7D1 mov ebp,esp
- 0050C7D3 add esp,0FFFFFFF8
- 0050C7D6 test dl,dl
- >0050C7D8 je 0050C7E2
- 0050C7DA add esp,0FFFFFFF0
- 0050C7DD call @ClassCreate
- 0050C7E2 mov byte ptr [ebp-5],dl
- 0050C7E5 mov dword ptr [ebp-4],eax
- 0050C7E8 mov cl,1
- 0050C7EA xor edx,edx
- 0050C7EC mov eax,dword ptr [ebp-4]
- 0050C7EF call TSysLoadThread.Create
- 0050C7F4 mov eax,dword ptr [ebp-4]
- 0050C7F7 mov dword ptr [eax+40],12C;TContactServerThread.?f40:dword
- 0050C7FE xor eax,eax
- 0050C800 mov [0053E004],eax;gvar_0053E004
- 0050C805 mov eax,dword ptr [ebp-4]
- 0050C808 mov byte ptr [eax+0F],1;TContactServerThread.FFreeOnTerminate:Boolean
- 0050C80C mov eax,dword ptr [ebp-4]
- 0050C80F cmp byte ptr [ebp-5],0
- >0050C813 je 0050C824
- 0050C815 call @AfterConstruction
- 0050C81A pop dword ptr fs:[0]
- 0050C821 add esp,0C
- 0050C824 mov eax,dword ptr [ebp-4]
- 0050C827 pop ecx
- 0050C828 pop ecx
- 0050C829 pop ebp
- 0050C82A ret
- *}
- end;
- //0050C82C
- destructor TContactServerThread.Destroy;
- begin
- {*
- 0050C82C push ebp
- 0050C82D mov ebp,esp
- 0050C82F add esp,0FFFFFFF8
- 0050C832 call @BeforeDestruction
- 0050C837 mov byte ptr [ebp-5],dl
- 0050C83A mov dword ptr [ebp-4],eax
- 0050C83D mov dl,byte ptr [ebp-5]
- 0050C840 and dl,0FC
- 0050C843 mov eax,dword ptr [ebp-4]
- 0050C846 call TThread.Destroy
- 0050C84B cmp byte ptr [ebp-5],0
- >0050C84F jle 0050C859
- 0050C851 mov eax,dword ptr [ebp-4]
- 0050C854 call @ClassDestroy
- 0050C859 pop ecx
- 0050C85A pop ecx
- 0050C85B pop ebp
- 0050C85C ret
- *}
- end;
- Initialization
- Finalization
- //0050C860
- {*
- 0050C860 push ebp
- 0050C861 mov ebp,esp
- 0050C863 xor eax,eax
- 0050C865 push ebp
- 0050C866 push 50C8B6
- 0050C86B push dword ptr fs:[eax]
- 0050C86E mov dword ptr fs:[eax],esp
- 0050C871 inc dword ptr ds:[5462F4]
- >0050C877 jne 0050C8A8
- 0050C879 mov eax,53E018;gvar_0053E018:array[3] of String
- 0050C87E mov ecx,3
- 0050C883 mov edx,dword ptr ds:[4010D8];String:Pointer
- 0050C889 call @FinalizeArray
- 0050C88E mov eax,545DC8
- 0050C893 mov edx,dword ptr ds:[48005C];THxDLoginInfo
- 0050C899 call @FinalizeRecord
- 0050C89E mov eax,53E008
- 0050C8A3 call @LStrClr
- 0050C8A8 xor eax,eax
- 0050C8AA pop edx
- 0050C8AB pop ecx
- 0050C8AC pop ecx
- 0050C8AD mov dword ptr fs:[eax],edx
- 0050C8B0 push 50C8BD
- 0050C8B5 ret
- <0050C8B6 jmp @HandleFinally
- <0050C8BB jmp 0050C8B5
- 0050C8BD pop ebp
- 0050C8BE ret
- *}
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement